Starting my Giant Programming Project

by Mike Levin SEO & Datamaster, 05/29/2007

This post on How to Learn Programming in the First Decade of the New Centry starts on the HitTail site, and moves here.

So, the first and most important step in this entire endeavor is to make documenting with screenshots a painless and quick process. I would probably even like to include Camtasia or Snaps Pro recordings as I go, which are basically VCR-like recordings of my desktop. I may even venture into some Flash or experimenting with the Adobe CS3 platform for making illustrations.

The first and most important step before the first and most important step will be to make a portable development environment based on a removable hard drive. While it’s nice to set up a server and work entirely off of that, I’ve learned too much over the years, you’re never where your server is, and relying on inconsistent bandwidth for local-access speeds is terrible, if you’re using something like VNC, Terminal Server or Remote Desktop to get in–which I will be doing initially. So instead, I’ll be using a VMWare virtual machine of one of my older dev platforms: Windows 2000 and SQL Server 2000. It will be enough to let me bootstrap myself, using GS3 to document the initial steps.

What? Windows software on such a decidedly Open Source project? Yep, that’s what my generalized system 3 is based on, and that’s where I’ll start my documenting.

Because these first steps don’t have the documentation machinery in place, they will be posted using blogging software, and I’ll just describe the process. I’m taking over for this purpose, because I don’t want to weigh down the HitTail site.

I’m using a 120GB pre-formatted Lacie removable hard drive, for maximum compatibility between Macs and PCs. The first few times, I made the mistake of trying to use USB thumb drives, and even the Lacie 8GB credit card drive. They’re all just too small and slow for a live dev platform. The Lacie Porsche is a nice looking little drive, just small enough to slip into a pocket. Way nicer than carrying a laptop around, but you can’t do your work on the train or in a park (yet). You have to sit at a workstation PC that you have enough control over to install the virtualization player software. There’s a slim chance I make the VM sessions run on both Macs and PCs without conversion. I don’t see the use of converting a virtual appliance from one to the other, say VMWare to Parallels, if you plan on having portability to any computer you sit down at. You should be able to boot your development environment whether you sit down at a Mac, PC or Linux!

Anyway, the VM platform with the best reputation and deal right now is VMWare. I downloaded VMWare Server 1.0.3, and I’m attempting to install it on XP Professional SP2. It issued some warnings, including the inability to start the VMWare Management Interface under IIS, which is no big deal, as I don’t plan on anything being accessible through IIS. I’m beginning to think I maybe should have stuck with the smaller VMWare Player, which is also free, but which doesn’t let you create new VMs.

As a side note, I literally went to war with the sysadmin of a previous company over VMWare, as he tried to move me from physical hardware to a virtual instance on brand new hardware that was purchased for my project. Now anyone who develops Web apps knows that the bottlenecks are not in virtualized processors, which VMWare handles well, but it’s in available memory and hard drive I/O speed, which it still handles awful. None-the-less, for personal development work that doesn’t require teams and version control systems, virtualized hardware is the way to go for portability and options.

After the install, the VMWare Server Console booted fine.

On the old location where I was running the VM, I shut it down and had to remove it from the Inventory in order to copy the VM session files over to the external hard drive. It’s a pretty big copy, and is going to take some time. It’s a good place to cut this entry.

As soon as I have the next step ready, I will link to it in the comment area.