Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Setting Up a Home Dev/Testing Environment?

timothy posted more than 5 years ago | from the just-live-at-work dept.

Databases 136

An anonymous reader writes "I'm a Project Manager (hold the remarks) who recently decided that I want/need to get my dev skills more up-to-date, as more projects are looking for their PM's to be hands-on with the development. Looking around my house, I have quite the collection of older (read: real old — it's been a while) PCs — it's pretty much a PC graveyard. Nothing that would really help me set up a nice dev infrastructure for developing web/database apps. So, my question is as follows: Should I buy a number of cheaper PC's, or should I buy one monster machine and leverage (pick your favorite) virtual machine technology?"

Sorry! There are no comments related to the filter you selected.

First Post! (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#25850265)

First post!

MyEclipse... (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#25850285)

...especially when mixed with the Tranya. Hmm mmm. Smooth tasting that makes you code like a masturbating monkey. That's Tranya, for all your coding needs.

Re:MyEclipse... (0)

Anonymous Coward | more than 5 years ago | (#25850729)

You know, you just aggravated my Freemanic Paracusia.

I hope you're happy.

In answer to your question.. (0)

Anonymous Coward | more than 5 years ago | (#25850287)


Simple... Get an Intel based Apple... (2, Informative)

Fallen Kell (165468) | more than 5 years ago | (#25850301)

You can setup multiple boot or VM environments for Windows, Linux, and of course Mac OS X. You can easily use that to learn just about anything you want to learn (aside from SPARC or Power assembly language)...

Re:Simple... Get an Intel based Apple... (2, Interesting)

jfinke (68409) | more than 5 years ago | (#25850513)

I agree.

I have an Intel Mac with fusion. With 4 GB of ram, which is pretty cheap these days, I can run OSX, Vista, Linux, and Solaris at the same time. Put each box on a different Spaces window and you can flip around them easily.

Now fusion is not a power user friendly setup, but it is certainly usable.

Re:Simple... Get an Intel based Apple... (2, Insightful)

MechaBlue (1068636) | more than 5 years ago | (#25851287)

VMs aren't really an option for me because I'm testing multi-media software and the audio skips with some applications. I'm using a Mac Mini that is multi-booted with

Windows XP, Windows Vista, Mac OS X 10.4, and Mac OS X 10.5. Linux is a little harder to get on there (EFI and all) and I'm not sure about BSD, Solaris, etc. Overall, it works well enough for me.

Triple booting a Mac isn't too bad; you can use Hybrid MBR/GUID. Quad booting and up is more difficult because you have to use MBR and get around the limitations of the Apple installer.

Not what I've done (3, Interesting)

vux984 (928602) | more than 5 years ago | (#25851375)

Simple... Get an Intel based Apple...

Yeah, if you want OSX you'll need one.. but which one?

If OSX is going to be your primary OS, and you want to mostly work in OSX and virtualize everything else on top of it... by all means get a powerful mac, ideally a pricey tower so you can get some extra hard drives inside it etc, which makes multi-booting a lot less of a hassle for when you don't want to access linux/windows in VM.

You can setup multiple boot or VM environments for Windows, Linux, and of course Mac OS X.

Except you can't VM OSX desktop edition, and buying an ADDITIONAL copy of OSX Server for each VM is expensive, and doesn't really help you since, as an OSX developer you want to test your software on OSX client, and probably both 10.4, and 10.5, possibly even 10.3 -- DESKTOP editions, since that's what most users use.

So, my approach has been to buy a powerful PC, and do all the linux/solaris/bsd/windows stuff on that, and then to have an Apple laptop. You can get a very serviceable PC tower for the fraction of the price of a Mac tower, and if OSX isn't going to be your 'primary' OS its much more flexible way to go.

The money you save by buying a PC tower instead of a Mac one can then be thrown at at a Mac Mini and a cheap KVM... or in my case, I have an Apple laptop.

Re:Not what I've done (0)

Anonymous Coward | more than 5 years ago | (#25851967)

This is exactly what I ended up doing recently. Mac laptop for desktop usage (surfing/media etc.) and HP xw6600 workstation with 10Gb RAM and Quad core Xeon 5410 - I bought it refurbished from HP for around 850$ plus 400+$ for the 8Gb ECC RAM - had to add a cheap ATI x1650 but that's about it.

So now I can dual boot Vista x64/ Ubuntu AMD64 on the workstation and run Solaris under KVM - runs plenty fast.

Re:Not what I've done (2, Interesting)

Anthony_Cargile (1336739) | more than 5 years ago | (#25854957)

You forgot the OS x86 project, so you CAN run Mac OS X Leopard in a virtual machine. I personally triple boot Ubuntu 8.10, Solaris 10, and Mac OS X (iAtkos hack) on my gateway, with every version of windows, solaris, and others in virtual machines (created with fusion, played with player), and it is a really nice setup if you keep the virtual machines on a spare partition so they're writable by all hardware-bootable operating systems.

This is mostly for device driver and web development, in addition to general OS curiosity, and makes for a great development environment.

As far as IDEs go, XCode is (just) alright, Eclipse is excellent, DevC++ is a blessing, and when it comes down to it even good old vim is great (I've heard about Emacs, but it really needs a text editor ;).

But thats just my humble setup.

Personally... (4, Insightful)

AltGrendel (175092) | more than 5 years ago | (#25850303)

...I would go with the one system with Virtualization. You can download a copy of Xen as an installable OS or install RH 5.x with Virtualization. You can then backup the instances and if you blow something up restore quickly. It's also easier on the pocketbook.

Re:Personally... (2, Informative)

L0stm4n (322418) | more than 5 years ago | (#25850353)

Vmware server is a free download as well. Or you could purchase workstation for a reasonable cost. Stock up on RAM though!

I'm testing ESX by installing it inside workstation then putting virtual machines inside ESX.

Re:Personally... (3, Interesting)

lgarner (694957) | more than 5 years ago | (#25850645)

ESXi is also free. That's what I'm using for Linux, FreeBSD and OpenSolaris VM's at the moment.

Another thought. (2, Informative)

AltGrendel (175092) | more than 5 years ago | (#25850425)

Since it's a dev environment, check out Virtual box [] .

Re:Another thought. (3, Interesting)

juiceboxfan (990017) | more than 5 years ago | (#25850871)

I second that! Been using it on my Linux laptop for over a year to have an XP machine available for the few Windows only apps that I can't avoid.

Even the closed source version (added USB support?) is available for free to anyone who is willing to install it themselves. From the licensing FAQ [] ;

Personal use is when you install the product on one or more PCs yourself and you make use of it (or even your friend, sister and grandmother). It doesn't matter whether you just use it for fun or run your multi-million euro business with it. Also, if you install it on your work PC at some large company, this is still personal use.

I like those terms;-)

Re:Another thought. (1)

oldspewey (1303305) | more than 5 years ago | (#25854759)

The simple truth is that interstellar distances will not fit into the human imagination

- Douglas Adams

I once read something that I though did a pretty neat job of allowing me to wrap my head around interstellar distances:

Image that the sun is the size of a baseball sitting on top of home plate at Skydome (a baseball stadium in Toronto, Canada ... I leave it to the reader to make the mental leap to their own hometown example). The Earth would then be the ball from a ballpoint pen, sitting on the pitcher's mound. And Neptune and Pluto would be orbiting somewhere out in the vicinity of the circular rails out beyond the outfield that guide the retractable roof. The next nearest star, Alpha Centauri, would be another baseball sitting on home plate at the Houston Astrodome.

Virtual Machines (4, Interesting)

morgan_greywolf (835522) | more than 5 years ago | (#25850317)

Virtual Machines are GREAT for Dev/Testing. You can setup machines with several different configurations, operating systems, etc., for testing and development. Plus, for N-tier web/database apps, you often want to be able to test a variety of different infrastructure choices for scalability and performance testing.

Nothing really beats the way you can change things around on-the-fly with virtual machines. It really gives you the ultimate in flexibility.

Re:Virtual Machines (3, Interesting)

Bill, Shooter of Bul (629286) | more than 5 years ago | (#25851055)

They will probably work for what he's trying to do. I always worry about running virtual machines in tests when the timing of the action is critical. If you have more virtual machines than cores, there are a lot of scenarios that I don't feel comfortable simulating in that environment. But maybe the graveyard pc's would help alleviate the situation for those scenarios as long as they can boot Linux and live on the network.

Re:Virtual Machines (2, Interesting)

try_anything (880404) | more than 5 years ago | (#25853231)

Noob question: can you simulate high network latency and other network performance problems between VMs?

Re:Virtual Machines (2, Insightful)

morgan_greywolf (835522) | more than 5 years ago | (#25855103)

Yes! With VirtualBox on Linux (and probably others), since you can route all traffic in a VM through a standard Linux NIC on the host, you can use iptables to do just that.

Re:Virtual Machines (2, Informative)

Gazzonyx (982402) | more than 5 years ago | (#25853511)

I completely agree. The only thing I would (should?) add is that trying many configurations will tear through storage like you wouldn't believe. Sure, you could expand the disks as needed, but that kills performance. I ended up putting together a SAN (single box, but with an actual backend network tier) for something like a grand a year and a half ago.

You just need a box with at least 5 bays, an external 5 drive hot-swap canister, a 'gaming' motherboard with a decent south bridge and a bunch of SATA ports, a few gigs of RAM and four or five drives (from different lots!). I setup a plain old Slackware box with iSCSI, carved up some partitions and threw them on to my network. The external hot-swappable trays are worth the $100 just for the ease of adding storage without rebooting or having to crack open the box.

Re:Virtual Machines (1)

morgan_greywolf (835522) | more than 5 years ago | (#25855113)

Well, the OP said he'd buy a massive box to do virtual machines, so yeah. And you need lots of RAM, too.

You can also get off-the-shelf iSCSI appliances.

Solution (5, Funny)

ep32g79 (538056) | more than 5 years ago | (#25850319)

How about a beowulf cluster?

Virtual Machines (1)

HomerJ (11142) | more than 5 years ago | (#25850327)

Use two different virtual machines. One for dev, one for test. Which VM to use, is an exercise for the reader. /thread

One machine with virtual machines (3, Insightful)

rufus t firefly (35399) | more than 5 years ago | (#25850347)

Depends what you're doing. For example, database servers virtualize poorly, but most other applications will run just fine that way. Everything besides your database machine could probably run as Xen paravirtualized servers on one or two machines.

That has the advantage of not producing as much heat and draws less power, which is an advantage unless you own some sort of stock in your local power utility.

Re:One machine with virtual machines (3, Insightful)

Bastardchyld (889185) | more than 5 years ago | (#25851159)

This is a fairly old argument, and in a dev/test environment it is not accurate. Databases and other disk intensive operations may experience performance issues when virtualized, however there are ways around this, pass-thru disks, iscsi storage (which can be done with software on the host box), etc. All of these would allow the VM direct access to the disk instead of writing everything through the VHD or VMDK file and taking the performance hit.

Virtualization is not some magic fix that makes everything work great, however like any solution it you take your time and properly design it, you will end up with a system that meets or exceeds your needs.

Re:One machine with virtual machines (1)

hotdiggitydawg (881316) | more than 5 years ago | (#25855013)

This is a fairly old argument, and in a dev/test environment it is not accurate. Databases and other disk intensive operations may experience performance issues when virtualized, however there are ways around this, pass-thru disks, iscsi storage (which can be done with software on the host box), etc.

Whoa, tiger! Remember this guy is a n00b program manager, you think he'll be able to configure and maintain all that?

Personally, I think he should make sure he gets a mauve-colored database, because it has the most RAM...

Re:One machine with virtual machines (0)

Anonymous Coward | more than 5 years ago | (#25851191)

Databases virtualize fine for dev.

Re:One machine with virtual machines (0)

Anonymous Coward | more than 5 years ago | (#25851609)

Yes, but his test database machine at home will virtualize just fine. It's not a production system so you don't need to pound on the hardware.

Re:One machine with virtual machines (1)

wideBlueSkies (618979) | more than 5 years ago | (#25854013)

>>For example, database servers virtualize poorly

This may or may not be true. However, for home development purposes, one isn't necessarily concerned about performance. You just want to build a DB and schema and just connect to it.

I've got the developer version of Oracle 9i (yes I know, EOL) running in VMware and I've no trouble with moderate development sized result sets.

Re:One machine with virtual machines (1)

wideBlueSkies (618979) | more than 5 years ago | (#25854029)

Forgot to mention that the host machine is a 6 year old pentium 4 with EIDE drives.

Tools aren't your problem (5, Insightful)

eison (56778) | more than 5 years ago | (#25850377)

Get started with what you have now. Buying a new tool won't make you a better programmer, you already have a computer of some sort so you have all that you need to get started. Just get started. After a while, if you like it, and do well, and think a better computer would help you be more productive, then consider maybe buying hardware. But don't look at it as a prerequisite, you don't need to start off that way. If you want to buy something now, it should be a book.

Re:Tools aren't your problem (1)

skulluminati (1379551) | more than 5 years ago | (#25850615)

I agree, I don't think the hardware is as important as configuration, if you can configure the dev/test environment to match your production environment then you should be able to do development and testing without any surprises when you move your work into your production environment. The exception would be with load testing your older machines may not handle the same load as your production environment.

Re:Tools aren't your problem (1, Insightful)

Anonymous Coward | more than 5 years ago | (#25851675)

This person is a PM - IE tools and hardware make the project go fast.

Are you interested in doing development, if not please stay out.

Most PMs should be FAR FAR away from the codebase.

Re:Tools aren't your problem (0)

Anonymous Coward | more than 5 years ago | (#25852463)

First make use of what you already have. Take a lightweight linux distro (like Archlinux) and install services that you need. I'm running it on a 500 mhz 256MB RAM machine...

Re:Tools aren't your problem (0)

Anonymous Coward | more than 5 years ago | (#25852961)

Buying a new tool won't make you a better programmer

Exactly! I found the whole question rather puzzling... a programmer computers? Next thing you know, someone will suggest Apple... (oh, wait, someone did!).

Re:Tools aren't your problem (0)

Anonymous Coward | more than 5 years ago | (#25854581)

Get started with what you have now. Buying a new tool won't make you a better programmer, you already have a computer of some sort so you have all that you need to get started. Just get started. After a while, if you like it, and do well, and think a better computer would help you be more productive, then consider maybe buying hardware. But don't look at it as a prerequisite, you don't need to start off that way. If you want to buy something now, it should be a book.

Get started with what you have now. Buying a new tool won't make you a better programmer, you already have a computer of some sort so you have all that you need to get started. Just get started. After a while, if you like it, and do well, and think a better computer would help you be more productive, then consider maybe buying hardware. But don't look at it as a prerequisite, you don't need to start off that way. If you want to buy something now, it should be a book.

amen to that

Language? (2, Insightful)

Someone Awful (1109763) | more than 5 years ago | (#25850389)

What exactly are you looking to do? If your doing develpment with Java, Xen would be a natural choice, and the hardware you need to run a xen Dom0 and some linux guests is trivial. You can go virtual with older hardware. I have a dual Intel 700 with 2 gigs of SD ram running in the office that I use as my own web server and that I experiment with. Currently there are 3 guests running and they all run smooth as silk. CentOS 5 machines. Some of our devs have the same setup and use a guest as a build server and another one for testing and QA. If you want to run Paravirtualized hosts that is. If you are looking for fully virtualized hosts, you might have to splurge for some newer hardware (processor specifically). I might also look into KVM and Fedora since Xen is getting boxed with the release of RHEL6 I believe.

What do you call old (4, Insightful)

jawtheshark (198669) | more than 5 years ago | (#25850409)

No, really? What is old? If you've got a couple of P-III in de 600MHz++ range, or even a couple P-IVs, you're golden. This is not going to be a heavy load system. It can't be, it's for you alone. I've got a couple of servers, an AMD64 3000+/2Gig which I got from a dumpster (originally 256Meg, but I had some RAM lying around), my old desktop, a P-III 800MHz/768Meg RAM serves as my parents server and I built a Duron 800Mhz/512Meg RAM for my sisters business running Debian/postgresql/SQLLedger.

Depending on what you call old, you have tons of options. However, if you want to talk power efficiency. In that case, buy a good (but not monster, those eat power) machine and virtualize. You'll realise soon enough how much power your virtualised "server" requires. It might be as little as 256Meg RAM running Debian-stable for your "test" servers.

Of course, I don't know what you want to do...

Re:What do you call old (1)

bjb (3050) | more than 5 years ago | (#25851977)

Feh. I'm still using the heck out of an old Pentium Pro 200MHz running Linux. Yeah, it isn't doing HEAVY LIFTING, but as a file server, low utilization mysql and basic service runner, it works fine.

Re:What do you call old (1)

jawtheshark (198669) | more than 5 years ago | (#25852067)

Oh, my first server was a P120.... It's just that I got better hardware over time (from the dumpster, decommissioned desktops) and I replaced the older hardware with it. That said, the P120, couldn't do IMAP.... The P-III 800MHz can do that without a problem.

Re:What do you call old (1)

muridae (966931) | more than 5 years ago | (#25852939)

I used an older Pentium Pro, that I picked up from a yard sale, as a local html and sql server for quite a while. I put up with the lack of speed since it was passively cooled and very quiet. Power supply and the spinning drives were the only noises I had to put up with

Recently, I got rid of it and upgraded. A nice Pentium 2-333. Only real reason for the upgrade was the smaller case (sony viao) and quieter power block. The fact that the newer one has an AGP video card meant installed rather easily, and firefox runs well enough. Some 'complete development environment package' like eclipse might bog it down, but vi+gcc work just fine.

Re:What do you call old (1, Insightful)

Anonymous Coward | more than 5 years ago | (#25854959)

No, really? What is old? If you've got a couple of P-III in de 600MHz++ range, or even a couple P-IVs, you're golden. This is not going to be a heavy load system. It can't be, it's for you alone. I've got a couple of servers, an AMD64 3000+/2Gig which I got from a dumpster (originally 256Meg, but I had some RAM lying around), my old desktop, a P-III 800MHz/768Meg RAM serves as my parents server and I built a Duron 800Mhz/512Meg RAM for my sisters business running Debian/postgresql/SQLLedger.

Depending on what you call old, you have tons of options. However, if you want to talk power efficiency. In that case, buy a good (but not monster, those eat power) machine and virtualize. You'll realise soon enough how much power your virtualised "server" requires. It might be as little as 256Meg RAM running Debian-stable for your "test" servers.

Of course, I don't know what you want to do...

Totally agree with this post. I own my own business and part of my business is web/email/database hosting and I do it on nothing but used equipment. Our email servers are old Dell 1650s (PIII / 800MHz / 512MB) and they do just fine. My web servers are either Dell 1650s or 2600s running anything from a LAMP stack to Win2K3, MS-SQL, PostgreSQL... So you may be able to make use of your "old" gear. If not, check out stallard technologies. They specialize in refurb Dell servers.

I would say (2)

SirLurksAlot (1169039) | more than 5 years ago | (#25850467)

that if you're a PM (and not something closer to a team lead) who is being asked to "get more hands-on" with the development you have bigger problems to worry about than setting up a proper dev environment. Your situation sounds very similar to the company I just got laid off from who let more than 60% of their IS consultants go (in an environment where 90% of the devs are consultants). They're now so top-heavy that it will be a wonder if there is any kind of release in the next 6 months.

Also you didn't exactly provide a lot of detail regarding what kind of development you need to do. Personally I have a single LAMP server set up for my own projects with Subversion for version control and a couple of Bash scripts for nightly backups to an offsite location.

Use Puppet to provision the VMs (2, Interesting)

tcopeland (32225) | more than 5 years ago | (#25850471)

If you do go the VM route, consider using puppet [] to define your machine configurations. That'll make it much easier to build out more than one of each machine.

Along the same lines, if you don't want to run a bunch of machines or VMs yourself you could spin up new EC2 instances as needed, point them to your Puppet server, and have them built out - consistently and correctly - in short order. Good times.

Re:Use Puppet to provision the VMs (0)

Anonymous Coward | more than 5 years ago | (#25850971)

also, invest in a signed SSL certificate, otherwise you'll look like an amateur.

Get at least two real machines (2, Insightful)

TheLink (130905) | more than 5 years ago | (#25850487)

VM stuff is nice, but sometimes you need to have the "real thing" - sometimes stuff performs significantly differently when virtualized. Some VM stuff don't have good database performance.

With two machines if you're doing web/database, one can be the client and the other can be the server.

No point getting "monster" stuff if you mean "high end", since it's diminishing returns once you get above a certain point.

Machines with 2GB or even 4GB of RAM aren't that expensive nowadays.

What I suggest you get are extra drives, and preferably easily removable/swappable drives.

Then you could have huge drives (good GB per $$$) with virtual machines in them, and you could swap them out for cheaper smaller drives with "real machines" in them and test different O/Ses and configurations without having to waste time reinstalling and updating.

A 3rd machine would be nice - so you can do work or post on slashdot etc without affecting your "real machine" benchmark tests :).

Re:Get at least two real machines (0)

Anonymous Coward | more than 5 years ago | (#25850951)

VM stuff is nice, but sometimes you need to have the "real thing" - sometimes stuff performs significantly differently when virtualized.

The original poster is NOT looking to make development his/her primary job function and therefore a playground at home does not have to scale much beyond a few virtual machine instances. I have four 1U rackmount servers in a wooden cabinet and as needed I create virtual machine instances. These servers are only Celeron and Pentium class with less than 1 GB RAM in each (for now). The principles remain constant despite less than stellar performance but then again I am not looking for superb performance in this home lab configuration.

Depends on what you want out of it (1)

Drogo007 (923906) | more than 5 years ago | (#25850567)

Depends largely on what kind of project you're looking at to use as a refresher.

If it's some small project, then probably one of the computers you have laying around is sufficient (as long as it can run whichever dev toolset you're planning on using.

As far as testing environments - if you're just practicing, you probably only need a simple environment - like the same desktop used for dev. Or another machine with a clean environment (whatever your primary testing environment) All the way up to a beefy virtual server with multiple images of various environments.

Most it depends on what you're look for out of the experience. Are you looking to replicate what your team is doing? Or just brush up on Dev/Test methodologies?

One machine (3, Insightful)

spinkham (56603) | more than 5 years ago | (#25850647)

One machine, at least 2 monitors, and as much ram as you can afford.
With quad and octo core machines readily available, it's a no brainer. But go for the 64 bit version of your favorite OS and gobs of ram. A few hard drives in raid 5 or 10 always help. A great keyboard, mouse, and 3 monitors will complete the developers god box.
Really, CPUs are ridiculously fast, and it's all about the IO devices and memory today.

Oh great! (0)

Anonymous Coward | more than 5 years ago | (#25850667)

as more projects are looking for their PM's to be hands-on with the development

So now, not only do we have to deal with the long laundry list of tech skills, but we're now going to have to put PM on our resumes too?

Software dev is getting shittier and shittier every year.

Depends (1)

W. Justice Black (11445) | more than 5 years ago | (#25850709)

This is very much an engineering problem. What's better for you depends very much on what kind of development you're doing and what your "measures of goodness" are.

Multiple machines generally work well when you're doing large builds that take tons of CPU for a long time (say, repeated builds of a Linux kernel or similar). The big reason for this is that the machine you're on isn't being eaten up by the background build.

VMs are better when you just need to test in multiple environments (and things like snapshots really help). This assumes, of course, that the virtual hardware is OK and you don't have specific hardware requirements for your tests.

There are loads of exceptions to the above and there will likely be loads of (totally reasonable) conflicting opinions.

My personal development environment is a hybrid of the two, since I have both hardware-specific and hardware-agnostic work to do. My guess is that, if you're doing normal business-type development, snapshots will be more useful than background performance. As a result, my blind recommendation is a VM box (not necesarily a monster), with as much RAM as you can stuff in there (proc and HDD are generally less important). Maybe separate your interactive dev box to a discrete machine and use remote access to the VM box.

Variety is the spice of developing? (2, Insightful)

BearGrylls (1388063) | more than 5 years ago | (#25850719)

If you are developing a desktop based application having multiple computers with a variety of different hardware and software configurations can be a huge help. You can virtualize servers on a beefy machine but mixing different hardware and software is critical for ensuring you're product works in the real world.

Seriously, (-1, Troll)

Anonymous Coward | more than 5 years ago | (#25850771)

do yourself a favor and just stick to project management. You don't need virtual machines and clusters and a data center to write a hello world program.

maybe try a VPS online (1)

Ba3r (720309) | more than 5 years ago | (#25850777)

I would advocate getting a VPS (i like slicehost) for $20 a month, where you can actually host a site, and play a bunch. Then just build and tune your apps on your laptop and deploy to the VPS. The downside is that the vps won't have much ram to kick around, but i am skeptical of server apps that need more than 256mb per instance to run as a dev env.

Re:maybe try a VPS online (0)

Anonymous Coward | more than 5 years ago | (#25851411)

I would advocate getting a VPS (i like slashvertising) for cheaper than a hooker a month, where you can actually host a site, and play a bunch.

Thanks for that small advertising there, we do really care what kind of hosting provider you prefer. I'm sure having a VPS at his disposal is going to help him lots in learning about programming webapps.

I recently went the VM route (1)

Degrees (220395) | more than 5 years ago | (#25850853)

I built a 16 GB RAM + quad core Yorkfield box about two months ago. From Newegg, parts came to about $1,800. This gets me a 4 guest VM host reasonably cheap - AND - I'm not burning a lot of power (heat) doing it. (I did not load up on hard drives - one 750 GB SATA is going to have to be enough).

Answer: use virtual machines (1)

mrroot (543673) | more than 5 years ago | (#25850911)

Don't use your old PCs because they are worthless. Just donate, recycle, or sell them because it will be a major headache to install the OS, software, and keep them updated. Use VMWare player or Virtual PC (I use both of them) and you can download pre-built images. And one more benefit... using virtual machines will keep your electric bill lower than a bunch of old PCs.

Go Virtual (0)

Anonymous Coward | more than 5 years ago | (#25850923)

Get a decent machine with a buttload of RAM and use your VM of choice. It's infinitely easier to clone VMs, archive them until you need them again, etc. than it is to re-install a different flavor of Linux on an old machine just to test something for 10 minutes.

Keep the Legacy Gear (1, Insightful)

camperdave (969942) | more than 5 years ago | (#25850937)

I say keep the legacy gear. If your websites work properly on machines with 800*600 displays and 56k modems, then they'll work fine for everybody.

Go Green (0)

Anonymous Coward | more than 5 years ago | (#25850965)

I use laptops for my home server needs. Really, most laptops have plenty of processor/disk space for my dev/test needs. The take up less space, use less power, are quieter, and don't heat the room like bigger iron.

Considerations (1)

malachid69 (306291) | more than 5 years ago | (#25850995)

If you are planning this for your house, consider the environmental impact as well.

I used to do the multiple machine thing. Between the noise, the heat (haven't turned my heater on in 3 years) and the electrical bill I decided I didn't like that approach anymore; and switched to a large machine with xVM.

Personally though, I agree with eison. Changing your hardware isn't going to make you a better programmer. I'd start with whichever machine you currently have that will be quickest for you to get started on... and as you start to feel like you need multiple machines, then consider which approach to take.

No extra computers needed (2, Informative)

kchrist (938224) | more than 5 years ago | (#25851027)

Contrary to what a lot of people are suggesting, you don't need extra computers at all (in fact, recycle all those old ones, they're only taking up space).

You don't need to worry about performance if you're just learning the basics, and so there's no reason for all kinds of over-engineered setups like separate development and testing environments and stuff. Spend too much time setting up all this junk and you won't have any time left to actually write code.

I do all my development on my laptop. I'm running Apache, MySQL, PHP, and Rails, most of which come stock with OS X, and that's all I need. Add VMware for testing sites in IE and you're done. If you're using Windows, check out WAMP [] ; if you have a Mac, either try MAMP [] or use the stuff that came with the system (you'll have to install MySQL separately in this case, which is what I did); if you're running another *nix variant it's all just an apt-get or yum away.

I was working with 2GB RAM which was fine for everything but VMware and just yesterday upgraded to 4GB. Two is usable though, so don't even consider this a requirement. As far as that goes, don't worry about testing in IE at all if you're really just doing stuff to learn. Worry about that if/when you decide to make something public. Skip VMware and you can do it all in 1GB easy.

Use Amazon's EC2 (2, Informative)

Karna (80187) | more than 5 years ago | (#25851153)

Since you don't need boxes all the time and running using Amazon's EC2 seems to be the way to go: []

Also gives you the ability to experiment at scale, while paying $0.10 / hour.

Re:Use Amazon's EC2 (1)

adamiis111 (525750) | more than 5 years ago | (#25853357)

Definitely use EC2. There is no point in owning hardware anymore unless you have a poor Internet connection or you're running a local application like a media server. Of course, this is above and beyond a reasonable desktop/laptop which you'll need for local development, management etc... I personally use and love Macs (switched about a year ago). I wouldn't go back to Windows for $1k (and I used to be a Windows Server Admin - actually, their server stuff is good). When you're on Mac, you'll need a good package manager. I recommend MacPorts and Porticus. As for which Mac, get the iMac or MacBook with an external monitor, mouse, and keyboard. Buy TextMate also for editing.

Just Don't! (0, Troll)

NerdENerd (660369) | more than 5 years ago | (#25851207)

If you are a PM then stay out of the code! Seriously it does not help for PM's to start getting into the code. Focus your time on usability and business requirements but please don't go thinking you will help anyone by getting your hands dirty. Just the fact you are asking this question means you are not the sort of person who should be coding.

Do; was Re:Just Don't! (1)

dru (4742) | more than 5 years ago | (#25851805)

In my experience, the PMs with the best understanding of the technology were the most successful. The ones to whom technology was indistinguishable from magic were the ones who had unreasonable expectations, and generally unsuccessful execution.

So, learn, understand, but remember that coding (beyond limited prototyping) generally isn't your job.

VMWare (0)

Anonymous Coward | more than 5 years ago | (#25851299)

I swear by VMWare. I have Ubuntu, Windows 2003 Server, Windows 2000 Server, Windows XP Professional, Windows Vista all setup in VMWare. I generally only use one system at a time since I don't have tons of ram. For the windows stuff I have to do I have SQL Server and IIS. The best part is that I can easily make backups of each system and take them with me on my laptop. I have never had VMWare fail on me.

Helps to know just how old (0)

Anonymous Coward | more than 5 years ago | (#25851301)

256 MB of memory? At least a pentium something? Capable of running a couple of gb hard drive? If so, you are golden.

A DB machine, a web machine and your own laptop / desktop to actually write the code on. Separating the DB from the HTTP server on old hardware will make up for any speed issues. And seriously, with only a few test clients what you have is fine. The joy of web programming is it scales pretty nicely. If you can get it working with what you have you will be golden when new hardware is used.

As someone else pointed out, you are better off polishing the skills with what you and then perhaps investing in newer gear. No offense, but the assumption that you need speedy gear shows that you really are not up to sped with the the tech.

Not Enough Information? (1)

immcintosh (1089551) | more than 5 years ago | (#25851345)

Perhaps it's my lack of experience specifically in the web services arena, but you didn't really give much information about the details of the sorts of things you'll be developing and testing. Are you developing proprietary server software or something like that with a lower level language? Are you using off the shelf components in a PHP/MySQL environment or something like that? Are you developing on Windows? Linux? Unix of some sort?

Honestly, I don't think the question can be answered usefully without more information.

Anonymous Coward (0)

Anonymous Coward | more than 5 years ago | (#25851619)

Monster. Machine. Three. Monitors. Virtual. PC.

Virtulize it! (0)

Anonymous Coward | more than 5 years ago | (#25851637)

Virtulization, definately. Buy a copy of VMware Workstation (totally worth the price) and have fun!

use the old PCs, but don't leave them on always (1)

RGRistroph (86936) | more than 5 years ago | (#25851669)

Don't spend money until you figure out that you can't achieve your goals without spending. You don't give many details about what sort of environment or development you want to do, but but as long as you can get the OS installed, it is probably good enough for home development.

However, don't leave those PCs on all the time. It will kick your electric bill up . . . unless you heat your house with electricity, then it will make no difference in the winter but hurt you twice as bad in the summer. Set up your little server closet or whatever on backups or power strips that allow you to kill the whole collection when you aren't using it.

Virtualization is nice, but... (1)

chaboud (231590) | more than 5 years ago | (#25851789)

I use virtualization for tons of stuff, but it really pays to have at least two machines handy in case something goes sour. Get a desktop and a laptop. Call it a day.

I have buckets of current computers around, but I mainly stick to a desktop, a laptop, and a server for all of my development. I could live with only two if I weren't doing pro audio/video.

what to buy (1)

drfireman (101623) | more than 5 years ago | (#25851797)

I'll take you at your word that nothing you have would help you. Depending on what you're trying to accomplish, you may never even need to have multiple machines (physical or virtual) to give yourself the refresher you want. Even if you do, there's probably no good reason to invest in a "monster" machine, unless you have special needs you didn't mention. Absent those special needs, you can probably do just fine with a mid-level dual core machine and a close eye on your RAM needs. Also absent special needs, there's no good reason to invest in multiple new boxes just to teach yourself a few things. Virtualization is your friend, if you even need it.

But you know... ask a generic question, get generic advice.

Asus Eee Box for me (0)

Anonymous Coward | more than 5 years ago | (#25851841)

Without knowing what development your looking to this is all purely conjecture. Personally if your old boxes are P3/AthlonXP class then I really don't see the problem is using those, unless your expected to use huge databases and such like then you'll need a monster.

I'm considering getting a machine for development, for me since I have no machines lying around Asus Eee Box is perfectly suited. Using VNC via a secure link I can do any number of development stuff from anywhere in the world with all my usual tools pre-setup no matter what happens to my main machine.

separate code repository (1)

two basket skinner (1288246) | more than 5 years ago | (#25851915)

besides setting up a development evironment - commandline, GUI, or otherwise - i would also include some plan for a separate code repository so that if you change your mind on the dev env. you won't have to move code all over the place. I would look into which is about $5-10 a month. Or if you are looking to use your PC graveyard, maybe use them as a repository farm. This way you won't have to overthink your environment and can build up a trial dev env. and tear it down if it doesn't suit you with no fear of data loss.

Do buy a bulky box for a virtualized server (2)

dru (4742) | more than 5 years ago | (#25851919)

Doesn't matter whether you use Xen, Vmware ESXi, VMware Server, or whatever. Virtualization is how your customers will deploy your product, a way you can reduce costs, speed product cycles, and as a PM you should learn as much about it as you can.

So buy a well-specced out box, with 2-4 CPU cores, 4G - 16G of memory, several sata drives, and install a 64-bit linux with the virtualization solution of your choice.

From that point, create VMs as you need. You can even turn your existing machines into VMs with VMware converter.

As other posters have pointed out, you can donate or recycle the old hardware.

Good luck, and have fun!

One physical machine... (2)

Omega996 (106762) | more than 5 years ago | (#25851925)

I'd suggest picking up a decent (it doesn't have to be a monster, unless you're trying to replicate a powerful production server at your home) machine, and run some sort of virtual hosting on it.
I have a pretty weak machine that I use for development hosting - a crappy Intel Xeon 3050 (2MB l2 cache, 1.86GHz)and 8GB of DDR2-667 RAM. I put in 4 250GB drives, and run Xen Express 5 on top of it. I have two gigabit ethernet ports on it at the moment. I have 7 virtual machines running on it right now - 5 debian etch servers and 2 windows 2008 x86 servers. One of the 2008 servers is running Sharepoint Services, and the other is a domain controller. I messed around with Xen 4, but really decided to stick with Citrix' product with the 5.0 upgrade. I tried running VMWare Server 2.0 on the same computer (Ubuntu 8.04.1 LTS), and I have much better performance with Xen 5. Additionally, the XenCenter management tool is a lot nicer to work with - it makes connecting to iSCSI storage arrays (put a couple of large-capacity PATA drives in those old computers of yours, a $20 D-Link GigE card, and throw OpenFiler on them for a really easy, cheap SAN) stupidly easy. As I mentioned, the performance is nice - the SharePoint VM and DC both respond a lot better under Xen than it did under VMWare.
Regardless of what platform you choose, I'd suggest just get one decent computer (it doesn't even have to be particularly fancy - any dual- or quad-core around 2GHz with 8GB of RAM will do great) and put your VMs on there. Building and tearing down machines and networks is so much easier under a virtualized environment.

Virtualization and Off-site Hosting (1)

maestro371 (762740) | more than 5 years ago | (#25852017)

I set something up for myself for purposes similar to yours (although I'm not a PM). I've been doing a lot of Java and C/C++ development over the last year or so.

I use XenServer on a quad-core (2 dual-core) Xeon box with 4GB RAM and 1.5TB of disk space. I use a 3ware RAID card for the 5 disks (2 mirrored, 3 RAID 5). I run 2 Windows 2003 Servers, 2 Debian instances and a Windows XP Client (not always at the same time) on this one machine. My IDE runs on a Mac and the CLI.

I also rent a VM from I have an IPSec VPN I use between my house and Linode.

So at home, I have 2 machines hosting 7 operating systems (the Mac also has a Windows VM I run on occasion). I run multiple databases (PostgreSQL) with no trouble - it's not the fastest, but it works for development. The flexibility you get by being able to copy/create/backup/restore VMs at your leisure definitely outweighs any performance hit.

I'm definitely an advocate of the VM route.

Neither (0)

Anonymous Coward | more than 5 years ago | (#25852063)

You can worry about running all the gear on your own, but unless the project involves managing virtual machines themselves, then you should just sign up for a VPS at one of the many hosting companies that exist, and installing something like Parallels or Vmware on your workstation. That way you can concentrate on what you really need to concentrate on - and server management isn't it.

Really? (1)

frank_adrian314159 (469671) | more than 5 years ago | (#25852231)

I'm a Project Manager who recently decided that I want/need to get my dev skills more up-to-date, as more projects are looking for their PM's to be hands-on with the development.

Is this actually true? Maybe it's because I tend to know about larger shops, but this doesn't seem to be the case as far as I can see. Having been both a development manager and a project manager, I'd say that having the PM also responsible for development tasks is a quick way to not have a very good outcome for either. However, I've always thought that our industry was one where management has been considered so unimportant that it was often left to untrained, part-time personnel.

Anonymous Coward (0)

Anonymous Coward | more than 5 years ago | (#25852313)

I run my own contracting business (one man strong!) doing OSX, iPhone/Touch, & Windows development. In most cases VMs work well. GPU and multiprocessing are two instances where there's room for improvement however. Because of this I've not been able to move entirely to a VM environment.

So I have two Apple laptops (G4 & MBP), a Mac Pro ('08), home built Vista/XP (x86 & x64) machine, and a home built W2k3 server. All machines were acquired out of necessity, purchased as needed.

One machine, virtual environments (2, Insightful)

a9db0 (31053) | more than 5 years ago | (#25852469)

As a guy who makes his living testing software, I can tell you that the biggest boon to testing has been virtualization. The ability to have multiple environments running is great. The ability to painlessly restore them to a known good configuration saves hours daily. Snapshots are your friend.

Get a recent machine with plenty of disk. It doesn't need to be a monster - a mid range dual core or quad core is plenty. Several disks are better than a one, as it helps I/O bandwidth. Get enough space to hold your host os, and several VMs. More memory is better, and with 4GB kits running less than $50 get as much as you can. Use VMware/Xen/KVM to build the test environments you need, then snapshot/backup/copy them before installing any software you'll be testing.

Alternatively, if you're testing Linux apps, it might make more sense to get a vps - has good ones. Less horsepower, but easy enough to reinstall. And no capital investment.

Re:One machine, virtual environments (1)

Krishnoid (984597) | more than 5 years ago | (#25852819)

More memory is better, and with 4GB kits running less than $50 get as much as you can.

I've been pricing this recently, and systems that take the $50-per-4G type (only DDR2 non-ECC unregistered) will take a maximum of 8Gb. Are there any motherboards that will take more than that of the cheap RAM?

VMware 3.5i and a better server (1)

slincolne (1111555) | more than 5 years ago | (#25852539)

Highly recommend you try out VMware 3.5i and build a proper virtualisation server. The hardware compatability list is a bit of a challenge, but I found out (purely by accident) that the Intel ICH6 SATA controller in my server was visible and worked.

My server has 8GB of RAM (AU$250), an Intel QX6600 quad core cpu (AU$250), and an Intel Etherexpress 100 NIC (pull from old box). I can't seem to stress it out - it just runs great.

The reason I did this was:

I had a 42RU 19" rack full of desktop PC's I used to use, and the idea of spending money on them upgrading memory and CPU - and then having to pay the power bill turned out to be stupid.

I also saved a large amount of space, my server pulls 120 watts no matter what I throw at it, the noise level is down, it no longer heats the room (I'm in Australia and it's summer here), and it is a useful piece of contemporary software to get experience with. It's also much easier to spin up another server without having to make space for another PC.

A cheap machine will be enough (0)

Anonymous Coward | more than 5 years ago | (#25852553)

It depends what you want to do, but for web development, most machine you can buy today will be good enough. The only thing you will want to do, is make sure you get at least 4 Gigs of RAM (1G for the OS and the other apps that will be running, 1G for your DB, 1G for your server and test process and 1G for your IDE).

If you want to spend more cash get a more screen real estate (dual 24" or dual 30" are great.)

New or Old? (0)

Anonymous Coward | more than 5 years ago | (#25852619)

It depends on HOW old.
Remember: Google is a mass collection of crappy computers.
They don't need to do a bunch of intense, drawn-out calculation.

If you're going to be doing development:
    - Linux? You don't need a good computer
    - Not Linux? If you try to do development on a somewhat new Windows box remotely, this is going to stink.

Hope this helps.

Three Words (1)

PollyAnna (1388563) | more than 5 years ago | (#25852625)

Pimped-out Mac Pro

Neither: use a mid-machine, and virtualization. (1)

amcdiarmid (856796) | more than 5 years ago | (#25852857)

The problem is a bit generic, as we do not know what "development" is. For most Linux based development (Web-display, or Database, or coding), as well as most Windows based development (Same set) - with a few exceptions, you don't need a very powerful machine, and can virutalize.

I will state, that you can purchase a DEV box to emulate Five "Serviceable servers" for less than $1,000.00:

For this purpose, "A Servicable Server" is: 2x 2GHZ Xeon processor, 75GB of storage space, and 2GB of memory.

CPU: $120+ (AM2+ QuadCore @ 2.3GHZ)
Motherboard: $70 (AM2+ Motherboard with 4x 240pin ddr2 memory slots,and SATA Raid 0,1)
Memory (8GB): $85 (Guess what kind)
Hard disk: $150 Say two 640GB drives configured in Raid0.
Backup: Say $120 for a esata disk drive at 750GB

Case, KBD, Mouse: Go use an old one...

Total cost: ~$550 to virtualize four-five "servicable servers", with backup.

The trick to this is this: it is unlikely that any individual machine will be maxing out resources at the same time as other machines. For example, The VMWare ESX rule of thumb for CPU is something like 1core = 4x 2year old CPU's. with other virtualization, I would suggest cutting that down to say.. 2.5-1, just to be conservative. ESX would get you fun stuff with memory, so you are going to take a hit in the memory department. What can I say: I lied, you only get something like 1.5GB of memory per VM. Unless you are using JAVA, you are unlikely to miss it. If you are really doing something resource instensive, get more memory: either duplicate this machine, or buy a better mobo.

For many applications, an older machine is fine - especially for development: I have seen many production Oracle, and MS-SQL databases running on 2GHZ hardware. Anything running on a 32GB OS (Windows 2000/2003 anyone?) can only see 3GB, and many places never max out the memory beyond the original purchase of up to 2GB.

Of course, the real answer is look at the requirements of the components of this project to see what you need. Then if you are virtualizing - remove some CPU, as you are unlikely to have multiple CPU stress servers.

$02, give me back my two dollars.

EC2 (0)

Anonymous Coward | more than 5 years ago | (#25852981)

I've been really enjoying Amazon EC2

All in a monster box best solution (0)

Anonymous Coward | more than 5 years ago | (#25853163)

Here's some advice:

VMware Workstation so testing on dated OS's works fine (or does Xen work with Windows 2000?)

64bit hardware (quad core) with 8gb of RAM (it's as cheap as possible) - more options to present to lower levels

Utilize the Virtual Appliances on - don't worry so much on the server setup - sometimes it's easier to grab a pre-built LAMP / .NET / Mono VM and get started on your topic rather than learn server setup best practices and such

I have to agree on the Macbook idea for an Apple client, but a MacMini also works.

I think we all have to assume that you're doing web based technologies, and you'll need to test all 4 platforms for functionality (Win2k/XP, Vista, Mac, Linux)

You are a PM! (1)

xtreeman (76067) | more than 5 years ago | (#25853979)

I would start catching up on how to do your job as a PM, you are now being asked to do the job you actually should be managing.

Web/Database? Don't worry about it. (1)

SanityInAnarchy (655584) | more than 5 years ago | (#25854117)

Buy yourself a decent workstation. No need to go overboard, anything relatively recent will work.

No need for any fancy VMs, just pick an OS you're comfortable with -- preferably something Unix-y (OS X or Ubuntu) -- Windows will work, too, but it'll be more frustrating unless you're developing .NET.

In my case, I develop mostly with Ruby -- not all Rails, but pretty much all frameworks follow the same pattern of embedding a webserver in the app. So there's no need for a separate server -- just fire up the app and open a browser to http://localhost:3000/ [localhost]

Need to test two clients? Open two browsers! Problem solved.

The time to worry about anything more than one workstation is when you've actually got an app ready to go. But if you need more testing than is available on that one workstation, you need to talk to your clients anyway, and figure out how they intend to deploy it -- or come up with something yourself.

The only other reason to do so is if you're building something more complex than the typical web/rdbms model that everyone seems to be doing. Even here, a lot can be done with a single machine -- run two Erlang nodes, for example -- before you have to start thinking about VMs.

And by the time that's not enough -- when you're actually considering simulating a small network -- you're probably at the point where you'll have to talk to some real live clients and find out how the app will actually be run. If you get to make that call, I'd suggest Amazon EC2 (and remember to shut your nodes down at the end of the day) -- but keep it modular; Amazon is lagging behind Moore's Law in pricing, which means better alternatives may surface, which means you want to thoroughly encapsulate anything Amazon-specific.

Old machines make useful test systems (1)

zrq (794138) | more than 5 years ago | (#25854529)

When you say 'old' it depends what you want to run on them.
As a developer I use a whole range of systems, and I don't throw old machines away, I use them for testing.

  • My main desktop is a Quad core AMD Phenom with 8G of memory
  • Sitting next to that are two AMD Athlon machines, each with 4G of memory

I also have

  • Four Pentium III machines with 512M of memory
  • Two AMD K6 machines with 256M of memory
  • Four Pentium I (yes one) machines with 64M of memory

A Pentium III machine with 512M of memory is quite capable of running a fairly complex website. I use them to test websites developed using the Drupal [] content management system. If your website won't load and run in 512M of memory - you are probably doing something wrong.

In the past I have used Xen VMs, but at the time I found it tricky to setup (from what I have seen it has improved a lot since then, so this may be a better option now). For setting up a simple test system, it worked out easier to fire up one of the old machines and run the tests on that.
If I need to setup a test system that other members of our team can access, I use rented VMs from one of the cloud providers, FlexiScale [] , SliceHost [] or Amazon EC2 [] .

One thing I would recommend is that you never configure a machine by hand. Everything should be automatic, using shell scripts or equivalent to setup the machines. Everything, including the scripts for installing packages and configuring the system should be in source control.

To setup a new set of tests, I start by writing a shell script that will install and configure all the components needed to run the tests. It will take a while to create the first few scripts, but you will gradually build up a library of functions that you can re-use. Someone else has already mentioned using Puppet [] and Cobbler [] to achieve the same thing. Unfortunately they weren't around when I started doing this. I haven't used either of them yet, but I hope to experiment with them fairly soon.

Whichever system you use, automating the install and configuration will save you a huge amount of time in the long run. Using my library of configuration scripts, I can setup and configure a new test system in a matter of minutes. The configuration scripts are designed to be portable, so I can use the same tools on one of my local test machines, or on an external VM hosted by a cloud provider.

As to what I use the Pentium I machines for - stress testing. I write Java web services for a UK eScience project, processing large (Tbyte) data sets. One of the things I need to check is the webservice should never try to load the entire dataset into memory. It should process the data bit at a time, and free up resources as soon as it has finished with them. As a stress test, I deploy a webservice on one of the tiny 64M machines, and then run multiple clients on the bigger more capable machines to hammer it into the ground, repeatedly, day after day for a week. If my webservice can process Gbyte data sets on a Pentium I machine that only has 64M of memory - without grinding to a halt. Then I can be fairly confident that when the same webservice is deployed on a multi core machine with Gbytes of memory it will probably be able to cope with the kind of load our scientists intend to throw at it.

Summary : Keep the old machines and learn how to setup, configure and use them as test machines. In the process you will encounter many of the problems that your developers and sys admins have to cope with on a daily basis, and you will be much better placed to be able to help them in your role as project manager. If you buy shiny new boxes you won't encounter the same problems. It is easy to write a webapp that works on a huge machine with unlimited resources. The hard part is getting it to keep working when the dataset is larger than the available memory, the network is flakey and disc speed is making it crawl.

Anonymous Coward (0)

Anonymous Coward | more than 5 years ago | (#25854563)

Your developer's box should be very beefy but you can typically run a development server on an older pc. I run IIS, Sql Server, Server 2003, & on an old 750. Boot up time is slow but app response lag time is minimal because there is only one person hitting it. Just make sure you load test on production style equipment all during the development cycle. You don't need surprises.

Use it all. (1)

Jane Q. Public (1010737) | more than 5 years ago | (#25854763)

Get a large desk. Spend your money on one decent machine, like a MacBook Pro with 4GB, and one good 24" monitor. (By the way, we do "cutting edge" web development in our office, and that is our standard developer's setup: a MacBook Pro with an additional external monitor.)

Then you can use those other machines too. Take the best two or three of them, install Ubuntu or your favorite flavor of Linux on them, get one good network hub, and network them all together.

Then, install Synergy on all of them. Synergy is like a virtual KVM switch... it lets you use one keyboard and mouse to seamlessly work on all your computers. Put the monitors on your desk near your basic workstation setup (as described above), and you can just move your mouse cursor over to one of those screens, and now you are working on that computer! You can also copy-and-paste between machines.

This gives you the best of all worlds. If you want other OSes you can virtualize them on the Mac. But you can set up one or more of those Linux machines to be web or database servers on your network, offloading the server chores from your MacBook. And you can control them all with one keyboard and mouse.

Other than the cost of the MacBook setup itself, this is also very cheap. The only other cost is the network hub. Linux and Synergy are open-source, as are many of the newer development tools and database engines. I recommend Ruby on Rails very highly, but there are alternatives.

As for editors for development (if you are doing Web development you probably are not using an IDE, unless you go Visual Studio, which I do not recommend today), TextMate is very good. But believe it or not, the newer versions of VIM are very nice, and work cross-platform. So you can have nearly identical VIM editor setups on your Mac, Windows VMs (if you use those), and Linux.

Dual Virtualization (1)

digitalhermit (113459) | more than 5 years ago | (#25854883)

Virtualization is the way to go for dev/test. You can build out machines quickly, tear them down, revert to a previous configuration, etc.. Though you can do the same with physical hardware, it's not as resource efficient.

My test/dev environment consists of two AMD 64-bit machines with 6G-8G apiece and about 500G of hard drive space. The base OS is CentOS 5.2 running Xen machines. It allows me to build separate web/app/db systems to mirror what a production setup would look like. Also, for Oracle development you can get a better idea of how things like RAC will look. I'm also running DRBD volumes between the physical machines which allows me to experiment with HA clusters.

Nice things to have (whether virtual or not) is to set up a central build host and LDAP server. For this, I created a virtual machine on my production server with FTP and HTTP access. I loaded all my CentOS, RedHat and other distros there. For CentOS/RedHat, for example, I loopback mount the ISOs to /var/ftp/pub/centos_5.2_x86 and put all the kickstart images in /var/ftp/ks. I can then build out a VM machine from scratch with just a command by doing a network install. For the LDAP server I used Fedora DS (or CentOS DS). The kickstart is set to use LDAP automatically. Finally, just install the autodir package with a standard config. You can then login to a new virtual machine moments after it's complete.

The central server can also house your source code repository. I'm using CVS for some projects and Subversion for others.

Virtualization sucks (2, Insightful)

Spiked_Three (626260) | more than 5 years ago | (#25855017)

I don't care what anyone else says, in my experience virtualization sucks for most of the development process.

Years ago (20+?) IBM did studies that statistically proved that sub second response time was critical to productivity. As more and more stuff moves to the web we seem to have forgotten that fact, but it is in my experience very very true. Now I don't care how much money you spend, a virtualized development environment will never be as responsive as a native environment on the same hardware. Fast response time = productivity. You can keep a fast pace on your train of thought. Hit enter and wait 5 seconds for a response and your mind wanders. You lose your concentration.

Virtualization makes sense for replacing legacy hardware servers and for a portion of the development process, Quality Assurance/Testing. But keep the design and code writing native. Take your fastest machine and put your DEV IDE on it. Take your next fastest machine and put your database/web server on it. Or for a better model put them on separate machines, but keep your fastest machine for the IDE. And true, some can do great dev work without an IDE (like with vi/emacs & command line) but that is something for the very experienced, you know the type that has every API call memorized. The rest of us need robustness and the fast context sensitive help of a modern IDE.

Go virtual - as long as you don't do hardware... (1)

gooneybird (1184387) | more than 5 years ago | (#25855139)

Get 1 machine: 4 core or more, 8GB of ram or more, Terrabytes of drive storage.
Add your favorite 64 bit host OS.
Get VMWare. Create Virtual machines.
I went virtual about 1-1/2 years ago. I will never go back. I run multple multiple vm's each with their own VPN into 1) work, 2) client sites, 3) Hosting sites. I have a Visual Studio vm, a Linux server hosting subversion repository, Debian dev enironment, Linux server with Apache for testing web based apps. All on 1 machine.

One caveat... You can not do hardware (driver) development in virtual machines. Just sayin.....
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?