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

19 of 757 comments (clear)

  1. Paper and pencil by El+Cabri · · Score: 5, Insightful

    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.

    1. Re:Paper and pencil by CupBeEmpty · · Score: 5, Insightful

      Well that is a little unfair. There are a lot of considerations that while they may not make your code any better, will sure make you feel a lot more comfortable while you do it. Being cursed with being the son of a hand surgeon I know a lot of useless fact about repetative stress injuries and carpal tunnel syndrome. Almost all kind of injuries like that are fixed by ergonmic improvements ranging from getting a track ball, to having the right chair.

      And what good are paper and pencils if you are crammed in some corner on a small desk. I always study/work better when I have lots of space. Its not a high $$$ solution but I have my computer/workspace on two 6' long folding tables in an L shape. That leaves plenty of room for the very useful dual monitor setup (which I find is a real boone for my productivity) and plenty of table real estate for books, notebooks, manuals, etc. etc.

      Basically I understand that as you get older and it starts to be a pain to sit in a folding chair at a cramped desk it helps a lot to have a nice setup (which is going to cost a littel extra).

      My biggest advice is plenty of space, a good chair, and a second work area like an armchair or couch if you need to take a break from the screen for a while.

    2. Re:Paper and pencil by slashname3 · · Score: 5, Funny

      Hell, I hope not! Don't need another scare like that! :)

      And no you don't get an allowance!

  2. Screen, Keyboard and Arse by TechyImmigrant · · Score: 5, Insightful

    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.
  3. My advice... by teromajusa · · Score: 5, Funny

    Stop fucking around reading Slashdot instead of coding and you won't have to spend all those long hours at your computer ;)

  4. 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.

  5. Stick with Eclipse. by Vellmont · · Score: 5, Informative

    Eclipse has a huge future. Many IDE makers are abandoning their own IDEs and making Eclipse plugins. There's already good free plugins for C/C++, excellent inexpensive JSP plugins, and tons of others that I've seen but not used. I have to believe there's some good XML plugins as well. Since Eclipse is cross platform, you don't have to worry about being stuck to one OS. Stick with Eclipse unless you have some special need that Eclipse doesn't do.

    --
    AccountKiller
  6. RAM by dubl-u · · Score: 5, Insightful

    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.

  7. I think it was J00L14s C3454R that said by Crimsane · · Score: 5, Funny

    Vimi, vidi, vici

    I'll leave the translation up to you.

  8. Isn't this like the ultimate troll question? by tjstork · · Score: 5, Funny

    Hey a bunch of developers on every platform known to humanity, what is the "ultimate" way to develop.

    Here's a script:

    CPPFanBoyMFC "I think Visual C++ is the best. I love MFC with a mighty passion!"

    CPPFanBoySDK "No way dude, I use Visual C++ with the straight up SDK and roll my own classes as needed."

    CPPKDEFanBoy "Visual Studio blows compared to KDevelop."

    CPPMakeFanBoy "When I was a kid, I used to write make files and use Emacs and gdb from the console, and I liked it, so I still do."

    CPPViFanBoy "Yeah, but, vi is better than emacs, everyone knows that"

    AssemblyFanBoy "90% of you C/C++ guys talking about getting close probably don't even know the calling convention of your functions. Hop along IDE cripples."

    VB6FanBoy "Assembly? I can do in two minutes that which takes you two weeks to write. VB 6.0 is the bomb, but MS ruined it with VB.NET"

    WinFanBoyD "C# makes the rest of you obsolete..."

    SunFanBoy "Too bad you stole it from Java."

    PythonFanBoy "Java, Blah! Your weak languages do not enforce indenting..."

    DelphiFanBoy "All your strongly typing innovations are belong to us."

    Perl "While you guys were arguing, I just finished it all in one line of code... oh wait... where does that greedy matching operator go. I'll see you tomorrow."

    Any more?

    --
    This is my sig.
  9. That article was a lot of words ... by switcha · · Score: 5, Funny
    when you could have just said:

    "Flame me and then brag about your setup."

    --
    You know what? ... A little club soda *did* get that out!
  10. 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.

  11. Burn him! by InfiniteWisdom · · Score: 5, Funny

    I still use "vi" everywhere... but I suspect emacs would do a better job."

    Whoa! A self-confessed vi user suggesting that emacs may be better at some things? Clearly this one has had his mind tainted. Burn him alive before the infection spreads!

  12. The simpler the better by Audacious · · Score: 5, Informative

    After coding since 1972 I've found that simpler is better. The more whiz-bang things you have around - the more they are going to distract you.

    I use vim to edit, gcc to compile, ddd/gdb to debug. Whether it is Linux, BSD, Sun Solaris, Windows, Macintosh (OS X and earlier), Cray, SGI, or whatever - I use the same things. It makes life simple. I have my vim macros - they do all of my documentation for me, help to reformat bad code I have to look at, and even can go through a complete file and replace various items I do not like to look at into things I do like to look at.

    I have found that fancy IDEs, overly helpful editors, and things of that sort tend to piss me off since I type so fast. I especially hate it when an IDE overlaps what I'm typing so I can't see what I'm typing. It usually gets the wrong word and by the time the program finally figures out what the actual word is I want - I've typed it in already. However, I do like the color coding. :-) RED means DEAD in coding. Blues and greens mean good things are happening and yellow means you are about to be pissed off by something either you did or someone else did to your code. :-P

    In any event, do whatever feels best for you, but fancy things tend to get in the way rather than help out (unless you just happen to like that sort of thing). :-)

    This is not to say that IDEs can not help. Especially when programming for Windows. Also, there are interface designers. The two I like are DialogBlock or wxDesigner. Neither of them get in the way of coding. Once through with them though - I stick to vim.

    If you are looking for advice on creature comforts - here are mine:

    1. Have someplace you can put things to drink. It always breaks concentration when you have to get up, go to another room, and get a drink. If possible, buy a small refrigerator you can put under the desk or in another part of the room. Put your cold drinks in there so you have them ready to drink when you need one.

    2. Have lots of shelves nearby. You need them so you can put your reference books on them so you don't have to go looking for them.

    3. Get a pet. Preferrably a cat. Cats are interesting creatures and if you ignore them for an hour or two they will eventually demand your attention. This is a good thing because you can forget that time is passing while coding and the cat will remind you to get up and move about. Why is this important? Because there is this little thing called Phlebitus that you can get. (It is also called Secretary's Disease.) You get it from spending long hours sitting doing something. The blood in your legs tends to slow down and pool (ie: not return to the heart to be renewed as much). When the blood slows down enough it begins to form blood clots which can result in your having a stroke or you getting Phlebitus. If you are very unlucky (like me) it will completely block your artery or vien and you will then be on medication for the rest of your life (or you could say I am lucky not to be dead because of the Phlebitus). So get a pet and live a long healthy life. (This is not to mention the fun you can have with a pen light making the cat chase it all over the place. Of course it isn't too fun when the cat hits your pile of printouts and scatters them all over the place - but hey! That's why you get the shelves!)

    4. Windows. You need them. You need them so you can open them and let some fresh air in. You need them so when it gets dark you remember to eat, go to the bathroom, etc.... You need them to realize that your life is passing you by while you sit there and code away. I coded for almost thirty years in buildings without windows. Now I work part time and spend a majority of my time at home coding in a room with a window. I also help out those who can't make their computers work, teach people about computers, and do other freebie things instead of just sitting in a window-less room and coding ten to sixteen hours per day.

    --
    Someone put a black hole in my pocket and now I'm broke. :-)
  13. Re:Seating Schmeating by wootest · · Score: 5, Funny

    Okay, seriously, what has the internet come to these days? I just tried typing "huge organ" into Google and I actually *got* info on pipe organs. It's going downhill, people.

  14. 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
  15. 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.

  16. Silence is Golden by MarkWPiper · · Score: 5, Insightful
    Having been in constant pursuit of the perfect setup, I have found that silence is golden. The importance of a very quiet computer is critical for my own concentration. I'd put it above having a good keyboard. However, I've found it frustrating to find adequate components at reasonable prices. Although sites like SilentPC do a good job of sorting out what is worthwhile, I simply wish component manufacturers would consider noise levels as a very high priority!

    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.