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.
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.
I like maps. Some friends and colleagues are making some beautiful map and geographic based art that would make nice Christmas gifts. (For others! I’m not hinting, have these already!)
Bill Morris makes painterly prints of satellite photographs. You can read about his process in detail. In short, he takes satellite images from Planet Labs and then pushes them through customized machine learning software to render them like paintings. They’re beautiful.
Rachel Binx makes geographic style products. Jewelry, clothing, and posters all custom made for someone’s personal geography. One-off design and fabrication like this is really ambitious and she delivers well.
Jared Prince of Muir Way made a high quality print of a map of American rivers. He was inspired by my river map but ended up recreating the whole thing from scratch with a much better result than mine. The print quality is excellent too.
One of our holiday treats is an egg dip that Ken makes, an old family recipe. It’s sort of like smoky deviled eggs only potato chip compatible. I like it. Here’s an approximation of the recipe; it’s not an exact thing.
Mince the eggs. Blend with mayo and cream cheese to dip texture. Flavor with mustard, liquid smoke, and salt. The result should taste mostly like eggs, with a noticeable smoky flavor and a bit of sharpness from the mustard.
You can use ordinary wet mustard but the dry mustard without vinegar is better. Minced onion or shallot might be a nice addition. Or cayenne pepper.
Interesting pair of maps showing the route of the controversial Dakota Access Pipeline
The upper map is the official map from Energy Transfer Partners. It is remarkably free of detail. Enter Carl Sack's map below, which contains a lot more detail and was designed explicitly to help oppose the pipeline. It's objectively a better map in many ways, particularly showing the locations of rivers and the Sioux Reservation.
It's also notable that Sack includes the "Unceded Sioux Territory". My understanding (and I could be wrong) is that land has disputed legal status today, the result of a broken treaty with the Sioux. The passing of this pipeline through that land is a key part of the dispute, though, and mapping it helps us understand the protest against the pipeline's passage through that land.
Donald Trump warned us the 2016 election would be rigged. Was it? I’ve seen no evidence the vote was subverted enough to change the presidential result. But there were plenty of problems with the election, problems we should fix to protect American democracy.
2016 was the first major election after the Supreme Court gutted the Voting Rights Act. Several states put new limitations on the right to vote such as North Carolina’s intentionally racist voter ID law. How many votes were suppressed in 2016? It’s too early to know (counting and analysis takes time), but voter suppression definitely had some effect. The right to vote is one of the most important rights we have in America, we must defend it for everyone.
Clinton won the popular vote by at least 1M votes but lost the election. That’s not “rigged,” the system is functioning as designed. But the Electoral College is curiously anti-democratic, Trump himself called it “a disaster for democracy.” A particular problem is that the way votes are allocated means there’s gross inequality. Voters from small states like Wyoming or Vermont have 2–3x the power as voters from big states like Texas or California. This bias disenfranchises racial minorities as well. The Interstate Compact is one possible way to reform the electoral college.
The FBI meddled in the election. Comey’s decision to bring up vague, irrelevant email evidence less than two weeks before the vote had a significant impact on public opinion. Comey’s handling of the email investigation had been unusually critical for months. The Trump campaign was tipped off about Comey’s October surprise before it happened; Giuliani even bragged of “a revolution going on inside the FBI”. The national police meddling in an election is something you expect in a tinpot dictatorship, not the US.
The Russian government hacked the Democratic National Committee to influence the election. The DNC emails WikiLeaks published ended up not containing much of significance but still hurt the Clinton campaign. Back in July Trump invited Russia to hack Clinton. After the election a Putin adviser bragged “maybe we helped a bit with WikiLeaks.” Foreign espionage threatens our independence.
Voting machine security has not come up as a specific concern this election. But it’s crucial to fair elections; a lot of computer voting to date is woefully insecure. A post-vote audit comparing electronic votes to verified paper votes would be a huge reassurance.
I have a lot of admiration for American democracy. Keeping our elections free and fair requires constant vigilance. We need to stop voter suppression, reform the electoral college, and prevent inappropriate influence both from US and foreign governments. Keeping democracy healthy is a non-partisan goal; it is American.
Were you offended by me calling Trump a racist? Perhaps you voted for Trump and resent the association? “I’m not a bigot”, you think, “I only voted for Trump because Clinton was so awful”. OK, I’ll accept that at face value. But only if you step up now.
If you are not a bigot now is the time for you to speak out against bigotry. When Trump demonizes Muslims, speak up. When Trump insults Mexicans and Mexican-Americans, call it out. When Trump supporters carry out racist attacks, condemn them. When Trump embraces misogyny, say something. When Trump appoints white supremacists to his cabinet, reject them. Publically.
These next few years are going to be very hard for vulnerable minorities. LGBT people, Muslims, immigrants (both documented and not), we all feel threatened. We need you to step up and defend us. If you supported Trump and the GOP in this election but are a decent person who is not a bigot we need you to act and speak.
There are things that are open for legitimate political debate. Trade policy, gun control, tax rates, healthcare, our response to global warming. I disagree with GOP positions on many of these topics but they are certainly open for civilized discussion. Overt bigotry against Muslims, Hispanics, African Americans, or LGBT people is not acceptable and must be firmly denied. We all need to speak out.
So Trump will be president. There’s been a rush to normalize the election, to embrace the new president, to make it seem all OK. It’s not OK. America elected a racist demagogue who is singularly unfit to be president. We should not normalize Trump’s monstrous campaign. It feels obvious (or pointless) to catalog his faults now, but perhaps in the coming years it will be useful to remember what Trump has been up to now.
Trump made numerous policy statements that should have disqualified him as a candidate. His advocacy of assassinating families of terrorists and torture are calls for war crimes. His proposals of a registry of Muslims and banning Muslims from visiting the US violate the First Amendment. His encouraging assault at his political rallies and his promise to jail Clinton are the threats of petty tyrants, not American Presidents.
Trump is personally odious. He bragged about sexually assaulting women. At least ten women publically accused him of sexual predation. His only response has been to threaten to sue them. He doesn’t pay his bills. He brags about paying no taxes, based on a dodgy tax scheme. He spearheaded a racist campaign trying to deny Barack Obama’s citizenship. He is a prodigious liar about things both big and small, like his non-existent charitable donations.
But 26% of eligible voters voted for Trump, he will be president. I don’t quite know how to sit with that, that so many Americans voted for a racist sexual predator. Voted for someone lacking even a basic understanding of American governance. In many cases people voted for him because of his racism and ignorance, not despite it. That’s America 2016.
So what next? We could ask 2012 Donald Trump for advice; back then he openly called for revolution against Obama. But that’s crazy. We have to live with his presidency. But we don’t have to pretend that he’s normal or acceptable. We don’t have to pretend he’s not the man he was in the campaign. As Gessen says, “Believe the autocrat. He means what he says.”
I ran into an awkward problem in Europe; I couldn’t get SMS messages. It’s a design flaw in Apple’s handling of text messages, its favoring of iMessage over SMS. If you turn data roaming off on your phone when travelling, you may not be able to get text messages reliably.
If you have an iPhone suitably logged in to Apple’s cloud services, other iPhones (and Apple stuff in general) will prefer to deliver text messages via iMessage instead of SMS. You see this in the phone UI: the messages are blue, not green. In general iMessage is a good thing. It’s cheaper and has more features.
The problem is Apple’s iMessage delivery requires the receiving phone have an Internet connection via WiFi or cellular data. If you have no WiFi at the moment and have data roaming turned off, your phone is offline. And so Apple can’t deliver to you via iMessage. They seem to buffer sent messages for when you come back online. Which is too bad, because your phone could still receive the message via SMS. Unfortunately iMessage doesn’t have an SMS delivery fallback.
In practice this design flaw meant I had to leave data roaming turned on all the time because I needed to reliably get messages from another iPhone user. Which then cost me about $30 in uncontrollable data fees from “System Services”. Some $15 was spent by Google Photos spamming location lookups (a bug?), another $15 receiving some photo iMessages from a well-meaning friend. Admittedly the SMS fallback I’d prefer would also cost some money, but I think significantly less in my case.
There’s a broader problem with iMessage which is that once a phone number is registered with it, iPhones forever more will not send SMS to that number. Apple got sued over this, so now they have a way to deregister your number.
Oktoberfest is a remarkable event; 100,000+ people together drinking heavily, and yet few problems. It’s crowded though, so crowded your neighbor’s back rubs gemütlichkeit against yours at the beerhall. If you can find a place to sit. I don’t love crowds, here’s how we coped.
Go when it’s less busy. It’s not complicated: weekdays and earlier in the day are quieter. Monday early afternoon was pretty mellow, by which I mean the tents were only 75% full.
Consider a small tent for dining. After drinking our fill at the Augustiner tent (population 8500) we wandered off and found a tiny restaurant tent that sat 200. Most of which were staff on break from the Ochsenbraterei tent next door. It was still festive but plenty of room to have a comfortable lunch.
Drink wine! When the crowd got too much we found our way to the Weinzelt tent. It’s a big tent but an odd one, serving mostly wine. It’s a bit smaller, maybe 2500 people. Best of all instead of back-to-back benches, everyone sits at their own booths for 8-10 people max. Way more comfortable. Great music and party too! The drawback is that it’s expensive; 75€ for a bottle of wine instead of 11€ for a liter of beer. But it's a good choice if you want to trade off money for comfort.