Previously
Overheard

Noho Biking

Anonymous

Introduction


07/07/2002 - 07/14/2002 07/14/2002 - 07/21/2002 07/21/2002 - 07/28/2002 07/28/2002 - 08/04/2002 08/11/2002 - 08/18/2002 08/18/2002 - 08/25/2002 08/25/2002 - 09/01/2002 09/08/2002 - 09/15/2002 09/15/2002 - 09/22/2002 09/29/2002 - 10/06/2002 10/06/2002 - 10/13/2002 10/20/2002 - 10/27/2002 11/17/2002 - 11/24/2002 12/29/2002 - 01/05/2003 01/26/2003 - 02/02/2003 02/02/2003 - 02/09/2003 02/16/2003 - 02/23/2003 02/23/2003 - 03/02/2003 03/02/2003 - 03/09/2003 03/09/2003 - 03/16/2003 03/16/2003 - 03/23/2003 03/23/2003 - 03/30/2003 03/30/2003 - 04/06/2003 04/06/2003 - 04/13/2003 04/13/2003 - 04/20/2003 04/20/2003 - 04/27/2003 04/27/2003 - 05/04/2003 05/11/2003 - 05/18/2003 05/18/2003 - 05/25/2003 06/15/2003 - 06/22/2003 06/22/2003 - 06/29/2003 06/29/2003 - 07/06/2003 07/06/2003 - 07/13/2003 07/13/2003 - 07/20/2003 07/20/2003 - 07/27/2003 07/27/2003 - 08/03/2003 08/03/2003 - 08/10/2003 08/10/2003 - 08/17/2003 08/17/2003 - 08/24/2003 08/31/2003 - 09/07/2003 09/07/2003 - 09/14/2003 09/14/2003 - 09/21/2003 09/21/2003 - 09/28/2003 09/28/2003 - 10/05/2003 10/05/2003 - 10/12/2003 10/12/2003 - 10/19/2003 10/26/2003 - 11/02/2003 11/09/2003 - 11/16/2003 11/16/2003 - 11/23/2003 11/23/2003 - 11/30/2003 11/30/2003 - 12/07/2003 12/07/2003 - 12/14/2003 12/14/2003 - 12/21/2003 12/28/2003 - 01/04/2004 01/04/2004 - 01/11/2004 01/11/2004 - 01/18/2004 01/18/2004 - 01/25/2004 01/25/2004 - 02/01/2004 02/08/2004 - 02/15/2004 05/09/2004 - 05/16/2004 05/16/2004 - 05/23/2004 08/29/2004 - 09/05/2004 10/03/2004 - 10/10/2004 10/10/2004 - 10/17/2004 10/31/2004 - 11/07/2004 12/19/2004 - 12/26/2004 01/09/2005 - 01/16/2005 01/16/2005 - 01/23/2005 01/23/2005 - 01/30/2005 01/30/2005 - 02/06/2005 02/06/2005 - 02/13/2005 02/13/2005 - 02/20/2005 02/20/2005 - 02/27/2005 02/27/2005 - 03/06/2005 03/06/2005 - 03/13/2005 03/13/2005 - 03/20/2005 03/20/2005 - 03/27/2005 03/27/2005 - 04/03/2005 04/03/2005 - 04/10/2005 04/10/2005 - 04/17/2005 04/17/2005 - 04/24/2005 04/24/2005 - 05/01/2005 05/01/2005 - 05/08/2005 05/08/2005 - 05/15/2005 05/15/2005 - 05/22/2005 05/22/2005 - 05/29/2005 05/29/2005 - 06/05/2005 07/24/2005 - 07/31/2005 07/31/2005 - 08/07/2005 08/07/2005 - 08/14/2005 08/14/2005 - 08/21/2005 09/11/2005 - 09/18/2005 09/18/2005 - 09/25/2005 09/25/2005 - 10/02/2005 10/02/2005 - 10/09/2005 10/30/2005 - 11/06/2005 11/06/2005 - 11/13/2005 10/22/2006 - 10/29/2006



Trackback by HaloScan

MA Politics
- Contact MA Reps
- Northampton Dems
- MassDems.org
- Progressive Dems of MA

MA Political Blogs
- Fred Clarkson
- The Fray
- Michael Wilcox
- Blue Mass Group
- .08 Acres
- Left in Lowell
- Cape Ann Dem
- wonk NOT
- Walk In Brain
- Left Center Left
- David Eisenthal
- MA Political State Report
- Romney is a Fraud
- Dirty Water
- Chimes at Midnight

Candidates
- Deval Patrick
- Peter Vickery
- Ted Kennedy
- David Narkewicz

Local Blogs
- Olsen Design
- Blog Beat Hamp
- Some Girl
- sigh club
- Valley Ravin'
- Baseball Musings
- Jennifer Myszkowski

Political Blogs
- Atrios
- Daily KOS
- Kicking Ass
- Wonkette
- Matthew Yglesias
- Political Animal
- Brad DeLong
- Daily Howler
- The Lefty Directory

Dean Friends
- Rick Klau
- annatopia
- The Left Leaner
- carl with a k
- One Father For Dean

Raw Data
- White House Press Briefings
- C-SPAN
- IRS.gov 2000 Tax Information

Lunatic Fringe
- Volokh Conspiracy
- Tacitus
- GeekPress


Massachusetts Progressive Politics and other news of the world

 

Tool Making


Making tools to automate repetitive tasks is an important and sometimes overlooked software developer skill. Where I work, we have scripts for automating a nightly build (check out, build, unit test, email the results), deploying our website, deploying our software to test, staging and production environments, checking in released binaries, etc.

One of the things I need to do a lot is make small demonstrations of the software my company sells, complete with an installation program. Almost all of my installers do the same three things: put some files in the program directory or web server document directory, make some registry entries, and maybe make an ODBC DSN.

I use a tool called InstallMaster from Wise to make installers. It's a great tool, but it's designed to handle a wide range of installation possibilities. After doing my second install, it was clear that I was only going to need a small subset of its features.

Luckily, InstallMaster files are text files and are fairly easy to read and generate. I took one of the files and looked for the specific things I would want to change. Then I designed a simple property file to express those parameters. A Perl script reads this file and customizes the Wise template based on the specifics of my install. The file looks like this:

# project settings
projectdir=c:\projects\MyProject
outputfile=c:\projects\MyProject\installer\MyProject.wse

# files to install
install=classes\*.class
install=data\*.mdb
install=wwwroot\*.*->%WWW_ROOT%

# registry entries
reg=LOCAL_MACHINE\SOFTWARE\MyProject\CPATH=%MAINDIR%\classes

# odbc
accessdsn=MyProjectDatabase=%MAINDIR%\data\MyProject.mdb

Now, the next interesting thing about my projects is that even their parameter files don't differ that much from project to project. So, next I wrote a Perl script to generate the parameter file from a project directory. It looks for the standard sub-directories and generates the parameter file for whatever is there. Next, it runs the script to generate the file for InstallMaster, and finally it runs InstallMaster on that to generate the installation program.

It's now at the point where I can make a new project, use the standard directory names and then when I'm done just run:

MakeInstaller.pl c:\project\MyProject
and get a MyProject.exe suitable for sending to a customer.
7/16/2002 12:18:00 AM [Link] |