Something Different
Platforms > Implementations
I recently read an insightful post about how being a developer is less about coding and more about tooling, and while I do not agree with all of the post, the fact we as developers are tool obsessed rings very true. This obsession with tools becomes a white hot rage when our favourite tool is threated with extinction or causes a world of panic when a competing tool is proposed without enough information on it.
Let’s look at two key examples of that:
- WinForms was very popular and when Microsoft brought us WPF, there was major push back from those who did not want to change and learn a new tool. If you reading this, then you are thinking well time solved that, I disagree. This very week I was asked about WinForms vs. WPF again. Time doesn’t heal all wounds, it just gives some of us time to move on.
- To illustrate the world of panic I can use a more recent issue – Windows 8! Remember all the discussion before //Build about the death of <insert your favourite tool here>? The confusion caused by incomplete discussions around tools we love caused panic.
So what is the solution to this? I think simply a mind set change would be enough. The mind set change needed is to remember that a platform is more important/powerful/useful than a tool. I would like to take credit for this idea, but the first time I heard anyone mention this was a few years back and it was Scott Hanselman talking on MVC almost three years ago to the day. He mentioned that ASP.NET > ASP.NET Web Forms and ASP.NET > ASP.NET MVC. In short he was saying that the core understanding of ASP.NET, the core features and the core uses of the platform are bigger than a single implementation (tool) could be. Sure, you need to learn a new tool, but you aren’t starting at zero if you know the platform.
Why I am bringing this up? It is because of the discussions I have been having about another tool recently: Silverlight. We are approaching the panic stage on this tool due to rumours of it’s demise. However it is VERY important to take a step back and see what the platform is and how knowing the platform means that a tool can move along and we are still able to work/code/make money etc…
The platform Silverlight uses is XAML based UI technologies, a core set of how we can layout UI components using an XML dialect called XAML. This platform also has lots of options for things like binding, the MVVM patterns and so on that are either difficult or impossible to do with other UI technologies (like WinForms for example).
XAML based UI technologies started with a single tool: WPF – an implementation of the platform designed to run on top of the .NET Framework. A second tool, Silverlight, later appeared – this is an implementation of the platform designed to run as a plugin in a browser. A third tool, Silverlight for Windows Phone 7, came next and while very close to Silverlight it had it’s differences as it was an implementation of the platform for the phone. In the last few months we have had the forth implementation of the XAML based UI technologies appear: WinRT. This is the Windows Runtime in Windows 8 and when you develop with C#, VB.NET or C++ your UI technology is just another implementation of the platform.
Every implementation of the platform has been different, some in big ways and some in smaller ways but the core of the XAML based UI technology platform hasn’t changed and there is not a single rumour, plan, or hint that we are even close to seeing the end of XAML based UI technologies. We may see a tool end of life and die (like some rumours say about Silverlight) or other tools just find completeness and not need new work done (like WPF if) but the platform remains and grows and learning a platform is always more important/powerful/useful.
Lightswitch is on SALE!
Very different from my normal ramblings but I thought worth a quick post, Microsoft has Lightswitch on sale at the moment for 33% off the price! This is a world wide offer so you can get it via your distributors, LARS or from the Microsoft Online Store.
So if you are looking to get started in Lightswitch, NOW IS THE TIME!
Tech·Ed Pro Tip: Travel Advice
Last year I wrote two posts (finding the best talks at Tech·Ed & why is the Tech·Ed calendar is awesome) which really aimed to help improve your Tech·Ed Africa experience. They are both still relevant this year but I thought of one new tip to share and that is related to travel.
Short version: Book your inbound flight EARLY, your outbound flight LATE and stay at the HILTON.
Why inbound early?
Day 1 is a busy day for you – after you land you need to find the shuttle from the airport to the conference venue. I got separated from the group and lost in the airport last year
. Once you are at the conference venue you need to register and get your swag (do this before you go to the hotel) then you need to find the bus to get to your hotel, if you follow the tip below about the Hilton this is easy else you may have a small wait. Once at your hotel, check-in, sort out stuff, see what the swag is etc… and then finally find the bus (wait) and get back to the conference venue for the keynote & opening party. In short – it is a VERY BUSY DAY, so having an extra hour or two helps.
For speakers there is also the advantage of taking that extra hour or two you can get to do a quick tech check the day before and help calm those nerves.
Why outbound late?
The last day ends with the closing keynote and those can run long – I have seen people RUN for the busses and have to drag luggage around with them in the closing because of time constraints. Plus when you get to the first few busses you have the fight for bus space! It really just messes with the last day, rather take a later flight which means you do not need to fight for bus seats or rush around.
Why the Hilton?

The Hilton in Durban is the best place to stay, as it is RIGHT next door to the ICC where Tech·Ed is held. In fact the picture to the left, the bottom left hand corner is the ICC. You don’t even have to cross a road!
So it means getting up later, staying out later (Hilton bar is famous for after parties), it means being where all the Microsoft staff, media & presenters are (great for those informal discussions in the elevator) and generally a top end experience.
Big issue, it sells out FAST so you should be booking NOW!
Follow these travel tips and you will be on your way for a great Tech·Ed!
Tweets that start with a name don't work like you think
I was put onto this interesting feature of Twitter by Scott Hanselman, but it needs repeating. When you use Twitter and send a tweet then your followers get it, except when you start with a name. For example:
The above one was seen by everyone who follows me!
The one above starts with William Branders name, so only people who follow both of us will see it, in other words (or Venn chart style), it is only that group in the middle that will see it!
So how do you send a reply & have all followers see it? Start with a dot like in the tweet below.
Important to note that this doesn’t make replies private like a direct message is – these tweets are still public and can still be seen on your Twitter page, it is just they do not show up in followers view.
South African ID Number Tools for Windows Phone 7
16 November 2011: This application has had a major update, see the details in this post
Following the same idea as my AA Rate WP7 app, another very popular spreadsheet I built is one that verifies South African ID Numbers so I also decided to build a Windows Phone 7 app to do that.
This does a little more than the spreadsheet could, so it has lots of info about what in an ID number does not verify which is very useful.
In addition it includes a awesome new feature a South African ID Number GENERATOR! With this you put in a few required details, hit a button and BOOM! An ID number that will validate.
Important to remember that validation of a number doesn’t mean it actually exists, just the math works. So please don’t use this for anything except interest or development!
(btw screenshots are from 1.1, which is soon to be out – so if you download and it looks different then give it a day or two)
AA Rates Calculator For Windows Phone 7
16 November 2011: This application has had a major update, see the details in this post
One of the most popular posts on my website is the AA Rate calculation spreadsheet I built in 2008. The goal of the spreadsheet is you provide the details about your vehicle and it tells you what the AA Rate for your vehicle is. So I decided to rebuild this for Windows Phone 7!
This was a lot of fun because it has some complex issues (matrixes of values) which had to be solved, so that tickled my developer brain.
This also allowed me the opportunity to update the calculations since they change every so often which is important for you!
An interesting thing that I learnt with this release is that the official/documented calculations is NOT equal to what the AA online calculator does. So there is an option now called “quirks mode” which runs it equal to the online calculator where if you turn it off, it runs it using the documented mode!
Nugget: Little compiler optimisation
Found this little C# compiler optimisation which is really cool. Here is start code
int y = 0;
int x = 10;
if (x * 0 == 0)
{
y = 123;
}
Console.WriteLine(y);
If you know a bit of math, anything multiplied by 0 always equals 0 (line 4). So the compiler optimises that out and then because x is never used that is also optimised out and you end up with
int y = 0;
if (0 == 0)
{
y = 123;
}
Console.WriteLine(y);
So very smart Presentation Dump - Mid 2011: Windows 7 API CodePack, Development for Nokia, Mercurial, VS Tools, AOP, Multitasking, Cloud
The fact we half way through the year snuck up on me this morning, so it is time again to share some of the presentations I have done in the last 6 months! For those new to the presentation dump, every 6 months or so I share all the slides I can (some I can’t because they contain NDA info, like the one about Microsoft’s Project Double Rainbow) so that you can take these slides and work with them yourself!
So what is included in this dump:
- Windows 7 API Code Pack: This was a very fun session to do since it was showing off a bunch of cool Windows 7 features.
- Development for Nokia: This is maybe one of the best looking slides, but one of the worst timed sessions since shortly after it Nokia announced their move to WP7 so not much could be taken away from this
- Mercurial: This is a difficult session, because the demo’s are so boring (how do you make source control sexy?) – however a ridiculous amount of animation about process made this entertaining to create and present.
- Visual Studio Productivity Tools: This one started off from the idea of answering the question CodeRush vs. Resharper – which is a bit of religious debate more than a this one wins. It includes a bunch of other interesting content about other extensions too. For non-South African’s “Braai Rules” is the same as saying “BBQ Rules” or “Pub/Bar Rules”
- Aspect Orientated Programming: This is a big one for me as I see general development using more of this and the frameworks, like .NET, moving to it more and more in future. Good to get an early look into it.
- Multitasking in applications: This session looks at one of the themes of .NET 4 – TASKS. Why should you care, because multi threading is complex, but multi tasking gives the same benefits with less complexity.
- WebMatrix: Microsoft’s new tool for hobbyist web developers. What is included in that tool? This presentation tells you.
- Welcome to the cloud: I had a great opportunity to present at Tswane University of Technology with Rudi Grobler on the cloud & mobile. This was a very fun session and allowed me to also talk about why BBD is such an awesome place to work.
Slides available in the post! Click below for more


