Slashdot Mirror


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++?"

9 of 757 comments (clear)

  1. And here you go. by MrAnnoyanceToYou · · Score: 5, Interesting

    Location: A beach in Northern California, slightly south of San Fran.
    Power Generation: This Honda Generator for reliability and gas efficiency, 20hrs of code at a time. (note: after viewing the power consumption of this solution, you may require a second generation unit or higher model number)
    Computers: 2 Mac Mini's - one for compile runing Gentoo, the other dual boot Red Hat / Os X... Cluttering up your beach space is simply unacceptable.
    Second Computer set: some low power-drain and Form Factored PIV for testing that 'old and busted' windows crud people occasionally run
    Display: 2x The DLA-QX1g - Why do monitors (old and busted) when you can have the new hotness of a projection screen with 1365x1024 resolution. It's a no brainer. Remember to get a widescreen lens for the projector, and an active screen to go with as well - these things are going to need to produce a LOT of lumens to compete with the sun.
    A 4 port KVM switch
    Input: Microsoft Natural keyboard w/ mouse, wireless versions. Gonna have to be both, although you might want a trackball that works in midair.... MS is still pretty much the best at putting together an awesome and non-stress creating keyboard / mouse combo. Alternatively, you could combine keyboard and chair I guess. That would mean, with the screen and the KVS switching hotkeys, etc, you wouldn't NEED a desk, although you might want a second screen and projector for a computer to be used as a notepad hooked up to one of the keyboard inputs on the KVM but not the video. Note: Sand might get into your chair, I'd be down with a yoga mat or chaise lounge, and the wireless keyboard.

  2. what are you currently using? by abes · · Score: 4, Interesting

    It seems weird that you are looking for new things -- what's wrong with what you are currently using? While I can understand wanting to tweak some of your tools, if you've been coding for some time now, you probably know your habits best by now.

    Some obvious things that come to mind:
    (1) For programming, it's especially nice to be able to have at least two editing windows open side by side. The Dell 2005FP is great for this -- I've owned mine for about half a year, and still marvel at it. I have trouble using smaller monitors now.
    (2) Editors are really a religious preference. Emacs isn't perfect, and there are a lot of things you can find wrong with it, but personally it's still the best editor out there. I've tried using the newer graphical editors, but in the end I always go back. The languages you suggested are probably going to be supported by most editors. However, just because the editor supports a language, doesn't mean it won't support it well. There are some very small things that many editors get wrong (especially with C++, I've found), which is one of the reasons I've stuck with emacs for so long.
    (3) Mice is yet another religious preference. Personally, my favourite mice continue to be Microsoft's Explorers. I recently bought the cheaper Logitech version, and still wishing I didn't just pay more money. If only M$ could stick with the HW business...
    (4) I've tried a plethora of keyboards. The flat no-nonsense keyboard ended up being my favourite. I tried one of the ergonomic weird shape keyboards for about a week, and maybe I was doing something wrong, but it started to hurt my wrists (never had that problem before). Even if I was somehow typing wrong, in the end, you really should just use what works for you. While you might find someone raving about some new product etc., it just might not work for how you operate.

    Your best approach is to try to slowly fade new things in. I suspect if you take someone's advice and get a bunch of random 'highly rate' applicances, you will be unhappy in the end.

  3. Re:Paper and pencil by Bastian · · Score: 4, Interesting

    One thing I miss about being in college:

    On large projects, I'd take my laptop to a classroom. Almost every important function was written in pseudocode on a chalkboard before I programmed it in C. My laptop bag was full of scratch paper with algorithm notes, ERDs, etc.

    Even now at work, I don't have a chalkboard at my disposal (sigh), but my desk is an explosion of paper. I am regularly stopping by the recycle bins so I can grab some paper with a blank side, or to return some paper that is now covered on both sides.

    An ounce of ink is worth a pound of keystrokes. =)

  4. Visual Studio 2005 by Physicles · · Score: 4, Interesting

    I just ordered Beta 2 a month ago (http://www.getthebetas.com/ ), and I've fallen in love with it. It's like Microsoft was joking when they released previous versions of VS. For C/C++, you can't beat it. Granted, I've never been an Emacs or vi person, but IntelliSense is vastly improved with this edition and will save you quite a few keystrokes.

    It also contains the best XML editor I've ever used (Earlier this year I was working on an XML-heavy project, so I tried about 10 different ones).

  5. Books by Nuttles1 · · Score: 5, Interesting

    I found that reading and knowing the right people has much more to do with my productivity as a programmer. Fancy keyboards and the such only help if for some reason a piece of equipment is causing you pain. Multiple monitors and stuff like that are nice, don't get me wrong but I would rather save my C notes to buy technical books. From working with many programmers, I think they should do the same thing. Another thing that I saw mentioned was buying a 500 dollar chair. Can we say overkill? Personnally I can't code very often for more than an hour straight without wanting to get up and take a walk or something. A 50 dollar chair is confortable enough for me. I think a lot of this fancy equipment is more of an image thing, if you have a 500 dollar chair, 3 19 inch LCDs and a blazing fast PC then one seems to think they are cooler. I am a professional programmer, I get paid to think and produce. Give me the extra cash as a bonus, I wills stick with my 400 dell, 50 dollar chair and 17 inch lcd.

  6. Ergo Desk, Keyboard, 1.5TB NAS by severoon · · Score: 5, Interesting

    I have two monitors these days because I'm waiting for my CRT to blow up, so I bought a Samsung 213T before it does (great 21.3" LCD, if you're looking, by the way). It's a pivotable 1600x1200, and I nearly always use it pivoted 90 degrees 1200x1600 for longer pages. About the only time I switch to landscape position is when I'm editing a horizontal photo in Photoshop.

    When my CRT does go out, I think I'm going to be stuck. I'm so used to having two monitors I'll have to run out and buy another 213T (or whatever the best deal on LCDs is at the time).

    Of course I recommend an Aeron chair and a convertible workstation-type desk. this is the type of workstation that has a raising/lowering/tilting keyboard tray and another paddle that raises/lowers the entire desktop. This allows you to move from sitting to standing position in a second...very important for keeping those wrists, back, and neck from repetitive motion injury. Get an ergonomic keyboard and a click-wheel mouse with side buttons--this minimizes moving back and forth from keyboard to mouse.

    I'd also take a look at various accessibility options. There are footpedal typing aids--why not engage those for a whole body coding experience? Gloves that behave like a keyboard and a mouse, trigger style mice, etc. I'd invest in a couple of different input options just to mix it up every now and then.

    Set up the room with all windows blocking light securely and all lights inside the room should be indirect only, and places way to the side of your monitors so as to to minimize glare. Calibrate your monitors so that you don't have overly contrasty or bright images in front of your eyes all day, and take frequent breaks every 15 mins to half an hour.

    Seems to me like disk space is getting to be more and more of a hassle these days--nip this in the bud since you have an unlimited budget by getting one of those 1.5TB network-attached storage modules they sell (I've seen them for digital photographers). They have internal RAID and support 1Gb Ethernet, which means you'll need a 1Gb switch and card in all the boxes on your home LAN. (Get fiber if you can, but now we're talking real money, I think.) Since I haven't played with NAS I'm not sure what you can do with them, but I have no reason to think you couldn't set up the RAIDing internally whatever way you wanted--I would personally go with RAID-6, some kind of LVM configuration on top of that, and the latest ReiserFS for my source control partition (lots of small text files). As it would be a while until I used half that space, it would be cool if I could mirror the entire setup internally--that way, when I wanted to completely restructure my disk space, I could just break the mirror, do a complete format of half of it, rejigger it around, copy stuff over from the half-mirror, destroy that and re-mirror. (0.75TB should be enough for anybody. What!?)

    That's about all I can come up with for now...should be a pretty good start.

    --
    but have you considered the following argument: shut up.
    1. Re:Ergo Desk, Keyboard, 1.5TB NAS by Glonoinha · · Score: 5, Interesting

      Monitors, monitors - everybody says monitors.

      Yea, well ...monitors are nice, and so are women - but beyond two or them (or one really nice one) and most of us don't know what to do with all of them.

      Want to get some serious hacking done, get a nice RAIC going. Anybody that has been following my journal for any length of time knows about the RAIC - redundant array of inexpensive computers. Get four nicely configured (2.8GHz Hyperthreaded CPUs, 2G RAM, decent hard drives, GigE switch tying them all together) coming through a four port KVM to one nice 20" LCD (or better.) One of the four machines with a monster hard drive array as the file server, the rest with various development environments.

      Got a compile happening that takes half an hour? Let it run and hotkey to another machine.
      Doing client server or web development and you want to test it with Linux and Windows clients? Multiple machines make that happen.
      Four thousand lost clusters after an improper shutdown? No problem since you back your stuff up to the file-server over GigE on a regular basis.
      Debugging a full screen application and want to Google for some insight? Hot-key over and use the browser from another machine.
      Need to spend 20 minutes doing virus scan or MS patching or rebooting because today is Wednesday? Now that can be productive time since you can hotkey over to another box and get back to work.
      Want to experiment with Oracle 10g but you are concerned that it will cause problems with your development environment? No worries, one of the four machines is Ghosted so you can throw all sorts of crap on it, play with it and blow it away a few days later without worrying about your 'real' dev environment.

      Multiple monitors is cool, yea - but the freedom you get by having multiple machines is quite a bit more powerful.

      --
      Glonoinha the MebiByte Slayer
    2. Re:Ergo Desk, Keyboard, 1.5TB NAS by Nik13 · · Score: 4, Interesting

      Yes, nice monitors are a starting point but there's lots more to consider. KVM (USB or PS/2 - choose carefully) or VNC or TS to switch between of course.

      As for several PCs, I find 3 is sufficient for me (although more isn't necessarily a bad thing):

      1) main development PC: the one you do most of your work at. The fastest of all 3, enough RAM for using VMWare and heavier apps at the same time (DBs, IDEs, office suite, etc).

      2) server (will never have enough HD space): to backup your code, documents and everything like that. Also as a CVS server (or prefered versionning system). Also used as FTP/web server to the "outside world" (for showing projects and neat things to clients, friends, etc). Everything else (remoting in) goes over a VPN (SSH/IPSec or whatever). DB server. Network shares. (mine also does NAT/FW/VPN duties)

      3) "junk" PC: play music. Surf web (webmail, articles, code snippets, slashdot, etc). Burn CDs/DVDs. IM. Download odd stuff (drivers, updates, anything really). That's the one PC that gets loaded with all the extra "junk" and does all the miscellaneous tasks (non-development). No important data is kept on it, ready to be reghosted when it's too much of a mess. The whole purpose of it is keeping that mess away from your production PCs.

      A good keyboard (I like buckling spring ones, maltrons seem nice) and mouse (or trackball or both) is always a worthwhile investment, especially since it will be shared across all PCs. RSI sucks.

      And all the other stuff: dependable network switch (I don't need GbE, but I need something that does work - not a 20$ router). Big enough desk (place for drink and snacks, some paperwork, phone, etc) anf of proper height, a decent chair, good phone (5.8GHz wireless works well even if you got WiFi), some storage (shelving perhaps), and a bunch of odds and ends like coffee cup warmer plate and coffee machine (or water dispenser), ... anything you normally use.

      Anyways, that setup works quite nicely for me (and it'll get even more use now that I'm going back to university).

      --
      ///<sig />
  7. Whiteboard by karearea · · Score: 5, Interesting

    I don't think anything beats a nice big whiteboard and plenty of colour markers (and eraser) for brainstorming and mapping out flows, structures, links, in and outs.

    I've looked so many times for a nice computer package for doing that but I pretty much always go to the whiteboard - I can stand, I can pace, I can step back, I can use my fingers to rub out.
    A digital camera is handy when working with a whiteboard - that you can take a photo, save it and print it out for later. I have seen some whiteboard type things that have markers (and eraser) that can be tracked and imported straight to the computer, but I know that when I've got thoughts happening I don't want to have to interrupt and remind myself that using my finger to rub something out isn't replicated to the 'puter.

    Big sheets of paper can work, a premanent record to go back to (very handy if you suddenly realise that your new brainwave is a f$#% up), but it is hard to rub out stuff and when starting from scratch on a new sheet with some old info some thoughts can be lost.
    A chalkboard/blackboard can do the same thing, but you want to keep the dust away from the insides of the monitors, system units etc.
    Besides there is the added bonus that if you get the right markers you end up nice and relaxed while you are working :-)

    Also plenty of fresh air and a bit of pacing room for when you need to think things through a bit more.