Archiv für January, 2010

WiX Working Group video of the night, Jonathan Coulton vs. Kid Beyond.

Friday, 29. January 2010 at 3:21 pm

So for the last couple weeks, the guys have been asking for a "funny video". Earlier this week I tripped across this video via some random tweet. I knew it was going to be funny when I saw Jonathan Coulton was on stage.

If you are a geek, you probably already know JoCo. If you don’t then you have to watch this rendition of Code Monkey (my first name actually makes a cameo!). If you find that video funny or representative of your life then you are a geek.

Now if you don’t know who Kid Beyond is then you were not alone. I nor any of the other guys working on the WiX toolset knew of him. However, I can tell you after seeing this video then watching him perform live on YouTube, I ordered his Amplivate EP right away.

Anyway, that’s enough back story. Check out the video. It’s slow to get started but by the 4:00 minute the battle is on.

I’m also curious who do you thought won? JoCo’s Super Mario Bros theme or Kid Beyond’s Strongbad Techno. Personally, I have to go with Kid Beyond because right when I thought he was completely boxed in he came out with something even geekier.

 

tags: , , , , , ,

Original post by Rob Mensching

Abgelegt von culture
von

StackOverflow: what does Name=“SourceDir” refer to?

Wednesday, 27. January 2010 at 8:42 am

Honestly, the TARGETDIR/SourceDir Directory element is something that we should have hidden from the developer using the WiX toolset but didn’t. Sorry. The truth of the matter is that the Windows Installer expects the Directory tree to always be rooted in a Directory row where the primary key (Directory/@Id) is "TARGETDIR" and the DefaultDir column (Directory/@Name) is "SourceDir".

During an install, TARGETDIR will default to the largest drive on the machine. SourceDir will be set to the location where the MSI is being executed. Now, SourceDir is tricky after the initial install because it won’t be set unless the ResolveSource action is called. However, you don’t want to explicitly call the ResolveSource action because it is likely to prompt you to provide the original source media (aka: insert the CD, please).

What we should have done in the WiX toolset is remove the need to specify the TARGETDIR/SourceDir pair and say "Any Directory element that has no parent will automatically be parented to TARGETDIR because that’s what the MSI SDK says to do." Instead, you have to do it yourself… and some devs wonder what it all means.

Maybe we’ll fix this in WiX v4.0.

From the StackOverflow question: http://stackoverflow.com/questions/1641094/in-wix-files-what-does-namesourcedir-refer-to

 

tags: , , , ,

Original post by Rob Mensching

Abgelegt von WiX
von

WiX Working Group video of the night, paradox in the making.

Friday, 22. January 2010 at 2:08 pm

A good friend from college, @moswald, has been tweeting about this little game called Achron. Achron is a real time strategy (RTS) game with a huge twist. You can warp your units back and forth through time. Of course, being a geek I immediately wondered, "What happens if your unit goes back in time and destroys the factory that built it?"

Yeah, that’s the "Grandfather Paradox" and these game designers are so cool they handled it. They even made a video explaining how it works in Achron. The game is still under development but it doesn’t make the concept any less cool. Check it out.

Still not quite as cool as the "Component Rules Paradox" though.

 

tags: , , , , , ,

Original post by Rob Mensching

Abgelegt von culture
von

Glimpses of life with WiX v4.0.

Saturday, 16. January 2010 at 7:46 pm

Believe it or not, I sometimes get questions about WiX v4.0. "Rob, is there going to be a WiX v4?" "Rob, what’s going to be in WiX v4?" "Rob, when does WiX v4 start?" "Rob, when will WiX v4 be done?" Before answering, I always make sure that people understand that WiX v3.5 is our focus right now because it is important that we support for Visual Studio 2010 and get Burn "v1" done. Then I mention what I mentioned here yesterday, WiX v3.5 slipped from March to probably September.

After it settles in that we’re not going to be starting WiX v4.0 right away, I start on the list of "what". There are four things that I think will keep us busy in WiX v4:

  1. Pay down technical debt - we need to go through and do a huge scrub of the WiX codebase. Now that C++ code is supported by MSBuild, I think we’ll switch our hybrid of NAnt (for native code) and MSBuild (for managed code) to an all consistent MSBuild system. We also need to go refactor large chunks of code. In particular, the Binder took on some heavy debt as the new patching system was stitched into the code. I expect the Bundle work we’re doing now (for Burn) will further complicate that part of the code.
  2. Burn "v2" - the Burn that will ship in WiX v3.5 will be an awesome bootstrapper but I am certain there will be features proposed that we don’t have time to get in and get stable this year. In WiX v4 we’ll incrementally advance Burn until it becomes the first and last bootstrapper you need.
  3. Language improvements - this is what I want to focus on in WiX v4 . There are so many opportunities to make the WiX language easier to understand and easier to use. This area is so exciting to Bob and I that little things have been sneaking into WiX v3.5 (since we have more time due to Burn slipping). Bob blogged about the brand new MajorUpgrade element today and the Component element simplification earlier. With the freedom in WiX v4 to maybe do some small breaking changes (and add migration to WixCop.exe), I’m really looking forward to getting into WiX v4.
  4. Code generation - while my focus is likely to be on language improvements, I expect there will be some killer advances in code generation. There is heat.exe right now but that barely scratches the surface of what I think we’ll be capable of in WiX v4. Again, with the slippage of WiX v3.5, we might see some early prototype work of code generation showing up in WiX v3.5. But it’ll be WiX v4 where I think we’ll really have time to work on this.

So right now (aka: WiX v3.5) the focus is Votive support for Visual Studio 2010 (which is basically done) and Burn (which is definitely not). When WiX v4 starts and ends will likely be a function of how long it takes us to finish Burn "v1". Cool?

 

tags: , , , ,

Original post by Rob Mensching

Abgelegt von WiX
von

Burn moves to a new foundation.

Friday, 15. January 2010 at 1:59 pm

A week ago a very big accomplishment happened very quietly. The development team inside Microsoft responsible for creating the .NET Framework 4.0’s (NETFX4) bootstrapper finished the initial transformation into the WiX toolset’s bootstrapper, Burn. Yes, you read that right. Burn will now be based on the same code that shipped the .NET Framework 4.0 to hundreds of thousands of Beta users.

First, a little bit of history. At the beginning of July 2009, I described what Burn is all about. Back then I had hopes that Burn would be useable by the end of month or, at least, mid-August. At the end of July, the NETFX4 bootstrapper team approached me and suggested that we consolidate bootstrapper efforts. It took a bit of convincing but, by the end of August, I agreed that we should start from the NETFX4 bootstrapper codebase instead of the code that was under development in WiX.

So I wrote a high level feature requirements document that basically summarized my introduction to Burn plus its container support. The NETFX4 bootstrapper team took those requirements and built a plan to enhance the NETFX4 bootstrapper to reach feature parity with the Burn under development in WiX. The plan’s execution took a bit longer than expected since the team was unexpectedly attacked by some extra Visual Studio 2010 work and the N1H1 virus (yes, swine flu literally wiped the team out for a few weeks). Despite the challenges, the NETFX4 bootstrapper team delivered and I finished the integration of the code into the WiX toolset last night.

With this new foundation in place, everyone can really get involved. I’ll be talking more about Burn again. In particular, I’ll explain how you can get started using the bootstrapper. I’ll also focus on what changes you should expect as we add more features and incorporate feedback into the code. There’s still plenty of work to get done but having a consolidated effort on a single bootstrapper is a huge benefit for everyone involved.

I look forward to your feedback about how Burn works for you and what should be done to make it better.

 

PS: For those of you that build the WiX toolset, this initial drop of Burn requires some libraries that are only available in Visual Studio Professional or better. It’s high on my list to remove this requirement so that WiX v3.5 will build with freely available tools like WiX v2.0 and WiX v3.0 do.

 

tags: , , ,

Original post by Rob Mensching

Abgelegt von WiX
von

WiX Working Group video of the night, Replay.

Friday, 15. January 2010 at 11:54 am

Tonight I have a video I found a while ago that caught my eye. It’s animated but sad but done very well. The expressions emoted by the characters is impressive. I really don’t have anything more to say. Enjoy.

 

tags: , , , ,

Original post by Rob Mensching

Abgelegt von culture
von

Snack Apps

Sunday, 10. January 2010 at 1:09 am

This afternoon Dare Obasanjo tweeted a link with a comment that caught my eye, "The rise of software as entertainment instead of productivity - http://kickingbear.com/blog/archives/67". A quick warning before you follow that link: there are plenty of words in there NSFW. Expletives aside it triggered an interesting thought.

Guy English is the author of above linked blog entry and a developer for Tapulous, makers of the iPhone hit game Tap Tap Revenge. As Dare’s tweet suggests Guy’s post is about entertainment software. Guy calls it "Pop Software". Interestingly, Guy immediately belittles the terms "Software" and "Applications" suggesting that entertainment is found in "Apps":

“Apps” is fun. It’s fun to say, it sounds unthreatening, it’s a word sufficiently abbreviated that it takes on a life of its own without dragging to the forefront of peoples minds the more sterile and technical sounding “application”. Apps are not Applications – they are their own things. They are smaller. They are more fun. Apps are treats atop your technological sundae. They are not potential time sinks. They are neither burden nor investment. They each represent a nugget of fun, of fleeting amusement. Apps are gobbled up in the millions by people who would never rush so willy nilly to buy desktop software. Apps are Pop Software writ large in blinking neon lights.

All of this reminded me of "Snack Apps". I think I first heard the term used by Peter Marcu. Snack Apps are small apps that do one thing or don’t really do anything… but entertain. As a software engineer (with all the importance that title implies) it is easy to dismiss Snack Apps.

But would happen if one was take Snack Apps seriously? That’s what Dare and Guy got me thinking about.

 

tags: , , ,

Original post by Rob Mensching

Abgelegt von engineering
von

WiX Working Group video of the night, battle of the local schools.

Friday, 8. January 2010 at 7:15 am

Happy New Year and welcome to the first WiX Working Group of 2010. We’ve been off for two weeks, taking some much needed R&R. Now we’re back and it’s time to get WiX v3.5 moving again. To kick things off, I thought this article about two local high schools was pretty cool. Especially, since it has videos in it.

So, since we’ve been off for a couple weeks, tonight I show not one but two videos! Honestly, you can’t show the second video without watching the first. It just doesn’t make sense. Anyway, enjoy the "lip dub" battle between two local Seattle high schools: Shorecrest and Shorewood. By the way, IMHO, Shorewood kicks Shorecrest’s butt even though I prefer Shorecrest’s music pick a bit more.

Shorecrest’s video:

Shorewood’s video:

PS: syncing lips to music played backward isn’t at all as easy as you might guess.

 

tags: , , , , , , , ,

Original post by Rob Mensching

Abgelegt von culture
von