Ultimate Software Developer Setup?
wicked coding asks: "I'm a professional software engineer and I'm planning on building my ultimate setup for longer hours coding and hacking, but I'm kinda stuck when it comes with what to choose. What hardware would you choose to use, if money was no object? Obviously there may be some constraints on space. Leave no stone unturned, I'm looking for suggestions on desks, seating, lighting, keyboard and pointing device, monitors and even the computer system itself. Ideally it needs to be as comfortable and ergonomic as possible. What software would you choose to use, if the intended targets were Java and OO PHP5? Currently I'm using Eclipse on Gentoo. Is there a more suitable IDE that works with most popular OSS (and not so OSS) languages including XML, SQL, CSS, PHP, Perl, Java, and C/C++?"
If you think you're going to produce better code by splurging $$$ on a shiny desk, maybe you should give up programming.
The accessories you need are a pile of paper and some good pencils, with which you can design your code nicely before you even fire up your IDE.
You need to prioritize. First worry about your fingers, eyes and arse
1) Get a slick 1600x1200 or better LCD screen
2) Get more screens to broaden your field of view
3) Spend $100+ on a really good keyboard. I choose Happy Hacking.
4) Spend $500+ on a really good office chair (or $5 from a failed startup)
With this as a starting point, you can feel physically comfortable, freeing you to address your mental confort.
Evil people are out to get you.
Is my personal favourite.
:wq
What hardware would you choose to use, if money was no object?
More people on your team...
"All you have to do is be fragile and grateful. So stay the underdog." Chuck Palahniuk, Choke
A lot of things you mention I don't care much about. But I recommend ridiculous amounts of RAM. Even if you get more than you think you'll need, you'll find a use for it.
My latest giant RAM sink is VMWare. I run a virtual copy of Windows for browser testing, and a couple more for virtual servers. Virtual servers are much better for testing than real ones: when you're done trying something out, you can revert the virtual disk back to a known clean configuration.
If money were no object, that's what my setup would consist of. A dual G5 and a 30" cinema display (2560 x 1600 resolution!). The apple pro keyboard is sufficient but I would upgrade to a laser mouse of some sort (Maybe one of the new 5 button bluetooth intelli laser mice...) Between OSX and Virtual PC you can test your code in both Windows and OSX. OSX also has x11 if you need it. You mention PHP so I'm guessing you're doing a lot of web development... with this setup you can test every browser Apache AND IIS, Windows AND *nix. I'd buy a license of Zend Studio for PHP development as well as a copy of BBedit (I use both, BBedit has some indispensable features). As for the physical environment, you can't go wrong with one of these: http://www.sittingmachine.com/ Pretty much the most comfortable desk chair ever.
Kiteboarding Gear Mention slashdot and get 10% off!
Paper and pencil are nice, but for some things, the big-ass whiteboard is really handy.
Repeat after me: RAID != BACKUP.
I have a CVS machine, I backup every day the whole CVS repository, onto another server and my laptop. If you change something, and weeks later you find that it screw something else, CVS (or other versioning system) is a life-saver, I need more than the latest source code I'm working on. You cannot get this with a RAID. As for storage, I use Eclipse, which is 200 MB in my install, my source code after about one year still fits in a floppy disk (including all of the database schemas). So I wouldn't say that storage is a big need. RAM on the other hand, yes. I used to work on a two monitor set-up, then I got a Mac, and have been very comfortable with one monitor and Expose. But yes, a dual head setup can be nice.
please excuse my apathy
I don't know... I hear you on the ergonomic things, but then I don't think comfort, in general, is conducive to good programming. Having the right desk, the right light, the right chair, the right mouse, etc. - IMHO these are all distractions. and of course if you have no injuries or other physical limitations, etc.
When you need to do good work, you need to eat healthy, lay off the caffeine and alcohol, and get the sleep you need. and ideally, get some exercise. Get out and walk or do pullups or something while you think. That doesn't cost money. Then you can do great work anywhere.
must... stay... awake...
Monitors, monitors - everybody says monitors ... Want to get some serious hacking done ... a four port KVM to one nice 20" LCD (or better.)
I strongly doubt there is a KVM in existence that doesn't noticeably degrade video quality. The degree to which it's noticeable may vary from person to person, of course, (in the same way that some people claim a 60Hz or 75Hz CRT flicker is "just fine"), but KVMs can't be part of any ideal setup unless the noise from running multiple systems becomes an issue. In that case, I would suggest building a server room and making use of KVMs (as opposed to VNC, etc. approaches), but only in a limited context.
Hot-key over and use the browser from another machine.
And when the awkward hotkey combinations, beeping, screen blanking and possible confusion as to what's connected where gets to you? LOL. The guy is looking for a dream setup to do programming, not systems administration.
Seriously, for the price of a good quality KVM, the requisite cabling and addressing any possible connection issues, purchasing an extra LCD monitor is almost always the better choice.
The thing about this: I think our minds are distracted somewhat unconsciously. Every time the hard drive whirs back up, I'm more likely to become distracted, and more likely to let something slip, but it took me a long time before I recognized this pattern.