The Setup


What do people use to get stuff done?

Jonathan Foote

Jonathan Foote

Recovering scientist

Who are you, and what do you do?

My usual story is that I'm a "recovering scientist." I took a leave of absence from a wonderful cushy research job and somehow have not made it back onto the hamster wheel. I do a mix of consulting, speculative projects, and stupid art things.

What hardware do you use?

Sadly, nothing that exotic or interesting. A big Windows box with a quiet fan, and Cygwin and VirtualBox for Ubuntu. Yes, I know, Windows sucks -- but a lot of engineering software does not play nicely elsewhere.

I used to be THE Apple fanboy -- remember the Mac 128K and the 5-volume "Inside Macintosh"? But then I discovered Unix workstations, and little things like memory management (whoa-- crashed apps don't crash the system?) and gradually drifted away. I may drift back now that Macs are nicely unixy so please don't hate me.

I like trackballs -- mice leave my wide hands feeling cramped. The Logitech Marble Mouse is a good one. Also my desk is messy and it takes up much less space.

A Win7 laptop to be compatible with clients (dual-boot with Ubuntu), a couple older laptops for redundancy and for taking to challenging locations, an iPhone.

I'm fond of embedded Linux for robotics and stand-alone art installations. Had a pretty good run with the TS-7260, but am poking at a pile of alternatives, like the BeagleBoard and Chumby. Kernel hacking is not really my passion, so I'm pleased when something Just Works - so far the Chumby has been (mostly) delivering on that account: download Python, check, set up ad-hoc wireless, check, import OSC and send commands from TouchOSC on your iPhone.

For microcontrollers, I'm solidly in the AVR camp, mostly because the open-source tools (avr-gcc, and avrdude) are great. I need another bloated IDE like I need soft memory errors. I don't do Arduino because I know assembly and I'm a snob. I've been doing a lot of work with my own Atmega328 prototyping board I call the "rotorboard." It is similar to an Arduino but with room for various drivers and an XBee wireless module.

Hardware tools: A Weller W51 soldering iron, a low-end Tektronix 4-channel scope, a Fluke 179 DMM. An Aoyue hot-air station for SMD. I love these strippers. A cheapo power screwdriver, and because I'm getting to That Age, a magnifying visor.

And what software?

Well, I've programmed everything from 1-bit microcontrollers to a Cray X-MP using everything from FORTRAN punch cards to brainfuck. My tools have not changed much since grad school: emacs for coding and print statements for debugging.

I depend on Unix tools -- awk, grep, sed, bash -- for basic data munging. I've also been known to use the C preprocessor to do silly things like generate printer art postscript files. I feel like I have the patience for perhaps one or two more bloated toolchain learning curves in my life: Objective C may be one, (or whatevertheheck it's called these days) is certainly not.

I am ideologically sympathetic to FOSS, so I am pleased to use Inkscape and Blender and Octave rather than the considerably more pricey commercial equivalents. I'm also cheap so this is a double win. I use source control for backup. I run a VisualSVN server on my main Windows box (totally easy to set up!) and keep everything under source control (using svn under Linux and TortoiseSVN under Windows). I update with a cron job from several machines so everything is redundant and in sync.

I use EagleCAD for board design. Autorouters pain my ninja-routing sensibilities so I don't use them (granted I don't think I've ever used a really good one). I try to stay away from gnarly analog and HF designs but when I can't there's LTspice for simulation.

Finally: Python is just the bomb. I've been doing a lot of GUIs for fun and profit and wxFormBuilder plus wxPython is just crazy nice. Check it out at One Minute Python. For embedded and bare-metal systems I'm still totally fine with C. Stuck with a crappy windows DLL and no source? Wrap it with and Robert is truly avuncular.

What would be your dream setup?

Probably something like dual Apple Cinema Displays, or even 42-inch plasma monitors. My own personal laser cutter. My presbyopia is getting worse while SMD chips are getting smaller and smaller, one of these days I'm going to get a pair of these surgical telescopes. Oh, even though my posture is decades away from being salvageable, a nice chair. Programmers like nice chairs.

Previously: / Next up: