As part of my New Year’s resolutions, I’ve vowed to tackle a new technical challenge per month; however, to do so, I’d really like to beef up my home development environment, and was hoping to get some suggestions from some people on what to do. A little background information would probably help, so let me sum up what resources I have (and some other factors influencing my decision):
Resources:
- My company provides me with a mid-tier (LOW mid-tier) laptop for development. While I can load some software on it, I’d rather not load my own personal development environment onto it. I’ve thought about virtual machines, but it’s really incapable of doing much more than it already does (SQL Server Management Studio 2008 and Visual Studio 2010 can barely be opened at the same time). It’s also a brick; traveling with it is NOT fun, but I have to carry it with me in case I need to securely access our network.
- I have a desktop PC that was state-of-the-art 4 years ago, running Windows XP. I’ve loaded Win 7 onto it, and the motherboard doesn’t like it. I mostly use this PC for some minor development work, balancing my checkbook (Quicken), and browsing the Internet or watching my SageTV recordings.
- I have a MVP MSDN subscription that I won at SQLSaturday 51 in Nashville; I know a few people were surprised that I won it (because they assumed I already had it), but I’m not an MVP (at least not an officially recognized one; see Paul Randall’s shout-out to @sqlagentman on this post.). While I can get bits and pieces of this software to work on my home machine, I really think I’d be better off with a new environment.
Factors Influencing My Decision:
- Budget is top priority; I have limited funds for this project. I’d like to spend less than $500 upgrading my environment.
- Mobility. I do plan on traveling some to make presentations; the question is, how much of my development platform needs to be mobile? Can I just get a superfast desktop, and do minor road development on my laptop? On the other hand, I am spending a lot more time on the road between my apartment and the office (and my fiance’s house) these days; should I invest in a laptop, even if means I have to carry two laptops from place to place?
So, there you have it; resources and factors. I’ve thought through a couple of scenarios, but I’m very open to suggestions:
- I could make my home PC a kick-a$$ development platform for under my budget. Not very mobile, but cheap. A couple of parts from TigerDirect, and away I go. I might even have enough scratch left over to invest in an Android tablet or iPad for presenting (yeah, presenting; that’s how I plan to explain it).
- I could buy a cheap but beefy laptop and replace my home PC; not as powerful, but probably capable of doing dev work. It’s mobile when I need it to be, but it does mean I would probably have to carry two laptops when I travel. I’m worried that it won’t be powerful enough, but the i3 machines are pretty tasty these days.
Please feel free to leave comments with ideas; I’d love to hear some suggestions. I’d also love to hear suggestions on 64 bit vs 32 bit (I’m assuming 64 bit); how would YOU build a cheap development platform?
Have you considered creating an Amazon EC2 instance? They’re inexpensive and you can configure it how you need to. Since it’s for development you can just shut it off when not in use to save on costs. I’ve started using it as my development environment and it works great.
Good luck!
@JD: haven’t looked into it, but I will now. I’m really moving into the cloud lately (using Google Docs for my wedding guest lists and Yodlee for financial management); perhaps EC2 can provide a solution.
Thanks for the tip.
I guess if you’re going to be doing some heavy lifting at home it makes sense to upgrade your desktop, but I wonder if that’s what you will be doing. Aren’t you more focussed on dev than admin? If you were going to be building clusters or something I could see the need for an upgrade. You can probably do everything you want on what you already have (imo). Buy a good tablet. It wont replace your laptop (or desktop), but tablets are great for consuming media (like training vids).
@Tim, yeah, mostly development, but what if I’m planning on doing some Sharepoint development? Some of the environments I work with have heavy server backends, and I’d like to be as productive as possible for as cheap as possible.
As far as the tablet goes, are you agreeing with me that I should look at some sort of Android tablet for display work?
i went for a stummy fix desktop that runs a server and i go via internet/LAN to it via RDP/VNC.
The server runs a host for multiple virtual machines, that can be oversubscribed 🙂 since not all clients need all cpu resources at the same time.
cu
Let me know what you settle on, Stuart. In fact, just make another blog post about what you decide to do!
I need to build out the same kind’a environment myself. So your recommendation will save me a lot of time and, I have a feeling, a lot of others too.
I myself invested in an I3 Laptop during the holiday season while it was ‘on sale’… I’m also a Sony fan, so that too factored in my purchase decision. Haven’t ‘worked’ on it yet, but I did get VM installed plus SQL Server 2008 R2 installed to do some development practice and work there. Not saying this is the route for you, but it is the route I chose. Good luck!
Hi Stuart, if your working with a lower end PC with 1 CPU or <= 2 GB RAM, then you're probably better off booting from another partition than trying to run a VM. I have a boot manager and seperate partition setup on my laptop for my development environment, and that option wouldn't involve any hardware upgrades.
Another option would be to purchase a 2nd hard drive for your work laptop and pop it in at home whenever you want to do your personal stuff. On some laptops, removing and re-inserting a HD is just a matter of a screw or a latch.
Some boot managers like OSL2000 will let you boot from an external USB or FireWire HD with Windows installed, but I suspect performance would not be good.
Either way, here is the boot manager that I use, which is more flexible and reliable than the one provided by Windows:
http://www.osloader.com/