A few months ago Carolyn and Om (Dev and PM on the Windows Installer team respectively) invited me to give an hour long presentation on the Windows Installer XML toolset to a bunch of developers internally. That presentation later gently morphed into my presentation at OSCON. However, more interesting is the fact that the presentation Carolyn and Om invited me to was recorded. Om sent me the video a couple months ago and gave me permission to post my portion of the presentation publicly. I had actually hoped to post this before OSCON but it kept falling off my priority list until this week.
So, before I give the links to the presentation and video there are a few pieces of context I want to provide:
1. It took me about twenty minutes to settle into this presentation (although I was pretty shaken from the beginning, see the next point). I built the presentation in a few hours after midnight the night before the presentation. I decided the presentation should actually be more a demonstration of what is possible in the WiX toolset instead of a bunch of bullet points. Demonstrations are always much more difficult to get right than just talking. The big issue was that I only had time to practice the demonstration in pieces, never from start to finish. So, I was very nervous until I got past the first (and hardest) part of the demonstration. That’s why you see me jumping around a lot in the beginning (although I move around a lot as it is). I relaxed a lot more after that. And no I wasn’t completely nervous through the whole presentation, I always talk that fast.
2. Almost 15 minutes into the presentation I hit a compile issue related to the Package/@Codepage attribute. That was terrifying. I thought for sure my presentation was dead at that point in time. Fortunately, I realized I could pull the attribute and the demonstration would perform fine. As promised I tracked down the actual problem. The root issue is that the template I started from had put a Codepage attribute on the Package element. If you know the wix.xsd, you know that the Package element has a SummaryCodepage attribute not a Codepage attribute. Unfortunately, I trusted the template too much to realize that at the time.
3. During the presentation I have a little bit of dialog with the people sitting in front of me that you can’t hear in the video. The conversations (if I remember correctly) are all around me typing XML incorrectly and/or doing things that the audience thinks is wrong. They are usually right and you get to see that the demo is real and that WiX doesn’t crash when you pass it bad data. Of course, you also get to watch me debug my demo while standing in front of 100 to 150 developers.
4. In the demo, I promise to publish all of the source files I’m working with. I will (in my copious free time) get them cleaned up and posted to SourceForge. I just didn’t want to hold up the posting of the video any longer waiting for that cleanup.
5. You’ll see me adding and sync’ing and resolving files using our source control system at Microsoft (called Source Depot). This system operates nearly identical to CVS (just different names for things) and most other source control systems. Put your favorite source control system in place and the demo should work the same.
6. In the middle of the presentation, I mention that InstallShield used a binary file format for saving the user data and that is bad for source control. For the record, yes, I know InstallShield has recently moved away (or provided the option to move away from) from that binary format. I’d like to think WiX helped nudge ’em in that direction. <smile/>
7. About three fourths of the way through the presentation I discuss the machine where WiX is available for internal developers. As I’ve mentioned in a previous blog entry, there is a copy of all the SourceForge code on a machine inside Microsoft. I personally act as the gateway and replication service between that copy of the WiX toolset inside Microsoft and SourceForge. I always point internal people at the internal copy for all the reasons mentioned in that previous blog entry.
8. All the MSI 3.0 and patching features I mentioned nearing completion are done and in the WiX toolset now.
9. Finally, I want to apologize for the image quality. I know it is hard/impossible to read what I’m typing sometimes. I couldn’t get the file to a reasonable size and reasonable image quality so this is a compromise. Hopefully even without being able to see everything that I’m doing the point comes across.
I still can’t believe I made it through this presentation in under an hour. Enough of me babbling here, now for the links to the data you’ve been waiting for:
Keep coding, you know I am.