somethings from codeland

Sunday, December 28, 2008

working on large NSIS projects remotely

One of the things I've been doing for a while now has been maintaining and updating Appian's software installers. These are pretty decent size installers: they install anywhere from 2 to 3 times the amount of data your normal Windows game might install before you can play.

Amazingly I've been able to shrink the install times down to 25 - 30 minutes (depending on the target machine's hardware), down from the 2 hours that it used to take. Even with this major improvement, there's still a couple of things to be desired:
  • Faster build times (if at all possible)
  • Better compression of the data
  • More protection for the software installation process
  • More stability on a broader range of operating systems
  • Vista font issues
  • faster testing (probably the longest holdup for releasing new versions of the installer)
  • updating the installer codebase for compatibility with the latest NSIS release
From a developer's perspective there are things that I would love to do to make it easier to maintain and maintain these installations from out of the office. I have a Windows XP desktop machine in the office configured to run vmware workstation with multiple guest virtual machines: one for the installation development environment, and multiple others for testing various aspects of our software installation process. This type of setup makes it easier to back up the installer development environment, because of the many variables that are set in order for Direct Route or Territory Pro to run properly.

This is just a desktop machine that has power and an ethernet cable plugged into it. Up to this point we're still in the office though. Since I work from Stillwater during the school year now (or wherever I'm at when I'm not in school) I have been using logmein.com to access the physical machine's desktop to get into the development virtual machine to code and kick out installers. While this isn't exactly a terrible setup, it can be a bit laggy depending on the internet connection I'm working from and as a result can be a waste of time even just to modify a few lines of code and kick out a new installation to test.

I do have a couple of ideas that can at least help with the coding portion of the installer maintenance ritual. It might take a little bit of time to get all of this working properly, but I think it would be well worth the time overall, even for someone that would be working in the office.

My idea initially is to access the installer code on the live virtual machine over the internet directly on my Mac laptop over a Hamachi VPN connection. Next is once I'm done I need a quick way of kicking off the compilation process for the code I need and notification once the compilation ends (either by completing successfully, or by failing). What turns out to be the big project is how fast and what the best option is for rolling out quick web services as a means for project control after I'm ready to compile all of that code and start testing.

Just to be clear, there are several reasons why I don't carry the virtual machines directly on my laptop:
  • size of the vm's
  • security of the software
  • security of the installer code
  • easier means of integration with the internal backup strategy.

No comments:

Twitter Updates

About Me

My photo
I have been working with computers/programming to put myself through college since I graduated high school. I am currently attending Oklahoma State University for bachelors degree in biological sciences. Along with my experience in programming, a degree in biology will allow me to pursue a career in bioinformatics research concerning genetic diseases (i.e. cancer).

Blog Archive