Month: November 2007

Do NOT update your Mac’s Firmware

I knew and understood that Bootcamp was in beta under OS X ‘Tiger’, but I never expected a firmware update that requires you to reformat your disk!

Luckially I saw this in time… otherwise I would have trusted Apple next time I started my Mac and saw a ‘new update’ available.

Look Apple, I love your hardware/software, and I know it is beta software, but frankly you should have tested for this.

In future, I will not update my Apple firmware for at least a month after release. Under Windows I will keep updating as normal.


December 1st Update:

I asked in my local Apple retailer about this… the guy suggested this was done on purpose to disable beta copies of Boot Camp out there!

To be fair to Apple.. I don’t actually beleive this. But Apple should know that a lot of people do beleive it, and it won’t do their reputation many favors in the long run.

Useful information about Project Server 2003

Registry Entries

Rebuilding Views and OLAP Cube to Remove Corruption

Error message when you try to build an OLAP cube in Project Server 2003 or in Project Server 2002: “The cube scheduled to be built on Date Time failed.”

Discussion on OLAP Cube creation problems

Creating Portfolio Analyzer Views

Do we need 64-bit Team Foundation Server yet?

I saw a forum complaint today regarding the lack of 64-bit support in the application tier of Team Foundation Server 2008.

To be honest, although it would be nice, I can understand why not:

  • Resources
    1. Microsoft can dedicate more resources to TFS if it is only targeting one platform (32-bit)
    2. Service packs can appear more quickly
    3. Cool features like the ‘Power Tools’ might take longer to appear if they have to be developed and quality tested for both architectures
  • Requirements
    1. The main advantage of 64 bit is the ability to use more than 4GB of RAM
    2. The application Tier (which uses IIS) would have to handle a significant amount of requests to need even that much RAM
    3. Other 64-bit performance advantages, although subject to much debate, are in reality not significant.
    4. The data Tier of TFS which uses SQL Server does support 64-bit, and that is where the most performance could be derived

 The next release of TFS (Codenamed Rosario) could well be 64-bit only. Personally I have no problem with 32-bit until then, however with IT departments rapidly standardizing on a 64  bit infrastructures then this opinion could change.

Update 04/28/2008: Checkout my follow up post here where I discuss why a seperate server for TFS is a must

Code Metrics as a Checkin Policy

‘Code Metrics as a Checkin Policy’ – This is a fantastic idea, but too often brushed aside by both senior and junior developers alike as ‘Getting in the way’.

It would be great to measure a project’s success not just by delivery but by it code quality as well. Currently you get an award for shipping on time because that is something the business can see. However you will never get an award for ‘Code Quality’ because the business stakeholders will simply ask ‘Just what does that mean anyway?’.

The answer is simple.. maintainability. You can get a first release out the door, but each subsequent release will be harder and harder because the code quality is getting poorer and poorer. A new developer on the team has real trouble working on the bad code base and as a result their productivity will never match that of the first release. If anything, they will have to ‘hack’ the code to make it work resulting in an even worse code base!

People accept this as the reality of working on legacy projects… and I can’t accept that. We have the tools and processes to make code quality happen: all you need is team of developers who care for quality and have your stakeholders who can buy into the idea.

If you care about Code Quality, check out this entry in the FXCop team blog:

And Grant Holliday goes into how this works with Visual Studio 2008 here:

Laptop Resolution for Presentations

Great article today from Joel Spolsky. He has just completed some major cities on his tour to promote FogBugz, and had some nice presentation tips.

In there was one really important tip that seems to be a great problem in the technical community and close to my heart:

“Set the screen to 800 x 600. Make everything as big as possible. If you’re demoing an application that needs more than a half million pixels, go back home and redesign the app”

Today you can pick up a cheap laptop with an insane amount of resolution. At a recent Code Camp there were some great presenters showing off SQL Server 2005/2008 at a really high resolution… this was such a pity because I could not read ANYTHING.

Presenters maybe don’t bother watching presentations because they already know everything.. but if they did then they might realise that a lower resolution will actually get their message across much better.

I run my presentations at 1024 x 768 and with a good projector unit in a large meeting room this is fine.

Must stop reading – False story about C# memory leak

I have no problem with a news site, even with an anti-Microsoft bias, reporting facts but this story was obviously written by someone who has no knowledge of modern programming languages:

“Princeton DARPA Grand Challenge team member Bryan Cattle reflects on how their code failed to forget obstacles it had passed. It was written in Microsoft’s C#, which isn’t supposed to let you have memory leaks”

Correct, C# isn’t supposed to let you have memory leaks. I read the source article and saw the problem:

“We called “delete” on those old obstacles! To our amazement, it was only minutes before we realized that our list of detected obstacles was never getting garbage collected. Though we thought we had cleared all references to old entries in the list, because the objects were still registered as subscribers to an event, they were never getting deleted.”

The article clearly states that the problem wasn’t a memory leak, but a coding error. C# was behaving as expected and not deleting memory objects that still had a reference. This is good.

Maybe the editor did not understand the technical issue well enough.. but frankly he shouldn’t post a headline if he is not capable of understanding the story.

I’ve made a conscious decision.. no more Slashdot for me! I’m going to find a better news source… You can say bad things about Microsoft because I do want to hear the criticism, but don’t write about things you obviously don’t understand and libel a decent technology because you have some irrational religious aversion to it.

Get into Business Intelligence

Currently I am getting familiar with Business Intelligence (BI)

When creating an application, developers always focus on the engineering problem. There is often a feeling that the business requirement is important (take Extreme Programming (XP) for example) but it always takes second place to the immediate requirement of ‘how do I solve this threading issue?’.

Business Intelligence & Data Warehousing are first and foremost about delivering business value. There is an interesting database aspect of how to form cubes (data of multiple dimensions) and optimizations, but at the end of the day it is about giving the business analyst relevant data in order that they can make real business decisions from which a real financial impact can be derived.

A good way to get into this topic is to listen to this podcast from to start with. It touches on a new Microsoft product called PerformancePoint which has some very interesting possibilities.

Windows Live Writer 2008

Microsoft Windows Live Writer 2008 is a free blogging tool that makes posting to your blog much easier. It has just left beta and has become a full release.

It works well with Microsoft Live Spaces and WordPress, and there seem to be a great deal of plugins that allow you to (for example) add Flickr images.

Setting up with your blog is very easy. You just point at your URL with username and password, and it figures out the rest.

User Experience

I spent a few happy weeks playing ‘Half-Life 2’ last year, and yesterday I bought Metroid Prime 3: Corruption for my Wii  and the differences are interesting.

Half-Life 2 was a beautiful game and I enjoyed every detailed scene. Metroid on the other hand doesn’t look as good.. it runs at 480p on my HD Television, and simply can’t match HL2’s level of detail.

But does it matter? Well not at all! The game play is very simple.. HL2 has excellent controls with the keyboard and mouse but it isn’t as easy as throwing the Wiimote and Nunchuck around. Metroid is just so easy to get into.

A while ago I saw a customer system based on Unix that they wanted to update to WinForms. What struck me was the simplicity and ease of this terminal services application: It only used a few colors, you could navigate quickly with the F keys, and there was no wait… the system was very responsive.

When you build a modern GUI application in WinForms, Java Swing or whatever there is much more you can do visually, but to what end?

I am not calling for a return to terminal services, but I feel we shouldn’t discard the simplicity that is the desire for most users out there. Most users really couldn’t care less if they have the ability to change the color of their toolbar.. they do care that they are able to finish their work for the day unimpeded by ‘IT issues’.

Nintendo made a very bold and praiseworthy statement by releasing the Wii. They were basically saying “The graphics are not important – the experience is important”. When designing our systems we should remember that a pretty prototype is no substitute for a system that real users can be productive and satisfied with.

Open Source SOA Projects

Udi Dahan’s .NET service bus project, NServiceBus, is now being hosted on SourceForge.

I thought a quick list of some open source projects I’m looking into might be in order:

Project Description
NServiceBus A service bus for the Microsoft space
Web Service Factory A ‘Patterns & Practices’ tool to produce web services
WCF Robust File Transfer A demonstration project demonstrating how to ‘chunk’ large files with WCF
WCF Activities for WF Create WCF services with Windows Workflow
Managed Services Engine WCF service virtualization

It is really interesting.. five years ago I didn’t even consider any open source in my day to day work.. these days customers are far more accepting of the idea.