Ken and I went to India in February, a three week wealthy tourist’s trip. Absolutely loved it, would like to go back, enthusiastically recommended it. I documented most of the trip on Twitter as I went. I collected all the tweets in a Storify page; quite readable with lots of photos.
Our trip started in Delhi. From there we took a luxury tourist train through Rajastan for seven days to Mumbai. Then flew to Kolkata, then to Varanasi, then back through Delhi to home. So many amazing experiences. Some tourist sites that stuck with me most are the Qutb Minar in Delhi, the Jantar Mantar observatory in Jaipur, the Elephanta Caves in Mumbai, the Marble Palace in Kolkata, and offerings to Shiva in Varanasi.
But what really struck with me is newfound respect for the sophistication of India. I had no idea what to expect. India is an enormous place. With a very rich and complex cultural history and a colonial period that was not entirely rapacious. Modern India is a dynamic, exciting, upwardly mobile place. With nearly 1.3 billion people. We all know China is the up-and-coming economic story but India is close behind it. I met a lot of Indians with pride, pride in their cultural history, in their intellectual history, in their new prime minister.
On a more mundane level I also came away with excitement for the diversity of Indian cuisine. The Indian food we get in the US is one specific type of cuisine: Mughlai, butter and cream and earthy rich flavors. But there’s a huge variety of other foods. Coconut milk in South Indian cuisine, sour fruits and shellfish in Kerala cuisine, strong mustard sauces in Bengali food. A particularly great day was cooking lessons in Delhi with the author of a Chettinad cookbook. There’s a lifetime of technique to learn just in the art of tadka, the way spices are precisely roasted or fried at various moments in preparation.
Johnny Reb was my school’s mascot. A big goofy fiberglass Confederate soldier. The school nickname was “The Rebels” and my hazy memory is the Confederate battle flag was occasionally used as decorative color. This seemed perfectly normal in Houston, Texas in the 1980s. Part of our Southern Heritage.
Young kids are blameless in this kind of thing, victims of indoctrination. By the time we got old enough for high school a lot of us found the racist association embarassing. A year after I graduated the upper class voted to change the mascot and banish any symbols of the Confederacy. (Which may or may not have had anything to do with the school also hiring its first African American teacher.) It took another 14 years before they changed the name from “Rebels” entirely.
I went to a great prep school and am thankful for the excellent education I got there. But only recently have I understood how white privilege helped gain me access to that education. SJS was not overtly racist or discriminatory. It just perpetuated (and still perpetuates) the advantages of whites. It is part of the legacy of one of the two Original Sins of America, the societal damage still extant six generations after the end of slavery.
South Carolina’s use of the Confederate battle flag is controversial again this week. The defense that the flag symbolizes Southern Heritage is sincere, which is what makes endemic racism so dangerous. The Confederate flag represents the South’s pride in slavery, treason, and victimhood. That flag is a hateful thing, deliberately hateful.
Here is a record of my visit to the Cooper Hewitt Museum in New York. There were 22 objects I liked enough to collect and I made 3 things myself. (Favorites: poster, staircase model.) I will be able to remember these things forever because of The Pen.
The Pen is a new thing at the Cooper Hewitt. My buddy Aaron Straup Cope was one of its creators. It’s pretty simple to use. When you visit the museum they loan you a fancy digital pin, on a lanyard. You point it at the labels for objects you like. You can also use it to design things on big computer screen tables. When you’re done you can visit the website on your ticket any time to see your collection. Unlike 90% of fancy museum technologies, this one actually works. It's used a lot. It’s designed to keep working for many years.
Aaron and his colaborator Seb Chan wrote a very long essay on the design of The Pen. It’s totally worth reading if you are interested in this kind of technology. But for the tl;dr crowd, a few key points.
The impressive thing to me is how simply all the tech worked without requiring you to understand or learn it. I wasn’t too excited about the design-your-own-objects part, but the tool for remembering the stuff I liked was excellent. I do wonder if there’s a simpler way to just build the collection product, something between this fancy three year project and simply adding some ugly QR-code stickers. Any new system designed for a museum will be well informed by The Pen.
I'm at the State of the Map conference. Two different people here said "I like your blog!" on meeting me. It's so nice to hear it! It's a nice compliment, and encouragement for the writing I've done, and also establishes context for the following conversation.
It also felt terribly retro. The other half of that conversation was "Well it's been awhile.. I don't use RSS any more and with Twitter.." Yeah, I get it, personal blogs are a dying medium.
I'm really on the fence about what to do with this blog. I want to keep it, but I don't post often. I set too high a bar for content quality so I don't post often. (See my secret work blog for what badly edited stuff looks like.) Also the design is depressingly outdated now, not to mention the software. Part of me wants to abandon it entirely but meeting people who like my blog keeps me motivated.
It’s common for tech industry employees to be compensated with stock options. Stock options are complicated and many engineers I know are terribly naïve about how they work. But options are often the most valuable part of an employee’s compensation! This engineer’s guide to stock options is good reading.
Here are some basic questions every owner of stock options should ask their employer. With these answers an accountant can work out the value of the option package and plan a tax strategy.
Many companies are reluctant to answer #2 and #3 (they are equivalent). Trying to keep an employee in ignorance about this is bullshit. Knowing what percentage of the company you own is the only way to evaluate your option package. Companies will generally answer this question if you press hard enough; if they refuse, it is a very bad sign.
Tax strategy is important for several reasons. Early exercising could save you ~20% in taxes later on. But even more importantly, early exercising could save you 100% should you leave the company. Most option agreements include a clause where your options disappear 30 or 90 days after you stop being an employee. If you quit and can’t afford the taxes to exercise those options, you can lose everything. Planning ahead matters.
One of my first email addresses (in 1989) was tektronix!ogicse!reed!minar. I’m feeling old today and I’m guessing half my readers have never seen an email address like that. It was from the long long ago, in the time that was before the Internet, when UUCP was the main Unix mail system.
My unique email address was reed!minar. But there was no ubiquitous routing infrastructure for mail, no global addressing. Unix network email was store-and-forward based on scheduled phone calls and modem transfers via uucico. Each host only talked to a few other hosts. Reed talked to OGICSE regularly, so my address suggested mail be forwarded through there. Other mail hosts might or might not know how to get mail to OGI but they certainly knew how to get to Tektronix, so that sufficed as a global route. UUNET was a hub that knew how to talk to everyone; often addresses began uunet!.
The essential idea is that UUCP email addresses included not just the address but the route to that address. It's a powerful idea. But modern Internet systems don’t do that. Instead we rely on global address lookup systems like DNS and global routing systems like BGP. (If anyone can think of a modern system that includes routes in names, please email me via SMTP)
UUCP users did build a routing system; pathalias. It relied on UUCP maps published to comp.mail.maps. Those maps were discontinued in December 2000. I haven’t found a modern view onto this data; it’d be fascinating to see the history of the growth of UUCPnet. telehack has a usable snapshot of the data, try uumap reed for instance.
The arrogant candidate says “I’m smart so I know my code is good”. That’s certainly a bad sign, although sometimes they’re right. Slightly wiser responses are “I run it and look closely” or “I trace the code and make sure it works like I expect”. Better, but too manual. The truly enlightened say “I have an automated test suite” and then you’re off to the real questions about how to test code properly.
I have a deep distrust of code. Software is organic, unpredictable, chaotically complex. It’s difficult enough to understand what the code you write now is likely to do right now with expected inputs. But hostile inputs, or a weird environment, or the same code a year from now, or the slightly modified open source contribution in some fork somewhere? Forget it. That’s why automated tests are so valuable. It’s a way to demonstrate the code is doing what you expect it to.
Writing good tests is hard, almost as hard as writing good code. Modern environments have a lot of testing tools you should learn. From language unit test frameworks to mock objects for servers to fuzz testing to various continuous integration systems for functional tests. GitHub projects have the miracle which is Travis CI, free no-fuss continuous build and test for any open source project. It’s amazing.
So until software correctness proofs become a real tool we can use in real production code, ask yourself how you know your code is going to work. If you’re honest, you probably don’t. But some testing will certainly help give you at least a little confidence.
Astound is a good ISP. I started getting Internet from them a few months ago, upgrading from a $50 6Mbps DSL link to a $70 100Mbps cable link. And it’s like I can see through time. The difference in usability is astonishing. Equally importantly, Astound has been entirely reliable and trouble-free.
The key thing is Astound is not Comcast. Comcast is an evil company with a long history of breaking TCP/IP in various ways that harm customers. Astound just provides pure, sweet, clean bits. Installation requires they bring their own coaxial from the pole to your house. They also offer phone and TV packages. The customer experience is a bit squirrely, I wouldn’t count on them for email hosting or tech support. But the basic Internet service is terrific.
I’d previously been a very happy Sonic DSL customer. They are also a terrific independent ISP with fantastic service. Unfortunately DSL is limited by the technology, the best they could deliver to my house is 12Mbps and that would have been significantly more expensive than Astound. Sonic is now working on fiber-to-the-house, including San Francisco, which should be terrific if they can do it.
We’re very lucky in SF to have a competitive ISP market. We have two DSL providers, two cable providers, and a surprisingly robust fixed wireless provider in MonkeyBrains. Most of the urban US only has two options and large parts of the rural US don’t even have that. The Sonic CEO’s 2011 blog post about broadband duopoly is fantastic background for how we got to have such crummy service in the US.