Some Bits: Nelson's weblog

San Francisco Treasurer website is insecure

It’s property tax time. So I went to the SF treasury website to pay my tax bill. And got an SSL certificate error from Firefox.

Oops the cert expired a year ago and is for the wrong domain. I get it, government web sites are often underfunded and don’t work well. Maybe they didn’t know how big a problem this presents in modern browsers that are enforcing SSL security. So I wrote a polite note to support. And got this response from the San Francisco 311 Customer Service Center.

Please use the right protocol to access our website. Please use http://sftreasurer.org instead of https://…

OK then…

Political despair

This week seems to have broken a lot of my friends politically. Lots of folks withdrawing, feeling despair, etc. Me too, only I may reached that point a week or two ago.

The final straw this week seems to be the new Republican tax law. Cynically creating an enormous new deficit to give tax breaks to the richest Americans. While raising taxes on middle class people, particularly in high tax states like California and New York. It is a terrible law that will cause significant harm to our country. Combined with the destruction of the Affordable Care Act it will bring misery to many Americans.

But there’s so much more awfulness. The sexual misconduct revelations are a constant reminder of how shitty so many men are. Topped off by our Sexual Predator in Chief and his not-quite endorsement of child botherer Roy Moore. Trump’s tweets of anti-Muslim hate propaganda. The reversal of net neutrality. Trump’s off the cuff insults against Native Americans. Ongoing efforts to suppress the vote. Lurching towards nuclear war with North Korea with a State Department stripped of competency.

The only “bright spot”, as it were, is Mueller’s investigation. As if discovering the President’s staff worked with Russian intelligence to subvert the US election is somehow a positive thing. It’s not, it’s terrible, and so far we’ve done nothing to make the 2018 election more secure. Also it’s not really not clear that Mueller can save the Republic even with ironclad evidence of Trump campaign collusion with Russia. The Republicans hold the power and have shown themselves completely uninterested in decency or the rule of law. Remember the outcome of the Iran-Contra affair?

It’s going to get worse. It may not get better. He may get us all killed.

Simplenote

Simplenote is good software. It’s a very simple cross-platform note taker with excellent cloud synchronization between devices. It’s perfect for drafting a few paragraphs of text, keeping a simple to do list, or jotting down an address while you’re on the phone. Under the hood it’s got some remarkably sophisticated features like version history, note sharing, etc. But all that is out of the way if you just want a box to type in.

Simplenote is free software, a gift from the folks at Automattic. They’re mostly known for WordPress but they have a surprising number of other public good services they run, mostly for free or with value-add purchases. Akismet, Longreads, Gravatar, Cloudup; I had no idea these were all Automattic. Good for them.

Twitter endorses Nazis

Twitter has been in the middle of a shitstorm for awhile now, users and the media upset about abuse, trolls, propaganda, etc. They’re now working on a short timeline to curb abuse. It’s not going very well. Yesterday Twitter verified Jason Kessler, the organizer of the Nazi rally in August. The rally that ended up with Heather Heyer being murdered. Kessler gloated about her death on Twitter.

Yes, Twitter endorsed an actual Nazi.

Make no mistake; when Twitter puts the blue check on an account they are endorsing it. They are endorsing that person’s identity is verified. They are endorsing that the person is newsworthy. They now acknowledge the endorsement.

Verified users aren’t just endorsed, they are enabled. My understanding is verified users get extra tools when they use the site. They get a priority user support experience. And it appears that verified users get ranked higher when Twitter decides which tweets to show, particularly replies to public tweets. So Twitter hasn’t just endorsed an actual Nazi, they’ve gone out of their way to enable his speech too.

I want nothing to do with a company like that. I rage quit this week. I’ll probably end up back at some point because I’ll miss it too much, but right now I’m furious.

I’m generally a strong free speech advocate. Twitter was founded on principles of strong free speech. But when we worked on it in the early days we neglected to consider how powerful a free speech tool is in the hands of monstrous people. Demagogues use Twitter incredibly effectively. Propaganda and lies spread faster than truth. Abusers hound their victims into silence. Free speech only works if there are curbs on its abuse. Twitter has failed to do that.

Update: Twitter has updated its policies and removed the verification from at least two high visibility Nazi accounts.

Mastodon

I’m using Mastodon regularly now, I’m @nelson@lgbt.io. Add me!

Mastodon is a Twitter-like social media that the cool kids started using back in April. At first blush it’s just like Twitter. You post messages about your breakfast, you follow other people to see their cat pictures, and you get a little dopamine rush from social engagement. Also maybe you share things of personal or public interest and help build an important online culture. The UI isn’t as polished and it doesn’t have as many features as Twitter, but it’s good.

If you want to start using Mastodon this beginner’s guide or the Join Mastodon site are good places to start. The key thing is you have to pick an instance to sign up on. This tool helps find instances or you can just pick the biggest instance. I picked lgbt.io because I like the idea of an LGBT identity.

Once you join you need to find people to follow. The best tool I’ve found for that is the Twitter/Mastodon bridge which helps you find your Twitter friends on Mastodon. It requires both sides opt-in and the UI is a little awkward. I also followed a lot of people from Metafilter.

I don’t like the default multi-column web UI. I’m using this one column layout instead but it’s not particularly easy to install. Halcyon is an alternate Mastodon web client that is a Twitter UI clone; you can use it with any Mastodon account. For iPhone apps people recommend Amaroq.

So why Mastodon? For me it’s because I’m angry with Twitter’s endorsement of Nazis and want an alternative. Also it’s fun to try something new. The big drawback is very little of my community is there. But maybe it’ll grow! Also it’s good that Mastodon is a different community than Twitter; the goal is to not replicate all the awful community mistakes Twitter made. Hopefully the abusers and Nazis and insane presidents will never join Mastodon or at least will be filtered out somehow.

The big technical difference with Mastodon is it is federated; instead of one single Mastodon server there’s separate instances that communicate with each other. For casual use the federation doesn’t matter since most everyone can talk to everyone else across instances. But in theory it allows for diverse communities with different standards. Also possibly some interesting scaling properties. I’m a little skeptical about how this will work as Mastodon grows, I don’t know that they have any magic solution to Internet abuse. But I’m excited to see someone trying something new.

German elections 2017

The big surprise from the German elections was how bad Merkel and the ruling CDU did, and how well the deplorable far-right Alternative for Germany (AfD) party did.

Berlin is a lovely city, very optimistic and international. It also has little patience for AfD bullshit; I saw no AfD signs anywhere until two days before the election, and those only way up high out of reach on poles. There was a big demonstration last night in Alexanderplatz after the election; the AfD were having their party there so a few thousand Berliners turned up to, um, help them celebrate.

Some links that may be of interest

Now for the coalition negotiations. It’s not clear to me if the SPD saying they won’t join one with the CDU a negotiating tactic or if they mean it.

Berlin after ten days

Ken and I are in Berlin for a few weeks, sort of working vacation. Been here about ten days now and have some impressions.

I’m really liking daily life in Berlin. We have an apartment in Prenzlauer Berg near Kollwitzplatz, a bougie neighborhood in former East Berlin. It’s all leafy streets and 1920s buildings and is totally charming. The nearby streets are full of cafés and restaurants and Kollwitzplatz itself is home to a terrific weekly farmer’s market. It feels worlds away from the inhuman scale 1960+s architecture you see in so much of central Berlin.

One thing I particularly enjoy in Prenzl’berg is how international it is. New York bagels, French cheese shops, English laundry, Vietnamese restaurants, Russian cafés, yesterday I had an Argentinian empanada in a repurposed 19th century brewery. I mean it’s still Germany, there’s a 100 year old kneipe just across the street from us serving Rinderouladen and Pils. But it’s also global and progressive. Which not only makes it easy for an American to get by but also makes it fun and not a historical museum like sometimes Paris can feel like.

I also appreciate being in a city with working public transit. And without thousands of dangerously insane people living on the streets. Having a bit of insulation from Trumpism helps calm the nerves. Big parts of life function better in Europe.

I’m also feeling a little unsettled, a phase I go through every time we do these long visits. A struggle between the feeling I should go out and be a tourist every day, consume the city in the short time I have. Against my desire to sit at home on my comfortable laptop and do my regular daily routine just like I would at home. Of course the happy medium is in the middle, some of each.

One goal I set myself for this time in Berlin was to learn more about older history. So much of Berlin is dominated by 20th century history, the Nazis and the Soviets. And that stuff is important and well represented. But I feel like I understand it from previous visits, so this time I’m looking for traces of 19th century Germany, of Prussia’s great gay king from the 18th century, of the very old city back when Cölln was a separate town. Learning the city from the time the waterways were the travel routes, not the U-bahn lines.

Urban Nation in Berlin

A new “urban art” museum just opened in Berlin: Urban Nation. Judging by their opening weekend show it is a fantastic collection of modern street art. I put a few photos of the works I saw on Flickr.

The event had an “art mile” with some temporary sculpture installations. Also some magnificent large scale street art works on Bülowstrasse itself, hopefully those will last awhile. I particularly liked Zezão’s alien calligraphy forms. Also liked some of the wildcat street art, I think a few lesser-known artists got some unauthorized paint up.

The museum show had a really thoughtfully selected overview of the best of modern streetart. C215, Deih XLF, Dalek, the obligatory representations by Banksy and Invader and Fairey. It’s terrific a museum is collecting these from all over the world; whoever is curating seems very plugged in. I wonder who’s funding the building and collection; the website only mentions some city of Berlin funding.

Memorializing an evil history

I strongly support removing Confederate monuments but I have some sympathy to the “you’re removing history” argument. I have no wish to forget the Civil War or the legacy of slavery. I’m a Texan and a descendant of slavers, my own skin is in this.

The disingenous thing about the “but our history!” argument is that the monuments being torn down aren’t informative representations. They’re mostly Lost Cause statues made to create a narrative of heroism, the brave Stonewall Jackson and the noble Jefferson Davis. They don’t inform, just glorify. Most of them were erected 50-100 years after the war for sinister purposes, reinforcing Jim Crow laws and resisting school integration. (Seriously, who names an elementary school after Robert E. Lee just after the courts rule Black kids get to go to that school too?)

Germany has a much better model for honoring World War II. I’ve written before about the impact the concentration camps and monuments in Germany have had on me. The forthright documentation of history without glorifying it. There are no monuments to Hitler or Himmler that need tearing down, such a thing is unimagineable there. But there is a huge amount of history on display; the Topography of Terror center is particularly good.

Japan has a more awkward relationship with its World War II history. The official line most citizens follow is the war was a terrible mistake and Japan is forevermore committed to pacifism. But there’a strong nationalist movement in Japan who pushes back on that. The Yasukuni Shrine is the central lightning rod for the nationalists. I’ve visited the museum there, it’s fascinating. When the Japanese Prime Minister visited it was a major international scandal. Japan also has a huge debate about its textbooks that leave out some of the uglier bits of war history. It reminds me a bit of how American kids are still taught the revisionist lie that the Civil War wasn’t really about slavery or that the Southerners were innocent victims of the War of Northern Aggression.

History is never simple. But a mass produced generic statue erected 60 years after the war isn’t even trying to be historical. Its purpose is symbolic. And to many Southerners it’s a symbol of enslavement and racist discrimination. There are better ways to honor and explain our history.

Voting rights and gerrymandering

One crucial political aim for 2018 and 2020 is making sure the vote is fair and representative. The GOP has a clear strategy for voter suppression. They also will try to further cement their control of the House starting in 2020 with gerrymandering. Here are some people working to protect voters’ rights.

Jason Kander is leading the fight against voter suppression with the organization Let America Vote. Right now that’s mostly agitation against Trump’s voter suppression committee but it’s backed by legal and political action. (Kander is hilarious on Twitter, I enjoy following his personal account.) The ACLU is also very active in protecting voting rights.

I’ve been spending a lot of time educating myself about gerrymandering. The #1 thing I’d recommend is the book Ratf**ked; the New Yorker review gives a summary. That book is mostly a report on REDMAP, the GOP districting effort in 2010 (and now 2020). The DNC’s districting effort in 2020 is the National Democratic Redistricting Committee, led by Eric Holder. They’ve been relatively quiet but that may be because it’s mostly a technical and per-state issue.

The big news in gerrymandering this fall is the Wisconsin case, to be heard in the Supreme Court in October. It is considering the question about whether an explicitly partisan gerrymander is legal. There’s a lot of excitement about a measure called the efficiency gap which quantifies partisan bias. I’m doing a little work in this area myself, there’s a fun statistics + maps problem there.

I’ve left out a third topic, protecting the vote from foreign influence. I’m not as up to date on that topic. Also it’s a bit different in that voting security should be a bipartisan issue. Unfortunately a bunch of Republicans are ignoring obvious evidence of Russian election tampering as a misguided attempt to protect Trump. Secure voting machines and easy auditability are important themes.

London and Portugal

Ken and I went to Europe a couple of months ago. I spent a few days alone in London, then we spent a couple of weeks together in Portugal. So really two trips, but here in one blog post. As always Twitter has my memories and photos: here’s a Storify collection from London and another from Portugal.

My first time in London and I enjoyed it, would love to go back. I spent two full days at the British Museum. The part I remember best is the Enlightenment Room, a collection of miscellany presented as if you were in an 18th century library. It perfectly captures the optimistic spirit of the Enlightenment. The best part of Empire, when British scientists felt they could understand everything but collecting objects from all over the world and studying them. A good place to start a visit before seeing the grander “transported” treasures in the galleries. (My favorites of those: the Assyrian galleries and the Aztec masks.)

Portugal was great. We spent a week in Lisbon and Porto and another week poking around the countryside. Porto was my favorite place; a small city with beautiful topography and a lot of youthful optimism. I becamse fascinated with azulejo, the painted tile that’s a centuries-long tradition. Our visit to the smaller towns wasn’t as successful; Portugal still is a relatively poor country and the vernacular of food and accomodation is variable. But I’m glad we go to see some of the more remote monuments and the countryside was quite pleasant.

Prescription drug prices

Prescription drugs: they save your life but have completely crazy pricing in the United States. I take a slightly uncommon medication daily. I have insurance with Anthem CA. The medicine costs me $4/day at Walgreen’s. That seemed expensive so I shopped around and found my way to GoodRx, which gave me a coupon for $1/day at the same Walgreen’s. 75% off WTF?

GoodRx has an article explaining how it works. They are a marketing middle-man, a comparison shopping site. They work with several Pharmacy Benefit Managers to get pricing for drugs. Then they pick the PBM with the best price and you use their RxGroup pricing code at the pharmacy. Presumably GoodRx gets a kickback. My Anthem insurance has a PBM that should be getting me good pricing, but GoodRx did better. The drawback is my insurance didn’t even see the purchase, so it does not apply to my deductible. I might be able to fix that with a letter.

A key part of this is that the drug I take is available as a generic. There’s a lot less price flexibility for drugs still under patent. OTOH this exact same generic I take is available from a Canadian or Indian pharmacy for $0.50/day, so US pricing is still unusually high.

Blink Health is a competitor to GoodRx, I have a friend who works there. I think they operate similarly and they have similar pricing for my drug of interest. They really want you to log in though; as near as I can tell my usage of GoodRx was an anonymous coupon with no identifying code.

This post isn’t exactly an endorsement; the whole prescription drug market is so spooky I don’t trust anyone. The real problem is the US’ insane health market, where we pay more for worse outcomes than civilized countries.

Oculus Rift first impressions

I got an Oculus Rift on a whim this week when they dropped the price of the bundle down to $400. This is my first experience with VR in a few years and 10+ since I last used a high quality rig. I’m impressed, the sense of being present in virtual space is incredibly compelling. But as everyone says the problem is there’s no great VR-specific content yet.

The hardware is good. Lag-free head and hand tracking. Sensor calibration is a hassle. Windows setup was remarkably painless. The touch controllers are essential. It allows you to have virtual hands. Definitely want “full room VR”: several tracking sensors and a 5x7’ clear space to walk around in. Sitting still and having the view pan is instant nausea but walking around a stationary virtual room is better. Even with the calmest software I get tired and headachy after about 30 minutes. Eyestrain maybe? VR sickness makes for a viscerally negative experience.

As for software, I’ve only played around for a few hours, so no deep opinions. Oculus’ own tutorials / demos are very good, the intro Dreamdeck demo had me shouting for joy. The best game I’ve played so far is Superhot VR; I’ve not played the normal version but the VR variant is really compelling. Subnautica made me sick in about five minutes, although it is very pretty. Thumper is pretty in 3d but I’d rather have a flat screen and excellent speakers. Google Earth VR was surprisingly disappointing; the imagery isn’t quite good enough. I haven’t tried Job Simulator 2050 yet, it’s quite popular. I’m also curious to try The Climb.

I took a quick look at the porn industry; all they’re offering is 3d videos and some minimal “fondle boobs with your glowing virtual hands” interaction, so they haven’t figured out VR apps either. The fact that "Waifu Sex Simulator" is one of the most popular apps gives you an idea of the target market.

So it’s a fun toy, but given the fatigue and lack of compelling content I’m not sure how long I’ll be using my Oculus Rift. We’ll see. What I really want is some easy way to build data visualizations in 3D, maybe using WebGL or something. I haven’t looked hard but my impression is that’s not fully baked yet.

My Family’s Slave, Texas 1860

My grandmother’s great-grandparents owned a slave. The slave schedules record that they owned a 13 year old girl in 1860.

Leonard and Melvina Ward were born in central Tennessee and early in life moved to East Texas. They had six children. They lived to old age, here is their sweetly romantic gravestone. I think they were farmers and lived pretty well. At least well enough to own a person.

Here is what I know about the person they enslaved. She was 13. She was Black (as opposed to “mulatto”). She was not a fugitive, she had not been freed, and she was not deaf, dumb, blind, insane, or idiotic. That’s all Wm P Cornelius recorded in his census. I don’t know her name, where she was born, have no easy way to research her further. All I know is she was 13 and was enslaved by my 3rd great-grandparents.

I like to imagine she’s what my grandmother called “a domestic”, cooking and doing housework. The census records no slave houses, so maybe she even lived in the family house. I’d like to think she lived another 5 years to see her emancipation, then got far away from her captors and lived a happy and comfortable life. That would be about the best outcome for a 13 year old slave girl in Texas in 1860. More realistically she was probably impoverished and lived with little freedom in rural Texas.

Today is Juneteenth, a day of national celebration for the end of slavery. Emancipation was a complicated process that took several years to be enforced. Followed by decades of indentured servitude, poverty, and deprivation for many African Americans. The legacy of slavery lives on, it is one of America’s original sins. I own a piece of that legacy.

Audi Driver Assist

I got my first new car in 12 years, a 2017 Audi A3. Happily I was able to find one of the few A3s that has Driver Assistance, the fancy adaptive cruise control and lane holding system. Love it, so glad I got it. The feature is more common on the high end Audis, but for the A3 you have to get the “Prestige” trim level which is not commonly stocked by California dealers.

The simple part of the system is adaptive cruise control. I set my speed to the nearest 2.5mph, then it paces the car in front of me using radar sensors. You can select how close it wants to follow. It will bring the car to a full stop if it has to. It’s great in heavy traffic on I-80, the only drawback is I’m now less aggressive about switching lanes to get around someone slow. If only every car had this feature, we could smooth out a lot of traffic jams as everyone drives a constant speed.

The other fancy feature is active lane assist. The car detects highway lanes with cameras. If I start to drift out of the lane it gives a bit of a nudge to the wheel. Ostensibly it’s to remind me to hold my lane, but the nudge is strong enough it actually sends the car back in the lane by itself. It’s very much not an autopilot though, the car complains after ~10 seconds of nudges. And the sensor isn’t reliable in the face of bad paint or unusually wide lanes, you really can’t rely on it all the time.

I like how both technologies are like little daemons helping me drive. I’ve written before about the dangers of full autopilots that expect a driver to take over if something fails. The A3 systems aren’t full autopilots, I’m still engaged in the task of driving at all times. Although it does require less attention. I’m still learning to trust the daemons, sometimes when the lane holding feature moves the wheel I instinctively try to countersteer away, the exact wrong thing.

All the other electronics in the A3 are very nice too. The virtual cockpit display is beautiful. The maps are good. The stereo plays plenty of audio formats, although the 10,000 file limit on SD cards is awfully dumb. I’m even liking Apple CarPlay.

I’m hoping the next car I buy will have a full autopilot. Although once that tech reaches mainstream it may no longer make sense to buy a car.

Disclosing newspaper edits

There’s a kerfuffle going on with an NYTimes article about Trump and Xi. Trump calls the article fake news, saying it doesn’t describe his phone call on Thursday with Xi. But the online article starts with that phone call! What’s going on?

The confusion is the print edition of the article does not include the call. You can see that in this screenshot of the front page I took from Newseum. The article was then later updated online to include more facts, including the call.

The current online article is excellent reporting and, I think, accurate. The print edition was probably also accurate at the time it was published; it seems likely the NYTimes had not yet been informed of the Xi call. The problem is the edit to the online article isn’t disclosed to readers. And so everyone’s left confused, including journalists. One of the article authors even retweeted a smug tweet from another NYT reporter mocking Trump’s reading comprehension. But it seems likely to me Trump simply read the older print article.

One of Trump’s weapons is creating distrust for the media. It’s important for newspapers of record to do everything they can to avoid confusion. The NYT really needs a policy of disclosing edits to online articles.

Update: Politico has a story about this.
Update 2: Newsdiffs has the edit history.

How bad is it?

It’s been a terrible weekend politically, with Trump’s hateful and foolish immigration order and the backlash to it. But how bad is it really? I’ve been mulling over this terrifying essay by Yonatan Zunger that’s making the rounds of techies, Trial Balloon for a Coup?. And contrasting it to Larry Lessig’s calm essay about the power of American constitutional process.

Zunger’s essay is powerful and, I think, well intentioned. He argues that the immigration circus this weekend was the Trump administration testing whether they could seize total political power. It takes some basic facts about the horrible things the Trump administration is doing and mixes them with some speculation such as the Rosneft deal and comes to a conclusion that the American Republic is about to end. If this essay is correct, the rational response is to flee the country immediately.

Lessig’s essay is a calm entreaty to resist Trump via normal legal and constitutional procedures. Specifically the need for Congress to step up and lead the fight. I agree the Democratic congressional leadership is very disappointing right now. I want Lessig’s worldview to be right, because it means my home is not about to explode in a civil war.

But which is true? I’m less certain than I’d like to be. I think the conclusion Zunger comes to is too extreme to be correct. It reads to me like “Obama’s comin’ for yer guns” or "FEMA orders $1B in coffins" rhetoric. There are some threads of truth there but they’re spun together in an inflammatory way to make the most terrifying conclusion. I think it’s bordering on irresponsible fearmongering and distracts us from meaningful resistance.

America is going to hell through constitutional means, no coup necessary. The Trump administration is using its authority to enact a series of policies that will greatly diminish this country. And they are doing so with complete contempt for truth, decency, or democratic norms. I really hope Lessig is right and that fighting back through legal means is possible. I’m not willing to believe a coup is coming, but this last weekend has me rattled.

I’ve been reading a lot about the Reichstag Fire lately.

Watch Dogs 2

Watch Dogs 2 is a very good video game. I think it’s nearly as good as GTA V or Sleeping Dogs and better than many other open world roamers. It fixes nearly all the problems in the original Watch Dogs and finds the fun in the game design.

My favorite thing about the game is the setting, the tech industry in the Bay Area. I live in San Francisco, I’ve worked in two of the offices featured in the game, I’m constantly running in to things in the game that remind me of where I live. They’ve done a remarkably good job on the re-creation of the Bay Area. Like not only do the buses in San Francisco look like SF Muni buses, but the buses in Oakland look different because of course they should, they’re AC Transit buses. The world quality extends to the game writing, both incidental stuff like random NPC dialog and significant things like the main story writing.

The main story is pretty good. It’s not great, I’d say it’s weaker than GTA V, but it’s still pretty good. Some of the characters are great and some of the set pieces are excellent. The biggest criticism I have is something a lot of reviews pointed out, which is there’s a conflict in tone between “we’re a fun hacker gang pulling pranks” and “we’re a group of murder hoboes launching grenades at FBI agents”. There’s an event that happens in the game that could explain the shift but the writing doesn’t quite pull it together. It’s not a huge problem.

Most importantly, the gameplay is fun. The magic spells hacking abilities you use are fun and powerful and innovative. The cover shooter and driving mechanics are fine (better than GTA.) Remote controlling rolling and flying drones is seriously fun. A lot of the missions have multiple solutions: puzzle solving, stealth, or straight-up guns a’blazin. I switched between those modes frequently in a natural way. Also there’s a lot to do outside the main game, including a light multiplayer mode that injects a bit of novelty. I’m still chipping away at the side missions, mostly as an excuse to continue sightseeing.

It’s a really good game! I have some screenshots and video clips on Twitter.

Reed College D-Lab

I went to Reed College, a wonderful small liberal arts college. It was a perfect fit for me in almost every way. Except one thing: Reed offered no computer science. Excellent math and physics program in the liberal arts tradition, but no engineering of any kind. I was fine with that tradeoff at first but got frustrated, even considered transferring to MIT.

What made Reed work for me was a tiny little computer lab tucked in the library basement, the grandly named Academic Software Development Laboratory. That was the home for a few beardy Unix nerds, some students, some staff. Gary Schlickeiser was in charge at the time (Richard Crandall set it up). Gary hired me and I spent the next four years getting paid part time and summers to learn Unix at the knee of folks like Bill Trost and Kent Black. Our official job was writing software for professors’ research projects and providing Unix support, but really my time was spent being steeped in Internet culture. Also a lot of Netrek.

My very first job was getting Netatalk working on our Ultrix 2.2 systems so they could be file servers to Macintoshes. Mind you, this is 1990, networking software back then was full of jaggy sticks and sharp rocks. I learned how to download software via UUCP, how zcat | tar worked, how to run make and read compiler errors, all sorts of wooly crap. I got it running but it didn’t work, at which point Norman Goetz taught me how to use some ancient packet sniffer (Lanalyzer?) to figure out the problem. That’s when I learned about little-endian vs big-endian and in the end all I had to do was #define MIPSEL and suddenly it all worked. That was my first month’s accomplishment.

And so I was initiated into the Unix priesthood. Ever since then I’ve traded on my ability to write software and make computer systems work. Software is not an academic discipline, certainly not a liberal art. It’s a craft. And the only way to learn craftsmanship is to apprentice to master craftsmen, to learn hands on from experts.

The D-Lab was the home for that expertise. Later I worked on more interesting projects including Mark Bedau’s artificial life research, running a Usenet daemon, setting up Reed’s first web site, etc. Those projects led directly to my career.

Reed stopped having a D-Lab around ten years ago. But two years ago a new program started, the Software Design Studio, with enthusiastic support from some alumni. Reed is also creating a computer science program that will be pretty math intensive. I hope the SDS is a place where folks can learn some of the applied craft.

Leap Second 2016-12-31

The Internet mostly survived the leap second two days ago. I’ve seen three confirmed problems. Cloudflare DNS had degraded service; they have an excellent postmortem. Some Cisco routers crashed. And about 10% of NTP pool servers failed to process the leap second correctly.

We’ve had a leap second roughly every two years. They often cause havoc. The big problem was in 2012 when a bunch of Java and MySQL servers died because of a Linux kernel bug. Linux kernels died in 2009 too. There are presumably a lot of smaller user application failures too, most unnoticed. Leap second bugs will keep reoccurring. Partly because no one thinks to test their systems carefully against weird and rare events. But also time is complicated.

Cloudflare blamed a bug in their code that assumed time never runs backwards. But the real problem is POSIX defines a day as containing exactly 86,400 seconds. But every 700 days or so that’s not true and a lot of systems jump time backwards one second to squeeze in the leap second. Time shouldn’t run backwards in a leap second, it’s just a bad kludge. There are some other options available, like the leap smear used by Google. The drawback is your clock is off by as much as 500ms during that day.

The NTP pool problem is particularly galling; NTP is a service whose sole purpose is telling time. Some of the pool servers are running openntpd which does not handle leap seconds. IMHO those servers aren’t suitable for public use. Not clear what else went wrong but leap second handling has been awkward for years and isn’t getting better.