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++?"
One facing straight ahead and two angling into your peripheral vision. Not only do you get a ton of real-estate, but you never have to worry about getting that even-tanned look on your face. :)
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
Monitor: Dell 2005 FPW 20.1" Widescreen LCD
Totally awesome. Run it at its native resolution, of course, and no blurriness. I don't even get ghosting in FPSs. The monitor is beautiful and rock solid.
Mouse: Logitech MX610
Awesome mouse.
ACs are modded -6. I don't read you, I don't mod you, I don't see you. Don't like it? Don't be a coward.
http://www.hermanmiller.com/CDA/SSA/Product/0,,a10 -c440-p8,00.html
That simple.
Really. I do everything using SciTE, except the stuff I do with vim.
My Systems
I've never regretted learning Emacs, though eventually I switched to XEmacs (mainly because Emacs seemed to have trouble highlighting Python syntax correctly).
My pointing device of choice is an Evoluent VerticalMouse. It doesn't force your wrist to twist, which is a Good Thing.
I'm too poor to afford a good chair (since they typically will run you > $1000 + 1 arm + 1 leg), but get one with good lower-back support.
-Michael
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
You need:
:)
- A fridge within reach
- A lot of beer in that fridge
- Caffeine I.V. or just a lot of 'dew
- AMD64 box with gobs of mem and lotsa Ghz, dual core, more cpu's is better
- Gobs of diskspace so you can multiboot many operating systems
- A comfy chair
- Multiple monitors
- Dual head video card
- A simple PCI video card for that third head
- An IBM type M keyboard, or a Sun type 5 hacked to work on a normal x86-like system
- A lock on the door to keep the SO and/or cats out
- A 60 GB ipod hooked up to a dock for auditory pleasure
- A large desk to put all that crap on
- A shell
- vi(m)
I guess that's about it
Emacs is the only IDE you need.
It's also the only thing you'll need to play tetris.
[user@localhost]$emacs -f tetris
No. Go to ebay. Search for IBM type M keyboards. Buy one. Your fingers will thank you. As for mice, well, I just always go for Logitech.
save your money , outsourse the coding to India and sit around and play mmog's
A multiple-monitor setup using LCD flat panel displays should top the list. I can't begin to describe how much easier it is to do development work on a multi-monitor system, and I can tell you that if you work for a full day with an LCD (running via DVI connector, of course, not RGB/SVGA) side-by-side with even a good ViewSonic CRT, you'll be forever sold on the LCD panels because the brightness, contrast, color accuracy, and crispness are all so much better.
RAM and disk are the two biggest bottlenecks to development, in my experience. So the next most important thing is memory and storage. Get at least 2GB of RAM, and then get yourself set up with a RAID array with plenty of storage (200GB or more), running in a RAID mode that provides for full automatic recovery if a drive fails. Many motherboards now natively support RAID-mirror configurations (two drives) using SATA drives.
The RAID array will drastically improve disk performance. Plus, you'll never have to worry about backup/recovery again. The RAID array by definition always keeps itself "backed up" by its built-in redundancy, and recovery is as simple as popping in a new hard drive and letting the array rebuild to the new drive.
Moderator hint: a comment is neither "Flamebait" nor "Troll" if it is true.
Did you ever consider that modern IDEs also may have um.... advantages? Ever used Visual C? Eclipse? IDEA? Ever seen IDEA's refactoring capabilities?
:) ), but VC makes writing projects with hundreds of subprojects and files less painful than with a simple vi. And no, I'm not talking about RAD here (although its one of the greatest advantages of an IDE).
Your first paragraph is pointless, unfortunately it is still widespread among Unix hackers. See, if everything thats new is "l4m3" and only emacs+terminal is "l33t", then why not stopping progress altogether? By the way, why using a mouse? How l4m3! A monitor! Ha, in the old days l33t programmers stuck with their printers! Why using modern OS with multitasking and that fancy stuff! Why electricity! Dude, this fire thing is overrated, right?
Of course the new IDEs won't magically make better code, of course I don't need them for a hello world, but they sure as hell help a LOT when writing code, especially when writing larger projects.
I for one like Visual C. Yeah, call me heretic or whatever, I don't care. VC doesn't make some magical shiny code, I have to do that (and often enough its neither magical nor shiny
This sig does not contain any SCO code.
All the above are no substitute for hard work, research and forethought, of course. But you'll go better for longer.
Amen to the use of VMWare. (Or VirtualPC in my case.) This will save you tons of time on testing. No uninstalling and wondering if everything is gone, or if it left that one file or one registry key somewhere. (Yes, I do dev on Windows.) No time wasted reimaging a test box. And, as you're on a budget, you only need one computer. Just splurge and make it fast, with tons of ram and a RAID set up and you're good to go. Putting your VirtualPC or VMWare image on a RAID drive makes a big difference, as does adding that ram.
Ever since that team of guys loaded NetBSD into a toaster I've been wondering if emacs can now make toast in addition to all the other things it does. And when it will be able to do my dishes and laundry for that matter.
Stop Global Warming!
Just say no to irreversible processes!
You do know that they have white boards that have built in printers and readers that take the images on the board and place in within a computer...and then there are versions of this system that are portable that can be placed on any whiteboard....
Eclipse basically is the only IDE which can fulfill your needs out of the box, the project really is taking off, refactoring is possible now even in C++ and lots of plugins for almost any language are available, just go plugin shopping and stick with it, that is basically the best advice I can give to you.
Eclipse sort of has become for the 2000s what Emacs used to be for the 80s...
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.
:-) 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
:-)
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.
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.
Well, technically, since you can run a shell inside an Emacs window, you don't even need the xterm. In fact, at one job many years ago, I had a VT-100 terminal on my desk, and used emacs to get multiple shell "windows" at once. :-) In practice, now that we have command line editing via tcsh, I do prefer a plain old xterm for command line stuff.
http://www.chait.net/cgaindex.php?p=ASIN_B0002ILKN Q&page=2
"I saw vim and conquered it"... with emacs :D
Visual Studiou lt.htm
- Whole Tomato Visual Assist (Intellisense done right) http://www.wholetomato.com/
- Compuware DevPartner (Serious Error Detection + Code Coverage) http://www.compuware.com/products/devpartner/defa
Dual LCDs & Dual DVI Video Card
(Once you start developing on multiple monitors, you can't go back)
Kinesis Advantage Pro Keyboard + FootPad
(No one ever tries to borrow my computer since they can't type on my keyboard)
http://www.kinesis-ergo.com/advantage_pro.htm
Stardom-2600 Hardware RAID
(Fits into two 5 1/4" Slots, looks like a standard HD to the OS. Highly Recommended)
http://www.stardom.com.tw/web/index_e.htm
Quiet Homebuilt Devbox
- Lots of Memory
- Only one fan
Leap Chair from Steelcase
Big Ass Desk + Big Ass Bookshelf from IKEA
View of the Seattle Skyline (Take breaks and stare at something far away)
Honest Tea (Assam Black is my favorite)
I do contracting, so I pay for my own equipment. It ends up costing $$$, but I do get to choose exactly what I want.
It defaults to a 200ms delay for autocompletion. Maybe you should try to play around with that number in the settings.
There are a huge number of yeast infections in this county. Probably because we're downriver from the bread factory.
Actually there's more to that than most people realize - seems the shower fills the room with ions (negative ions) which have a significant effect on one's ability to focus and have the sort of introspective thought that is highly conductive to problem solving. Add in a relaxing environment devoid of other detractors and you get a pretty good 'think tank'.
Glonoinha the MebiByte Slayer
USE IT!!!!
* Don't buy a $700 aeron chair and slouch in it.
* Don't let your wrists fall while you type.
* Don't lean in 3" from your LCDs, stay ~27" away.
* Take small 30-sec breaks every 20-30 min
* Eat healthy throughout the day, not a pile of pizza and candy once a day at midnight; regardless of how cool it makes you feel to drink energy drinks like Bawlz!.
* Avoid caffiene and meth, unless you have a major deadline to hit.
Seriously, if you can force yourself to do these things, you can go several hours longer programming during the day.
It works for me, but YMMV.
https://www.accountkiller.com/removal-requested
My experience with eclipse:
Running on a 2Ghz machine with 512 Meg RAM, it took forever to start. Once started, it was fast enough on tiny projects, but once you added more than about 100 files to a project, it started to crawl. Projects with closer to 1000 files, I sometimes had to wait about 45 seconds between right clicking something, and the right click menu appearing.
On a friend's advice, I upgraded to 1G of RAM, and suddenly eclipse worked like a relatively normal IDE. Still a tiny bit sluggish at times, but bearable.
So my verdict: yes, it's horribly slow. If you've got a nice machine, you can make it usable, but is it really worth it?
What I really want is a full featured IDE like eclipse, but where the editor window is gvim. That would be heaven.
Another vote for the 2005FPW.
One of the unsung (so far) benefits is that it's one of the biggest monitors you can drive with a reasonably-priced consumer video card.
1680x1050 - the native resolution on the 2005FPW - is around the upper range that a single-link DVI card can do (and trust me, you don't want to run your sweet new wide-screen LCD over VGA) so unless you have a $400+ video card that can do dual-link DVI output... the 2005FPW is your best bet. Also, the actual LCD panel in the 2005FPW is the same exact one that Apple uses in their 20" widescreen monitor. There's a comparison on Anandtech's site that has a lot more information about the two displays.
I've got two - I bought one for home, and I loved it so much that I bought another one to use at work. The first one I bought was $562 shipped; the second one was $359, due to some absolutely insane coupons going on at the time. Definitely worth the money.
I also highly recommend the Ikea Jerker desk and the IBM Model M keyboard. A pretty eclectic collection, but that's my current setup and I am *really* digging it. I have another LCD, a 15" NEC model that does 1024x768, on a swinging arm attached to the desk - it's my Mac mini display.
I need to find a DVI KVM that doesn't cost as much as a new monitor, though... I have a few systems that are DVI-capable now, and swapping cables is a bitch.
Here is a decent list.
I like CppUnit, but YMMV.
Obviously you've never heard of VMWare.
Tom
When I got out of college, I was used to working only 4 or 5 hours at a time at the computer. My keyboard habits were all right, but not good enough to carry me through an 8-hour work day. At my new job, my hands started to hurt.
I experimented with several keyboard positions, and eventually found that using a keyboard tray and a wrist rest was the best one. Using high mouse sensitivity was also much better because it reduced the wrist motion I needed to move the mouse. Now I experience almost no pain at all. So I have firsthand proof that ergonomics is important.
It is really important to spend some time finding the right office configuration. You may think you can put it off, but the reality of the situation is that using the wrong ergonomic configuration, even for a day, can lead to a lot of pain.
And as for "Dr. Sarno," he sounds about as scientific as
this.
Here's a helpful hint, kids. Real researchers advertise their findings in peer-reviewed journals, not through propagandizing the public. Yes, even psychology researchers.
"Any connection between your reality and mine is purely coincidental." -Slashdot
Actually no, it feels and behaves like a normal IDE, most people and that is mostly a documentation problem, run it with the default memory settings, while they work, eclipse will start to choke once you dump a load of files into it or once you hammer it with a handful plugins. Most people do not know that java does not behave like every other program it only takes the amount of ram it is assigned to currently running heavy server development with a s***itload of plugins and even an integrated case tool with following settings -vmargs -Xmx700m -Xms200m -XX:MaxPermSize=128m and the IDE is fast, believe me.
still wishing for a kvm over ip
Have you forgotten aboutVNC?
It is the only way to go unless you are not using X windows then that is what ssh is for.
Star Trek, there maybe hope.
Are you trying to stop all software development worldwide?
No caffeine?
No alcohol?
Devs need their caffeine to keep going all day, and their alcohol to get sleep. This is how software is made.
----- If communism is a system where the government owns business, what do you call a system where business owns govern
You cannot LAN something.
Thank you.