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
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.
and a table to hold pizza and other snacks.
Evil people don't think they're evil. - George Lucas, Making of Ep III
I find that vi has great support for every language I use.
Emacs is the only IDE you need.
Eclipse.
Is it dot-com again? Should we recommend what type of car to drive too?
But if you really want to spend some money, maybe get a couple of LCD monitors.
Rock that crushes, Paper & Scissors that don't matter.
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.
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.
http://www.sun.com/desktop/workstation/sunblade250 0/
E R-147B-TOP-CONDITION_W0QQitemZ5807333533QQcategory Z51239QQssPageNameZWDVWQQrdZ1QQcmdZViewItem
OH! You have to pay for one?
I'm sorry, this might be more to your tastes then:
http://cgi.ebay.com/SUN-SPARCSTATION-2-MODEL-NUMB
-GenTimJS
Hookers. If I could get a blowjob all day while coding I would be far more productive. I think.
you should really ask your mom first. She doesn't want you messing up that basement.
Stop fucking around reading Slashdot instead of coding and you won't have to spend all those long hours at your computer ;)
Is my personal favourite.
:wq
cherry g84-4100 series
expensive, but IMHO worth it
Really. I do everything using SciTE, except the stuff I do with vim.
My Systems
If money was no object, I'd get one of these puppies:
:)
http://www.superssd.com/products/ramsan-400/
That should make compiling nice and fast
-- Mike
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
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
None. (except a desk lamp just bright enough to read by)
The one thing I'd count on for development is using virtual machines to host test different target platforms. If you'll be developing primarily for one platform/environment, you can still use VMs to simulate the different machines of the production environment for testing purposes--clients and servers.
Personally, I like VMWare, but I'm in the Windows world. If you're going to be developing and distributing exclusively on and for Linux, you could use something like Xen.
Regardless, I'm hooked on virtual machines, and highly recommend using them for your work.
+5, Insightful
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.
My little site.
Donald Knuth works standing up, and so should you.
You might also want to consider investing in a full-sized pipe organ.
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
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.
processor: ARM or AMD64
operating system: Linux
compiler: GCC (GNU compiler collection) with GDB
desktop: GNOME
screen saver: Shannon Stewart (naked pictures available via MSN Search)
Any more questions?
Vimi, vidi, vici
I'll leave the translation up to you.
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
I would buy the most kickass aircon/environment control system currently available; if there's anything I can't stand, it's got to be when you're coding in what feels like the Sahara or the Arctic. I've often spent hours coding and wondering why the hell I'm so grouchy and fidgety. 99% of the time, it'll turn out to be the rooom temperature or humidity.
So for me, ambient environment control would probably be the thing I'd hanker after, so utterly unlikely to be bought on any developer budget that it has to top my list here!
I'd recommend just taking a trip to your local computer store and trying out the best they have to offer in terms of keyboards and mice.
If you have extra pennies to spend, consider more than two monitors (and their associated video cards). There is a real sense of 'space' when you can spread your GUI based apps over a number of displays. (Personally I think it helps reduce percieved 'stress'.)
Also consider getting the most powerful system you can afford. Having a window open slowly is just depressing. Fire as much raw CPU power/speedy disk/ram as you can at the problem and app/window opening should be faster than turning the pages in a book.
Last, but most importantly, make sure the system is quiet. Theres nothing worse than sitting next to the desktop equivalent of a Boeing 747 all day.
Ripping an new rectum in the fabric of spacetime.
Mount all your equipment on the wall. http://www.flat-panel-mount.com/flat_panel_arm_mou nt/LCD_arm_390.htm#m=2,2,1,1*t=2,2,1,1
I personally think that the two most important things you could possibly have are a good back supporting chair and good lighting. After doing many coding projects at Uni I found I had quite a sore back from the crappy chair I was using. Also a low watt bulb increased my eye strain. Personally I think a supportive chair will be a much better purchase than anything else. These are apparantly very good, although I have never tried one for extended periods of time.
watching TV, drinking coffee and pop. It's a great setup.
If you don't want crime to pay, let the government run it.
First, ergonomically, you want something that works for you. Go to Office depot, office max and sit in a lot of chairs, and try a bunch of desks. Find out if a keyboard tray or keyboard on desk setup is more comfortable for you. Try out all the ergonomic keyboards and find what feels nice to you. I recommend the microsoft keyboards, but it's a very personal choice.
Second, for software, definitely buy yourself a copy of IntelliJ IDEA from jetbrains. It's another step ahead of eclipse, and there is pretty little debate left that it is the best dev environment if java is your primary platform, plus it plays nice with lots of other technologies.
For your computer, buy a system with at least 2 cores, 4 gigs of memory, and the fastest disk setup you can afford, plus at least 2 monitors. At the low end, a 2 disk 10k raptor setup is pretty fast. At the high end, a 5 drive scsi raid of 15k seagate disks will eat up as much budget as you'd like i'm sure. For the monitors, i'd recommend a pair of dell's 24 inch 1920x1200 lcd panels. Apple cinema displays i've heard are nice also, but i haven't any direct experience with those, and i've heard they have compatibility issues in terms of what video cards can drive them. The remainder of your system hardware wise won't have nearly as much impact as those items (cpu, memory, disk, monitor) will have.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
It's nice to have an old-school PC monochrome card and mono monitor plugged in so you can run SoftIce on a separate screen.
Best Buy can have you arrested
Software far better and more innovative than anything you will ever create was written by smelly geeks in university basements, on terminals that made funny noises and worked at 9600 baud, without source control, and with text editors that didn't have the memory budget to implement "undo". (Which just might be the impetus that caused them to *invent* stuff like this.)
As nice as it might be to have that "Professional Software Engineer" title on your business card, programming is, has been, and will always remain a task for the brain. Throwing toys at it doesn't work, it just makes the toy manufacturers richer. Put your butt in whatever feels good, and use whatever tools you want (and be sure to try whatever tools you haven't). It won't make your code any better, but maybe you'll smell nicer than the geeks in the basements.
vi is all you need
3.243F6A8885A308D313
Ikea Jerker set to standing height. I guess I just like to work standing up, I think better, and it forces me to take occasional breaks.
15" G4 Powerbook. Portability is a factor for me, so I need something I can take with me
24" Dell Widescreen LCD.
Kensington Expertmouse (trackball)
Micro$oft Natural Elite Keyboard (the curved one)
This setup works for me, but I understand it's not ideal for everybody.
-s
Although it's primarily associated with Java it's got plug-ins for many programming languages including some, if not all, of those you mention above.
For the XML (which I guess you'll be using a lot if you are using J2EE) there's a very good plug-in called XML buddy that I can recommend.
And if money's no object, I think a great luxury to go with the perfect set-up for coding would be a mini-fridge in the same room, for minimal distance to obtain the next fix of Dr Pepper / Diet Coke / Caffeinated beverage of choice.
Seriously, if you make $95K per year writing software it makes sense to drop $3K on the tool you use to make that money. Just my $0.02.
All this doesn't matter - it's what you do with it all that counts.
This is why I have a cheap laptop and work from home where I can be with my family (wife and daughter).
If you spend lots of money on kit, then you have to make a significant sacrifice in time to make the money again.
If you're planning to get involved in using a lot of open-source tools the setup i've found optimal has been:
OS : Slackware linux, Editor : gvim, gdb/ddd debugger, and subversion using apache webdav for revision control.
As someone already suggested dual or three monitors really does give you some extra space to say read a man page or look though code while a debugger is running, much more convienient than using virtual desktops alone.
Do you really need more than a standard PC (say p4/amd athlon 2ghz +)? It depends on what you plan to do... If you're into GLIBC development or plan to recompile something huge often for testing purposes, you might want to look into a dual or quad cpu opteron setup. That is unless you'd appreciate plenty of time for coffee breaks.
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.
Not stop playing on your big brother's computer before he finds out.
Honestly, I'd have given you a real answer if you had included a real budget.
I'd love a banana.
Max.
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.
save your money , outsourse the coding to India and sit around and play mmog's
I must say, if I had the cash I'd love to get one of these. ( http://mypce.com/ ) It's a reclining style chair with overhead LCDs mounted.
I am extermely happy with my Logitech Multimedia Keyboard and my Kesington Optical Elite mouse. The optical elite mouse is my hands down favorite out of the 50+ mice I have used. I don't know how much longer they will make it, but I bought an xtra 2 to tuck away in case this one breaks.
Multiple monitors is an absolute must. I work with 2 at work and 3 at home. The screen real estate available to you will make you much more productive. This is extremely easy to do on a mac. It doesn't work as well on my PC, but I've heard something called UltraMon gives windows added functionality for dual monitor setups.
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.
You should check out PHPAudit for licensing and distribution (http://phpaudit.com/ and ionCube for encoding (http://ioncube.com/ if you plan to sell your product commercially.
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++?
Yes.
--
Mod up a post Rob doesn't like and you'll never mod again
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.
Editor
-----
BBedit or TextWrangler. The latter is free, as in beer.
OS
--
Mac OS X 10.4.x. It works, and you don't have to worry about clicking links or reading email. Plus it's got all that good command line stuff built in. Plus you can use things like Pyramid, Photoshop, etc.
Displays
-------
Two or three, depending on how big they are. The problem with the widescreens is they might exceed your angle of vision, making things a bit weird. You want one monitor for reference stuff and another monitor to work in.
Three monitors is a bit overkill, and requires a lot more thought than two. I suppose you could do "everything else" on monitor #3 (email, web, IM).
Be warned that monitors that are too big can be really annoying.
Keyboard
--------
The MacAlly IceKey or one of the old IBM PC clicky steel keyboards with a USB adapter. Both keyboards are really excellent, but the IBM ones have the edge. The old Apple Extended Keyboard ]['s are good as well, but you have to you the flaky iMate adapter, which sucks.
The IBM and Apple keyboards will take a ridiculous amount of abuse. The IceKey is a lot more fragile. If you're prone to beating your keyboard in frustration sometimes, the Apple one is better because its plastic is softer than the IBM steel.
Chair
----
Find one that's comfortable, not necessarily ergonomic. I've tried using ergo equipment, and they cause all kinds of aches and pains in my arms, back, legs, etc. If it's comfortable, it'll probably be OK.
Desk
----
Make sure you can fit everything and a couple of reference books on it. That means it should be longer than 5 feet. Table depth isn't as important.
Get the new Sun Ultra 20 workstation. AMD Opteron, Solaris/Linux/Windows support, 3 year warranty, cheap, and fast. I love mine.
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!
Seriously though, it sounds like you're trying too hard.
Don't build a desk that's comfortable enough to spend huge amounts of time at, it's not healthy physically or emotionally. If you plan to waste your hours at your desk, you'll do it, whether or not it's good for your career.
"Flame me and then brag about your setup."
You know what?
Check out Poetic Technologies for desks. They're more like pods. I'd love to have one of these myself, but with my cash flow it looks like the folding table and folding chair will have to suffice.
I don't know how me and my partner ever managed to write code without the PairOn.
The 17-inch PowerBook runs Eclipse perfectly.
Heck, I have a 15-inch 400MHz PowerBook that keeps up with everyone else in my classes (we use Eclipse, btw).
OSX 10.4 comes with Java 1.5 and Apache w/ PHP5.
Direct away from face when opening.
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).
I want to know who this guy is working for and if there are any openings.
Money is noobject?
:P
Ok maybe the athens is overkill, maybe just the 4 monitor rig. With enough ram and nice video cards you could have your flowcharts/diagrams on one screen, your debugging on another, your actual code on another, your Gui/IDE tools in another... well you get the point. This is considering you'd actually use those pixels for work, if you have trouble keeping on task this would be the worst thing you could buy.
Paper is for people who like tangible things, as others have listed, if you like paper then a decent HP laser should be on your list.
Still that would look nice on my desk
All the above are no substitute for hard work, research and forethought, of course. But you'll go better for longer.
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.
If money is no object, and if you want the ultimate in comfort, you should seriously consider offshoring yourself.
boakes.org
Paper and pencil are nice, but for some things, the big-ass whiteboard is really handy.
Get cranking on a project and time and bodily comfort cease being issues. If you even notice any of that stuff, I'd be surprised. emacs/vi, gcc, and a cheap laptop wherever the temperature's right do it for me.
for christ's sake don't.
A door and the will to use it.
Seriously, go. Experience.
At the very least get one or two other people who share your passion and make room for them in your coding shrine.
Get a UNIVAC, its warm and cozy inside, a great place to code.
Before you are serious to start a company, make sure you've the right mantra and willing to endure a lot of hardship. I'm not going to lecture you too much as you've to experience it anyway...
Location:Paul Graham's advice on this.
If you're looking for a regular office, try to find a place that you can pay by month-to-month. Yes this kind of stuff does exist. Signing a one year contract is not so nice. If you can afford, please find a work-live space or a loft.
Phone: If you need a landline, don't do it. We pay SBC $135 USD just to get a line into the building, and then another $135 USD for "inside wiring", which is just connecting the line from the building phone box to the room. @#$#@ing rip off. Even if you choose the most basic plan for just a dial tone for $7 USD, they'll still end up giving you $15 USD a month bill. Ah yes, if for some reason you use the phone to dial a long distance call, prepared to get shafted heavily.... They charged me $69 USD for 6 minutes call to Asia (because somebody used the wrong phone !!) Instead, go get Vonage. $25 USD unlimited is so nice. You will thank me for telling you this.
Furniture: if you're in Bay Area, IKEA's tables are good enough especially you can dismantle the legs quickly and MOVE. If you happen to catch good price, you can get one for around $21 USD. Don't go to OfficeMax or Office Depot to buy those rip off tables.
Also, we got A LOT OF IKEA stuff free on Craigslist: one Ikea table worth $30 USD, a cloth hanger, halogen lamps plus a sofa. (It's good to be near a big university with many rich kids too. So watch out Craigslist on around 15th and 30th each month. Move out time!)
Computers and software: I don't see the point on using a specific platform. As long as it does the job well you need to learn it. We have Powerbooks and Mac mini running MacOS X, a lot of PCs running Debian, OpenBSD, Solaris and a SGI O2 plus Indy (picked up free from Craigslist too) running Irix.
And most important of all, focus. There are so many possibilities but you only have that much time. Good luck.
bah! I see your chair and raise you a lazy-boy! http://www.ergoquest.com/pagethree.htm
The point was that this discussion is silly. You can't get anything but a flameware from an ask slashdot post about the "ultimate setup", because there is no such thing. Flaming about emacs vs. MSVC (which I did not, but you managed to work into the reply anyway) is precicely what I'm talking about here.
Seriously. While I'm not a programmer, I'm an immunologist so I'm very familiar with long hours at the office. The one thing that would always drive me home would be hunger. I learned long ago that stocking a refrigerator / freezer with Slim-Fasts, microwaveable dinners, and Gatorade not only allowed me to work much longer, but I was also much happier. Along the same lines, my rice cooker has been a godsend and I wouldn't give it up for anything. My only other advice is to stock up on relatively healthy food - things that fill you up. Chips, soda and cookies are worthless.
Check out the Herman Miller Aeron and the Dell 2405 widescreen panel.
Who cares about chairs, desks, lighting, etc.?
It just doesn't strike me as office water-cooler conversation.
The other poster's idea of very nice / 3 very nice monitors is a good one, but most of this stuff is not very productivity related.
In other news, anyone know how to test the ignitor in a 1992 Toyota 4Runner, 6-cylinder, 3.0 litre engine, 4x4?
I use it to drive my geeky ass into the back country and it won't start.
WWGD? (What Would a Geek Do?)
I don't use it but someone I does and seems to do what he needs: http://www.waterproof.fr/
From Jetbrains. It's the best Java IDE on Earth, bar none. It's non-free, but well worth the purchase price. You *must* at least take them up on their eval period. It's that good.
vi is my shepard, I shall not font.
Since when do the words "software developer" belong in the same sentence as "PHP"? That's like the kid who pumps your gas at the station an "oil tycoon".
No, it's like calling the kid an "oil industry worker". That is to say, technically correct, if a little overstated.
Unless perhaps you are claiming that PHP is not actually a programming language? Or that it is not possible to develop software in PHP? Since claiming either would be exceedingly stupid, even for a slashdotter, I can only assume that the only purpose of your post was to parade your elitist snobbery. In which case, "mission accomplished".
When it comes to a development tool for PHP, I know no better than Zend Studio http://www.zend.com/store/products/zend-studio/
I used to be a big fan of Notepad++, but this really helps me reduce my programming time by leveraging intellisense as well as database connectivity right in the package. They have a Beta out of their newest version that you might want to download to try.
Hardware:
Monitors:
A lot of sceen real estate is essential. I get by with a single 21" trinitron, but I'd trade it in for two Dell 20" LCDs in a heart beat.
PC:
Personally the computer doesn't matter so much to me as long as it's something semi-modern. I always buy 1 generation old hardware to save money. My athlon XP 2500 is fine. I guess raid would be nice as would a battery backup.
Keyboard/Mouse:
I personally don't care for the natural keyboards. I use a $10 usb keyboard from ebay that has "Gateway" stamped on the top. It does have two usb hub ports builtin that are handy but they're only 1.1. I prefer the 5 button "optical elite" mouse by kensington. The 2nd generation of this mouse made drastic improvements in button longevity and the ability to glide on a mouse pad. Hard to explain but I am still amazed at the difference.
Printer:
I use the HP 812c. One thing I like about this printer is that it works well on most different types of paper but specifically it looks great and works fast in black & white draft mode.
Ergonomics:
Chair:
For long hours of coding a chair and keyboard/mouse height are very important. I have yet to find the perfect chair, every chair I've tried breaks down. I guess I'm just not willing to spend as much money as it takes to get a good chair. At this point, I'm almost more inclined to find a nice chair from a car at a junkyard and weld on an adjustable base. Seats in cars just don't seem to break down like office chairs do.
Desk:
My preferred desk is one that has a solid rollout tray for they keyboard and mouse. One that can support weight and doesn't move as I use it. It's not adjustable but I find that if the chair is at the right height it works perfectly for me. I like having a large desk that has a surface in front of the keyboard that I can use to jot down notes. The paper from the printer is easily within reach. There is room for books, pictures of my lovely wife and anything else I would want it to hold.
Wrist pads:
I use a gel wrist pad for the keyboard. I don't use anything on the mouse but at one point for a former job I purchased an adaptor that hooked to the back of the mouse with velcro and cradled your hand. So it moved with the mouse. For $30 it was one of the best investments I made.
Glasses:
You can get computer glasses that simply make your eyes work less to see the screen. They're minor magnifiers. I haven't used them but I've considered getting them. Long hours on a CRT can mean fatigued eyes.
Environment:
Silent surroundings. I personally can't say that this works because I work under a lot of noise. Hack job PC case with too many fans, fish tanks, server closet in the next room but still sounds like a shop vac running 24x7. I can only imagine it would be wonderful to have it quiet or silent.
Software:
I'll leave these recommendations up to everyone else. Eclipse seems to me to be the most awesome java IDE but who knows what I haven't seen. I just wish there was a PHP plugin for eclipse that was up to par (PHPEclipse isn't imho).
The man who trades freedom for security does not deserve nor will he ever receive either. - Benjamin Franklin
You have now invented a problem you didn't have (designing the ultimate developer environment) and are wasting your time. Solve the problem of writing code by writing code. As you write code, new problems will come up, solve those. Your chair, your desk, your keyboard, your mouse, your computer, your OS, your editor, your IDE -- none of these matter. Don't make problems you don't need to solve.
Of course none of this matters because you have already failed. Those who can, do. Those who can't, read lots reviews and obsess about the gear.
or an IDE with a vi mode:-)
If you want to get more hours in front of the keyboard, I'd suggest a Mountain Dew drink fountain and a catheter. In fact, if you're into case mods, you could work the catheter into the liquid CPU cooling somehow.
I would recommend something similar to the following:
1: Dell 9100. This will give you things to fool around with (get it with the cheapest dual core CPU so that you can test your apps for SMP problems), you can also try adding sse3 support to your apps, which the slower opterons don't support (the new >=252 ones do).
2: A dell 24" flat panel for the IDE, and a second 20" flat pannel for the app. Run the app on the 20 inch, and walk through the code in the 24". It's awesome when the 24" is swiveled into portrait mode.
3: Buy a $50 iMac G3 on ebay so you can test for endian bugs (they run gentoo just fine).
Aside from that, A confortable key/mouse/chair will do you some good.
BBH
Java for artificial intelligence is a good choice of language.
Open Source Artificial Intelligence requires a clunker old computer that can run Java, JavaScript, Forth and so on -- that's all.
The Stanford AI Lab (SAIL) has a slight advantage with some good beaches nearby.
The MIT AI Lab has a lot of old AI curmudgeons to confab with.
The German AI Institute -- davor schreckt man zurueck.
The Singularity Institute for Artificial Intelligence does the scutwork of informing the world population about what the Mentifex AI Lab is quietly, inexorably doing.
True AI is here.
and a ssh session to the earth simulator.
For $500, it'd better have an integrated toilet. If you're writing for hours at a time, you won't want to be bothered with bodily functions. Auto-flush capabilities would be a plus, because you don't want to stop hacking to tame the smell that would destract from, well, hacking. Hire a nurse, too, so she can feed you Bawls intravenously so you can work FOREVER.
I am interested in building applications that run in multiple environments. If money were no object to me, I'd have the following:
:-).
0) A state-of-the-art generic 1U server running Fedora Core to act as file server, SCM server (either CVS or SVN - haven't decided yet), DNS server, mail server and whatever other server, connected to terrabytes of disks, some in RAID-1 and some in RAID-5.
1) A state-of-the-art Xserve running MacOS X Server (multiple versions in separate bootable partitions)
2) A state-of-the-art generic 1U Xeon-based server running Linux/*BSD (multiple distros in separate bootable partitions)
3) A state-of-the-art generic 1U Xeon-based server running Windows Server (multiple versions in separate bootable partitions)
4) A state-of-the-art generic 1U AMD64-based server running Linux/*BSD/Windows Server (separate bootable partitions)
5) A top-of-the-line PowerMac G5
6) A decked out 17" PowerBook G4
7) A top-of-the-line Pentium 4-based box, running Windows XP Pro SP 2.
8) A top-of-the-line Pentium 4-based box, running Linux/*BSD(multiple distros)
9) A Pentium II with about 128MB of RAM, running Windows 95/98/ME (multiple boot drives)
10) A Pentium with about 32MB of RAM, running Windows 95/98/ME (multiple boot drives)
11) A 486 with about 8MB of RAM, running Windows 3.1/95/98 (multiple boot drives)
12) An iMac G4 with about 256MB of RAM running MacOS X
13) An original iMac with about 128MB of RAM running MacOS 9/MacOS X
14) Some flavor of 4-digit PowerMac running MacOS 8/9
15) Some flavor of 3-digit Macintosh running MacOS 7
Why systems 9 through 15? Because I'm also interested in scalable applications, applications that run equally well (though perhaps with degraded functionality) on low-end systems as well as high-end systems.
You did say money was no object
Don't underestimate the power of The Source
Actually, all types of booze work equally well.
The Relax the Back store has the Zero Gravity lounger series (http://www.relaxtheback.com/) and I'm sure there are worthy competitors. One day I want to get one of these; if they weren't quite so expensive, I'd have gotten one long ago.
What I'd like is to be able to type / compute / watch movies etc. in Astronaut position, and to that end, my ideal (or at least one idealized system) would be a chair in roughly this configuration (leaning back / facing up), with a split keyboard (one part on either side of the body), a trackball mounted in easy reach (or two of them, symmetrically), and a large LCD panel mounted over the body on a support arch.
timothy
jrnl: http://tinyurl.com/c2l8yr / foes: http://tinyurl.com/ckjno5
I have a markerboard at my work desk, and it really helps out. I can keep my tasks updated and visible, map out/visualize more complicated pieces of code, and draw diagrams of systems. No desk is complete without one! :)
I am moving my little office home as DSL reaches my house (after 4 years waiting)
... as sometimes it is a brainstorming device that inspires me in different ways ....
I am planning on using a this strange setup:
2 monitor (later 3) setup mounted on a turnable pipe construction so they can "hang in front of me.
NO DESK. Instead of that one (or two) PC(s) will serve as a tiny desk next to me for gadgets (camera/pda/ipod/cellphone/etc).
The pc(s) will rest on the base that holds a retractable keyboard holder and my trackball. That's right, if you have a trackball you can save a lot of space (besides my pain in my wrist is gone since i use a trackball - I have to leave my wrist for plating paintball and riding offroad to develop my carpel tunnel while having fun.
I will be using a big TV seat with a footrest (not a lazyboy but one with a high seatback, adjustable so I can hold myself (healthier) or lay back (comfortable, when just "spacing out" or surfing/gaming.
Now the PC setup:
One linux PC that does all the network things with one, later 2 monitors, and one windows PC for testing this and that and using some win-only gadgets (like my heart rate monitor, and whatever else)
If you need a multi OS setup I recommend using x2vnc and a vnc server to connect your UN*X setup to windoz... So 1 keyboard 1 mouse/trackball for up to +4 other machines (north south west east)
As for software: you know what you need, i use gnome, a text editor and a browser to work.. but I mostly deal with web/database so i do not need fancy IDE tools.
Notes: have the monitors hanging gives you the opportunity to see below/over (as a projection screen and a TV will be in front of me as well....
also the deskless setup gives you the chance to showe the keyboard and grab a ps2/xbox controller and in case my projector/TV is used by my wife (occupied by channel-e, fashion tv or else (sorry babe)) i can still connect the consoles/DVd player to my monitors using a chep $40 tv tuner card (anyone knows something with COMPONENT input cheap?)
Also you can use a laptop or diskless quiet PC to have net all the time and sit there in case you really need a pc when watching TV (i often have the urge to make a search on stuff i see - imdb what is that song, or url in the news/commercial/ etc)
Ok that got long so just one more thing:
that setup is to save space and not occupy a full room with pcs and desks..
we have a tiny house and i like to sit in the surround spot and in front of the screen whenever possible if i have to sit... aslo for me it is important to have a TV on when working
If a TV and music + space saving is your goal, you might have some useful thoughts... otherwise just put me in your "freaks tab"
cheers
The best chair I've ever sat on for extended coding sessions is the "Freedom Task Chair". It costs an ass-load of money ... more than any chair should ... but I've never lusted after a piece of furniture like I have with this. I used the one with the headrest at my last consulting gig, and I've been seriously considering replacing the piece of crap I sit on at home with one of those beauties. Perfect back support. Perfect padding. Everything about that thing is the best.
MS Visual Studio and .NET/C#
""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?"
Batman's computer
Custom setup since monies no problem. Main computer completely instrumented and connected to an ajacent custom hardware. Real-time (and accurate), forward and backward profiling of all aspects of the code under test. Several layers of custom hardware/software plus the source code. Allows one to get higher-level multiple views of running code. And flip between the static and dynamic. Other tools combine seamslessly with the aformentioned setup to allow one to tackle the other end of progranmming. Mainly the problem extraction and translation. Tight coupling speeds up the refinement process that is coding.
I put a picture window in my office with a view of a hundred miles of the Rocky Mountains. I'd watch them turn red at sunrise and get covered with snow in the winter. Plus occasional tornadic thunderstorms in the summer. Switching to distance vision periodically after staring at a screen relaxes and sooths the eyes.
Well, I have that picture window, so I cant complain. Maybe an ocen-beach view would be nice now and then.
an unlimited supply of Xena tapes
F*ck that, Xena's a Cylon!
If you mod me down, I shall become more powerful than you can possibly imagine.
Emacs isn't perfect/i>
:)
Shame on you! Who let you post on slashdot!
How about a nice rubik's cube and frozen-bubble installed on that pc. Helps relax the mind when you get stuck on some problem.
Unlike Linux, it has a nice, fast GUI interface, and it runs Photoshop and Quicktime.
Unlike Linux, you can actually close the laptop lid and put the thing to sleep.
Unlike Linux and Windows, your iPod will work really well (if you think an iPod works well on Windows, try it on a Mac; not the iPod's fault, just the way Windows handles USB devices).
Unlike Windows, it's much more organized, has better tools, and actually supports UNIX tools (including Apache & PHP) natively (sans-Cygwin).
Unlike a Windows laptop, it's light and has great battery life.
Unlike Windows and Linux, you can sync your Bluetooth phone and PDA over Bluetooth. Imagine that, devices that actually talk to one another!
TextMate supports syntax highlighting and some great customizability for almost every language out there. Comes with lots of ObjectiveC, Ruby, and PHP stuff right out of the box.
Unlink Eclipse, TextMate is actually fast and responsive. (Anyone else ever notice that as Eclipse approaches Idea's level of functionality, it gets slower and slower? I'll stick with Idea for Java development, thank you very much.)
You'll actually start doing something *with* your computer, instead of doing something *to* it, and you'll enjoy your computer again.
P.S. My recommendation is for anyone who doesn't have a problem actually paying a little money for a decent product, nor tied his line to RMS's ship of folly. I figure you get what you pay for.
Does anyone know of a USB keyboard that has low-profile keys like a laptop keyboard? After using a laptop almost exclusively for the last two years, I have a lot of trouble typing on full-size keyboards now. Ideally, I'd like a full 104 key keyboard, but with smaller keys. Failing that, a laptop-sized board with smaller keys would still be better than a normal full size one. Any suggestions?
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
I was cursed with fairly severe carpal tunnel syndrome until I made a posting on Slashdot about it. An anonymous coward referred me to Google "doctor sarno" and "tms". After reading Dr. Sarno's book, my carpal tunnel syndrome was gone in about a week and a half, never to have returned.
Surgery will fix the symptom, but not the root problem. Now I work, live and play without a thought to ergonomic nonsense and have no fear of backpain or wrist pain.
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...
All you need is a ASCII editor (maybe with syntax highlightening if you code syntax sucks) and cmdline and a Makefile.
.NET??? ...amusing.
That is the default setup that you can expect from any reasonable OS that was made by developers for developers and it is the setpu that will work ALWAYS !
Oh.. and forget all C alternatives.. As soon as you've learned how to write code in C you will stop using closed/proprietary languages because...
Professionals use C for everything (here... ultimate wisdom..)
C is portable, fast, very complex and since 35+ years the leading standard for professional OS and APP development.
C is so successful that C++ had to be invented to get more people into OO style C programming. C++ was designed as an syntax aid for people who lacked the skill writing OO in C by disciplined use of structs and func pointers.
C is obviously too complex for the average CS student who crouch from one alternative to the next.
Java?
End of story!
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!
I use a kneeling chair called "Variable" by a company named Stokke. It's excellent for long hours at the computer. I sit on it 8 hours a day. But if you really want a top of the line kneeling chair, they make a chair called "Thatsit" which includes a back rest. I just ordered one of these. The downside is that it cost $900.00. I suggest trying one out before buying if possible.
In fairness, if parent didn't put the disclaimer in his comment (bitching), there would've been 20 people responding that had no idea what he was talking about saying that Windows does so do multi-tasking.
I'm a big tall mofo.
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.
like what can be seen here http://cgi.ebay.com/DELL-SUPER-COMPUTER-EIGHT-20-F LAT-SCREENS_W0QQitemZ5234745742QQcategoryZ51147QQr dZ1QQcmdZViewItem
don't worry that auction is over I'm not seller are in anyway connected with him or her or whatever.
Since it sounds like your starting from scratch, I recommend using the Keel framework to accelerate your development. Its not just another MVC, and I think it kicks Spring's ass. I have to use Spring every day at work, and its a mess.
I'm planning on building my ultimate setup for longer hours coding and hacking
Planning on hacking huh?
If you mean by hacking, hacking into other computers, I think a nice jail cell would make a great "setup" for your activities.
http://www.amazon.com/exec/obidos/tg/detail/-/0471 202843/qid%3D1126827354/sr%3D11-1/ref%3Dsr_11_1/00 2-5752600-6576019?v=glance&s=books
Visual Studio is a small part of Microsoft's larger plan called "software factories".
money is no object you say? *grin*
;-) a dv camera would be good, too. a comfortable roll-y chair that can recline, ms natural keyboard (bonus for wireless / bluetooth), and probably the mighty mouse that apple's so worked up over.
;-)
dual g5 @ 2.7GHz, 4+GB RAM, dual monitors (probably dual 23" cinema displays), fast external storage for backups (a g5 raid w/ fibre channel or an external firewire b raid enclosure).
software wise: matlab with all the relevant toolkits, maple, emacs (there are worse bad habits to have), xcode, office, omnigraffle, virtual pc with whatever the latest visual studio is and intel's c++ compiler, ibm's misc. compilers for power pc, a nice l-shaped desk with at least one and more likely two big whiteboards within easy viewing distance/orientation, appropriate storage for books, network drop + kvm for a laptop, suitable seating and deskspace for at least one other person, lots of power outlets, at least one switch (gige), suitable cable storage, integrated firewire and usb drops + hubs/switches. a couple lab power supplies and at least two of every kind of rca / coax / svideo / etc. cable and converter. plus a east german border patrol guard to severly maim anyone who attempts to walk off with my cables or converters without asking me first
then again, i do slightly different work than you do
You need a couple of the SLOWEST machines your clients are likely to have in production. Remember there are still folks out there running PII400s and Windows 98 on their desks(1). You need to be sure your apps perform well on base hardware, as well as your blisteringly fast build machine.
1) No, not me. I use my PII400 as a file server.
-- "Never underestimate the power of human stupidity." - R.A.H.
I'd advise you to get a running build environment set up using either ant or make. Your goal should be the case where you can do a fresh checkout of your project, type one command, and have the whole system build itself.
An IDE will compile your code, sure, but as a project gets larger and larger you'll find yourself needing to automate other tasks. If you're already comfortable with ant or make then you'll naturally fold these new tasks into your build scripts.
I'd invest more your actual environment more than your integrated development environment.
Having a good chair, proper-height desk, ample and natural lighing, quiet (or music to mute surrounding) will allow you to actually code for long hours.
As far as development, you'll want plenty of pen and paper and a whiteboard. Hash out ideas before even touching your computer.
Eclipse is a good IDE, with Borland, Macromedia, BEA, and others moving to it for their IDE (you may want to verify some of those, basically it's IIRC). I personally prefer NetBeans as my JIDE, but YMMV. Eclipse is a multi-language IDE with plugins for what you're looking for.
Good luck.
From personal experience (I'm a software engineer that works pretty long hours), I've found that it's more important to pick things with the hope of avoiding annoyance, rather than anticipating what I think would be nice in the future.
Things I've discovered:
1) You can't have too much desktop space.
I somehow scored an apple 30" cinema display for my desk at work-- and it's a godsend. I could care less about the coolness factor of it-- it's the resolution that helps me. If you're going to be running multiple terminals, debuggers, etc., then consider 1600x1200 and a 21" monitor a MINIMUM setup-- 1920x1440 on a 24" monitor is MUCH better, and obviously 2560x1600 on a 30" is amazing. You'll laugh when coworkers are hunting around their screens, minimizing window after window, to find something that is obfuscated. This one is often overlooked, but trust me... the added cost of a larger monitor is COMPLETELY worth it!
2) If you have unpadded arm rests, or your arms sit on your desk as your type, your elbows WILL hurt eventually.
Get an office chair with padded arm rests that isn't too soft in the seat or backrest areas-- also, lumbar support is helpful when sitting for a long time.
3) If you're doing development on a large project that is in a compiled language, get a dual CPU box, or use distcc (in the case of C/C++) with multiple machines.
You'll be amazed at how much faster "make -j4" is on a dual-CPU opteron than "make" is on a single-cpu opteron when recompiling your latest code change. This is an often overlooked workstation feature!
4) Get a machine with a fast hard drive
Just like #3 above-- compiling C/C++ projects sucks when you have a slow machine... get a machine with a fast hard drive. Ultra320 SCSI drives are excellent for this sort of thing, but I believe a high-end SATA drive would do well too.
Bottom line is-- you should use whatever editor, GUI tool, debugger, etc. that you know the best, and are most comfortable with. Your setup should allow you to use those same tools more efficiently and comfortably.
I write MacOS X applications these days. I'd want a PowerMac G5 and a 30" Cinema display. I'd want a nice keyboard and a better mouse than Apple makes.
I already use XCode which is a very nice IDE and Obj-C + Cocoa.
Avoid Missing Ball for High Score
Find yourself a keyboard that you like and that will get the job done without distracting you from your task. As to which model, that depends on the person. I must say that it's pretty hard to find a regular layout 104 key keyboard that feels right. Companies don't seem to want to do this anymore. I like the feel of Microsoft keyboards but I'll be damned if they'll put out a simple USB keyboard with that feel.
Lighting...you know, your monitor lights up. Learn to touch-type. Optionally, you may use a candle to provide atmosphere, but this is only effective if it's just a bare, naked candle stuck to wherever you put it with it's own wax.
Keyboard and mouse: We here at Slashdot are united in but one opinion: the Dvorak keyboard is superior. This is so unanimous that it's been noted that discussions of keyboards tend to be the only thing that never triggers a flamewar on Slashdot. As for the mouse, I recommend a trackball, as they are easily manipulated with the feet (always code barefoot), allowing you to keep both hands on the keyboard.
Now for the nitty-gritty hardware and software: Hardware should be anything but your own. You're good enough to engineer software, you're good enough to crack other people's computers and use them, preferably through a blue box soldered to a T-3.
And software: WHAT!?!?! GENTOO!?!?! "!"? You NOOB! Everybody knows that software developed on anything but Windows is subject to viral Open-Sores Licensing and prone to security exploits, besides. What are you, some long-haired communist terrorist-sympathizer? Stick to Windows, preferably Windows 3.1, as you wouldn't want to ostricize anybody who still uses that platform, and it comes with QBasic, which is the only programming language you'll ever need!
... I'd pay someone else to do the work, then go "outside".
LISP Psycho: (knows everyone (is lisp (the ultimate language)))
If price was no object...
Reason is the Path to God - Anon
I recently discovered this, ErgoPod 500, which looks pretty awesome to me.
Along with The Perfect Chair.
Or maybe even, the Stance Angle Chair.
Not having any better idea, I'd probably go for an Alienware Area-51 ALX with NVIDIA SLI.
And given my background, I'd be focusing on revision control software - maybe BitKeeper, and backup of same.
And then of course use a unit testing framework from day one, and buy some books about coding - ranging from PeopleWare to Death March, from Effective C++ and Effective STL to The Dilbert Principle, from Design Patterns and Refactoring to Best Software I...
Oh, and UPS the whole damn thing.
Education is the silver bullet.
If you think you're going to produce better code by splurging $$$ on a shiny desk, maybe you should give up programming.
You seriously code better if you're in pain from carpal tunnel syndrome, cramping hamstrings and back ache? Personally, I code better if I'm comfortable and can focus on the programming task at hand and not my hands at the programming task. I think you'll find most people do.
Cute at it is to pretend to be l33t on Slashdot and be dismissive of anyone asking sensible questions because they're not hardcore enough... Of those who believe they work better in pain, I'm guessing they fall in to two main camps:
Those who are in denial.
Those who may do a lot better if they spent a little time in a professional LA or New York establishment with theme rooms, got it out of their system, and then got back to programming.
If money truly is no object, then HIRE MORE STAFF and LEARN TO DELEGATE. If you can't trust your staff to do the work correctly, then you hired the wrong staff. If you truly are a professional, you'd be able to leave on time and still get the job done.
If you're building a super workstation designed for putting in long hours, I'll wager than anything you're going to write is going to be bug-filled and undocumented. That's hardly professional.
---
ECHELON is a government program to find words like bomb, jihad, plutonium, assassinate, and anarchy.
I would like to suggest getting a desk for writting code for working and things of that nature, and a second desk with a gaming/browsing PC. This will allow you to more easily get into whichever "mode" you would like to be in at the time. I have been using this setup for a while and it works very well.
I work at home (self-employed), and I try not to cut corners. My setup:
chair: Aeron (this is an awesome chair, worth the hype)
desks: Biomorph
computer #1: home-built x86 with gentoo, 21" viewsonic CRT (getting kinda old but still does the job)
computer #2: 17" powerbook
computer #3: 20" iMac
second monitor (used with powerbook): 23" apple cinema
RAM: maxed out on all machines.
lighting: indirect spotlights on the walls. NO direct lighting anywhere near screens. Windows are diffused, but I can still open them for sunlight when needed. Don't underestimate the theraputic power of sunlight, by the way.
Software: can't really help you with software, I don't go anywhere near Java.
Don't be shy about spending $$$. If you *earn* money with your setup, get the best. The best for YOU that is, not just the most expensive. But a lot of good stuff is expensive, no doubt.
1. Get comfortable 2. ??? 3. Profit!
The single most productive computing device you can have (besides a non-cube or home office with a locking door) is a good keyboard. I use a Northgate OmniKey Ultra I have had for something like 13 years and my typing rate is triple what it is on a cheapass Dell OEM kbd. This Northgate keyboard is like an extension of my mind. When you are coding, you don't want to have to think about mechanics.
Oh, and you need a good editor. Unfortunately, there hasn't been one since Brief. (Yeah, I use vi now, I've tried emacs, and everything else is just ewwww.)
And if money is no object, then they do it on a Sun, in Rational Apex.
Please don't mod me down, I feel really strongly about this one.
I'm a software visionary. I don't code.
because real coders write in pseudo-code first, and diagram, and when they code it's on their laptop at the coffee shop down the street.
-- Tigger warning: This post may contain tiggers! --
If you poll us for our ultimate ideas, won't you be building OUR ultimate workstation, etc.? Honestly, if you don't know what your ultimate workplace would be, why even try to build it yet? Just a thought.
i personally use a belkin ergoboard, and a microsoft wireless mouse. I like the split layout and a nice big mouse is easier to grip.
also, definitely invest in a damn good chair and desk. hard to concentrate when you are distracted by being uncomfortable!
as far as the pc, for coding, anything in the upper half of the performance scale will do
the screen is also important, definitely get a 17 or bigger lcd, with a fast refresh. does wonders for your eyes...
for coding, 2 can be good, you can have your code on one, and man pages up on the other...
sometimes, i wonder if i'm the only conservative on teh intarweb. ah well, back to mah hogs and warmongerin'....
Like mine.
My philosophy used to be to use a system with limited resources--15" monitor, 256MB memory, low bandwidth, etc. so I not only know the software will run well for older systems, but also on systems running other things simultaneously and then exceptionally well on higher end systems.
But then I got a job where they forced my to use a big 23" monitor, two G5 processors, and 4gigs of memory... It's hard to turn back.. I find myself much more productive.. So I decided to do my basic development on the high end system and periodically test on another low end system.. A virtual machine might also be a good idea.
These are the productivity advantages:
Big Screen--It's easy to switch between resources such as code documentation, code windows, and a running version, etc.
Big Memory & Fast CPU--Compile times are dramatically faster.
But I also found it true that I find myself writing code that consumes more resources and runs slower on low end systems. Try hard to write for no more than 800x600 displays with 16-bit color. Ensure performance is snappy by timing you code and reducing it purportionally to consider how snappy it would be on a lower end system... And watch how much RAM it is using. I try ensure that files over a certain size are always loaded in parts, not the whole.
Also.. Eclipse is owesome... KDevelop is also very rich, but it just doesn't have the nice easy to use feel that Eclipse has. I have tried many times to get comfortable with KDevelop and then tried Eclipse and was comfortable with it at once.
Matthew C. Tedder
Amen to whiteboards! I don't know what it is about just being able to scrawl away, starting over, changing this, and that, etc etc. Definately seems to be the quickest brainstorming device to this day.
I would also add a 'portable' whiteboard. I got about a dozen thick laminated white sheets in my mobile bag, plus a few markers. These are great for mobile brainstorming sessions, and really show their use when doing data flow or use cases or UI. Sketch out screen mockup on each, and move them around as you play with the flow.
One thing with whiteboards though- get it down digitally sooner rather than later! Keep the whiteboards clean and your ideas searchable in the computer.
J
A setup that I have that has been surprisingly useful is having a wireless mouse and keyboard that I keep on my conference-table-desk. I normally work on the monitor with wired keyboard and trackball in front of me. My desk is L-shaped, so when someone comes in and I need to show them something, I have a second monitor that's on that part of the desk that they can see easily (it usually has just my MP3 player, clock, and GAIM). Better still, I can give them the mouse and keyboard so that they can use my computer without having to give up my seat. It sounds simple, but it's very convenient. Having someone sit at your desk is uncomfortable for everyone. This solves that problem handily.
Get a Datadesk Smartboard in black with an adapter that will work with your favourite kvm switch and you never will have to search for a replacement again until you got some $600 for your datahand ;))
Any sufficiently advanced intelligence is indistinguishable from stupidity.
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.
Dev machine #1: P4-3.8GHz, 64bit one, with 3GB of RAM running about three virtual machines (MS Virtual Server), one SQL, one WinXP to test the UI, one runs apps. OS is W2K3 Enterprise (a requirement for the stuff I develop).
Dev machine #2: Dual Xeon 3.02GHz with 2GB of RAM. No VMs, no nothing, just a subset of apps that can't run on machine #1, and SQL server.
Monitor: Dell 2405FPW - bought with my own money. The one provided to me by the company sucked big hairy balls, and I value my vision.
Keyboard: MS Natural, what else.
Mouse: Logitech TrackMan Marble FX. It's too bad Logitech doesn't make this one anymore. I had severe wrist pain until I switched to it.
Desk - adjustable height. That's about the only important thing.
Chair - a shitty one right now (company won't buy a good one). I'm gonna buy a decent chair for myself, the one I use right now fucks up my back.
OSX, 100% localhost self sufficient development environment and of course Textmate
Really, if you intend to spend MANY hours more than you do now in programming...doesn't matter what OS or compiler, etc.. this is one of natures calls that should be addressed no matter which way your lean. Think about it how many people have coffee heaters & tea makers at their desk & water coolers just round the corner? Stach of cheetos and biscuits in thier drawers? Why bother with all the usual courtship pleasantries when by contracting a professional this requirement can be scheduled at the appropriate times thus allowing you to be every so much more productive. Hmm..that last sentence was almost a double entendre.
Get a Kickass-wide-monitor-laptop.
2 ,a10-c440-p8,00.html/. Also, have around some good CDs for relaxation.
;-). Hope to be able to get that for my employees as well....
Indulge on the best MOBILE processor known to mankind as of this writing (IMHO AMD-Turion, the only MOBILE processor that supports X-86 64). Add RAM as there is no tomorrow (That is, up to the maximum your laptop supports), and make sure that your laptop's chipset supports dual monitor. Get the Wide monitor breed of laptop, as that way you will be able to see all lines with no line breaks.
Buy a flat pannel monitor as your second monitor, a GOOD keyboard http://www.pckeyboard.com/ and a GREAT mouse.
Put your laptop in a stand, so that the LCD is at a convenient eye level, Plug the keyboard, mouse, and second monitor... presto, that is your platform. Get VMware, and your favourite IDE and OS(no comments here)...
The beauty of this setup is that it is a kick-ass platform, and you can take (most of) it with you, if needed.
Other things that help, a HUGE "L" shaped desk, with your machine in the corner of the "L", plenty of shelfs and a black/white board. Also a nice aeron chair http://www.hermanmiller.com/CDA/SSA/Product/0,159
Try to set all this up in a place with a window with some sunlight and a nice view. Work for like 45~90 minutes, stopping every now and the to enjoy the view for 1 minute. After that get up and for 10~20 min, stretch your legs, get some water, go to the bathroom, eat a snack, chat a little, et cetera. Lather, rinse, repeat.
I should know, as I am describing the corporate setting in which I spent my time from Jul 2001 til March 2004, with a very similar setup, and it worked great. And no, it was not a cube, but an office, with a real door, overlooking the Avila mountain. Left as a consultant, and now I am about to begin my MBA. I'll get back to you to tell you how my setting is after I finish my studies. With any luck I'll be able to replicate that setting, but in a corner office
*** Suerte a todos y Feliz dia!
I would have to go with this monitor http://www.hammacher.com/publish/10244.asp?promo=e l_computer#. :\
Sitting in front of one of those, I would just feel like the code was something organic, moving all around pretty much my entire view field. 21 grand is a bit steep though
I use the Eclipse IDe to work in all the languages you just mentioned.. the PHP eclipse plugin now integrates with WTP 0.7 giving CSS, XML , SQL, and etc support..
Fred Grott(aka shareme) http://mobilebytes.wordpress.com
Most important (for me):
An office of any size, dedicated to you and your work, with a door that you can close.
The worst workflow killer to any deep coding is interruptions. You MUST have a way to block out distractions. A person walking into your office for two minutes of chitchat will break your flow and cost you an hour of "in the groove" programming time. Your mind gets into modes, and interruptions break them and it takes real time to return to the same smooth mode.
Even better is if your office has no phone, no Internet connection, and no games. It's amazing what you can do in a single afternoon when you aren't distracted.
Multiple monitors are a must. I would go with three LCDs. Three 30" Apple Cinema or three 23" Apple Cinema displays, depending on how much room you have. Those Apple displays just can't be beat for brightness, contrast, etc. Lcd displays don't kill your eyes like crts do either. I would go with multiple machines. Personally, I'd go with Mac Minis to run the displays, because I hate listening to fan noise, and put my actual dev. machines in a separate room. No matter how you do it, you need a multiprocessor machine with as much ram as you can fit in it. 2 gb minimum. If you can swing it, I'd go with a quad Opteron dual-core system, with 8+ gb of ram. That's what I'm looking to build for my next system. Additionally, either an SATA or SCSI raid array of four drives, RAID 0+1. You don't want to loose your work. I also like to have another machine keeping a mirror of my data to be on the extra-safe side. I personally think Lane chairs are the best. You have to be comfortable if you want to concentrate. I love their highback leather chairs. I'd also get a footrest to go with it. For the desk, I prefer just a sturdy flat table. Nothing fancy necessary, just a table so you have plenty of leg room and can get under to deal with your cabling. Anything beyond that is probably just personal preference. I personally like vim, but I don't want to start a flame war over that. Just remember, you have to be comfortable to be productive.
Apple's cinema displays do appear to rock: I've seen the smaller sizes in real life, and the image quality is stunning. The larger, 30" unit, is no longer Mac-only either, so PC owners can stop lusting. I would have bought one myself, except...
Well, just search the web before you spend too much on one of these. You'll find a lot of people with the same fault, and basically a stonewall/hand-wringing from Apple and their dealerships described in most places. After reading the same horror story for the 20th time, I pretty much decided my money had better uses, no matter how good the display is (when it works).
Of course, if you can source one through a local supplier with a good, long-term warranty thrown in, it's a fantastic bit of kit.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
I'd get one of these.
Sounds to me like you need to get Jon Travolta on the case. His setup was teh 733t.
I wanna be like Hugh Jackman running around swilling my glass of red wine going "Yes! Yes" every time I add something to my 3-D rendered virus software.
That would r0x0r. And I'd get to see Halle Berry's boobies.
I bought an old kindergarten desk at auction, the kind with three drawers on a side, which was about two and half feet off the ground. I liked it because it has a huge surface area on the top, it's about 18 sq. ft.
Then I made friends with the guys at a local woodworking shop, and they helped me pry the legs off of it, and replace them with legs I found in their store that are just the right height for me, according to the ergonomic guidelines of the time. I also shellac'd and varnished the top with about 15 coats of stuff, so that it won't get rings or stains from drinks on it.
I cut some foam to go in one of the drawers on the sitting side of the desk, with cutouts for my tools, and have a CD file in the second one. The third is a junk drawer.
It was about a 2 month project, but totally worth the effort. I've had it for almost 10 years now, and it's the best desk I've ever had. It has tons of space on top, and is the perfect height for me.
I write code as a profession too,
...).
/bin/sh
and my targets include those you mention.
I have assembled my devel machine from scratch:
basically
Intel D925XECV2 based system with a P4/3.4Ghz
,
with 2048 MB Corsair DDR2 Ram,
2 identical SATA seagate barracuda 160 Gb disks, but not in RAID (I still prefer my custom cron jobs that take care of backups. Not all stuff I have on the disk is critical, so I regularily backup only the subdirs I need).
An Nvidia 6600 for OpenGL,
Antec P-160 Midtower case,
Antec Neopower 480 for power,
and then there's the obvious (mouse, keyb, ports, CD, CD/RW,
I have Kernel 2.6.12 in order to support all the hardware. I keep my processor running under linux governor on-demand, so I get very fast speeds during compilation (the real CPU-sucker), while staying at the lowest speeds during IDLE.
Sometimes I switch to other govs/processor speeds using scripts.
OS is a customized Slackware 10.1 GNU/Linux system (thanks Pat).
To write the code I use GNU Emacs, in its console mode (/usr/local/bin/e):
#!
emacs -nw $*
, and for editing purposes only. I use autoconf and automake to streamline the process.
Not to be trolling, but Eclipse is terribly slow (at least for me). I tried it with a Python syntax autocompletion plugin and it took one second to refresh on an Athlon XP 2800+ (which it did every keystroke). It was a new version of Eclipse, too, 5 I think? The most recently released major one, anyway. Has anyone else had this problem/is it normal?
Send email from the afterlife! Write your e-will at Dead Man's Switch.
Chair: Steelcase Leap
IMHO, the Leap is better than the famous Herman Miller Aeron for most purposes. It may not be as sexy, but it is more adjustable and more comfortable in long term use. In particular, the lumbar support of the Aeron is poorly thought out and uncomfortable, whereas the Leap has extremely adjustable and well designed lower back support. The one advantage of the Aeron is the breathable mesh. Whether this is important or not depends on the air conditioning in your office, and maybe whether you are prone to a sweaty ass.
You can buy the Leap chair online, but I recommend finding a local dealer. You get to sit in the chair, you get more options, more color and fabric choices, and to my suprise it was actually cheaper (at OneWorkplace in Milpitas, CA).
Desk: Ikea Jerker
The Jerker is a cheap ripoff of the fantastically expensive AnthroBench style technical workbenches. Either one provides flexible, configurable workspaces with space for everything you need in easy reach. They also let you choose your desk height for better ergonomics, even standing height if that's what you prefer. If you're spending your own money, the Jerker I believe has a much better price/performance ratio. It's cheap but well designed and well built. It holds up to office use. Of course we'll see what I think after the next earthquake.
Check this page out to see how various people have pimped out their Jerker desks:
http://adam.pra.to/content/jerker/
Martin
Don't test your software on a computer that's better than your worst user's system.
That will prevent unpleasant surprises later when your first install runs like crap on a normal PC.
Maybe you can justify a fast PC for development since "modern" IDEs like Visual Studio or Eclipse have outrageous requirements.
But, don't count on your users sharing your expensive tastes.
Oh, also, try not to have kids. They always want to play with the computer.
-- This sig is Free as in Beer. Why is that bad?
Which, if you use the monitor a lot, can be just as bad: neck pains start creeping in after a while, IME.
What we've found at my office, where several of the guys have a second monitor, is that as long as you use one monitor for your main stuff and keep the others for things like toolbars and background tasks, it's fine (but people need to turn their head rather than glance, as you say).
If you're going to be using multiple monitors with "equal weighting" in which one you want to be using, I think you really need an arc-shaped work area and a high quality rotating chair. You also need some means of getting the input devices to be in the right place for each monitor, either by having a separate keyboard and mouse in front of each main screen, or by having a way of rotating them with the chair so they're always in a natural, centred position for your hand and arm position. People do make supremo workstations for this sort of stuff; there was a great link to one such company posted on Slashdot in a previous discussion a few weeks ago, but now I can't find it, so if anyone remembers the one I mean, please post it!
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
To be at my full potential I need the following
1) a huge hard drive based mp3 player
2) Really comfortable noise cancelling head phones
3) A multi monitor setup. I have two but I've started thinking about a third.
4) A lot of RAM. I'd say, a minimum of 1GB
If it was christmas I'd make sure that I got a dual core CPU for the responsiveness.
I also love having a white board. But it is only necessary for communication. If I work alone I don't need it.
The Internet is full. Go Away!!!
I find that light wood colors reduce my stress,
2 00508.ars/4
and it is good to keep your field of vision as clear as possible. You want to reduce distractions and keep the mood light and serene.
I put in laminate wood flooring (easier to clean) with a light coloured massive L-shaped laminate desk with hutch, and real wooden horizontal blinds (all similarly light woods)
The desk lets me hide a couple of workstations in it (out of sight, out of mind - and less noise too) and lets me hold a massive glass monitor (FP1370) on the desk, with an alternate flat panel monitor on the library return. The Belkin KVM, powerbar and all wiring are all hidden underneath.
The old soapbar style MS mouse (with gel pad and mouse bungee) tucks away with the keyboard under the desk on a sliding shelf/tray.
The Klipsch satellite speakers are hidden away in various spaces and an electric coffee warmer pad, a phone, a webcam and a microphone is on the desk.
The 4x6 whiteboard is on the back wall so I have to swivel my mesh backed ergonomic chair to see it. The floor is protected with a clear mat against the chair's plastic casters.
Visitors seat themselves in a drafting chair (the kibitzing seat) just high enough to have difficulty reaching for the keyboard or my mouse. After all, a computer is more personal than underwear (no touching allowed).
The source control repository, database, NAS (get a big ATA one), firewall/router, LAN switch and web servers are all hidden away downstairs in the basement at a secondary L-shaped desk. I normally leave tbe repository and database servers off, but I can remote boot and VNC into them as needed. Any other funky hardware, old software, or odd parts need to hide in the basement office/server room too.
For software, I use Subversion for a repository, ANT for build scripts (regardless of programming target), and CodeWright for an editor (no longer commercially available - get SlickEdit instead). If I have to use an IDE, I use Eclipse, but usually it is more trouble than its worth. Hopefully it will be good enough someday soon.
For hardware, see the ARS system guide.
http://arstechnica.com/guides/buyer/system-guide-
Get the God box for your primary workstation.
The secondary workstation should have removable drives so you can boot multiple OSes (screw bootloaders) and swap drives around.
All workstations and servers should be dual CPU.
Web servers should be as low power as possible.
Repository and database servers should have RAID for their storage drives (back them up to the NAS) Database server should have SCSI drives and at least 2GB RAM. All other boxes are OK with ATA or SATA drives and at least 1GB RAM.
Make sure you have one of those DVD/CD multiformat burner thingies (to cut releases), and a jump drive (to carry demo/test software around)
If you are serious about software, you will also have plenty of books and quite a few binders. Either get a separate room for them (a study) or put bookcases in the basement, or both (I had to do both) Disk media need to be stored in binders, towers or whatever, but keep a ready rack in your primary office (it's part of my desk hutch)
For the ultimate in cross-platform coding, a single machine will be insufficient. I would suggest the use of three bigass LCD's running off your three target platforms of choice (eg. Windows, Mac(PPC), Linux(x86)) using something like Synergy as a network-based KVM (without the Video of course). There is nothing more handy than being able to test code on another platform by simply moving ones mouse to the left or right. KVM's just never really did it for me. It was far too much effort to have to turn a knob on a little box, and without multimon, you can't see what's going on with the other machines, either. As a side benefit it gives the feel of multimon with the practicality of running programs from a number of different platforms. For extra points, add more machines and monitors, or a dual-head configuration to you favorite platform.
- A basement. This is important.
- A Sun V210 packed with as much disk and RAM and CPU that I could get my grubby little hands on. These are noisy bastards, so we put it in the basement. (Told you the basement was important.)
- Solaris 10. (We aren't playing games, right?)
- Sun Ray Server Software.
- Three Sun Ray 180 units tied together as a multi-head group. These things are not silent, but they sure are quiet. Plus, you can power them off and your session stays intact on the server.
- A comfortable desk to hold said Sun Rays.
- A comfortable chair to sit on.
- I prefer a second-story (or, preferably higher) window so I can see the sky, but your mileage may vary.
- I also agree with the contributer above who recommended a cat, for many of the same reasons.
- Either good speakers to play your MP3s, or a good sound system to play your CDs or whatever.
- A different room to keep the TV, kids, and/or significant other in.
- A comfortable headset for your phone.
- A ringer-off button on your phone.
- Whatever open-source tools wet your whistle -- I'm of the vim persuasion myself.
I've got a couple of Sun Rays around the house right now, and while the hot-desking is nice and the fact that your sessions can survive the end unit being disconnected, what really sells it for me is the fact that the unit is as close to silent as makes no difference. This means you can have as mean, loud, hot computer as you like -- and you don't have to listen to it. True, gamers won't like them, but that isn't who they are sold to.I picked the V210 because I've got essentially exclusive use of a V240 at the office right now (pilot project, don't ya know) and it runs great. But a V240 is excessive for just me, so I'd settle for a V210 fully loaded.
I picked Solaris 10 because it has some nice OS features. Desktop experiences are a dime a dozen to me, I find BlastWave provides an adequate Gnome, but olvwm works for me in a pinch.
Anyways, that was fun.
you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
It sounds weird but some of the best brainstorming sessions I've had was with a few people, a bunch of beer and a giant white board. Now for even weirder preferences. Have the ability for mutliple keyboard and mice connected to one computer and use an LCD projector as the monitor. That way people can demonstrate what they are talking about quickly and take turns prototyping with peer review. The last strange preference is that I have a KVM hooked up to multiple computers, but the KVM is on the floor and I use it as a foot pedal to switch. It's really convenient.
...and what a long, strange trip it's been.
;). i do about half my java development on mac now. get fink if you do.
first thing: make sure your setup isn't killing you. you do not want to spend the rest of your life with wrist splints and dislocated disks in your spine. get an expensive chair, like an aeron or something else in that price range. everyone likes something a bit different. aerons work well for me, but you really won't know what's best until you try it out. specialty stores like the healthy back usually have a return or exchange policy--use it.
get an ergonomic keyboard, like the split microsoft keyboard. make sure you don't have to use too much force on the keys. there are some wild keyboard designs out there if you really want to go for it, but chances are the simple ergonomic split keyboard will suffice.
don't use a mouse. in particular, don't use a mouse with a scroll wheel. get a trackball, one that fits comfortably in your hand. you shouldn't have to reach for the buttons. again, everyone's different. return policies are good.
get a flat panel monitor. i'm on a mac cinema display now, and it's definitely the best flat panel i've used personally. samsungs are also pretty good. get something with a high contrast ratio.
make sure your desk/chair combination is at the right height. you should be able to place your fingers on the keyboard while keeping your elbows at 90 degrees and your feet flat on the floor.
if you can't get natural lighting, get a light like the 'eclipse' light from thinkgeek.
on the technical side: if you're writing a lot of java, most people seem to prefer intellij or eclipse. intellij costs; eclipse as you know is free. i know a number of devs who swear by intellij. personally i use a heavily-customized vim, but few people are willing to put in the effort there (with good reason). vim is like the jack-of-all-trades. eclipse somewhat less so. intellij is made for java, but they're getting more languages in now. emacs is also an option.
as for OS, it depends on you. if you go windows, be sure to install cygwin. i've found gentoo to make a reliable dev machine. it's easy to keep up to date with all your tools and the mailing lists and forums are full of intelligent people who for the most part aren't interested in flamewars. i prefer redhat for production though, because of the support, and discrepancies between dev and production environments can of course cause bugs. if you're doing java and php, mac os is also an option. it's not as easily configurable as linux, but makes up for it in flawlessness (well, mostly
good luck.
Their parents basement.
Steve's Computer Service, Hobbs, NM
I've been sitting and coding for so many years now, and despite consultations from ergonomic experts and an osteopath, I still haven't been able to find a furniture arrangement that's good for my back.
Once I get around to it I'll be buying a dentist's chair. The keyboard and trackball can be mounted to a tilted swivel tray, and a pair of LCDs a bit higher up, or I'll go to goggles. Finally, there will be a vibration mat placed along the length of it to keep my muscles stimulated.
It'll be slow getting in and out, but I believe it'll be worth it. Until I have to move offices.
How Politicians Lie: http://www.factcheck.org/
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.
As easy as that. Phone, Telly, possibly Internet. No distractions, no disturbance. Results in plenty of Tom-DeMarco-approved "flow". If you feel you can't, look for your own problems first. Physically, sit as you please without getting achy and supply yourself with lots of water or green tea (well, yuk, or so, black one does too ;). Beer & Wine in the evening set you back with think-jobs, but don't harm when you're doing gruntwork. Once able to work and think cleanly, hardware won't matter. I hack on a 5+ year old 400 MHz Powerbook G3 and leave the customer-provided dual 2GHz G5 to collect dust. Easier to carry, helps with the power bill and keeps check on the resources, too. If you feel you need LAN party competition gear to code, go back to your CS lectures and brush up on the basics.
I've been saving up for the 2405FPW 24" for a while. It keeps dropping in price and you can find it on ebay now for ~$700. If we're talking about getting a good display there's no way anything can beat the 2405FPW. It's the same technology as the 2005 but bigger.
World Changing - News for Humans, Stuff about our planet
Anyone know an easy way to do it? And, especially, a way to jump to matching tag (like with "%"). Also, collapsing would be good.
I run my application on the left screen, my editor (two files side-by-side) on the main screen, and a bunch of misc windows on the right screen (watches, stack, documentation, etc). I like it.
I think I may have made the wrong choice though. This setup is so wide that turning my head from one screen to another has become a usability issue. The aspect ratio of the whole system doesn't match the aspect ratio of my eyes, and I think that's less than ideal.
So, the next time I upgrade my display I will probably opt for one huge screen rather than multiple merely-large screens.
That said, I'm not really complaining... I really like the setup I have. I've been using multiple monitors since that meant an 80x25 monochrome display on an ISA MDA card, and in general I think they're great. Debugging on a single monitor has always been an annoyance in the past. But from where I sit, the grass looks just a little greener on the Apple Cinema side.
Build stuff. Stuff that walks, stuff that rolls, whatever.
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.
If you need a server, fine. Otherwise get yourself a wireless laptop with a bright screen and a comfy chaise lounge. Go outside. The fresh air will do you good.
People who think they know everything really piss off those of us that actually do.
Many people here have talken about multiple monitors but nor about their orientation. I find that vertical real estate on my screen is more productive than horizontal space. I would go so far as to say that 4x4 is an ideal monitor displacement. It would be so nice to get them "border free" as well
"The first thing to do when you find yourself in a hole is stop digging."
Here is my guess at the point you were trying to make...
"It's better to be uncomfortable at a desk so you won't be tempted to stay there for a long time. Instead you will get outside more and spend more time being social."
That almost sounds right except for:
1) The poster said he is a "professional software engineer". Most likely, he has no choice but to sit at a desk. If he was some Everquest addict then you might have a point.
2) Sitting comfortable is healthy. Back misalignment and carpal tunnel syndrome is unhealthy. That is why when you are uncomfortable you feel nociception. Nociception is your body's way of alerting you to physiological damage.
Come on, they'd be better than the crappy "Ask Slashdot"s tonite!
ACHTUNG! Das computermachine ist nicht fuer gefingerpoken und mittengrabben. Ist nicht fuer gewerken bei das dumpkopfen.
> where does that greedy matching operator go. I'll see you tomorrow.
.* are greedy by default, unless you turn them into their non-greedy forms (in my example case, .*? is the non-greedy form).
The ? makes them *non* greedy. Things like
I have done lots of good coding on airline flights - no phone calls, no people dropping in, no Slashdot to read. Some keys to success:
1. Fly American Airlines. They have power ports in coach as well as 1st class. (They are also the only major airline that has not gone bankrupt - yet).
2. On a Super 80 (that's a big version of a DC9), get seat 21F. That is an exit row window seat that reclines. Some people like 21D (aisle), which is OK too. Ideally, the middle seat next to you is empty. (If you have a Gold card or above, you can reserve exit row in advance.) The exit rows on these planes have more legroom than 1st class. Go for an upgrade only if the middle seat is likely to be filled.
3. Bring food and drink.
4. Bring a power adapter for 12V. Different vendors sell these. On American, the plug is the same as for a cigarette lighter in a car.
5. (Optional) Select a flight that is likely to be delayed a few hours, say, for passing T'storms. This gives you more time for coding without having to worry about the seat belt sign. [Obviously not recommended if you have to make a connection.]
Search for IDE's based on the Scintilla control. It supports syntax highlighting and code folding for numerous languages (more than 70 IIRC), and is cross-platform. the wxWiki has some info on IDE's, too.
Actually though, I would say the most important thing in any setup is something that costs 0$: correctly adjusting the height of your chair, screen and keyboard. Your feet should be firmly on the floor, you should be looking down very slightly at the screen when your back is straight, and your elbows should be floating at a perfect 90-degree angle. Then you've got real comfort, and all it takes is a little adjustment.
At least one huge monitor. A second monitor small or large can help but most of my attention is focused on one monitor and I want that one to be big.
I would use some form of UNIX: i.e. Linux/OS X/ Solaris. Of these OS X is my pick because it combines the best of several worlds. In any case I just like UNIX because it was built by programmers for programmers and it shows when you get down to work with an open-ended attitude towards your final solution.
Get the fastest single core processor that you can find. If reliability is a concern get Opteron or Xeon. The other processors are gaming processors, maybe faster but less reliable.
If you want a second processor then just get a system with two fast single core processors. The individual cores of a dual core processor are slower. In any case it is doubtful that your build process will be distributed or threaded so that the second processor is for farting around or staring slack-jawed at your code while you wait for the last build to finish.
A good thing to do with your second processor is to run iTunes. If you are using Linux then get an MP3 player that doubles as disk storage. If you periodically back your work up to your MP3 player and your overheated cpu burns your house down when you go out for a burger then you'll still have your work on because you always wear your tunes when you go out for a burger.
Box/LCD 1:
AMD64 platform, VMWare/VirtualPC
Windows 2003 (VirtualPC) or Linux (VMware) host OS, your call
VM'd WinXP, Win98 for testing
VM'd Redhat, Suse and Debian at minimum (probably more needed for testing, !@#$% fork-happy Linux folks )
Box/LCD 2:
Apple G5
OS X Tiger
Xcode
Remember the golden rule, all GUI development MUST be native, or the users will think something is "wrong" with it.
The above is basicly my setup, but I use an iBook G4 on the Apple side.
- Adam L. Beberg - The Cosm Project - http://www.mithral.com/
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
The last paragraph was not intended to be a slam on Linux. If you are using OS X then use an iPod. If you are using Solaris then I don't know the options for MP3 players.
Cheers, A.
ps: It would be good if it tested guis as well.
.. get a Hardware Lisp Machine.
:-)
I got a Xerox 1108 in 1983 - a superb development system.
At the present time, I would suggest flexibility. For me, this means having a server were all of my design artifacts, code, etc. are under source code control. Then, no matter if I need to use a Mac, Linux, or Windows box, I can get the environment that I need almost instantly.
If you do a lot of Java work, think about investing in IntelliJ - it is better IMO than Eclipse and NetBeans.
For Lisp, currently I like the Linux-SLIME-Emacs-SBCL combination (and free!), although if you want to deliver small fast executables, Lispworks is great.
VisualWorks Smalltalk has a good deal for small developers: for $500/year you get all their development tools (great web services support, etc.) and the $500/year is a prepayment on royalties. It is an awesome environment but I find Smalltalk a hard sell (everyone wants their stuff delivered in Java).
For Ruby, I think that Eclipse + the Ruby plugin is a pretty good combination.
I live about 100 feet from a trail head, leading to wilderness area: that is the best "add on" for my coding environment because I like to take lots of work breaks. For a physical trainer, I went top dollar: bought an Italian Greyhound puppy who lets me know when I have been working too much and not walking him enough. We also have a baby parrot who hangs out a lot with me (shoulder, back of chair, or top of flatsceen monitor) - he is very little trouble and adds something nice to my work environment.
I work out of a home office. My wife insisted that I get good office furniture (great orthopedic chair, nice teak desk, etc.)
Good food: I like to take a lot of food breaks while I work. My wife and I have a fine recipes web portal (CJsKitchen.com) and one of us is almost always making something tasty because that is our main hobby. Good nutrition and exercise are important for coding or any other intellectual activities!
My last bit of advice: enjoy coding
Well let start with the basics, the computer(s). I would sugest that you get a separate system for each platform you want to develop for, don't get the latest and greatest system unless you are going to make a program that will take years to develop and by the time it is done the best model will become the standard. But go with the Normal Systems, For PCs 3-3.5 ghz P4 and a comparable AMD is more then enough. a new iMac G5 and a Sun Blade 150. This way you have systems that support most of the currently living platforms. Go with the medium video cards but try to diversify especially on your PCs.
Next Operating systems, Well there is Windows 2000, XP, 2003, and long^H^H^H^HVista when it comes out. 2 Different Linux Distributions like Red Hat/Fidora, and Debein or Gentoo. Free/Open/Net BSD, OS X 10.2-10.4, Solaris 8,9,10 for Sparc and Intel. On the Intel systems I would strongly suggest VMWare so you can have many test environments and different OS.
Next Displays The bigger the Better, the more screens the better. The more text you can fit on your screen the easier it will be for you to view code even ones that are well nested. Also get ones with clean display LCD are good, with anti glare.
Next Keyboard, Get a keyboard that you really like that feels good to you and offer the appropriate feedback. While you do a lot of typing I have rarely seen a programmer write programs like writing a paper with constant typing. So get what you feel best with.
Mouse, a 3 button, 2 button and scroll wheel, Mighty Mouse. Don't try to use anything with to much features as a programmer you will design your program to work with your interface if you have a too complex mouse your application my not work well with normal people.
KVM Switch. You don't want to be cluttered so a good kvm switch that allows you to swich platforms and use you favorite keyboard and mouse.
A stable File Server. You will probably like having a good file server with a large drive, mirrored! and Gigabit Networking so you are not copying files all day.
A Good Color Laser printer. Samsung has a good one for $500 bucks but if you are an HP Guy or a Xerox guy, Laser Printers while cost more then an ink jet, offer lower cost of ownership, You want color so when you print your code with syntax coloring your printed code is in color and helps you track threw it easer.
Large and adjustable desk. You want to adjust the angle of your keyboard many times and large enough to have many papers on it so you can track information.
White Board, whiteboards are great for short term flow charts, and working threw problems, or having a to do list. A big one adjusted so you can access it threw your chair.
Chair. The perfect chair is near impossible I would like to have 3. First the kneeling chairs for good posture (Perfect for deadline coding), second a good executive chair (For the reading and analyzing paperwork, and documenting code ) , then an easy chair (For working out problems, and waiting for long compiles)
Lighting: Standard Florence ceiling lights (Well maintained with no flicker), A large window for natural sunlight, A project spot light, and a spot light facing upwards. The Florence light combined with large window helps brighten up your day and the Florence light reduces the shadows from the window, but if it is dark or cloudy outside then use the spotlight faced upwards for mood lighting, and use the spotlight facing down to help you focus on what you need to do.
All the phones in the office should not ring loudly or play anything extremely distraction. a low pitch phones work best.
Privacy, if you in your office that is the best if not go with tall cubical wall and let them have 4 corners (3 with a window side) and a door, at least for me I like to take 10 minute breaks every couple of hours and I prefer to lie back in my chair and rest my eyes, and when I am in a good private environment I can avoid people distracting me saying that I am sleeping on the job.
Proper Temperature. Not to hot where you are sticky and uncomfo
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
You do not have to spend a lot of money for a good setup. I spend about 12 hours a day mostly porting and reading newspapers in several languages for relaxation and information. For programming I use a whole bunch of white background xterms (tiled and overlapped) on 21 inch monitors. I got two used SGI monsters for $150.- apiece (used). After learing the advantage of multiprocessors on a dual MAC G4 (800 MHz) (used for $800.-); but the 200 GByte disk is slow for compiling large packages. Therefore, my development machine now is a Poweredge server with four 550 MHz pentium III, 2 Gbyte error correcting memory and 6 SCSI 36 GByte disks. I can work on two packages at the same time without feeling constrained (again $800.- used) On the same 100 Mbit network are another three single CPU pentium III, two Pentium II (little used) an UltraSparc 5, a i486 Firewall and a Lasejet 4MV (16 pages per minute (11x17 in capability)($400.- used ). Keyboards and Monitors are switchable. After playing aroud with different chairs I am back on straight dining room chair; the light is daylight or indirect fluorescent.
HermanCarl
Did someone mention professional and PHP in the same paragraph? Hahahaha
'Same speed C but faster'
(runs and hides)
James P. Barrett
As the office geek when it comes to new VS versions and customising the set-up, I'm happy to offer such feedback as I can. In fact, I had a very interesting e-mail discussion mail with Dan Moseley a while back, after we "met" here on Slashdot. We talked about various UI possibilities in some detail, particularly about visualising data in the debugger. I'm very pleased to see that VS 2005 supports several improvements along the lines I (and presumably other people) suggested, and the UI bugs I mentioned from older versions seem to be fixed in the 2005 beta.
It's a real shame you guys insist on messing up your feedback centre with Passport, though. I'm very picky about giving out personal information on-line, and Passport's reputation is... less than favourable... so there's no way you'll ever get me to use that site. :-( Give it a simple, privacy-friendly log-in like everyone else on the web, and I'll be happy to contribute.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Okay: first of all, if you're not willing to spend probably around $20,000, don't bother with this one.
OK: So buy 3 21" and 2 19" monitors (LCD). Set the 19" ones on top of the 21" ones (almost like a pyramid). Angle the side 21"'s like 20-30 degrees in (or whatever suits you), and the 19"'s half of that. Make sure that you're looking down like 5 degrees for the 21" ones.
Hook that setup to an Athlon XP with at least 2 GB of RAM and PCI Express. Try to get all five in that machine (or if not, hook leave one of the bottom side ones, I've got a plan for that one too).
Get Gigabit ethernet and one or two of those 2.5 TB drives. Make sure that that drive is on a SEPERATE network from you home one.
Next, 2 300GB SATA drives in software (or hardware) RAID. Striped with no redundancy. This is for often-accessed stuff.
Get a 5.1 (or 7.1) surround sound system if you want to do some gaming or music/video editing.
You'll want whatever keyboard you're confy with. For the mouse, I'd get one of those semi-wireless optical ones that the wire's on the mousepad (you know, so you don't ned to charge it), or a trackball. Make sure you get a wrist pad if you like it (I like it for the mouse, not the keyboard).
If you can, put it in a room without windows. Otherwise, put it in front of the windows. For light, get some soft lamps and put them next to the monitors (but not between them). Put 40 watt bulbs in there. Get some 70 watt bulbs for lights behind you. Put them to either side.
Face the Right lamp towards the crack between the middle and right monitor, and the left the opposite way. The dim lamps should light up every direction (make sure to get nice geeky lamp shades).
Your chair should be a REALLY comfy one. Go around to anywhere you know that sells office chairs and just try them out. Find the most comfortable one for typing (perhaps take your laptop along and place it on a desk in front of you). Oh yeah. get a desk that raises and lowers and has a keyboard attachment that also tilts.
You'll want your 'net connection in that room and your router to go from there (if possible).
Oh and your speakers. on the outsides of the monitors. If you get a subwoofer, put it at your feet. they make great foot massagers (as seen in UserFriendly, but is true).
Put Gentoo on this machine. And you might want to try Kdevelop. KDevelop and Eclipse are my favorite IDEs.
Finally, get an iBook. Put that on whihever side os opposite the mouse. IMHO, that works better.
Don't get a KVM switch for the iBook. If you want a seperate keyboard and mouse for it, get 2 of each. Do, however, plug you iBook into your sound system (or get 2). If you get 2 sound systems, put the iBook on the better one and use that for music. Store your music on your network drives. Only connect your iBook and this Desktop to the external drives. If you want another machine to access them, either go thru a router to it (but make it ONLY access the network drives that way and the two computers thru another network if possible) or have your desktop act router to other machines. I'd suggest the second. Your desktop and iBook are ok talking to each other thru the gigabit. So your network should be as follows:
ext. hard drive
|
iBook-switch-desktop
| | |
---router---
|
rest of network/internet
The iBook-router connection is optional
This should limit the gigabit to only stuff that's talking to one of those 3 machines, and maybe not even then (I'm not sure how the switches work).
Oh, and make sure you get video cards with lots of RAM.
Please note: I'm not a professional at this in ANY way. I just think that's the setup I'd get.
Any suggestions/questions/comments are welcome (except trolls).
I really wanted to change my sig to something witty, but all I could come up with is this.
You want the ultimate developer rig? Get a projector (I use the $1000, 1280x720 PLV-Z2), an easy chair (I'm actually using my couch and put my feet up on the coffee table, but I plan to upgrade), and a wireless mouse and keyboard. 30 square feet of Emacs is a beautiful thing - no more eyestrain for me. I picked up the easy-chair thing from a buddhist / cab driver / software engineer friend in Seattle.
Office furniture is for suits trying to impress clients with their professionalism. If you don't sit in an office chair when you're watching football, how would it suddenly become a good thing when you're coding?
Stop-Prism.org: Opt Out of Surveillance
Single most important thing is to have enough displays. I can't imagine working in less than two displays. One display for code the other to monitor the code's results or read documentation.
.5 TB storage, DVD recorder, Dual headed Nvida card, GigE on the desktop, Dual flat panels, and a keyboard arm.
Seriously. Two displays. Code on the left, output on the right. Code left, query results right. Code left, webpage right. Code left, compiler and tests right. You see bugs on the right and make bug fixes on the left screen. You make bugs on the left screen and see them on the right screen.
My box is a linux box with VMware for those time you have to have windows or need to test alternate server configurations. I also have a personal copy of crossover office just so I can run Outlook and MSIE in KDE without booting the VMware machine. There are times in the development cycle when I never use VMware but I have to have Outlook everyday.
Otherwise I think I have a great setup Dual Xeons (shows 4 penguins/cpus at boot), a Gig of RAM,
If you've never used a Mouse/Keyboard arm get one. If your boss won't buy it for you get it for yourself. They run $250 but are worth every penny. The ability to float your keyboard to any position from sitting to standing is absolutely life-changing.
Only time in my life that my work computer has been far better than my home computers. Make me spend lots of time in the office. I bet that's why they buy me all these toys.
[signature]
Nerve conduction studies can be a very clear indication of nerve damage.
Now, I was told I had Carpal Tunnel Syndrome and it turned out to just be something more like Tennis Elbow, so I'm a good example of what Dr. Sarno is saying. It's easy to think that any minor pain might be a permanent thing, worry at it, and prolong it. My problems were just a straightforward muscular injury, nothing insidious.
That doesn't mean that it isn't possible to damage your nerves by wearing through the myelin sheath or tightening the fascia around them too much. To suggest that nerves never get damaged by wear is prima facie ridiculous. It's not like they're sheathed in Kevlar.
Dr. Sarno gets a lot of respect because telling the people who are faking it that the syndromes are fake solves their problem. So does a faith preacher telling a hypochondriac that God has healed them.
Hand surgeons are not quacks. They test very carefully before they do surgery to verify the nerve damage in an objective way. The surgery helps the genuine cases. They can't *afford* to just start cutting into the hand of someone who doesn't have a well-documented nerve degradation because hand surgery is dangerous. If the surgery permanently numbs the hand, as it sometimes does, there's a malpractice suit waiting in the wings.
The hypochondriacs are generally turned down for surgery and spend the next five years complaining about how western medicine is a crock, then try acupuncture and bore everyone about how that helped. Or they find a Dr. Sarno.
1.) A fast box. Dual Opteron, even Quad, tons of RAM: 8GB; fast disks: SCSI.
2.) Input devices:
Your most comfortable keyboard. For me it's one of these nice jobs from pckeyboard.com with buckling springs.
A very nice mouse: No sense losing a seconds time over a low sensitivity mouse; or one with so many buttons you can't help but accidentally click.
3.) Screens. LCD's suck. You'll waste time trying to get the fonts looking good (unless you get a Mac, or a presetup Windows box). Just get a CRT. Actually, get two CRT's.
4.) Full rebuilds should be fast. Get a couple of extra machines and cross compile.
5.) You shouldn't worry about backups. Have a backup server, rsync every 10 minutes, or an hour if you're trusting.
6.) If it's not Unix, you're not coding. You cannot code without a good CLI. There is no graphical replacement. If you need Windows, fine. Install something to get yourself a REAL shell.
I personally have spent many hours sitting in an Aeron chair since I bought mine in 1996. Yesterday, I calculated my hourly cost of sitting this chair and it came out to $0.044 USD per hour. Very afforable in my opinion.
My partner gave hers up after 5 years and got a Freedom chair which is way more comfortable.
Phone:
Two-line corded with a headset.
See Plantronics for a wide selection of headsets.
,dave
Dave Barnes 9 breweries within walking distance of my house
Recommended by a name we all trust
You don't need much; come on, this is open source. It runs on old crap you find in a dumpster. Once you got Gentoo compiled anything else is cake. So, if you can run it - you are already on the system you need.
1. Get yourself a Kinesis keyboard, just the standard model is fine. Learning to use it will be annoying in the short run. Runs a few hundred bucks retail. A bargain at 10x the price. It saved my career and I swear by it. Microsoft "natural" keyboard is a waste of time and a danger to your health. As is the mouse. Speaking of which...
2. Ditch the mouse. Worst computer invention ever. The static tension in your bent wrist will tear your tendons and nerve sheaths to pieces. Velcro a trackball to the center space of your new Kinesis keyboard and use it ambidexterously to manipulate your pointer when keystrokes won't do.
3. Get an adjustable keyboard tray, one that you can tilt down and away from you (not towards you).
4. Get a clock, or run something on your box with a timer. Work only 50 min. out of every hour. Use that 10 min to walk around, relax your hands, etc.
5. Someone mentioned a Samsung 213T. I love mine.
6. Hardware is only as good as the human using it. Limit the number of contiguous hours you work and try to work in the very early morning hours when it's cool, quiet and no distractions. I've gotten more done from 4:30 to 9am than a whole month of 9-5.
7. Life is short. You're wasting it if you're not having fun, regardless of what you do.
A good library of books on whatever languages/systems you program with.
At least two computers, one to code the other as a reference and/or test system (a third as a test server wouldn't hurt)
A couple displays on the main console would be cool.
A kick-butt audio system (DVDs are too distracting), Pick your tunes (80s is what I code to a lot).
Some sort of excersise center or area (to do something healthy when you can't stand looking at the screen.)
Good printer (or both an inkjet and laser)
Whiteboard - never really used one but I've always wanted to have one to chart out some project to look at when I'm coding on it.
Projector (if money is money no object, just gotta have one).
A nerby place to eat and veg a little. (when you need to get away from 'your world' into the 'real world' once in a while. Such as a small cafe or diner (I like the cushy booths with chrome and linoleum tables.. with a jukebox!)
Some sort of project managment/tracking/note taking/wiki thing so you can keep track of all those great ideas and progress I do.
Some code monkey assistant do do the crap work like building/debuging entry screens, etc. (and to clean up the workspace becuase of all the discarded printouts and buried books all over the place)
"Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
I got my chair at http://www.championseating.com/ after I saw their exhibit at an ergonomics conference in Las Vegas.
I do almost 100% .NET/C# development.
.NET and otherwise. I usually keep most of my watch windows and project explorer type windows on my right screen, and my code on the left. This changes during debug sessions as VS.NET supports different window sets depending on what you're doing.
:)
We've got dual 2001 FP 21" screens, 2 GB of ram, 3.6 Ghz CPU, 140 GB HD for each development box.
I use VS.NET 2k3 and VS.NET 2k5 beta 2 for all my development, both
Things get even cooler in VS.NET 2k5 which supports all sorts of multi-mon coolness. (Like being able to say that when I run a web project my firefox and IE instances should be sent to one monitor or the other, or when I build a Windows app to have it sent to a diff monitor.
VS.NET also supports some great window layouts for document/code comparison... so I can sync scroll code windows on each monitor to compare differences between my local copy and the copy in source control... etc.
I also use WinPLOSION for those rare times when my dual screens aren't quite enough.
My home setup is a single 2405 FP (24" widescreen), and a fairly similar machine but with a Radeon X850 XT PE for when I need a Counter-Strike break.
I'd have to get an AtomChip laptop, but I might want to add on two fold-out LCD screens and an ergonomic keyboard.
Try five monitors on one engeneering class machine, three laptops and 8 workstations for testing. Seriously, make all the "Swordfish" jokes you want, but this rocked. I was able to have e-mail, Music, a text editor, a VMware session and Visual Studio open, and see it all at once. Plus, the setup cost me nearly nothing as I was able to scavenge almost all of it from the scrap pile at work. I found that no mater what setup I have been using, peace and quiet alowed me to get the most done. the best equipment in the world won't help unless you are not interupted every two minutes.
Dirty Pirate Hooker
If you are looking a Eclipse (more overhead than I prefer) you should also look at hyperModel along with the XML plugins. Only free GUI Schema borwser/editor I've found.
"God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
I solved the problem with one of these. Great seat. Best of all, the Capisco has a very high lift enabling you to half stand. You can sit sideways, and even backwards on it. Very flexible and comfortable.
Here's a link. Made in Norway. There are dealers in the US.
Hag Capisco
I've been using multiple monitors since that meant an 80x25 monochrome display on an ISA MDA card, and in general I think they're great.
:-)
Ah, I remember the old CodeView days fondly myself. Back then, it was about the only way to get any real debugging done under Windows using a single machine.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
Ultimate developer setup?
Putting to one side all the obvious hardware & software options: Aeron chair, cinema displays, eclipse/VS, super-duper box with gobs of ram and quad processors...
No, I don't mean a boxed set of O'Reilly books all standing to attention like good little soldiers on tasteful Ikea Billy bookshelves.
I mean Donald Knuth, in a cage in the corner of your office. Richard Stallman, in a seperate cage too, if you can get him.
All that programming and design knowledge will be there for the asking (and a scrap of beef jerky - keep 'em hungry).
It's absolutely vital, of course that Knuth and Stallman are kept segregated, as communal quarters will lead to them fighting, or even uglier, breeding!
T&K.
Political language
Maybe it's because my behind lacks the padding the average programmer has, but I really really like my Humanscale Freedom chair. I can sit in this thing for a LOT longer than I can with a cheap chair before getting uncomfortable. If you don't have such problems then you probably won't want to spend the $1K but if you do it's a godsend. (Yes, I know, get up, walk around, but...) I like it much better than the Aeron (I think I'm too skinny for those).
The rest of my furniture is cheap stuff though. A couple of folding tables work well.
I never got into the multiple monitors thing either but I really like my new Samsung 204T 20" LCD. (They were on sale, couldn't resist.) They're not that expensive, about half what the 19" LCD it replaced originally cost me, and 1600x1200 gives you almost 50% more pixels to work with than 1280x1024. Check 'em out.
Air quality is the other big thing with me. I recently figured out that paint fumes do very bad things to my head, and energy-efficient new construction seals buildings so tight that the interior doesn't "breathe" all that well. (I live on the top floor and they repaint the common hallway every other year, and the fumes have nowhere to go but the upstairs apartments, slowly, and I was told by my allergist to keep my windows closed because that's what you're supposed to do to keep out the pollen and mold that I thought was messing with my head... but now that I'm almost done with immunotherapy open windows help a LOT more than they hurt.) Do yourself a favor and buy Low or No VOC (Volitile Organic Compounds) paint the next time you do indoor painting. Make sure the powers-that-be at work know to do this too. It's a cheap way to make a BIG difference in indoor air quality. I bet that much of the "Sick Building Syndrome" thing is caused by this.
I started a company a few years ago (Sold it to a 400 lbs gorilla, yes, 400, not 800).
.NET IDE, everything can become a auto-pop-out window on mouse over. Im sure in Linux there are many options too. You reduce your font size, and just work with it.
I got two 20.1" Dell FP2000 (1600x1200) LCD displays, a decent 2.8ghz (at the time), pentium 4, with a GeForce 440MX (Dual DVI Out to drive both panels), big hard disk yadda yadda yadda.
I had multi-monitor setups before, and it worked well.
To be honest, it was TOO much screen space, 3200x1600... My mouse, a wireless RF mouse, probably 400dpi was too low resolution to quickly move across from one edge of one display to the other. If I bumped up the acceleration, I lost pixel accuracy and couldn't click on tiny pixel things in gimp/photoshop.
Then being tied to that one place... After a while, I said screw it.
I went out and bought a nice IBM T41 Thinkpad. Simple 1024x768 resolution screen, with the extra battery (replaced DVD drive).
In the end, I had both options, and I always used the laptop. I could take it anywhere, work at my gf's house (now my wife), work outside, inside, in the office, at another problem computer where im trouble shooting something, or of course at home... In bed right before I go to sleep, in the shower.... ok, you got me there, I never coded in the shower. But regardless, you get the idea.
The low resolution 1024x768 isn't a problem because you just adjust your habits and your IDE to that resolution. If you are in Windows using MSVC
In the end, I got the most productivity this way, I love it and I don't think I'll go back. Playing games, I use a desktop, but for serious work... A Laptop it is.
Modesty is one of life's greatest attributes
then worry about your monitors.
pay for an aeron chair, then more memory. your neck will thank you.
GetTheJob.com : Nothing but Real Jobs.
PCKeyboard offers buckling spring keyboards (they bought the rights & there are still some old ex-IBM employees there. Good boards. Same key response as the Model M & some models have windows keys. They also sell quiet key rubber dome boards, so double check that you are getting one that has buckling springs.
If money was not an option the following would be my dream set-up:
1. Office with a door. I don't know how many hours I have lost over the years through interruptions, and task switching - but it has to be a good 30% of my time. Designers should not be in cubes. Door should have a 'do not disturb' sign with a clock that says, 'available at:' --- might get fancy with it and provide an electronic digital display of the 'available at' time - coupled with electronic door locks that prevent opening it from the outside (maybe even from the inside too).
2. Small computer lab off of the office - containing racks:
a) Small Beowulf cluster for automated number crunching as needed (I have an idea about implimenting an optimizing C compiler via such a cluster for fast builds - among other uses). Ten nodes composed of fast 64 bit quad cpu machines - maxxed out on RAM, interconnected via fibre ring, running linux would suffice.
b) Development Server (for web application development) fully loaded running linux, zope, apache, squid, etc...
c) Examples of various client and server architectures (for testing client - server/web apps) - most of these would be 'average' machines, up to several years old so I can estimate what performance a typical customer can expect. I would have one set up as a remote RDBMS machine for testing that.
d) Scratch Monkey (machine for doing initial system builds, OS level futzing, and anything else that could be dangerous - duplicate of the development server)
e) CVS Server (Concurrent Version System server - or Subversion if that is your cup-o-tea) -- contains all previous and current software versions. This machine is backed-up off site for disaster recovery.
f) Network connectivity - including examples of various network components I can expect my applications to have to deal with (firewalls, routers, switches etc). Ideally I would like to be able to duplicate any client's network set-up. Cisco 6500s on down should do...
g) Large Pipe to the internet (Syncronous(sic) DSL - 1.4mb/sec both ways minimal - since money is not an issue, OC48 would do nicely).
h) Power Supply(s) to provide power for all this (rectifier for DC power. backup generator - never know when you'll need to hack during a power outage, etc).
In office:
3. Top of the line AMD workstation with Gigs of Ram, the fastest processor they make, the best sound and graphics cards available, IBM Selectric style split keyboard (anti-carpel-tunnel), set of Bose computer speakers (two input, volume/mix controls). Depending on the software being developed I might want additional controllers - Saitek X45 joystick/throttle combo, robotics, etc... What type of development I am doing will determine additional requirements.
4. Panasonic Toughbook laptop running Linux for remote operations and monitoring. I would get the version with the handle and it would accompany me everywhere.
5. Very large HDTV/LCD screen - I need enough real estate to open up 10 letter size windows concurrently...or I am not happy. You don't want to see me unhappy.
6. Mobi KVM to provide console access to all of the above.
7. Kitchenette - small stove, microwave, sink, and Refrigerator for key beverages and snacks.
That would pretty much do it -- I could see the lab being shared with other developers...but ideally I would own my own development shop and employ a remote cadre of FOSS developers. I would upgrade/add equipment beyond what is listed here as needed to meet the needs of the projects.
Lodragan Draoidh
The more you explain it, the more I don't understand it. - Mark Twain
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...
have more than one machine. This is a must.
My setup: - Kinessis Ergo Keyboard (the bowl one) - PowerMac G5 2x2.5 - Apple 23" Cinema HD Display - Private office, with 'mood' lighting - Sennheiser headphones with a large iTunes library
I use jEdit as my IDE. I write loads of SQL (pl and T), xhtml, css, javascript, ColdFusion, ASP. jEdit rocks. I have tried MS Visual Studio, DreamWeaver, TextPad, and Eclipse. I keep coming back to jEdit (jEdit.org).
It is (or can be, depending upon configuration) much leaner than Eclipse and Dreamweaver. It works great for just about any language.
The only thing I dislike is that it is a java application, which means that there are certain visual elements that just scream java, but hey, I guess you can't have it all.
I work for a large company, and have all kinds of software that costs lots of money. But i use jEdit, which, have I mentioned...being OSS, is FREE!
Ok, gotta go. My mom says she is gonna turn off the basement light even if I AM coding...
blah blah blah
If money was not a contraint I'd probably go with a top of the line Powerbook with the extra heafty graphics card to power the 30in. cinema display. Using the laptop instead of a desktop allows you to pop off to the coffee shop / bar to do work when your house gets boring. Add on to that the http://www.kinesis-ergo.com/ Contoured keyboards (I know alot of people here have said they love their normal flat keyboard but personally I LOVE this thing I didn't realize how much pain my wrists were in until I started using it *WARNING* it will take about 2 weeks to get used to).
As for a desk I personally like a good solid hard wood slab type desk. I'm not sure about the rest of you but I don't like the monitor to shake etc.. when I'm trying or moving stuff around on the desk.
As for IDE, go with what you know/like, personally I like Emacs others don't.
Dude, just code. Don't pose.
Oh wait.. This is /. Of course you don't.
x .htm
I have a 2 monitor, 2 keyboard+mouse, 4 system
setup that is excellent for my cheap-a$$ budget.
But you can go crazy! So here is what to get!
Monitors
Here is what you need.
http://www.go-l.com/monitors/athens/features/inde
92 " of LCD goodness.
However, despite the complete bull$h!t all these other hosers are feeding you about LCDs being the greatest thing since pr0n, you still need at least 1 good CRT (I use a SUN 21", but feel free to go larger!)
Because, really, LCD's only look good in their native resolution, and all this talk about them being clearer, and having a better picture, is complete crap if you are doing anything out of "native" resolution, like playing your favorite FPS, even with your super video card, you are prolly not going to run it at your LCD's wacky native res.
Keyboard:
Preference is all that matters here. Soft, Loud,
Quiet, Mush, wired, wireless.
Even with a KVM switch you are prolly gonna need
at least 2 sets. One on your main pc, and one
on the KVM switch.
If you like the clean quick feel of laptop
keyboards, then you will dig the Logitech
Bluetooth Keyboard+mouse (It's like $150)
(note:this'd be for the main sys, since they
don't work through a KVM switch for $h!t)
Personally I hate the feel of this thing and
need a keyboard with a large travel distance
on the keys.
I use a cheap Dell branded Wireless with a
volume knob right on it and love it.
Mouse:
Most wireless mice are kinda slow but you are gonna want at least 1 on your main system, I have heard that the new Logitech Wireless "Laser" mouse is pretty quick, but I have a wired one on my main system, and a wireless on the kvm switch.
Chair(s): The Aeron is a Must and should cost you less than $1000!
I suggest something with a little more to it also. A lazyboy or something like that to switch to throughout the day.
Speakers: Klipsch PC speakers, Worth every penny. (2 sets) Just trust me on this.
ok.. There are my suggestions on the pieces that matter.
The rest is more a function of what you are working with.
-You will need a main system to write code on. So it has to be able to run your text editor of choice and a visual studio if you use one.
-One to comple on. Um.. Has to run the complier.
-A test machine that is the same that the end user/customer will be using.
-A Gaming machine (Just buy one from Alien Ware)
-A Web browsing/media playin machine. (you don't want all that pr0n and spyware on your other machines!)
-A central storage solution with redundancy. (has to be big enough to hold all your music, pr0n, and images of all your Game CD/DVD's images to load with Daemontools, oh.. and your code)
Good luck.. And really, get the klipsch!
"I'm probably going to get modded down for this" as they say, but this could be one of those "ha ha only serious" type of things...
... and sock the rest of it away to live on for a while when your developer job gets sent to India?
Perhaps you ought to go with a nice, simple, inexpensive setup
Tired of FB/Google censorship? Visit UNCENSORED!
Speaking of KVMs, does anybody have any tips onto what is the absolute cadillac of KVM switches? I'm looking for one that can switch and perhaps even convert between USB PS/2 for wiring up my massive collection of development machines that are heating up my office...
-AP
Consider the Tizio lamp, by Artemide. it is tall enough to get out the way of your monitors but extremely bright . It is also elegant with no exposed wiring and balances beautifully with its counter balances. Finishing touch is that it was designed by Richard Sapper, the original designer of the IBM Thinkpad, and has influences like the red colored controls and aluminum axes (think red trackpoint nipple and exposed ibm metal hinge).
Starting with the chair:
You need a chair that will keep your spine mobile, rather than compressed and in a fixed position. This will ensure proper circulation, as well as strengthen your back and improve your mental faculties. The best chair i have found is at :
http://www.workchairs.com/
called the "swopper" chair.
FOr lighting, you will want to look into full spectrum lightning, which includes natural wavelengths of the sun, which should give you some added benefits.
Widescreen monitors suit our vision better since we see more in the periphery. Therefore a widescree lcd monitor is best. Try the Dell 2005FPW
For software, i would use Ubuntu.
Consider the Tizio lamp, by Artemide. it is tall enough to get out the way of your monitors but extremely bright . It is also elegant with no exposed wiring and balances beautifully with its counter balances. Finishing touch is that it was designed by Richard Sapper, the original designer of the IBM Thinkpad, and has influences like the red colored controls and aluminum axes (think red trackpoint nipple and exposed ibm metal hinge).
. 236.10.htm
http://www.metmuseum.org/toah/ho/11/euwcm/ho_1988
This is an old thread. Chances are, the parent poster won't even read this. Ah, well. Such is life.
I started coding hard and heavy in early 2000, giving up a life as the owner of a small computer shop to pursue the much-more-rewarding role of software engineer.
Within a few months, I ran into the dreaded carpal tunnel issue - wrists that were sore and painful by mid-day, everyday. If I carefully positioned my wrists with rests, and adjusted my chair just so, I was good, but it was very hard to sit just so everyday, all day.
I bought a Microsoft Ergonomic keyboard, and was shocked at the difference it made. Immediate pain elimination. I could sit more/less however I wanted to.
About 2 years ago, I bought a Dell Inspiron laptop, and quickly had it set up at "the desk" with the large monitor (configured to do dual screen) ergo keyboard, etc.
But, then a few strange things happened.
1) I discovered that laptops let you sit anywhere you like.
2) I discovered that laptops let you move and flex.
I program at home, as in independent. I sit in the yard, I sit on the couch, I lay on my bed, whatever suits my fancy.
Today, I put in >12 hour day, but I spent part of it on the couch, part curled up in my papason chair, and part on the back porch deck watching my children swim in the pool.
And, with all these different angles and seating positions, my wrists just don't get sore. It'd still be nice to have dual-monitors, but KDE's virtual desktop + VERY tiny fonts does well enough, that the ergo keyboard and 20" monitor almost always sit, unused.
And, my quality of life has shot out through the roof, even as my young business grows rapidly!
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Here is the setup I use, I like it a lot, maybe you an get some ideas.
Computer: Custom-built Athlon X2 4800+. The dual-core CPU is awesome --- big compiles don't bog down the UI, while it doesn't require the hassle and expense of your average dual-CPU machine. Other than the CPU, the two parts useful for coding are the 2GB of RAM (no reason to get less at today's prices), and the Antec P180 case. The nice thing about the case is that it makes for a very quiet computer, which is important to me since I'm pretty noise-sensitive.
Monitor: Dell 2405FPW. It's a 24" widescreen flat panel that's been getting a lot of attention on various forums. It's got excellent contrast, which is good for extended reading of text. The size and format also make it easy to have a ton of stuff on-screen at the same time. It's entirely possible to keep two source files open side-by-side, along with a reference manual or something next to them.
Keyboard: Cherry CyMotion. Keyboards are important. I'm personally not a big fan of the curved ergo keyboards, but its a matter of taste. If you like traditional straight keyboards, any of the Cherry line is a good bet. The use Cherry's keyswitches, which means they have excellent tactile feedback and a good amount of key travel. They CyMotion line also has tons of extra function keys (real keys, not those silly hard-plastic buttons), which is useful for custom keyboard shortcuts.
Chair: Nice full-back office chair. This one is really a matter of personal preference, so I recommend you experiment. I find a waterfall seat and good lumber support to be indispensible.
Software: Ubuntu Linux, gvim. The editor choice is massively a matter of preference. It has occurred to me that what editor you choose is less important than how well you learn to use your chosen editor.
A deep unwavering belief is a sure sign you're missing something...
Don't know if anyone has already mentioned Jedit (haven't had a chance to read the replies)
:) It's also the most configurable editor I've seen, you can set it up exactly the way you want it.. it has a multitude of useful plugins, but the best thing about it, is that it's open source.
It's a great Java based editor that can handle multiple languages, and because it's Java, you can run it on any OS.
The thing I love about it, is that you can turn it into an IDE, as long as you're prepared to fiddle with the command lines (hey, you're a programmer, no complaining!
The biggest downside to it, is that being Java based, it will chug on slower systems, particularly during file access, and you also need to install J2SE first. Anyway, you can get it here:
http://www.jedit.org/
I found that sitting next to a noisy computer all day drains quite a bit out of me. I'm also a sound technician so I pay more attention to audio than most, I guess. I find that I get agitated by the constant whine of the fans on my system at work, which I have no real control over. At home I have all sorts of quiet components and can barely hear my computer. I can then play my music softly and cover up the rest of the noises and I find myself really able to get more involved with my work.
My name fits again.
powerbook.. cooler.. hammock..
works for me.
Dump the IRS - http://www.fairtax.org
or is that oldschool now? I really liked being able to distribute my compiliations amongst many systems. Back when I lived with some roommates, I made sure to keep some "liveCDs" for gentoo around just for this purpose.
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.
I don't know about the rest of Slashdot, but when I think of The Ultimate Setup , I think of words like grandiose and expansive. So this one is for you, Mr. Slashdot Article submitter: every article is flamebait, and every flamebait is a post!
The first priority for The Ultimate Setup is location. Maybe a place like the entire state of Hawaii, or the Moon. Let's pick one. I like Hawaii. After all, it would be a lot easier to set up a nice fat Internet pipe from Hawaii than from the Moon (never mind breathing). But that can be worked out later.
The second priority would be premises. So ask yourself, why have one building when I can have eight, one for each major island?! Absolute brilliance! You were smarter than everyone else in college and nothing has changed, so now all those dumb 10053R5 can admire your wealth and intelligence.
As for what to put inside your buildings, that's the simplest part. Let's start with the Big Island, or Gentoo, as it is now called. You do java development, and you want to scale your needs modestly, so go with a single Sun Fire E25K with 72 UltraSPARK IVs and 1/2 terabyte of RAM. But there are 7 more islands you say! Easy, just pick a major offering from each of the top vendors, remembering this: if it costs less than a million bucks, it's trash.
Every Ultimate Setup needs to mention some kind of chair. Nothing on the market really fits this peticular setup, so you will have to get one designed special. It should have built-in booby traps and an ejection seat, just in case someone who is not you wants to sit in your chair. Also, this is a must, a moat with sharks with lasers on their heads. Anything less ferocious than Great Whites is unacceptable, certainly not Sea Bass.
There are other "little things" that should be included, like which supermodel would feed you grapes while you type. Also consider who would be doing the job for you. Remember, since your name is attached to the code, you don't want sloppy work.
IMPORTANT! DO NOT FORGET: Consider island names like BSD (which is dead), AIX, Ubuntu, Debian, Red Hat, AS 2003, Solaris, or maybe just Linux (It's never just Linux). It's really your choice. Remember that: it's your choice.
If money is no object, then look at Liebermann.
Use about 12 SXGA DLP video projectors, to make a 4800x3000 or so video display. There needs to be some overlap, and you can fade out the edges to smoothly connect the images so that it really looks like one super-high-res display. Then you can read several JavaDocs and still see your code and UML and an xterm for compiling and another for running, all at the same time.
It should fill up a somewhat curved wall, and you sit in front of it in your La-Z-Boy with a wireless keyboard and a trackball or touchpad on the keyboard or a mouse on the arm of the chair, or a Wacom tablet in your lap. I think I'd like two half-keyboards actually, one on each arm of the chair, mounted so that they can be adjusted into a comfortable position.
Of course I'm not sure what kind of video options you have to drive that many monitors at once, especially from a single computer, but stuff like this exists for trade shows etc. Maybe it involves multiple computers and some cooperative version of Xinerama between them.
Hey you said cost is no object, and what I want most is massive desktop real estate without borders between the tiles.
Alternatively, rear-project all that video onto some kind of touchscreen surface, and sit closer.
Not being able to afford all that, I built myself a desk with a top shelf at eye level for the main monitors (2 for my Linux box plus another for the KVM, so I can get to auxiliary systems easily), a shelf underneath for misc peripherals and someday maybe a bank of touchscreens, and a height-adjustable, narrow keyboard shelf sticking out in front. It's fairly ergonomic and accommodates way more hardware than any desk you can buy. The bottom part (underneath the bottom shelf) has 3 19" rack cages for computers. I have my main Linux box, a multiboot box (Linux/Windows/QNX/DOS), and an old mac in there so far.
SOB tried to take a linux class too just recently in Bellevue Community College here in WA State.
Cloakerz
As ugly as they may look like, this robust, office-type, metal desks with lots of drawers (like from bene.com) are quite ergonomic, transportable and will simply outlive the user.
For computer(s), i would suggest a laptop. If you find yourself taking the laptop to customers regularly, i recommend buying a suitable docking station for your desk. This way you can very easy connect it to your home setup and power adapter.
You should also set up a server where you have your source control and backup system, in case your laptop breaks or gets stolen.
Also, make sure you get as much RAM as possible in your laptop, especially if you're gonna work on complex systems where you will have many programs and debuggers running at the same time.
Look, this thing is totally safe! Built it myself, you know. You just press that button like this and then turn that lev
Best Java IDE ever
is my current setup, where I do almost all my coding while my girlfriend surfs the net (with Firefox, we take precautions):
- Machine: 6 years old Pentium 166, 32 MB o'RAM, 2 GB IDE HD.
- Black and white CRT monitor, 800x600, 60 Hz.
- No-brand keyboard (without those nasty Win keys).
- Microsoft two-button mouse (come on, I mean, I found it in a dumpster!)
- Slackware Linux.
Believe it or not, this old little sucker has helped me write my best code.
ssia
If you don't mind switching to OS X (might be a good idea for an ultimate setup anyway), you should try out TextMate. It's a very nice editor, that's extremely extensible and has snippets, macros and commands for almost all mainstream languages.
Have a look at this screencast to see what it can do.
It is payware, but it's a measly EUR 39 and it's worth every eurocent. Plus, it may not be open-source, but it does utilise a lot of open standards.
Don't worry, it's all just 1's and 0's anyway...
For php and web dev I like Quanta Plus, a free Linux IDE, on a cheapo Dell 2.8Ghz desktop (nearly silent) with a 19" ViewSonic LCD monitor (crispest, clearest monitor I've ever used). MS ergo keyboard and Logitech optical mouse with a wheel.
I used VStudio for years and still do for MS projects. Liked it but I've always had trouble manipulating web projects and virtual roots with it. Maybe I just didn't understand how it worked. Quanta does less but is much simpler and friendlier. Since you mentioned Eclipse I will check it out.
I used to think what you actually DO at whatever workspace you have is what's most important.
Bu t, after seeing that there were 500+ posts one way or the other about ergonomics and all kinds of vanity crap, I'm not so sure anymore.
Ideas on furnishings and setup are all well and good, but I think you cross a line when taking the 'ultimate setup' and ask what software should be used!!!11
;-)
Flame on!
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
If you were really a professional developer, you would have learned the answers to the questions which you are asking back in your "junior level" days. If you don't keep up with advances in technology and keep aware of the state of the art, then you can hardly be called a professional. -- podz
For long hours of working I recommend the Razer Diamondback simply because of low wrist strain.
(A close second and much cheaper option is the Logitech MX 310)
You do not want cordless... too heavy. (and batteries are a pain)
You do not want a mouse (or keyboard for that matter) which is elevated. This excludes Logitech MX 5 and 7 series mice as well as most microsoft ones. The shaped-like-your-palm mouse is just a crock. Avoid carpal tunnel syndrome now. (I was starting to show symptoms with my MX510, until I exchanged it for a MX310 and later a Razer)
Also see some more on this matter:
http://slashdot.org/~Domini/journal/59224
Dual screens. It's asolutely the best. I currently have two 1600x1200 monitors. I can run three 80col xemacs windows side-by-side on the left screen and run a debugger (ddd) or online docs on the right. It really improves the work flow. I'll never go back to a single screen.
While 3 monitors look better, I can't really figure out what to use the third monitor for.
400 + posts, and I haven't seen yet anything about bakcups. RAID is cool but doesn"t count ;-)
;-)
Sooo... DVD burner and external Firewire HD THAT YOU DON'T KEEP ALWAYS PLUGGED IN, but just connect 1 or 2 times a day to run your "backup all" script, you might even be able to keep several backups on it.
Also, lots of posts about mice. I much prefer a trackball (less wrist pain), or even something integrated in the keyboard (trackpoint...) so my hands don't have to move from the keyboard.
Noise is an important "comfort" factor. Silencing a PC costs around $300 ( $150 case, huge CPU sink, 12cm fans everywhere,including the power supply and CPU, fanless 6600 graphics card and MB).
If your PC is powerful enough, I'd try to avoid the KVM switch thingy, I used to have one of those that degraded the video signal (text get a bit blurry), and just generally messed with the workflow. I'd avoid that unless you need to run several OSes. Putting all your money into one super-rig allows you to get a very responsive one
I never really could use more than 2 screens, but that may depend on what you're doing. One for your main app, the other one for everything else (compiles, IM, music...). I still prefer CRTs for the ability to switch resolutions and still get nice looking text, but they take up a huge amount of space.
The Cloud - because you don't care if your apps and data are up in the air.
Then go for a sysplex of IBM System z9(TM) 109's maxed out with RAM and disk; install VM at the bottom and zLinux on top. As for tools I'd say xterm, vi and make. Oh, you said Java - in that case you may want a bigger machine.
Nintendo, really.
I would spend my time and money on planning, design and tasks rather than buying & considering tools for a fictional job.
It appears you want to shop for toys without having a goal.
I know this may sound very "low-tech" to people who are used to IDE's but at least I can guarantee that my environment will always behave like I want (something I can't say about the Visual Studio .NET I'm forced to use in one project) and that I can use this setup for all programming languages that I've ever worked with (yes, even C#). I'm a believer in "adapt your tools to your needs, don't adapt to your tools".
Oh, BTW, I came from the IDE word (Topspeed Modula/2, Turbo BASIC, Turbo/Borland Pascal) and while I think they do make your life easier in some areas of your work I today also think they hide too much stuff from you and don't allow to work around problems (like VS.NET is not able to compile dependant projects into the same directory: you can't work around that, you have to alter/reorganize your projects; that hit us in a stage of a project when we really had no time at hand for unnecessary stuff like that).
Nobody seems to have talked about pointing devices very much so here's My H.O:
The Logitech MX1000 laser mouse is by far the best mouse I've ever used. It's exactly the right shape/weight/feel for my hand (right handed!) and the precision of the mouse is unbelievable. Other optical mice can sometimes get a bit confused (especially if you move them really slowly while editing images for example) but the MX1000 never seems to do that. Additionally, the laser is far more battery efficent than an LED and I only seem to need to charge the mouse once every few weeks (evening usage only).
The ONLY problem I have with this mouse, is that the battery isn't removable. If you accidentally run it flat - you'd better have a spare mouse handy. Not sure why Logitech have done this - perhaps because it uses a nonstandard battery inside like a LiIon or something.
Also you'll want to check that it works under Linux if that's what you use, but for Windows - it's great.
If you're looking to do it well, I'd recommend :
;))
Subversion (http://subversion.tigris.org/
Trac (http://trac.edgewall.com/
The combination of those will give you :
- Bug tracking (let the customer have access etc, and they'll feel good
- Source code viewing
- Timeline (commits, what changed when etc)
- Integration between bugs (tickets) and source code via the Timeline
- Milestones
- Wiki for documentation, design notes etc.
The Ginger Dog
if you are freelance like me this is a must.
I'm still using my old IBM thinkpad (3 years old). And I'm very happy with it.
at the office a PC desktop with a linux distro and Apache2. It has raid HDs. (I didn't installed Linux on my laptop...I know I can but the last time i did it, Linux badly managed my battery and I had to change it twice). And I've got a very old (+5 years) desktop PC running Linux as backup.
I write my code with emacs through a SSH connection. To me it is the ideal solution. I still have the power of Linux, a remote server always available and the simplicity of Windows XP. I really don't need anything more. I can work in the client office when needed, get feedback without having to move anything from my office. I can also take some hollidays but still beeing able to work or to do some follow-ups.
I would spend the money you have on books and not on hardware. Knowledge is far more important. You are paid because of your skills not because you have a "big" computer.
We laugh when we see our women running to catch the last fashion...But Frankly don't we look as stupid when we talk about computers?
I don't know why anyone else hasn't brought it up
I have on my desk 6 monitors, plus one machine runs to the tv in the lounge, using synergy I can have my g4 desktop machine, my 17" powerbook, a linux box and a windows box, all with one nice keyboard and one nice mouse in the middle of the desk.
Also synergy also deals with copying (text based) things around the clip boards which has proved to be amazing!
http://synergy2.sourceforge.net/
Nothing beats the feel of a keyboard that has a heavy metal baseplate that you could conceivably bludgeon your PHB to death with. And afterwards, it would still work.
Box:
For the Plattform independent stuff you're doing you'll want anything that's powerfull and quiet. If you don't hate towers you'll want a PC in the Zalman TN 500a Towercase, a complete fanless case for PCs. The entire case is one big heatsink with countless heatpipes, coolers and HDD coolcasings inside. The only way to go for a PC box you're going to sit at all day. The case cost 950 Euros, but I'd say it's worth it. Put anything inside thats big and fast. Some multi opteron setup (cooling noise isn't an issue, remember?) with 8 GB of fast RAM. Consider adding a Rocketdrive or solid state HDD. 60 nanoseconds access to your drive have something going for it when you're doing Java and Server Side Web stuff. Linux (custom Kernel Debian or Gentoo) plus Win2k running on VMWare should do it for the OS. Consider a WM instead of a desktop. It's less distraction from work. Allthough current KDE is cool, I still like to use Windowmaker, E or Fluxbox. Try those out.
The cheaper alternative for long hours of programming is a 20" iMac. Minimum noise, minimum space, top level working enviroment. OS X is good. It's not as good and fitting than a well configured and installed Linux/VM+Win2k setup on a box like the one I described above, but therefore it's like 6 times cheaper.
Screen:
If you're getting the PC take the 23" Apple display with it. If you want multi screen, take a Panoramtech, they are the ticket. Pricey, but the only real way to go for multicreen.
Chair:
You're sitting at it all day, so pay. The german Swopper is the Mercedes Benz of desk stools and ideal for computer desk jobs. Don't get the one with the pointless backrest though, that's just a gimmick. If the swopper isn't for you, I recommend something from the Stokke line of chairs. The Actulum or Pendulum look fitting for desk jobs and still are flexible enough for keeping your back alive.
Desk and room:
Don't have anything special for this. Apply common sense and a sense for quality. For your working room you want to consider setting it up by some Feng Shui principles. Feng Shui isn't all legend and has some interessting insights that help you set up your living space. I followed some Feng Shui rules in my room, and it feels good and enables me to work more concentrated. For instance I'm sitting in the opposite corner from the door with the door at 2:30. I can handle my daughter or my spouse interrupting my work much better that way.
We suffer more in our imagination than in reality. - Seneca
i know this may sound odd but if you use a mouse at all, try to learn to use it with both hands alternating. it took me a couple of weeks to get up to speed with my left hand (even for photoshop work!) but now i can switch the mousehand every other week to avoid carpal tunnel syndrom.
Dear Slashdot readers,
Please argue amongst yourselves based on this 'article', which is completely free of any news and/or anything that matters...
To me, the most important thing is good backups. Computers come and go. They melt and fry. Hard drives die. Pilot errors trash files. Solar flares flip bits. If you don't have a great backup system in place, the best setup in the world won't be of much use. (Always have more than one copy of your backup, in case a single medium fails. If you overwrite a backup medium like a xxx-RW, make archival copies occasionally.) It's worth $50 or whatever to buy an extra hard drive just to keep a redundant, live copy of a backup. Being able to pick up and go when something fries is probably the #1 productivity enhancer that I've ever found.
I'd first have a module added to the International Space Station for my personal programming use. Then...
You might be able to partition your work in these three ways with most modern software. But ideally you'd want three computers within easy reach.
Development would be your main beefy machine... the one you'd likely do most of your work/coding under and have fully tricked out. You might also end up breaking it occasionally because some stupidly packaged OS-level library update.
Test would be a machine you could tear down and build up / reimage cleanly from scratch to make sure your installation instructions work. Mostly to make sure that you didn't forget to include some obscure dependency that you have stashed away somewhere on your development machine. Depending on your comfort level and whether you use Development or Production as your primary machine, you might get away with having Development and Test be the same box.
Production would be the machine that you're not allowed to do new stuff to until you've made sure that nothing broke when you did it to Test. This would be a good machine to demo the last working state of your software one, plus run various servers (email, database, etc.) that don't change often. Think of it as the machine you would do your email correspondence & timecard on... If your company has a competent IT staff, this machine might not even be maintained by you.
Anyway, some hopelessly process-based engineering advice.
It is better to set up your computer desktop environment then your real desktop.
I use Gnome (because it is fast and slick) with a lot of virtual desktops (6 at the moment) and some keyboard shortcuts to navigate them (alt+1 move left, alt+2 move right).
The Gnome-Terminal is configured at the same way: lots of tabs and CTRL+1 moves to the left tab and CTRL+2 moves to the right tab.
And then 'vi': the best editor ever. With syntax highlight for almost every language you can stumble upon.
This way, you don't need the mouse and can be very productive.
: - )
DT
Is this thing on? Hello?
I tried a number of the OSS editors, both for Web Development and C/C++ stuff (Quanta, Bluefish, Ajunta, KDevelop, and Eclipse) but ended up going with Slickedit after the trial. I know it's blasphamy to choose a closed source tool in a field where there are so many other choices but it really provides exactly the features I want, does automatic tagging and correct syntax highlighting for every language I work in (PHP, Perl, Python, Java, HTML, C, C++), has good project functionality and a kick-ass diff tool that it was worth the $300. Now the 3 monitors part is I think the sweet spot, although you need another gfx card to go that route. I use 1 for development, 1 for viewing the project I'm working on and 1 for documentation. Oh, and a costco leather chair. That was the last thing.
http://www.gal.co.za/gallery/album02/030223_Funny_ ToiletCubicle
What do you use for an OS?
I used to use BRIEF until it was eaten by MS. Now my editor of choice under MS is TextPad. Vim is nice enough, but sometimes too many features get in the way. Spending 4 hours on a tool in an extensible editor language for a one-shot task may seem elegant at the time, but it's a replacement for walk-away-from-it time that would clear your head for a nice overview or second-guessing. As stated above, YMMV.
We use Paragon switches.
"The more corrupt a society, the more numerous are its laws." -Tacticus
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
If money is no object, then by all means buy a mac. It's the greatest.
Most of the responses--and the original question--are along "more, bigger, faster" lines of thought. Here's my take:
1. First, don't bother with a desktop set-up. Get a notebook. As money is no object, get a high-end notebook. The key is that this is something you want for after-hours work, not your day job. You want something that doesn't keep you holed up in an office, something you can take out on the patio, on business trips (when you almost always have a lot of free time in the evenings), or just around town. You'll be lots more productive that way.
2. "Ultimate" appears to hobbled with the underlying premise of "using today's most prosaic and uninspiring technology." Unlesss you have a specific moonlighting gig, do you really want to be writing Java and C++ at home? What you want is something that gives you an edge, something that makes you more productive than entire departments. You should be looking into Lisp, Python, Smalltalk, Haskell...whichever of these floats your boat. Push the limits. Do the stuff that other people think is too hard to approach.
Try adding "-Dide.gc=true" to your eclipse.ini file or VM options. This works on all platforms, not just Windows. For more info see: http://www.eclipsezone.com/java/forums/t20967.html
Sorry, but the foundation of software development is caffeine and constant snacking. To finish off the "lifestyle" just grow an ugly beard, wear a snug t-shirt (preferably a black one with an animè iron-on) and old black cut-off jeans. Congratulations, now you either look like Richard Stallman or The Comic Book Guy!
It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
Well, I hate to rain on yer parade, Fancylads. But Andy Hertzfeld uses a 20" iMac. A little over a grand. He recently wrote the CMS for folklore.org on it and a book. And of course, he coded up a large part of the Mac system on an Apple II...
http://www.poetictech.com/aura/index.html
:)
Air filtration
Rotates to avoid glare
Custom overhead lighting.
Really freaking expensive.
Everything you'd need.
Do *not* buy an Avocent Switchview. I have one at work. I bought it because it's sleek looking, 4 ports, etc etc. Great! So I had a purchase order done up. I want to kill the thing. The hotkey to switch is CTRL twice in a row. Guess what CTRL-C then CTRL-V does? Makes my system "freeze" for 3 seconds while the KVM waits for me to push a number key. And you can't disable this feature :(
Make sure your KVM can have this "feature" disabled. Or some use different keys, such as scroll lock.
If money is no object then order an Oculas customised to you specific power & storage requirements. http://www.theoculas.com/
To err is human. To forgive is not company policy.
Well it seems there's only one version of Windows Vista for you. Vista Ultimate for the Ultimate Software Developer Setup!* *Doesn't include certain Vista Starter Basic Baby Home Original Special Edition features such as network support and keyboard support.
Sig Appended to the end of comments you post. 120 chars.
My current setup consists of my dell inspiron 8200 laptop running Debian with an extra 19 inch monitor. my mouse is a logitech mx510 (i do a lot of gaming also). After using a 2nd monitor for so long now i don't think i could ever give up that extra space. i have also grown the love the feel of a laptop keyboard with its flat key layout. so much so that i have been looking for an external keyboard in the same style.
for IDE's i use Zend Studio for my PHP development and Eclipse for Java, Emacs for everything else.You'll be the best judge for whatever system hardware you need, no sense trying to argue that - but as far as input/output - spare no expense.
Display: LCD (Dell? good quality, good deals)
Nice high res lcd, should be able to rotate/pivot. Match to preference - but remember, you're staring at this the WHOLE day. Some prefer 2 or 3. I personally would like to try 3, but I think 2 is a more realistic practical limit (but like I said, never tried)
Keyboard: Kinesis http://www.kinesis-ergo.com/contoured.htm [normal site is in frames, but eh]
Ergonomic, no question. I used to swear by the thin little laptop-style keyboards with no numeric keypad (mainly so my mouse was closer) - cramps your hands too much over the years. I switched to a Kinesis keyboard. Yeah, it was $300. Yeah, my hands are loads better for it. If you're making any kind of scratch at all using a computer, you can easily afford paying for this. The split design and perfect placement of the keys, plus the thumb keys, is awesome. It's fully reprogammable in hardware, so there are no compatibility problems - want to switch your space and backspace thumbkeys? Press 6 keys* total and you're done. 'enter map mode' - space - backspace - backspace - space - 'exit map mode'.
* map mode requires 2 keys pressed simultaneously, so if you want to be nitpicky, it's 8 keys.
Mouse: Evoluent http://www.evoluent.com/
Also ergo. Normal mice are tiny and horrible on your hands - switching to and fro. I use an Evoluent myself, and it's not quite perfect, but it's a ton better than a normal mouse. $70 again isn't too much to drop for your health.
Also, if you can break the habit - use your scroll wheel sparingly. It's a really bad interface as far as overworking your tendons go. At the VERY least, increase the # lines scrolled for scrolling it.
Chair: Aeron? [match to taste.]
Chairs are pretty particular beasts. I would like to get an Aeron, I used one for a while in my last job - but it's too expensive given that I have 3 cats and no reliable way to keep them out of the office. I can definitely attest to its comfort, adjustability (be sure to get the most adjustable model), and breathability - which is very important for long stints on your arse.
Desk:
That's a matter of preference. I have a huge desk at the moment because my office has a wall made entirely of windows, so my desk makes up for it by "making" a wall (it's about 6 feet tall and has a solid backing for almost all of it). There was no way to position things so I could avoid glare, so this was the only solution. As long as your legs fit under it, and you can adjust the keyboard tray (adjust, not just slide in/out) - or it just happens to be the perfect height - then it's fine.
cyn, free software and *nix operating systems enthusiast.
Maybe I'm hard on chairs. But after 8 years of spending $150 every two years buying some crappy chair at Officemax I finally broke down and bought a $500 chair at an office supply store.
It's a Herman Miller Equa-2, highback chair with fixed armrests. I even got to choose the color of fabric. (I actually prefer the Equa to the Aeron)
I've now had that chair for 6 years. It has a 10 year warranty. A year ago the bolts which attach the seating position to the base stripped out. I took it back to that office supply store, and they replaced the seat for free.
I fully suspect that this chair is going to last me another 6-10 years or so.
The thing is... I couldn't possibly afford to buy $50 chairs. Not just from the cost of yearly replacements, but also the back injuries.
I'd second the programming specialty comment. As someone who's been programming in the embedded systems market for about 18 years, I'd say that there are plenty of opportunities for those who want to get into more hardware-ish market. Companies which traditionally do only hardware are realizing that testing (HW verification) is more software like than hardware. Even more advanced companies will realize that design/development is more software like than hardware but that may not take place any time soon.... (I write this as someone who worked for a tool company, Cynergy System Design, which went under so it can be a tough sell)
Danny Kumamoto
I was at an Eclipse conference watching a presentation. One guy used the IDE so much that he barely typed anything. E.g., to add a member to a class, he clicked on an "add member" button. For every modification he made there was a menu item that did it for him.
The sad fact is: it took many times longer to highglight the word, find the menu, and click on "Add Member", than would be to type the "int time;" in the class declaration. It was painful to watch.
I'm no grumpy old man, I like IDEs, but you can take it too far in either direction.
I can explanate how to administrate your network. You must configurate and segmentate it, so it can computate.
No, as much as I wanted to have a ubergeek keyboard, my hands just weren't up to the task (and years of muscle memory means that I'm not willing to re-learn new type M-compatible chords). I think I'll be picking up a second Happy Hacking keyboard instead.
Dewey, what part of this looks like authorities should be involved?
I'd go completely rack mount, and plan on having a pile of systems. This solves the messy multiboot issue. At the minimum, I'd have a high end windows system and a linux system. If price were no object, I'd put in a seperate system just for gaming on a KVM but use X11 or Remote Desktop for the other systems on the three monitors.
:)
Racks let you isolate for sound, too, something that annoys me more in my old age.
I'd add a seperate stand to add at least one notebook, probably a powerbook. This lets you be mobile and adds a forth monitor that's independant from all the other ones - handy for IM windows and quick checks, and the like.
For what it's worth - I'm currently working on developing my own custom rackmount setup along these lines with a company that does custom rackmount enclosres. Disclaimer: I get discounts for help with product development.
I'd go all DVI on the monitors for clarity. I've tested 15 foot copper DVI cables and had no problems; they're available in runs up to 50 feet.
I hate having five computers all in mismatched setups.. a gleaming rack with blinkenlights oozes geek.
..don't panic
I'm sure you've gotten a lot of good answers, especially ones about a lot of details (lighting, refresh rates etc) So I'm only going to talk about things where I think I can add something special, but I've thought quite a lot about some of these. Everyone please critque my ideas; some of these are changes I plan on making.
I completely agree about screen real estate. I'm a developer, I use 2 21" monitors and 1 or two laptops simultaneously - and there are times that more realestate would speed me up. I think this is the single most important speed aid, as long as your computers can reasonable handle what you need to do.
Decide on a machine to be your server and give it all the files. Make sure it is backed up regularly and make any other machines share from it. (This could also be your main workstation, but it doesn't have to be)
Currently I have one monitor on a KVM and one monitor on a V switch. This leaves me with a moderately manageable 2 keyboards and mice. My primary computer (dedicated KM) has left as its primary and my secondard computer has right as its primary - fairly often I use them one each. I'm also using 4 port switches, so I can have several other computers running if I'm doing hardware work or some such.
However, I don't think this setup is truly optimal. In my next revision the primary responsibility of my main desktop will be to run many monitors and many windows with VNC. The VNC model gives you fine-grained control over what windows go where and lets you easily copy and paste between them. It also lets you quickly and without virtualization overhead run in a variety of environments - and as a bonus it lets you reap some benefits of a pseudocluster. With all the files on a server you could utilize several machines to do whichever work is convenient.
As a bonus, this lets you resist the urge to have 30 machines under your desk, which is bad for noise, heat etc. You can keep those 30 machines whereever you can stretch ethernet : )
I'd like to mention Serenity, a desktop-sharing application. (I haven't gotten around to using it yet, but it is well-reviewed) It bills itself as a software KVM, and I'm sure it does that (except that before I install it I'll skip to VNC.) But it lets you do something no hardware KVM can - drag the mouse right from one desktop onto another (along with clipboard support) I see no point for monitors you always use together, but if sometimes your friend is going to borrow a computer and monitor you'd otherwise use this is excellent. Similarly, it's a great model for sitting that laptop next to your desktop.
Finally, all my reading is that sitting sucks. Try to find any other way to be. Standing, laying etc. I believe that with a split keyboard (where left and right halves come totally apart) you could pretty easily and effectively code laying down.
Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot
There are multiple mail readers written for emacs; there is a news reader; a few web browsers; an interface to IRC (and with bitlbee, AIM/Yahoo/Jabber &c.); music players; calendaring.
The programming modes are excellent; the interface to make and gdb is second to none; the integration with a developer's environment is superb.
emacs is the r0x0r:-)
The set is not complete without a digital camera. Very useful to make backups before cleaning the board ;)
neato
ascii art
Multiple monitors *IS* the way to go. Here is my desk setup a couple of years ago..
It's been reconfigured (and moved) a couple of times since then, but the principle stays the same: dual monitors = more than twice the productivity (I now have dual Sonys on DVI).
Well, many computers would be nice of course, but I really don't want to admin all of them. After all, this is about development. :) This means that also would need someone to do the administration. Without such admin, I would take one workstation and one small laptop.
Many monitors would also be nice, but only if I would find a way to use them efficiently. As I haven't found that yet, I say now that I want one good big monitor for the workstation and then the laptop can act as additional screen, if needed.
The normal way to switch monitors by moving mouse is not ok for me as mouse moves the visible area in my virtual desktop.
(b)iny
Don't for one minute think that you can be long on a PC when you sit facing it.
Look at the guys at Nasa and see what they do.
To be really comfortable for a long period of time, you need your chair to be tilted back about 30 degrees, and the monitor installed up above tilted at a similar angle.
When sitting straight up, all the weight is transferred directly down your spinal column into your lumbar resulting in a sore back after an hour or so.
If you have your seat tilted back, the weight is distributed over your lower and middle back and even up to your chest. This means you can sit for much longer periods without that nagging back pain.
What you want ideally is a dentists chair. You know how comfy they are. And then build a steel frame around the chair with monitors above, and gadgets directly to you left and right. Hell, if you build it right you can have all your essentials within reach.
~~CM!
"never have to worry about backup/recovery?"
/*" on your raid array and see what happens.
type "rm -rf
Well, I guess *you* wouldn't have to worry about recovery. It wouldn't be possible.
I run vnc on my laptop with XP and linux on my desktop.
x2vnc lets me hook them together without a KVM, so I just ues the desktop keyboard and mouse.
I can't drag windows across, but it is sweet.
One day, I want the new apple display, 30 inch, 2400x1600 woot.
Try an AirGen(TM) Fuel Cell Generator instead.
You wanted quiet, right?
Silence costs $6,495.00.
1200 watts of sweet, sweet silence.
Put your office in a cottage about a hundred yards from your house so you'll walk to work every morning. It's good exercise and you'll appreciate the isolation.
While you're at it, put the cottage over the edge of a fresh water lake so you can stand up from your computer, walk out onto the deck and dive into the lake, go for a swim and then climb back up to the deck to dry off before you go back to work. Consider stocking the lake with trout or at least mermaids. I think trout fishing is a good way to organize a design session -- and modern languages have a "Reflection" feature to facilitate this. Avoid grizzly bears. Just keep some sort of notebook handy to jot down your design decisions. Any kind of notebook will do.
It would be best to own the whole lake to avoid the distraction of motorboaters and float planes. To avoid RSI and other hand pains it would be prudent to hire a secretary to type in the code. You'll just dictate the programs as you lean back in your recliner.
Oh, and avoid any projects with deadlines -- they cause anxiety and stress...
I18N == Intergalacticization
one of the command interface chairs used by the Ancients. I understand that they're readily available on the used equipment market and antique shops, as well as E-Bay. Keep in mind that if you're not fortunate enough to possess the Ancient gene, you'll need to factor in the cost of the required retroviral treatments. Oh, and if you do pick up one of the things, remember to check that it has an operating Zero-Point Module. ZPMs are somewhat scarce and sorta valuable these days (planetary defense and all that) and some unscrupulous dealers try to sell their chairs without one.
The higher the technology, the sharper that two-edged sword.
It has to automatically backup every day and there has to be off-site storage.
I think a tape drive on the server is the best option.
uh-oh
You should consider laptop too. U know. It's nice surf and listen music with it. And you can carry it with you. It can be your "secondary machine" and if your main system explodes, you can use laptop for a while. And remember importance of backups! I have laptop and a desktop and I have them "connected" with Synergy. It's really nice software to use two machines with one keyboard and mice. :) But laptop is really handy. Also in developping. I think :)
synergy:
http://synergy2.sourceforge.net/
I had 5 machines going at one time--I recently gave 3 away. I need a decent linux box and a decent windows box. Other than that, you spend more time setting up and configuring environments than you do on actual work.
What I'd really like is a KVM that supports two monitors and allows you to put them both on one machine, both on the other, or split them. (The mouse bumps the edge of one desktop, after a bit of resistance the KVM flips over mouse/keyboard control to the other box.) Anyone know of anything like that?
Other than that, it sounds like you simply want to do development in a linux-based environment. Debugging a full-screen app and need to google something? Just flip over to another desktop.
I do see the wisdom of having a ton of HD space in one of the machines, but that's why I suggested a NAS. Low maintenance solution, once again, to put you to work.
but have you considered the following argument: shut up.
As far as input devices I use a Kinesis Contoured Keyboard. It’s much more ergonomically correct than most anything on the market and in the long run I’m hoping that this fact will save my butt.
The Kinesis Contoured has built in memory so you can program a bunch of macros into it. You can also remap the keys to any other key position. If you don’t like the location of F2 you can remap it to the delete key or the A key or whatever.
I type using the Dvorak layout. It’s much more efficient than the standard Qwerty layout. The Contoured keyboard has Dvorak built in. Just press Progrm + Ctrl + F5 and walla, you’ve got a Dvorak layout keyboard. Press the same keys again and you’re back to Qwerty.
It has a built in 10-key keypad. Hit the keypad button and the right hand keywell turns into a 10-key. Hit the keypad button again and you’re back to normal.
You can connect a foot switch. The keyboard has a little connector for you to plug in a foot switch. The foot switch can turn the keypad and shift on and off as well as a bunch of other actions.
For pointing devices I use two. So I won’t have to reach so far I have a small touchpad that sits on my keyboard in the empty space between the left and right keywells. I use the touchpad for pointing operations that don’t require a high degree of accuracy. For high accuracy pointing I use an Evoluent Vertical mouse.
Of course everything sits on a fully adjustable keyboard tray that I position to be sitting just above my lap.
This is the most comfortable setup I've had so far.