Analytics hacker (BitTorrent, Applied Platonics)
Who are you, and what do you do?
I’m a hacker. By day, I analyze data at BitTorrent; by evening, I’m dad to @CalvinChaos; by night, I design electronic kits as Applied Platonics; by morning, I’m sleep deprived and grumpy. I also try to find time to do other interesting things, like send stuff to the edge of space, build robots that draw on walls, and wire up bacon-powered alarm clocks.
What hardware do you use?
At work, the most important piece of hardware I have is my whiteboard, followed by my notebook. I’m not smart enough to do things in my head. I have to write things down as I go, or I get lost. The whiteboard lives an arm’s length from my keyboard, so I can use both without breaking flow.
Most of the work is actually done on a handful of beefier servers (dual quad-core Lynnfields, 16GB RAM, and a few terabytes of disk). All of this aggregates network speed readings from a hundred million machines, probably one of the bigger sensor networks in the world.
At my couch, there’s a 13” MacBook Pro. It’s upgraded to an SSD, making it a really neat netbook that only cost, y’know, five times as much as it should have. The backlit keyboard is killer (and in Calvin’s little crosshairs).
In my shop, I sit at a Dell Outlet desktop, yes, desktop. It’s a Core i7-930 quad-core, 8GB RAM, etc, for $600, fully assembled (I’m frugal, yet lazy). It’s got a little 24” monitor, also Dell Outlet.
I do a lot of note-taking by hand here, too, with a Lamy Safari EF (the non-pretentious fountain pen: it’s meant for students, so it’s “cheap and cheerful”). My current hack logbook is a Leuchtturm1917 quad rule, which comes with pre-numbered pages and a Table of Contents section.
For embedded systems, I’m in an Atmel AVR8 rut. I love the ATmega328 (heart of the Volksduino), and have been getting more into the ATTiny line lately. Adafruit’s USBTinyISP is a great little programmer (so nice, in fact, that I’m designing an ATTiny devboard around it).
And what software?
Focus enabler one: I always have Rdio open, the native app on OS X and the web version on Linux. I find silence incredibly distracting, and have definite (but variable) musical moods. Rdio is perfect for keeping the quiet at bay.
Focus enabler two: Pinboard.in and a pinboard.in Chrome extension. When I come across an interesting-but-irrelevant webpage, I mark it as Read Later. Then I get back to whatever work required me to open a web browser.
For coding, it’s emacs. On OS X, I absolutely adore Aquamacs, on Linux I use GNU Emacs. Though, because I spend a lot of time on remote machines, I also use a lot of vim. And that’s okay. It’s time the Unix crowd becomes more accepting of bieditoral people like myself.
For data analysis and rough visualization, I lean heavily on GNU R, and occasionally reach for WEKA. Most of my actual work is data preparation, which is done in some melange of python, perl, awk, sed, etc.
When doing embedded development work, I hit “Upload” in the Arduino IDE. It’s set to “External Editor” mode and I code in emacs. I prefer to use straight-up Makefiles, but everyone uses the IDE, so… “team player.”
For designing electronics, I use EAGLECad, for both schematic capture and board layout. For autorouting, I like FreeRouting, which does a good job once you get your net classes right. Then it’s touched up back in EAGLE.
To relax, I let myself play Simon Tatham’s Puzzle Collection. It’s pure puzzle game crack, and available for just about every platform. The “Patterns” game keeps me from going to sleep sometimes.
What would be your dream setup?
I’ve been thinking about this sort of thing a lot lately: having a kid makes you an armchair futurist. Aside from the obvious, Calvin’s most desired thing in the world is his mom’s iPhone. When I was his age, the Apple II was the pinnacle of personal computing. Extrapolating out, I can’t even imagine the amazing technology we’re going to have when he’s my age.
Whatever it is, I’ll take it (so long as it has emacs keybindings).
In the meantime, I want physical I/O on my computer. Arduino partly solves the physical input side, but it’s got a long way to go. In my dreams, computers have wireless sensor pairing that works (like BlueTooth, but useful), letting me hook up thermometers and speed gauges and door sensors.
For physical output, there are things like 3-D printers, laser cutters, and CNC mills (for sculpting metal). These all exist today, but they’re fussy and the equipment costs as much as a house in San Francisco. In my dreams, I have all of them, and they work without any fuss.