new job!

This is just a quick post to say that I have accepted a job offer! I'm going to be working for ITA Software in Cambridge, Massachusetts as (as my offer letter puts it) a Technical Consultant / Implementation Engineer in the Implementation & Technical Services division. Basically I'll be helping new ITA customers (airlines, airfare search sites) deploy ITA's airfare pricing and search product. It's a bit of a departure from my last job, a much more customer-facing role, and I'm really excited about it. I start in about a week. Eeeee!

links and ramblings

I spent this evening playing with using Amazon's Mechanical Turk service to transcribe (often very badly-photographed) business cards for me, and then wrote some software to turn those results into various useful formats. It was a mostly-successful experiment, but I'm not quite ready to throw open the code and talk in detail about it — hopefully I'll have it ready for next week — so instead, have some links and ramblings.

  • This is a fascinating if curmudgeonly interview with the founder of New Urbanism, who seems to think us Millenials are destroying his cities with our techno music and our cheap food.
  • GNOME Accessibility UI fail: I turned on Accessibility features to play with the on-screen keyboard. Now if I hold Shift down for too long, it asks me if I want to turn on 'Slow Keys'. When I click 'Cancel' it turns them on anyway. Great job, guys.
  • Twitter promises a user-level streaming API Real Soon Now.
  • In the meantime, Twitter support is moving into core BarnOwl for 1.7!
  • Will the HTC Vision be the full-hardware-QWERTY-keyboard, Android 2.0 G1-killer, the phone I want to move to when my existing contract runs out in October? Stay tuned! (Warning, image is Photoshopped.)
  • Fellow web developers: we need to stop building these sites right now. (Another thing we need to stop doing: forcing a usability survey on our users in the most annoying fashion possible. Really. Stop it.)

That's all for now, folks!

ow my head, or, distributed systems

My brain, as the Far Side cartoon says, is full.

(Sorry about the lack of posts for a month. School happened. It's winding up now.)

In lieu of actual content, here's the reading list for 6.824, MIT's distributed systems course, which is what's been occupying a large number of my waking hours for the last four months. We built a distributed filesystem for it. Whee, Paxos.

It's frustrating when academic papers don't list their date of publication. I usually end up going through the sources and taking the maximum of the publication dates there as a rough estimate of it, for mental calibration purposes, but that's annoying. It's kind of depressing how many of these project are nominally open source but have been like "we're going to post the source Real Soon Now" since they were published. It's really depressing how few of these projects have obviously become something "real people" (by which I mean developers) actually use. I know other academic papers build on these ideas and closed-source commercial software probably borrows the ideas a lot but we never know, but still, the projects themselves seem like such… dead ends. Without doing a literature search it's hard to get from the paper about project X to all the things which have used it or built on it, except in the relatively rare occasion where the research project has gone on to commercial or open-source success, eg. TOR. It took me a decent bit of digging to figure out that anybody still cared about CoralCDN, for instance — the -announce mailing list last saw substantive traffic in 2006. I kept feeling déjà vu — I'm pretty sure I'd run into the Chord routing model before, for instance — but I couldn't figure out whether I'd read or been told about it in 6.033, or if somebody like OpenFT had picked it up (which I paid attention to when I was in high school, but which is another project that may or may not be dead). My biggest random take-away from this course is that I need to read up on AFS and Zephyr and whatever other distributed systems I use a lot and figure out how the concepts we learned about get applied in those systems.

Ramble ramble. Anyway — I find distributed systems an interesting, if sometimes maddening, area of study, which continue to be relevant with mumble cloud computing mumble peer-to-peer mumble stuff. I want to play with them more.