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.
Sometimes I think that the greatest enemy of "free time" is gaming.
Recently, here at Erbosoft Galactic HQ, we've been exploring a game that's been out for awhile: Fable III. Originally, I had bought a used copy at GameStop, intending to check it out myself, but Sabrina found out I had it, and commandeered it for her own Xbox. I wound up having to buy another one. (And then, since it was a bit uncomfortable to play games while lying on the bed, I moved my Xbox from there to the computer room...and bought a cheap 19" TV to act as a HD display for it. Now my desk feels like the bridge of the Enterprise. Oh well, the TV does have a VGA input, so I can use it as a backup monitor if need be, too...)
Fable III, as with the earlier games in its series, is noted for having a "moral choice" system, where you can make choices between "good" and "evil" options (such as, at one point, to either protect a beautiful lake, or drain it to create a mine for needed resources). Ben "Yahtzee" Croshaw, purveyor of the fabulous Zero Punctuation game reviews you can find on The Escapist Web site, tends to criticize "morality choices" in gaming, because, in order to get the "best" endings to the game, you generally are forced to choose all one or the other (i.e., either be Mother Teresa or Bill the Slasher, to borrow terminology from an old 2600 article), but his review of Fable III, rather than rehashing that stance, goes into more detail about the difference in this game.
The storyline of the game puts the player as the younger sibling (pick "brother" or "sister," it's all the same) of King Logan of Albion, a tyrannical monarch by anyone's stretch of the imagination. The player is called upon to assume the Heroic mantle of his father (her mother) and lead a revolution against Logan. However, it turns out that Logan knows of the impending invasion of an eldritch horror called "The Darkness," and his harsh rule has been the result of focusing single-mindedly on building an army to repel the Darkness. He's more than happy to hand off the burden to you, with a year to go until the invasion, and from then on you're trying to both make sure your treasury has enough money to pay an army to put down the Darkness and to make the population happy by reversing all the bad decisions your brother made (which acts as a further drain on the aforementioned treasury).
Most of the "moral decisions" as this point seem to equate "good" with "liberal" and "evil" with "conservative" (gee, I wonder what game designer Peter Molyneux's personal political beliefs are?), but, as Yahtzee points out, "conservative" decisions aren't necessarily "evil" if they make the difference between a year of misery followed by survival, or a year of happy times followed by Armageddon. And the threat here isn't some nebulous "terrorism" threat, either; each of the loading screens at this point is telling you, "X Days Until Attack; Treasury Balance Y; Estimated Casualties max(6,500,000 - max(Y,0), 0)." And, post-victory, the NPCs you didn't manage to save appear as dead bodies on the ground all over the kingdom. When you look at it that way, it's easy to start thinking that perhaps Logan was right.
Still, this association left a bad taste in my mouth on occasion. For instance, one of the "good" choices you're faced with is to--wait for it--bail out Albion's banks. Now, I didn't like the fact that the Federal Government bailed out U.S. banks, but, in order to stick on the "good" path, I had to bite the bullet and drop the 500,000 gold. (Fortunately, my treasury, unlike the United States one, could afford it. How? Two words: Real estate.) And Yahtzee's criticism that the ending kind of "sneaks up" on you, jumping from "121 Days Until Attack" right to "1 Day Until Attack," is well-founded; in Sabrina's first game, she hadn't realized the issue and had been deficit-financing all the social reforms, which led to a "good but everybody dead" ending. I avoided her mistake by starting early and aggressively on developing a personal income (again, real estate) sufficient to bolster the treasury to the extent that I could spend freely and still have enough margin to save everyone with room to spare. (Another two words: Strategy guide.)
As flawed and simplified as it is for the purpose of gameplay, though, the storyline system of Fable III is light-years beyond, say, the DOOM series of games, which basically boil down to "If it moves, shoot it; if it doesn't move, shoot it anyway." Or, say, the Modern Warfare games Sabrina likes so much, which are pretty much "We're the good guys; here are some bad guys; go shoot 'em." It's not quite as open-ended as the so-called "4-X" games or "God Games," of which the Civilization series is one of the trope codifiers (and which are so compelling to me that I often actively avoid them to avoid the syndrome where I start playing one at 8 PM and next thing I know, "Hey, is that the sun rising?" ), but it's in-between enough that it can suck you in. Hence my not having posted anything since I planned to several days ago.
Some days I think I oughta just stick to solitaire on the iPhone.