• It was 20 years ago today..

    That I was in year 12 at Blackwood High School. So last night we had our 20 year reunion at the Duke of Edinburgh Hotel in Lower Mitcham. It was a very warm evening, otherwise I might have worn my old year 12 top (I’ve managed to keep it and it hasn’t faded too much. And yes, it is blue) -

    Front of Blackwood High Year 12 jumper from 1988

    In many ways, 1988 doesn’t seem that long ago, and looking around at the many people who turned up, it was interesting to see some faces that had hardly aged a year, and others I completely did not recognise at all. That’s not completely surprising though – there were originally about 245 of us!

    I find it is an occasion to reflect on your life – the choices and decisions you’ve made that have led you to where you are today. Remembering those days leaving High School, wondering how things would turn out. Would I ever have a girlfriend, get married, have kids? “Yes”, “yes” and “yes” in that order as it happens!

    It’s interesting that out of all those people, there’s probably only a small handful that I have maintained contact. Having said that, it was really nice to catch up with a few old faces that I wouldn’t have seen since school days.

    Thanks to Anita, Kendall and Louise for organising the event.

    And if that’s got you in an 80’s reminiscing mood, why not listen to a bit of SKY.fm’s Best of the 80s streaming radio.. ah so many memories, so little time :-)

  • Building a new Vista 64bit machine

    I’m in the process of upgrading my Dad’s PC. He does a bit of video editing and had noticed his machine was getting slower and slower, combined with the increased minimum requirements of the latest version of Pinnacle Studio.

    The existing components that we wanted to reuse include:

    Because his machine was a few years old, buying some extra RAM was going to be relatively expensive, so I suggested maybe he do a complete upgrade. Hoping to reuse the old case and drives, I selected the following components:

    View of internals of computer

    One thing I realised (from previous experience) was to make sure that there was enough room for the CPU fan. The old case was one of those compact upright boxes, and from examining the old motherboard it became obvious that the location of the existing PSU would prevent anything larger than ~5cm. All was not lost, as I just happened to have another case around that was slightly taller and allowed the PSU to sit alongside rather than over the top of the motherboard.

    The GA-MA770-S3 comes with lots of SATA connectors, but only one IDE connector. As we wanted to make use of two existing IDE hard disk as well as the old IDE DVD drive, I bought the extra ATA controller that plugs into the PCI slot. The only downside to this appears to be that you can’t boot off of a drive connected to the PCI card.

    Newer motherboards require a 24 pin power connector, hence the new PSU. The Vantec was not my first choice (I had chosen a Cooler Master eXtreme Power 500W but MSY didn’t have that in stock), but it seems a capable unit. I particularly like how all the cords are wrapped in blue mesh to keep things tidy.

    I’d decided that I’d use the 80Gb drive as the system drive (apparently it has an 8Mb buffer compared to the 60Gb’s 2Mb so it should be a bit faster).

    After connecting all the bits and pieces together, I booted up the Vista 64bit DVD and got as far as installing it onto the correct drive. It then rebooted and I saw the following unhelpful message:

    “The computer has restarted unexpectedly or encountered an unexpected error. Windows installation cannot proceed..”

    I found a post to the Microsoft newsgroups by Richard Urban which lists some conditions which can cause this problem (and sure enough they matched my hardware).

    Following his advice, I disconnected all the drives except the 80Gb drive and the DVD, which were both attached to the motherboard’s IDE slot. The Vista installation proceeded as normal.

    (If the DVD drive ever gets upgraded in the future for a SATA model, this problem would be avoided)

    Following the successful restart, I then reconnected all the other drives and put the DVD back on the PCI card. Everything then came up fine, however the DVD wasn’t anywhere to be seen. Vista identified the card as an Integrated Technology Express IT8212F. In the FAQ for this card, it mentions that there are two BIOSes available – a RAID BIOS which only works with hard disks, and “pure” IDE BIOS which also supports ATAPI devices (eg. CD/DVDs). There’s a BIOS upgrade application, but it only works in DOS mode, which won’t work in Vista 64bit.

    I tried the BIOS upgrade (on three different machines) but with no success. I was about to give up when I figured out that I could host the two IDE drives (including the Vista system drive) on the PCI adapter as long as the system drive was configured as the first drive. This then allowed the drive to be listed in the main motherboard BIOS’s list of bootable drives.

    Now everything is working well. The only outstanding issue is to check whether the Epson Perfection 2400 PHOTO scanner can work properly with Vista 64bit. There are Vista drivers but it appears the Epson Smart Panel software requires a non-free upgrade to a compatible version.

  • Major upgrades with WiX

    I thought I was going crazy.. I’d built an installer using WiX and set the product version to 1.0.0.1. The plan was that installing a new version would automatically uninstall any old versions.

    I then updated the version to 1.0.0.2 and installed the new version, only to end up with two installations.

    Turns out that Windows Installer only looks at the first 3 digits of the ProductVersion (as the first Note mentions in the Windows Installer documentation on Major Upgrades) – so twiddling that 4th digit is not going to have any effect.

    Here’s a sample .wxs file that works for me:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Wix xmlns\="http://schemas.microsoft.com/wix/2006/wi" xmlns:util\="http://schemas.microsoft.com/wix/UtilExtension"\>
    
      <?define version = "1.1.3.11" ?>
    
      <Product Id\="\*" Name\="WixUpgrading $(var.version)" Language\="1033" Version\="$(var.version)" Manufacturer\="WixUpgrading"
    
               UpgradeCode\="630aaa2d-a583-46db-85c4-eaf237590c61"\>
    
            <Package InstallerVersion\="200" Compressed\="yes" />
    
            <Media Id\="1" Cabinet\="WixUpgrading.cab" EmbedCab\="yes" />
    
            <Directory Id\="TARGETDIR" Name\="SourceDir"\>
    
                <Directory Id\="ProgramFilesFolder"\>
    
                    <Directory Id\="INSTALLLOCATION" Name\="WixUpgrading"\>
    
                         <Component Id\="ProductComponent" Guid\="c768bc29-e2d6-4f1c-b711-2dcf91641fab"\>
    
                 <File Id\="TextFile1.txt" Name\="TextFile1.txt" KeyPath\="yes" Source\="TextFile1.txt" />
    
               </Component\>
    
                    </Directory\>
    
                </Directory\>
    
            </Directory\>
    
            <Feature Id\="ProductFeature" Title\="WixUpgrading" Level\="1"\>
    
                <ComponentRef Id\="ProductComponent" />
    
            </Feature\>
    
        <Property Id\="PREVIOUSVERSIONSINSTALLED" Secure\="yes" />
    
        <Property Id\="ALLUSERS" Value\="1" />
    
        <Upgrade Id\="630aaa2d-a583-46db-85c4-eaf237590c61"\>
    
          <UpgradeVersion Property\='PREVIOUSVERSIONSINSTALLED' OnlyDetect\="no" IncludeMinimum\='yes' Minimum\='0.0.0' IncludeMaximum\='no' Maximum\='$(var.version)' />
    
          <UpgradeVersion Minimum\="$(var.version)" IncludeMinimum\="no" OnlyDetect\="yes" Language\="1033" Property\="NEWERPRODUCTFOUND" />
    
        </Upgrade\>
    
        <InstallExecuteSequence\>
    
          <Custom Action\="PreventDowngrading" After\="FindRelatedProducts"\>NEWERPRODUCTFOUND AND NOT Installed</Custom\>
    
          <RemoveExistingProducts Before\='InstallInitialize' />
    
        </InstallExecuteSequence\>
    
        <CustomAction Id\="PreventDowngrading" Error\="Newer version already installed." />
    
        <CustomAction Id\="UIandAdvertised" Error\="Something about the UI."/>
    
        <InstallUISequence\>
    
          <Custom Action\="UIandAdvertised" Sequence\="3"\>ProductState=1</Custom\>
    
        </InstallUISequence\>
    
      </Product\>
    
    </Wix\>