April 7th, 2006

  • evan

orthogonal advancement

[part of an email I was writing, but then snipped out and pasted here. background context: how things that were meaningful in the US are totally meaningless from the perspective of Japan]

This has long been my fear with Linux. I think it's relatively easy to get to feature parity with what people use, but it rapidly is simply not mattering: people instead use IE-specific features and Microsoft-specific video codecs and Adobe's totally-broken-on-Linux Flash. This is also my fear with Google (where by Google I mean "web search"): rather than failing in terms of finding pages (we're still very good at this and I don't anticipate it falling off), it'll just become irrelevant because the world will move on to some other direction (see e.g. Flash above). You already see this with sites like craigslist, Flickr, or Wikipedia (where people will often just use Google as an index into wikipedia, instead of asking Google to find the information and having wikipedia come up when relevant). And, now that I write this out, this is exactly what happened with LJ: much of the userbase moved on to MySpace.

And y'know really that's ultimately ok with me. I have no illusions that the things I create are going to be useful for the world at large, so I shouldn't really be deriving value from that. Before I came to Japan I read a book on how to do business in Japan, y'know, in which situations bowing is appropriate, and I realized that I never want to do that.

There are two main lessons from that:
1. This is why I am an engineer. There's (obviously) some businessperson at The Company who gets a kick out of making international deals, and they're the ones doing the planning anyway. Me, I write small programs in Haskell in the way people used to whittle sticks. I'd rather get drunk and have an interesting conversation anyway.
2. Don't get a hyperinflated sense of self-importance just because something is popular, for popularity is fickle and the workings of the world are beyond your comprehension.
  • evan

endianness

I always get big-endian and little-endian confused. I can always remember that x86 and network are opposites, and that x86 uses the "broken" one, but I can never remember which is which.

Here's a note that may help you remember:

European-style dates, of the form dd/mm/yyyy, are little-endian. Little-endian breaks naive date sorting: 01012004 is greater than 02012005. So if you can just build an association between "European" and "little", the rest follows from there: European dates → broken sorting → broken architecture → x86.

(US-style dates are middle-endian, and we'd all do better to eliminate them. It's too easy to confuse them with little-endian dates if we switched that way, so why not use big-endian dates? I do whenever sorting matters, like in file names.)
  • evan

python 2.5

The language extensions in Python 2.5 are almost uniformly nonsensical to me: Conditional expressions, but with gratuitously weird syntax; partial application, where even their example of why you'd want this could've been written more clearly with lambda (open_func = lambda: self.open_item(item_path)); a bunch more attempts at Ruby parity, but some using weird syntax extensions instead of something more general. I think Python had a lot of interesting things going for it originally, and used to be quite the enthusiast, but as I learned more about it I grew to like it less and less.

To be fair, I don't much like where I've seen Ruby headed, either: people seem intent on twisting cute hacks (lots of them use eval on strings generated by code, for crying out loud) around what the language provides, and the last time I browsed the proposed language extensions for the next major Ruby release (which I can't find right now) I was mostly disappointed.

Grumble, grumble.