Monthly Archives: July 2004

Mugs are Important

I just finished reading this blog entry by Clarke Scott. I don’t think Clarke needs clinical help, in fact, for me, mugs are extremely important. The first mug I ever received was from Caboolture State High School just before I finished up working there (Caboolture, Queensland) and moved down to Melbourne.

This mug followed me around from job to job while I was contracting before I started getting back into hardcore coding and found I needed something bigger. I’ve toyed with the idea of taking it out for a run again but to be honest I am afraid of it going missing. My first contract after moving down from Queensland was rather stressful because every few days the cleaners would take the cup and put it in one of the several kitchen areas in the building – grrrr.

Around the time I stopped using the CSHS mug Nicola and I went and purchased some large coffee mugs from Bunnings because the mugs we used at home had a fairly impractical design (triangular handles and vessel). It was also around this time that I moved from a pure contracting into more of a consulting role which meant that I usually changed sites on a regular basis – no point introducing my mug to a new home that it would only be in for a week.

Fast-forward to last Christmas when I got a pleasant surprise in the mail. It was this ASPalliance mug that Steve Smith sent to me. It was as big as the Bunnings mugs so it became “my” mug at home. Unfortunately I left it out on the coffee table the night before I went away on a business trip and my little princess got her hands on it and broke the handle.

I still can’t bring myself to throw it out, especially since I think that if I can get a strong enough glue I can fix it up so it is good as new. That brings me to my current mug, and the reason I was inspired by Clarke to make this post. Its actually a Starbucks mug that I purchased while I was delivering a training course for a client on George Street in Sydney. The Starbucks down the road was the only place I could find a mug at short notice.

At the time the client had just finished moving from another premsises and access to hot liquid storage facilities was limited. This mug was perfect because some parts of the course required me to talk for quite a long time without a break and this way I would have enough tea to last. The problem was that by the end it started to get a little bit cold.

So to finish up – mugs ARE important, don’t be ashamed Clarke – I suspect there are other developers out there with similar stories.

Inductive User Interfaces

Folks that I have worked with whilst on consulting engagements may remember that I have mentioned Inductive User Interfaces (or IUI’s) from time to time. I fell in love with inductive user interfaces when I read this old article on MSDN. However, thanks to the joys of RSS I have now been made aware of a new article by Mike Weinhardt called “IUIs and Web-Style Navigation in Windows Forms, Part 1”.

Unless you have been living under a rock you are probably aware that Longhorn includes an interesting navigation model, but there are things we can do now to make our applications more inductive as opposed to deductive.

This article is definately worth reading, especially if you want your users to love you. Mike is an Aussie and also has a blog (subscribed).

Anders Hejlsberg on C# Futures

I just finished watching MSDN TV. This time around it was Anders Hejlsberg, the man I personally blame for the features that I love and hate in C#. One of the things that really got me interested (there were several hypotheticals for C# 3.0 and beyond) was what I could call in-line configuration of objects at instansiation. My example would be a private field on a class.

private MyClass m_MyClassInstance = new MyClass() { X = 1, Y = 2 }

Where X and Y would be properties or fields on the class. I easily run out of fingers and toes when it comes to identifying times where I could have used this. You see the way that you would have to do this previously is drop some initialization code into the constructor – not a bad solution, but the above mechanism co-locates the relevant initialisation code with the field itself.

Google Goes Down

Some of you may have noticed that Google went down yesterday. If you are a developer you probably noticed within about 15 seconds of it going down. I’ve been saying for a long time that developers should pay Google for the service that they offer because without it we would be a lot less productive.

I’ve only ever seen Google down twice, the first time I panicked and had to be talked down off the ledge.

Study: J2EE/.NET Application Server Performance

I picked up this link via a mailing list that I am subscribed to. It points to some research done by “MiddlewareRESEARCH”. The research (unfortunately) was done in Redmond, so even though I am sure it was done professionally and impartially it will be shaded as not being so by the J2EE community. What was disappointing was that even though one of the application server vendors seemed to keep up with .NET this time (atleast in throughput) they chose not to publish their name. I for one am keenly interested to know who it was so that when I am asked by customers who cannot for various reasons move away from J2EE technology can atleast pick the one that is going to perform best.

From the results, I’d say that the J2EE vendor would likely have been either Oracle or IBM, but that is pure speculation.

What I do find amusing is that they needed to hold .NET’s hands behind its back in order to level out the performance – notably Output Caching which is a HUGE ASP.NET feature.

They did use API caching to reduce the number of hits on the database, however, without Output Caching you still incur a CPU hit when rendering the page because you need to build the control hierarchy. Output Caching basically allows you to store the results of a page (including query string variations) so that the CPU basically only has to copy some data from memory to the network socket. This in-turn would mean that requests would be processed faster for the same amount of CPU effort.

What I really want to see is a performance “study” done on making these applications fly as fast as they can using every hack in the book. Of course, there are those people that say thats not appropriate, but I say they need to take a course in Google economics.