AmishGeek.com Rotating Header Image

Windows 7 Pricing announced

ars technica lists the new windows 7 announced pricing structure. I’m intrigued, as I’m still running Windows XP on my home computer, and within Parallels on my Macbook and my iMac at work.  Windows 7 might be the first Microsoft [software] product I’ll purchase in almost 8 years, ever since I bought Windows XP.

From everything I’ve read and seen (I have yet to download and install a copy of the beta/release candidate), Windows 7 blows both XP and Vista out of the water.  We’ll see if it holds a candle to MacOS, especially with the SnowLeopard release.  I applaud Apple and their pricing structure, only charging $29 for an upgrade from Leopard to SnowLeopard. Add that to the fact that a retail “Family Pack” of MacOS can be installed on up to 5 machines for only $199…  Apple has their software pricing right!

Anteater Crossing the Delaware

I’ve been spending some time playing around in photoshop… this is one of my recent creations.

Enjoy!

New side project - Trollfodder.com

I got bit by the project bug again, and set up a new blog - Troll Fodder

The purpose of the site is to chronicle and post about instances when people fall for internet trolls, good rants/raves/flame fests, and when people just wear their blatent stupidity on their sleeve for all to see.

Tools a Project Manager can’t live without

As a project manager for a software development team, there are several tools that I can’t live without.   Whether your development team contains 2 people or 200, these are tools that should be in every development toolbox.

Code Versioning

Is versioning even a word?  In any case, any development team, whether working on a grand scale project for NASA, or a simple website for your mothe’s friends neices husbands business, keeping track of changes within the code is a MUST.  There are several different methods for version tracking within your codebase.  One is to always save your file with a different name.  But most people nowdays make use of Subversion.

We use subversion for our code repository, and it has made things so much better in terms of day-to-day workflow.  When we started our project, it was just one developer working, soon we added another developer, and things got sticky.  Our code management system was FTP, and our developers both connected to the production server to make changes directly to files.  Sometimes both developers would have the same file open, and one would overwrite the others changes.

Needless to say, we had problems, and it was frustrating, and a very bad way of managing a project. Even though I enjoy learning new technologies, and configuring servers, I needed a pain-free way to quickly and rapidly get a versioning system online and in use.  That is where Jumpbox’s Trac system came to save the day.  A quick download, simple configuration, and we were up and running with subversion and trac that afternoon.

Issue Management & Bugtracking

So now we have a code repository, but we don’t have a way to track issues, bugs and tasks.  (Well, trac has a built in system, but it’s pretty clunky and didn’t meet our needs).

Everything in our project to-do list was up in my head, and our roadmap existed in various versions on the whiteboard in my office.  Bugs were sometimes fixed as they were found (if found by a developer), or were lived with until they were fixed.  Email and instant messenger were the means to communicate tasks and feature requests for the application.

Things were pretty disorganized and I became frustrated as I was repeating myself and doing things multiple times between my whiteboard, emails, IMs, and various conversations with my development team.  We needed a management system desperately, and that is where Redmine came to save the day.  Redmine is a simple project/task management system.  We were able to input bugs into the system, create new tasks, assign issues to upcoming versions, and finally have a comprehensive roadmap for where we were heading.

Since Redmine is a Ruby on Rails app, and we are a PHP development shop, I didn’t want to have to mess around with a RoR platform.  Thankfully, there was the Redmine Bitnami Stack. This allowed me to quick set up a Virtual Machine and install the bitnami redmine, and that same afternoon we had an issue management app up and running.

Now whenever my developers and I have a brainstorming session for features, each idea gets added as a feature request, and assigned to a “very far in the future” version.  We then reveiew feature requests and re-assign them to upcoming releases.  We also set up an email box that redmine monitors for new bug requests.  So our users can simply shoot an email (or the system can send an email if it detects an error anywhere) and we now have an active growing to-do list.

And Finally…

With a good code versioning system, and an issue/task management system, the only other thing a good project manager can’t live without… is good developers!

VMware Server on Ubuntu 8.10 - Soup to Nuts

I’m a pretty big fan of VMware Server, I’ve been using it for almost a year now.  It is great in a development enviromnent for testing different scenarios.  It also lets me test/play with multiple software packages without having to dedicate resources to testing.   I can also deploy production “toasters” to run specific and optimized apps.

This is a Soup to Nuts walkthrough on running VMWare Server2 on Ubuntu Server 8.10.

First, install Ubuntu Server 8.10.  Since my host machine isn’t going to be running anything except the VMware Server, I don’t want to install anything extra, including any form of xwindows or desktop which will just be overhead (even if it’s not used).  I installed Ubuntu Server with pretty much all of the defaults.  When the install gets to the Software Selection screen, select “Virtual Machine Host”.

Once the install completes and the CD ejects, the rest can be done remotely.  I prefer to work via SSH so I can copy/paste commands and have side-by-side reference from my terminal to my browser.

Now that Ubuntu Server is installed, there are a couple key components that will need to be added to the system before VMWare Server can be installed.  Before we do the next steps, let’s make sure we have an up-to-date apt repository.

sudo apt-get update

build-essential - VMware Server needs to recompile certain aspects of itself to match your systems architecture.  So you’ll need to have the appropriate tools installed to compile.  To install these essential tools, simply enter

sudo apt-get install build-essential

Next we need to make sure we have the appropriate kernel headers from which VMware will compile it’s neceesary components.  The following commands will figure out what version kernel headers your system currently has, and then install the appropriate headers.

apt-cache search linux-headers-$(uname -r)

(On my system this returned: linux-headers-2.6.27-7-server - Linux kernel headers for version 2.6.27 on x86/x86_64)

sudo apt-get install linux-headers-$(uname -r)

Now all of the necessary components are installed to install VMware server.  Download the latest version of VMware Server.  In my case, this is VMware-server-2.0.0-122956.i386.tar.gz  (You need the tar version for Ubuntu).

Once VMware Server is downloaded, extract it into your user directory.

tar -zxvf VMware-server-2.0.0-122956.i386.tar.gz

cd vmware-server-distrib

Next, run the installer.

sudo ./vmware-install.pl

Install VMware Server with all of the default options.  After it is installed, the installer will ask you if you want to run the configuration script.  Run it now.  If you choose not to run it, you can run it manually.

sudo vmware-config.pl

After agreeing to the terms and conditions of the VMware EULA, it will ask you if you have a compiler installed on the system (if you installed the build-essential packages as listed above, you’re all set).  It will then ask you the location of the C header files that match your running kernel.  It should auto-fill with the directory containing the previously installed header files.  (In my case: /lib/modules/2.6.27-7-server/build/include)

VMware will now build multiple modules to customize itself to your system.  When that is done, it will ask you if you want networking for your virtual machines.  The networking questions can be confusing the first time you run the install.  I typically set up a Bridged connection for each network interface on the host server. (This is like creating a virtual interface for each physical interface for your VM’s to use).  I then set up a NAT interface with a separate subnet, and a Host-Only interface with another separate subnet.  After configuring the network interfaces, it will then compile the networking components.

Next it will ask for the port for remote connections to access the VMware server.  The defaults are

  • 802 for remote connections
  • 8222 for http
  • 8333 for https

Ubuntu does not have a root user, and VMware server usually defaults to the root user for it’s admin user.  So when the configuration says “The current administrative user for VMware Server  is ”.  Would you like to
specify a different administrator? [no] “  Choose “YES”.  At the prompt, enter your username.

After setting the path to the directory that will store the Virtual Machines, you will enter the serial number VMware assigned to you.  Then the configuration will finish with the final VIX components.

If the configuration script exited without any errors, then congratulations!  You now have your very own Ubuntu Server 8.10 host running VMware server 2.0!

Open up your web browser and browse to https://ip.of.vmware.server:8333  If you use a new version of FireFox, you’ll have to add a security exception for the unsigned SSL certificate that VMware server uses.  Enter your username and password and you can now start configuring Virtual Machines through the web interface.

Unfortunately, in order to use the remote console to actually view the virtual machines and interact with the guest OS’s, you’ll need to be accessing it from a Windows desktop.

I hope you find this little article helpful!