Friday, February 23, 2007

FinalBuilder to the rescue (again)

One of our applications has an installer that is created with Wise InstallBuilder 9.  The application is built from our shiny buildbox under the control of FinalBuilder.  When FinalBuilder builds the application, it does everything locally on that box.  With one exception, the installer.  The installer script file resides on another box, and our QA department uses the same installer to test various versions of the installer.

To keep our builds separate from QA's builds, I have FinalBuilder set to call the Wise compiler with a variables file.  That file is created each time FinalBuilder runs and it defines the version number, the name of the setup.exe and where the setup is created.  By sharing the installer source script with QA, we ensure that our test builds match their final layout.

Which was all good until QA edited that file on a machine that has Wise installed to a non-default location.   For some inane reason, Wise stores the location of the their runtime files in the script file.  When you open that file with the runtime in a different location, Wise throws up a dialog and prompts you to save the correct value in the file.

We have been invoking FinalBuilder from a script and that prevents the Wise dialog from being displayed.  So the build script hangs at that point.  The only way to get control back is to kill the wise32.exe process.  Why does Wise need to store a hard coded path in a script file when it already knows the location of the path?

That's annoying.  However, using FinalBuilder makes problems like this trivial to fix.  I added a Copy File action to the FinalBuilder build script to copy the install script to a second file.  That would allow us to pick up any changes that QA makes to the script.  I then added a Text Replace action that did a search and replace on "D:\PROGRA~1\WISEIN~1" with "C:\Program Files\Wise Installation System".  And our builds are back in business.

Tuesday, February 13, 2007

Windows Home Server goes Beta 2

Windows Home Server has reached Beta 2.  Foe those of your playing the home version of "Name That Beta", Beta 2 means that Microsoft has is now soliciting external testers to try the new OS.

I've been running FreeNAS for a couple of weeks without incident, so naturally I decided to see if I wanted to take a perfectly good running NAS and replace it with an unstable beta. It does some cool things that I don't do with FreeNAS, so I decided to see what was needed.  It needs a Pentium 4, 512 MB RAM, and two or more drives with at least 300 GB space.

That seems a bit steep for a head-less device.  I'm running FreeNAS on a box that is at least 5 years old.  A 1 ghz Celeron with 256 MB RAM.  I started with a couple of 20 GB drives (remember 5 years ago) and added a 250 GB drive.

FreeNAS is working just fine, I think I'll leave it alone.

Monday, February 05, 2007

I hate Macs

You have to love a good rant...

I hate Macs. I have always hated Macs. I hate people who use Macs. I even hate people who don't use Macs but sometimes wish they did. Macs are glorified Fisher-Price activity centres for adults; computers for scaredy cats too nervous to learn how proper computers work; computers for people who earnestly believe in feng shui.

That's from Charlie Brooker, someone I will now start reading on a regular basis.  Having an iMac on my desk, I really loved this line:

When I sit down to use a Mac, the first thing I think is, "I hate Macs", and then I think, "Why has this rubbish aspirational ornament only got one mouse button?" Losing that second mouse button feels like losing a limb. If the ads were really honest, Webb would be standing there with one arm, struggling to open a packet of peanuts while Mitchell effortlessly tore his apart with both hands.

Yet another rebuild (Part 2)

I'm not installing Opera this time.  I've been an Opera bigot for a long time, but it's not going on my primary work PC.  I'm using FireFox 2 instead of Opera.  Why?  Three words: Google Browser Sync.  The best description of Browser Sync comes from Google:

Google Browser Sync for Firefox is an extension that continuously synchronizes your browser settings – including bookmarks, history, persistent cookies, and saved passwords – across your computers. It also allows you to restore open tabs and windows across different machines and browser sessions

After having to rebuild my PC twice now in the last month, I'm tired of losing bookmarks and other settings.  With Google Browser Sync, my bookmarks are synched up across machines.  It adds so much value to me, that I'm giving up the faster performance, the better security, and the smaller footprint of Opera.  Of course, I'm going to make Firefox behave like Opera as much as possible.

Yet another rebuild (Part 1)

After two and half weeks, I finally got my primary development box back from our IT manager.  The delay was due to fun with RAID.  After two drive failures within 30 days, I'm not taking any more chances.  BTW, nothing beats having two development boxes.  We are on three year refresh cycles for our PC's.  Usually developer boxes get rotated out to other departments.  On the last refresh, I managed to keep my old PC.  I do enough TCP development work, where it's handy to have to physically separated machines.  Now, the old box is now the insurance policy for when the hard drive goes on the primary box. 

Now, comes the tedius part, installing all the applications and tools that I use.  After the last drive finalure, I made up a spreadsheet of everything I use, that makes things much easier.  (Note to self: Next time, don't store that list on the machine that's meant for.  I was lucky, that file was recoverable when the drive went south.)

The first job is getting Windows setup up the way I want it.  That means XP, not Vista.  None of my development tools are certifed for Vista (Visual Studio 2005, BDS 2006), so why tempt fate.  Plus XP came with the box, might was well use the license.  For now, I'll run Vista from within a VMWare session.

After installing XP, I needed to get IIS installed.  Then Office.  Since the last drive fell on it's sword, I received the Office 2007 disk as part of the MSDN subscription.  I've only had the chance to play with Excel and Outlook, but the usability improvements are real.

The first time I ran Outlook 2007, it connected to our Exchange service and grabbed my mail.  The cool part was that I didn't tell it the name of our server or my email account.  It apparently figure that out from AD.  With Outlook 2003, I use LookOut to provide high speed searching of messages.  I don't think that's supported with Outlook 2007, so I have installed Windows Search.  It seems to work, plus it works across the file system.

The next thing I always disable is the Language Bar toolbar.  Even though you can right-click on the taskbar and de-select the Language Bar, it keeps coming back.  The following steps will take care of that:

  1. Click Start, click Control Panel, and then double-click Regional and Language Options.
  2. On the Languages tab, under Text services and input languages, click Details.
  3. Under Preferences, click Language Bar.
  4. To turn text services off, select the Turn off advanced text services check box.
  5. Click Yes if you are prompted to confirm your selection.

Then I add Administrative Tools to the Start Menu.   I use that enough so it's handy being able to get in quick.   Now the OS is functional, I can start loading up the tools.

A new title for Eliot Spitzer

I dub thee "Governor Steamroller".

Generating UTF-8 string s with out Byte Order Marks

Rick Strahl has a good blog entry on how get data from XmlTextWriter with having a Byte Order Mark (BOM) at the start of the data. The trick is to create the encoding manually and pass it with the constructor to XmlTextWriter.