ISWIX, LLC View Christopher Painter's profile on LinkedIn profile for Christopher Painter at Stack Overflow, Q&A for professional and enthusiast programmers

April 19, 2010

.NET 4.0 Install First Impression



I was installing Microsoft.NET Framework 4.0 tonight and I couldn't help wonder something. Is this the best UI Microsoft could come up with? Seriously, this text control only shows 1 of 44 lines in the EULA. Yet look at all that empty space down at the bottom of the dialog.

Is this for real?

March 24, 2010

Open Source Licensing

Lately I've been pondering the topic of open source licenses. I'm preparing to release a couple projects that I've been working on and I'm torn between a permissive license and a reciprocal license

On one hand I hope to create an active, viral project with lots of community support. On the other hand I wouldn't be offended if someone liked what they saw and made an investment that resulted in a commercial project.

I was wondering what experiences and opinions my fellow installation developers might have to offer. So please, sound off!

February 06, 2010

Looking back, nothing has changed.

The other day I was reading that Martin Fowler will be visiting Austin giving a presentation on "What Agile really means to the future of software development".

I'm sure Martin is better then most ( he did after all sign off on a Continuous Integration book written by a good friend of mine - Paul Duvall ) but most evangelists and developers that I've met think very little of setup.

This reminds me back to something that Bob Baker wrote over 10 years ago in the Official InstallShield for Windows Installer Developer's Guide book.

"The main problem that is faced by the setup developer is that he creation of the installation for an application is normally left to the last minute just before the product has to ship. This is because setup is not considered part of the development process."


It's now the year 2010 and this is still true now more then ever. I've been doing setup development since 1997 and the one thing that is a near constant is that developer always treat setup related tasks and the setup developer himself as second class citizens. They assume that because your working on the install that you must be a development flunky. This is probably because that's the way it's been everywhere else they have ever worked.

Frankly it's really annoying. Seriously, just how many times can you take some new developer coming into your office, looking at the setup problem domain from 50,000 feet, claiming that it's easy in a condescending tone and then refusing to provide meaningful participation in solving the problem? BTW, can you get this done by tonight's build? That would be grrrrreaaaaaat.

These guys can talk a mean talk about Agile, Scrum, Lean, TDD, IoC, MVVM, ASP.NET MVC, Separation of Concerns, Single Responsibility ( and so on and so on ) but they always wait until the last second to come to you to get their install done and God forbid you see a problem with their design that effects setup because frankly they just won't care because 'it's already done; this needs to ship next week'. If you try to explain to them that they should learn setup and include it in their Agile and Lean believes they suddenly become very disinterested.

Since your bothering to read this I'll assume your a setup guy and have already witnessed this. But let's assume for a moment that your not and you don't believe me. To date, 500,000 questions have been asked on StackOverflow. Here are are the top 10 tags in popularity:

c# 61927
java 34410
.net 32759
asp.net 28696
php 27893
javascript 25159
c++ 24402
jquery 18771
python 17964
iphone 16413

This is a total of 288,394 question or apx 58% of the total. Now lets see how many questions have been asked about setup:

msi 469
wix 439
installshield 142
installaware 5
wise 15
installer 763
windows-instaler 357
install 231

This represents a total of 2421 questions or 0.5% of the total. Truly sad IMO.

Then there is a dearth of interest at code camps and conferences. For example, someone recently told me that at a recent Microsoft PDC they attended a deployment focus group. He indicated that it looks like they had swag for 12 people and that 4 people actually showed up.

Think about that. Of all the thousands of developers who attended PDC, only 2 of them had enough of an interest in setup to attend a focus group.

However, there is a bright side: Setup isn't going away. Projects of all sizes continue to need deployment solutions that work. Yes, this is a niche field with little respect, but there is some real good money to be made if you are willing to commit yourself to learning everything possible and become the world beater that can make things happen. You will have so little competition from your peers because they don't have a clue just how important setup actually is.

January 28, 2010

Doppelgängers

Considering it's Doppelgänger week on Facebook, I thought I'd mention that I have my very own Doppelgänger at work and his name is, well, Chris!

See, I share an office with another Chris. Yes, the jokes abound. Let's see, there's Chris 1 and Chris 1, Chris P and Chris T and Chris Squared.

It's actually kind of wierd because we implement practically all the same interfaces. People will come into our office and just say "Chris?" and then settle for whoever happens to answer first. Sometimes we just sit there silently the other Chris will be explicitly requested.

Sure, there are differences between us. He's been with the same company for 8 years while in the last 8 years I've been with, well, 8 companies! We take turns being the installer team lead. He usually has the helm when I leave to work elsewhere gladly giving it back to me when I return. What a friend... I think. :-)

Did I mention that he really gets it when it comes to setup and that he's joined the DeploymentEngineering.com blog team?

While he hasn't actually posted yet, I do know that he has an interesting story to write regarding his trip out to PDC last fall and a deployment focus group he attended.

Maybe if everyone says hello he'll actually get around to hitting the submit button.

January 25, 2010

Still Hiring in Austin, TX

As I posted last summer, I'm still looking for experienced software engineers in the area of Install, Build and/or Internal Tools development.

Desired skills include InstallShield, MSI, WiX, BuildForge, ClearCase, TFS, C# .NET 3.5 ( Winforms, WPF, ASP.NET and Linq 2 XML).

There are several available roles with different emphasis on the above skills. In general, the engineer will be part of a Build/Install/Internal Tools team that currently consists of 11 members with additional on the way to meet our ever growing needs.

Please contact me at chrpai@deploymentengineering.com if you are interested.

Please note, due to customer requirements, all applicants must be a US citizen. Ability to obtain and maintain a US Security Clearance is required; an active clearance is highly desirable.

January 04, 2010

Shared Resources Are Imaginary and Feature Gap Is Real

I was reading a blog post from Heath Stewart:

Components are the basic unit of installation in a Windows Installer product. They are installed by one or more features, and can contain any number of resources including files, assemblies, registry values, and are recommended for custom resources as well. Examples of custom resources are web sites, virtual directories, SQL tables, and stored procedures.


While it's an interesting read, albeit covering 10 year old concepts, I have a problem with the last little bit about "custom resources". Well, two problems:

1) Windows Installer doesn't expose the concept of "custom resources". This is entirely made up. Don't believe me? Then tell me how to mark a custom resource as the key-file for self repair checks? How do you involve the custom resource for costing purposes? Sure, you can write data driven custom actions that associate themselves conditionally to a component, but your out of process custom action will never really implement resources.

2) Why doesn't MSI already handle all these examples that are presented as "custom resources". Seriously, what (enterprise) application these days doesn't store data in XML or relational databases and/or present application layers as web apps or web ui? Wasn't Windows Installer intended to solve enterprise TCO issues?

Sorry, but the feature gap here is just mind boggling if you ask me.

November 10, 2009