Who are you, and what do you do?
I'm Andrew "bunnie" Huang. I do hardware. I make 'em and I break 'em.
I broke the security on the Xbox, made some of the first integrated CMOS nanophotonic chips, and today I design and manufacture Open hardware for chumby Industries. I dabble in biological systems, which have remarkable parallels to computer systems. My latest adventure is figuring out how to mass produce hardware for discerning consumers, so I've been doing mechanical design in addition to electronics, and spending a lot of time travelling to Asia.
What hardware do you use?
I travel a lot, so I strive to keep everything I need inside a single box that I can carry with me at all times. My current and only machine is a 2.49 GHz Core2 Duo T9300 Lenovo T61p (model 6459-CTO) with 4 GB RAM, and an aftermarket Samsung 256 GB SSD (MMDOE56G5MXP-0VB). Somehow my system shipped with a 512 MB Quadro FX 570M graphics chip, when all the sales literature says it should have only 256 MB. I'm not complaining. I shed the DVD-ROM drive in favor of the ultra-bay lithium-polymer battery pack and a 9-cell lithium ion main pack (along with one spare in the bag), giving me all-day and all-night battery performance. I also carry the ultraslim AC/DC combo adapter that works with every airplane power outlet I've seen to date.
The T61p also comes outfitted with an integrated Sierra Wireless 1xEVDO modem which connects to the Verizon network, so I'm never without an internet connection when in the US. I also always carry 3G USB modems for the China Telecom network and the Japanese E-Mobile network in my laptop bag. This way, I can be handed a last-minute ticket for a flight to Asia tomorrow and not miss a beat of productivity.
The most important aspect of this laptop is its display. It has a 1920 x 1200 15.4" TFT LCD. More pixels are important for efficient hardware design, otherwise you spend your entire life zooming in and out of circuit layouts or CAD drawings.
When I'm at home, I plug my laptop into a ThinkPad mini dock. I love the mini dock because it has a serial port on it. Most computer users gave up the old RS-232 standard a decade ago but when you're bringing up Linux on a new hardware platform, a serial port is a must. The mini dock also supports dual-monitors, so when I'm at home I'm staring at dual 24" LG Flatron W2452T 1920x1200 screens. Home is where the stereo is, so I also have an NAD 325BEE amp connected to two Paradigm Atom speakers.
I type on a Kinesis Professional QD keyboard, with a dvorak layout. The Kinesis has a "unique" shape, to put it mildly. Woe be to the user who attempts to casually browse the web on my setup. I also swear by the Logitech VX Nano cordless laser mouse, which was recently discontinued so I bought four of them to last me a few years. I tried the new Logitech model and it has an awful feel to it. I use the VX Nano both at home and on the road. It has great sensitivity for CAD and a convenient button cluster for World of Warcraft. I also have a 3D connexion SpaceNavigator for Notebooks, which is a 3D mouse. It is essential for quick CAD work.
When you have one box with everything on it, backups become really important. I carry around a Corsair 64 GB Flash Voyager drive so I can do working backups on the road when I'm away from home, and I also have a Netgear ReadyNAS Duo with 1.5 TB of raid-backed storage for full laptop images at night. All my network routers and the NAS are plugged into an APC Backup Pro 650VA UPS; the laptop, being battery powered, doesn't really need a UPS. I also rotate a pair of hard drives to a safe deposit box in a physically remote location from my ReadyNAS. I am paranoid.
My road kit includes a set of Etymotic hf5 noise isolating earphones; these are much more compact than the Bose noise cancelling headphones and their fidelity is unparalleled. I also carry around a Beagle 480 USB protocol analyzer at all times. There are few hacking tools more versatile than a USB protocol analyzer, and being able to snarf wire data going to a USB peripheral is extremely potent as it is typically unexpected out of a mobile attacker. For photos, I carry a Sony Cybershot DSC-T10 camera, and for a phone, MP3 player and mobile email/web browser, I swear by my Blackberry Bold. I have yet to find a country where this phone doesn't work, and the push email client on the Blackberry is so bandwidth efficient I can check email for a month while roaming and not exceed the allowance provided by a $25 fixed-rate international data plan. I'm personally not a fan of the iPhone; the battery life sucks, it is too bandwidth inefficient and the virtual keyboard is pokey and requires you stay in dictionary words, which is terrible for typing borrowed-words in other languages and swear words in my own language. The iPhone is more of a toy for entertainment value and photo management, but that role is already filled by my Nintendo DSi and my camera. The only Apple product I use is their tiny USB power adapter, which I use to charge my Blackberry. I also carry power splitters that I have only found for sale in Japan, and I can't find a link or photo to. They are extremely compact, about half the size of a candy bar, but they will take one outlet and allow you to plug in four items. This is really handy in an airport when you want to share an outlet with someone who's already squatting the power plug. Also, don't forget the USB memory watch -- 8 GB of storage always on hand is a very useful thing to have.
On road trips for manufacturing, being able to measure and magnify objects is a must. I always carry a Peak Optics 7x Scale Loupe which can easily measure flat objects with a resolution better than 0.1mm, and I also carry a vernier caliper, a 6-inch ruler and a miniature tape measure.
As a hardware designer, my hardware doesn't stop at the computer. I also have a Tektronix TDS5104B 1 GHz 4-channel digital phosphor oscilloscope with a set of P5050 probes and one P6245 1.5 GHz active probe. I use an ERSA SMT Unit 60A soldering iron for fine pitch work, a Weller WTCPT iron for everyday work, and an ERSA Independent 75 butane-powered iron for work on the road (at least in road situations where I don't have to confront the TSA). I use a Bausch and Lomb 30x stereoscope for soldering work, but for microprobing I use an Olympus BHMJL scope with 1000x max zoom and a Bausch and Lomb Microzoom long working distance 750x max zoom scope mounted on a Signatone probe station. For laser cutting I use a Versalaser VL300. My favorite multimeter is a Keithley 2000, which can measure down to less than a microvolt. For what it's worth, I never pay sticker price for any of my equipment -- they are all used, donated, or dumpster-dived.
And what software?
I am an utter traditionalist when it comes to software. My T61p runs Windows XP. I just upgraded to SP3 a couple months ago. I never trusted Vista, so when I bought my laptop I made sure I could build an XP image for it on my own. I'm still waiting for Windows 7 to mature another couple years before trying it out. I configure my UI on XP to look like the classic Windows 2000 interface with the "Rainy Day" scheme. Nobody recognizes the old Win2K UI anymore, so often times people ask me if I'm running Linux. I think UI "candy" takes up precious computing resources that I prefer to devote to my CAD tools, so I like to run a no-frills UI. Windows XP is simply the lowest common denominator that will run as many applications as possible with an acceptable level of stability. I have no religion or pride around my choice of OS.
On top of that I run VMware. I keep one Ubuntu Linux image around, and one secondary Windows XP image around as well. I use Ubuntu for most of my software development work (typically Linux kernel hacking), and the secondary Windows XP image is where I install "obnoxious" programs, such as Quickbooks and vendor-specific embedded development tools which require brittle, poorly tested hardware drivers to be installed.
All of my data is stored in encrypted partitions using PGPdisk. I use Eudora 7 for email, because all of the new email clients are "unhygienic" about email data management. Outlook and Thunderbird, for example, like to create lots of temporary directories outside of the central mail directory for dealing with downloaded email. I'm even suspicious about the new Eudora 8, so I'm holding off on that for now. I'm extremely sensitive about keeping all my email encrypted, and temporary files, even when deleted, can be easily recovered and read. Eudora is the last email client I know of that is well-behaved: every file it will ever create, temporary or permanent, will be stored within a single directory, so I don't have to worry about plaintext data leakage. Needless to say, I don't personally use gmail, and I never will trust my email to a mail service that actively searches your email and tries to give you ads.
For electronic design, I use Altium Designer, a PCB and schematic capture design suite that offers on-line LVS connectivity, powerful auto-manual routing, and fully integrated 3D visualization of PCBs, among other things. For mechanical design, I use Solidworks, a parametric solid modeling program that also integrates features like mechanical simulation, wire routing, and a photorealistic 3D rendering engine.
For day to day stuff, I use emacs for text editing, Firefox for my web browser, and Windows Media Player for music. iTunes is too heavy and doesn't play well with other programs, so I eschew its use. It seems strange to expend 80 MB of RAM just to play an MP3. For chat I use Skype and Pidgin. For a calculator I use the Microsoft PowerToy Calculator, although I'd welcome an upgrade to that.
For an office suite, I use my old copy of Office 2003 and Visio for most day -- to -- day operations, and I also have an old copy of Adobe Photoshop CS2 and Illustrator CS for days when I need to make something look a bit prettier, but I still use Ghostview and PDFSAM as my PDF management tools. I also keep a copy of Adobe Flash CS4 Professional around. I'm not very good at using it but I need it to make edits to all the Flash movies that chumby uses. Flashdevelop is also a nice open-source framework for Flash movie development but sometimes I have no choice but to use Flash CS4.
The one utility I use that I find useful enough to note in this interview is Snagit. Snagit is a screen capture tool that has very powerful quick-edit and touch-up routines built into it. I was skeptical about using it at first, but actually I've found it to be indispensable. It's great for extracting pictures from DRM'd sources (like protected PDFs) and also for taking and annotating quick screenshots of CAD data.
For hacking, in addition to my Ubuntu VMware kit, I keep cygwin tools on my box so I can whip up a quick perl script if needed. I also have a copy of IDA Pro for reverse engineering binary code, and Hex Workshop for browsing and patching binary files. I use GNU tools and SVN for writing and managing code, and I mainly program in C and assembly.
What doesn't fit in my laptop I keep in the cloud. I have a couple Rackspace Ubuntu machines that I keep handy that I bring up and down depending upon my computing needs. I only pay for them when I use them. When I'm in serious development mode I'll configure a 4-CPU server with an 8 GB ramdisk, so the entire chumby SVN code repository sits in RAM and builds scream. Also, keeping the build in the cloud instead of on my local machine helps me when I'm stuck behind the Great Firewall of China; doing an SVN update of the whole build system can take hours over a pokey internet connection.
The only game I keep on my laptop is World of Warcraft.
What would be your dream setup?
My dream setup would probably be a neural-implant computer that weighed nothing and had infinite battery life, would never crash and ran every piece of software. Barring that, here are my most important priorities with respect to hardware:
1) Screen resolution and quality. I stare at this 16 hours a day, so it needs to be crisp, bright, and high resolution. 1920 x 1200 is the minimum resolution I prefer to work with. If I could get a laptop that would drive triple external monitors, I'd be stoked.
2) Keyboard quality. Without my wrists, I'm useless, so I watch out for carpel tunnel. Typing dvorak helps a lot, but I won't use a laptop or a keyboard that will burn through my tendons; my hands are too valuable to waste on a cheap keyboard.
3) Overall performance. These days, CPU isn't the only factor in performance. Having enough RAM and a fast hard drive help enormously. Constraining myself to what's available today or in the near future, I'd say a quad-core 2.8+ GHz CPU with 8 GB of the fastest RAM and a 256 GB SSD would make me quite happy -- presuming I can find a stable and broadly compatible OS that can take advantage of all 8 GB of RAM.
4) Connectivity options. 3G integration is a must, and fast Ethernet and wifi are important too. I don't believe in 802.11n, it's a bit of a sham, so I'm happy with 802.11g for now. I also don't believe in Bluetooth and I always uninstall the drivers since it presents a security risk for a feature I would never use. Actually, while I'm wishing for things, why not throw in a 100Mbit fiber connection to my office. I could easily make use of that.
5) Battery life. Having some reasonable solution that gives me all day (6-8 hours) operation is acceptable. I would probably never need a battery that lasts longer than 12-16 hours.
Of course, I lust after very light, thin laptops, such as the Sony VAIO VPCX11. If I could get something like that with a 1920x1200 resolution screen and a faster CPU, I'd pay a very large amount of money to acquire it, but alas, it seems that laptop vendors overall have backed off on screen resolution because it seems a lot of users complain about small fonts being unreadable. Sad, because I want my dpi!!! Poor screen resolution is a deal breaker for me. In the meantime, I'd say any laptop thinner than 1" and about 4-5 pounds is fine for me; I care more about the thickness of the machine than its weight. If I really cared about shaving a couple pounds off my travel load, I've got a few pounds I can give up on my belly before I have a right to complain about my laptop being too heavy.