Archive for March, 2007

Book: The inmates are running the Asylum (Chapter 7)

Saturday, March 31st, 2007

Chapter 7 is largely about how programmers are different from normal people. Some really good points are made here too. One of those is that for a programmer there are only 3 numbers of times something can run: 0, 1 or infinite. There is no difference between programming something that runs 20 times or something that runs 1 million times. Of course this isn’t entirely true as issues like memory fragmentation and memory leaks can become issues on longer runs, but it is a useful generalisation.

However the chapter does run off into lala land. He suggests that all programmers were humiliated in their youth by “jocks” and as a result, with their new found power (technical ability), they humiliate people.

page 104

Not until my late 20s did I realise what a bully I was. The only difference was that I used my programming skills as my fists, and my mastery of complex systems as my height and reach. And I swinishly hooted at those who could not keep up with the complexity of using computers.

Alan, I’m sorry that you felt inadequate and chose to humiliate and lord it over others when you had the change. Your personal issues are not shared by all programmers and IT professionals.

IIS Metabase annoyances

Saturday, March 31st, 2007

Metabase part 1

Some time ago I wanted to install that SMTP part of IIS. However since the original installation I’d changed the path of the default website (C:\inpub\wwwroot). As it turns out, when you install the SMTP engine it installs relative to the default website location. So if your default path was C:\foo\bar, it installs mailroot as C:\foo\mailroot.

This didn’t make a whole lot of sense to me, so I spent a good couple of hours working out how to change the path and ended up finding out that it was rather difficult to do unless Exchange is installed (Exchange uses IIS to send and receive emails). In the end I just bit the bullet, uninstalled the SMTP engine, changed the default website location, re-installed the SMTP engine and changed back the default location back. At the time it was a minor annoyance, but it all seemed rather inflexible.

Metabase part 2

The second brush was rather more recent and also rather more serious. At work we run a number of sites, each with their own subdomain. Each site has its own IIS site. Each site is made distinct by the subdomains or host headers. The problem came when I wanted to add a wild card ssl certificate, which could cover all the subdomains.

What I found was that there was no way to add a host header to an SSL enabled site through the IIS management tool. Someone suggested the following, which involved manually using the adsutil.vbs file to add the bindings manually. This is pretty annoying because to even add the header you need to find the ID for the site. This is only shown in the list of sites in the MMC snap in, not in the properties of the site.

Binary config files suck

This leads me to the inevitable conclusion that binary config files suck. This was driven home when I actually started playing with apache recently. What amazed me was how much simpler it was to configure and how much more flexible it was. One of primary reasons it was easier to configure that the config file was a text file. So here are a list of reason why binary config is so bad:

  • The GUI almost always lags behind the config files themselves (as in the cases above), which means you can’t always edit the options through the GUI
  • It is harder to script or program against. A text format (eg ini, xml) is designed to be programmed against, so it easy for another program to pull needed data from the file or update the file. If you go with a binary config file the developers of the product need to maintain an API on top of maintaining the GUI.
  • You cannot copy out a segment of a binary config file and use it as the basis for another similar config. This makes it easier for someone to edit and manage their own sites. It also means that other people can post snippets of their config files to help others fix issues with their files. When someone is trying to get help with an IIS configuration they either need to write up text descriptions, which generally means some information is lost, or screen shots are posted, which is time consuming.

It is important to note that using a text format config file does not preclude you from adding a GUI to modify the text file.

The result is that binary config files mean that there is more work for all concerned:

  • the programmers of the application
  • the basic users
  • the power users

Microsoft should take a clue from Linux and drop all binary config files.

Book: The inmates are running the Asylum (Chapters 5 and 6)

Thursday, March 1st, 2007

Chapter 5

Chapter 5 is actually a really good chapter. The major point of the chapter is that products need two of three (ideally 3 of 3) attributes:

Viability - from a business perspective, the product needs to make money. You need to be able to sell it. This tends to be driven by business.
Capability - what is technically possible. This tends to be driven by engineers and comes more in the form of feature lists
Desirability - what is it that people really want. This is a comment more on usability.

These three factors drive customer loyalty.

Chapter 6

This chapter is generally rather good too. The point of the chapter is that if engineers are given free reign they will build the products that they want, not the products that customers want. This is reflected both in features and usability. It also stresses the need for planning the software that is to be built.