IIS Express : Run a child web application in a virtual directory under a parent application

Like this: Edit your IIS Express config file at

"%userprofile%\My Documents\IISExpress\config\applicationhost.config"

Create a site which has two applications defined in it, e.g.

<site name="MyTopLevelAndChildWebAppsInOneSite" id="123" >
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\me\Source\TopLevelWebApp" />
    </application>
    <application path="/Child" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\me\Source\ChildWebApp" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:51234:localhost" />
    </bindings>
</site>

And then run the site, matching it on the siteid:

start "Woo!" "C:\Program Files (x86)\IIS Express\iisexpress.exe" /siteid:123

Browse to, and close, your web apps in the usual way from the IIS Express icon in the systray.

Optionally, experience the pain that is web.config inheritance. But try not to.

Improving the accuracy of software project estimates: multiply everything by 3

I found when I'd worked in software for a couple of years that everything I delivered took me about three times longer than I expected.

Eventually I realised that my 'gut feel' for estimating a coding task was 'about how long will it take me to code this if I make no errors & get it right first go'. Which is a good starting point for an estimate, so long as you then go on to add testing, debugging, changing or misunderstanding requirements and time to release.

If you have stable requirements and a pushbutton deployment toolchain, then 3 x gut feel is may be about right. That covers clarification of requirements, testing, subsequent clarification of misunderstanding, and deploy.

If you haven't got those things, x5 or higher is usually closer.

I notice that others have found something similar. I'm please to find that multiplying by 3 puts me about 4.7% ahead of the curve - http://alistair.cockburn.us/The+magic+of+pi+for+project+managers.

Build mod_jk for centos

I reduced it to a script:

#!/bin/bash
# Build the mod_jk apache tomcat connector from src tarball and install it
#
set -x
srcball=$1
if [ -z "$srcball" ]; then
echo The source tarball was not given - expected something like \"tomcat-connectors-versionxxx-src\" to be passed as parameter
exit 1
fi

pushd /tmp
curl http://mirror.rmg.io/apache//tomcat/tomcat-connectors/jk/$srcball.tar.gz -O

if [ ! -f /tmp/$srcball.tar.gz ]
then
echo $srcball.tar.gz not found in /tmp/. Couldn\'t build mod_jk
exit 2
fi

tar xvf $srcball.tar.gz
cd $srcball/native
./configure --with-apxs=/usr/sbin/apxs
make
cp ./apache-2.0/mod_jk.so /etc/httpd/modules/
popd

Sadly, the page whence I got my info has shuffled off its mortal coil and departed this interweb.

How to make coffee badly

It has been said that cooking is an art, baking a science. Coffee is like baking  - making the perfect cup of coffee every time means doing it right, doing it the same, every time.

Which is not to say that there aren't dozens of different ways to make coffee. Rather that, just like someone who loves to bake their cookies that little bit softer learns exactly how long to set the oven timer for; so for your perfect cup of coffee, you want to learn exactly how much, how long, how hot ...

So here are half a dozen ways to ruin your coffee; or even worse, to get that okay-but-not-quite-what-you-were-looking-forward-to effect.

  • Don't clean your equipment
  • Use stone cold cups
  • Don't descale
  • Use old coffee
  • Use different quantities every time
  • Use the wrong grind