Inspired by the interview site, The Setup, where people talk about the stuff they use to get things done.
Who are you, and what do you do?
I'm Eric J. Bowersox, frequently known as "Erbo," and I code. Presently, I work for IQNavigator Inc. of Greenwood Village, CO, where I work on their application for "buying services better" (management of contract and temporary labor for Fortune 500 companies), which is Java-based on an Oracle/WebLogic platform. My main focus of late has been on client integrations. Before that, I've had a wide variety of programming jobs, in fields ranging from software configuration management to finance to computer-based training to supercomputer clusters to telecommunications. I also did a stint at Durand Communications during the Internet Bubble heyday, where I worked on online community-management software. We were the ones that acquired the Electric Minds community...and, after we were ourselves acquired and decided to shut down the CommunityWare platform that EMinds ran on, I personally wrote a replacement work-alike platform (the Venice Community Management System) to keep the community alive on its own server for years afterward. (It later faltered due to hardware failure and something of a falling-out among the community.) Besides publishing about my exploits on social media, I have From The Erbo Files, a Roller-based blog.
I live in Denver, with my fiancee Sabrina, and our cat, Her Serene Highness, Princess Penelope Ponderosa Pollyanna Peachfuzz ("Penny" to her hoomans). When I'm not coding, I do a lot of reading and a lot of gaming...not to mention a lot of driving. Fortunately, I like my 2011 Ford Taurus. Oh, and I argue conservative politics on occasion.
What hardware do you use?
My personal desktop machine is a custom-built job, as it has been since my first PC-XT back in 1989. Its current configuration is based around an ASUS M4A79XTD EVO motherboard, slightly dated yet versatile. It holds an AMD Phenom II X6 1100T hex-core processor and 16 gigs of RAM; these upgrades were motivated by my desire to compile Android from source. An nVidia GeForce GTX 560 drives a pair of Acer 21-inch displays; with the 19" LCD TV immediately to their left, my computer desk somewhat resembles the bridge of the USS Enterprise. The system has three physical hard drives and two optical drives, which may seem excessive, but there's a method to my madness. Since I dual-boot the machine, I felt the safest configuration was one that gave each OS its own physical spindle, plus one that contains "data" partitions for both, to keep an OS upgrade from hosing critical data. As for the optical drives, one is a read-only DVD drive, the other is a DVD burner, to give me the capability to do physical copies direct without imaging. The keyboard and mouse are gaming-oriented; a Logitech G19 keyboard complete with its own built-in LCD, and a Corsair Vengeance M60 gaming mouse. (I used to use a WarMouse Meta, but, despite the appeal of 18 buttons, the thing felt cheaply built and started breaking down under heavy use; the Corsair is more solid.) And, while I stick with the motherboard's onboard sound, I do run it through a decent speaker system, a Cambridge SoundWorks PCWorks subwoofer-satellite system. (When I need a headset, I use a Sennheiser PC131. Sennheiser is my headphone brand of choice; I picked that up from my ex-wife.)
I run a local server, too, shared with Sabrina for file storage purposes, and also to give me a development server and testbed. This machine is basically a standard "cheap" Compaq tower; the only modification I made to it was to pull out the stock hard drive and install dual 1-terabyte disks, most of which are devoted to a RAID-1 mirrored data partition. I first used this configuration style when setting up our "new" Electric Minds server, and it saved our bacon on several occasions, so I went with it here, too.
My personal laptop is an ASUS K501 I picked up from Best Buy when I was flush with bonus money; it may not be much, but it works pretty well for my purposes. It has 4 gigs of RAM, a Pentium T4500 dual-core CPU, and a 500-gig drive that I repartitioned to dual-boot.
At IQNavigator, all our "workstations" are Dell laptop machines with docking stations; this makes it easy to haul our machines into a meeting or take work home, and, among developers, it encourages ad hoc pair programming as needed. The one they issued me is a Dell Latitude E6410, sporting an Intel Core i5 quad-core CPU and 8 gigs of RAM. Developers get an SSD drive, primarily because that's the only way we can get a build of the software in any reasonable amount of time. The dock on my desk connects to a pair of Acer monitors and a proper keyboard and mouse, as well as the wired Ethernet; we have wireless for when we're in meetings or otherwise away from our desks, too.
I also have a number of pieces of hardware I use for testing, special purposes, or just goofing around: an OLPC XO-1 from the One Laptop Per Child project, a Google Cr-48 Chromebook, a Barnes & Noble Nook Color (which I use as both an E-reader and a jackleg Android tablet), and a Raspberry Pi. And, finally, one of the most useful pieces of hardware I have is, of course, my iPhone 4S 64 Gb.
And the software?
Linux predominates among the OSs I use; it's the sole OS on three of the above-named devices, dual-boots with Windows on two of them, and Linux variants (Chrome OS and Android) run two more. The distribution varies, though. The desktop and personal laptop use Ubuntu, and were just upgraded from 10.04 to 12.04 recently; the new user interface took some getting used to, but I don't anticipate any real problems. The server uses CentOS, with which I was very familiar during my years working on supercomputers (it was the default distro we shipped on cluster nodes, unless a customer really wanted to pay for Red Hat or SuSE). The OLPC, of course, uses its own Fedora variant with the custom "Sugar" user interface, and the Pi uses the standard "Raspbian" Debian distro for ARM (for the moment, anyway--you can change out the entire software environment of the Pi by just changing its SD card).
The machines that run Windows all run Windows 7 64-bit. I will not upgrade to Windows 8 if I can possibly help it; Microsoft has completely crapped up the user interface on "regular" computers in order to try and make it look better on tablets. To me, this is the wrong approach; tablets is tablets and PCs is PCs, and never the twain shall meet. But Windows 7 is pretty much "the new XP" around here. We completely skipped the Vista debacle, and have no regrets about doing so. Perhaps the odd-numbered Windows releases are the better ones, in the same way the even-numbered Star Trek films were better...
The Nook Color is a special case. Its built-in OS is a variant of Android 2.2 Froyo with a custom UI...but the hardware can boot a different OS on a MicroSD card without touching the onboard flash. This I have done; I have custom boot cards for Android 2.3 Gingerbread and Android 4.0 Ice Cream Sandwich. Both are the CyanogenMod versions of the OS, so they're fairly stock with some useful add-ons.
As you might imagine, I've standardized on Google Chrome as my browser of choice, and I use a number of pieces of the Google ecosystem as well, such as GMail and Google Drive. My standardized office suite is OpenOffice.org, possibly becoming LibreOffice soon. For a "local" mail client to manage my ISP mail account (which runs through my server, using Postfix, Dovecot, and Fetchmail), I use Thunderbird on Windows and Evolution on Linux. Of course, at work, they've bought heavily into the Microsoft ecosystem; it's all Office 2007 and Outlook, all the time. (Which we're actually running through Office 365 these days.) At least they don't force us to use Internet Asploder, except for certain sites that require it; our standard browser is actually Firefox.
Increasingly, I've found myself using a number of cloud-based services to handle various tasks. Besides the aforementioned GMail and Google Drive, I use Evernote and Dropbox frequently. (This entry is being written in Evernote as a draft, for instance.) I haven't really done a lot with iCloud, though it's attached to my phone, of course.
And now, development tools. My main line these days is Java, and I use Eclipse as my Java development environment. It wasn't always so; I've done a hell of a lot of work in multiple languages with just Emacs. But Eclipse has proven itself well-suited to my professional and personal Java development needs. Though Emacs is available for Windows, when I need an editor that's more powerful than Notepad, I use the open-source Programmer's Notepad. It reminds me pleasantly of the old CodeWright editor. I also have Microsoft Visual Studio, but I don't really do any Windows-specific development these days. Version control, of course, I have strong opinions about, given that I used to work on systems like that from the inside. My usual baseline is Subversion these days, though I developed an attachment to Mercurial in a previous job...but at IQNavigator, it was back to Subversion. And I really need to learn more Git.
For graphics, I find The GIMP suits my needs well enough, as well as Inkscape for vector-based graphics. For audio work, Audacity works for me. And, when I need to run virtual machines, it's in VirtualBox. You can tell I have a strong preference for open-source applications.
On my phone, besides having obvious apps that act as extensions of services or Web sites I use elsewhere, I have other apps that took over for things I used to use my older phone or Palm PDA for. Because I have a lot of passwords, a key app I use is mSecure, a password manager application that works on both the desktop and phone, synchronizes via Dropbox, and stores everything encrypted with a master password key. Also worthy of note is Gas Cubby, an app that keeps track of my car's gas mileage and expenses.
What would be your dream setup?
It would probably be built around an Emperor 1510 ergonomic work environment from MWE Labs, or perhaps the Emperor 200, though I'd want to change out the specs of the included PC. Those babies have overhead monitor arms that can support three 24" displays. Throw in a high-end surround-sound speaker setup, and you've essentially got the ultimate gaming/coding environment. But I'd want this work environment to be located in a workshop/laboratory like Jeff's, so I'd have benches and other facilities for doing hardware experimentation.
As for the computer at the core of this system? Stuff it full of as many CPU cores, as much RAM, and as many disks as you can manage; boot it off an SSD for added speed. Dual-boot it, of course. ;Then hook it via Gigabit Ethernet to a big NAS for even more storage, and to a rack full of servers to act as my own private supercomputer cluster (or OpenSimulator grid, whichever). Throw in a powerful Ultrabook I could dual-boot, and a powerful Mac of some sort (Macbook, Mini, iMac, doesn't matter) so I could try my hand at iOS coding. And throw some nice hardware Sabrina's way, too, so she doesn't get jealous.