Category Archives: 8275

If you have anything to suggest about the DSA Book then please read this…

Its been a while since I talked about the DSA book but to summarise its had over 20,000 (first, second) downloads which has largely provoked me into taking the whole thing a lot more seriously for the next edition which I expect will triple its content.

I don’t have any times at the moment because we are figuring out what we want to add to the book based on the current programming climate. So, if you have any suggestions then please let me know by emailing me via the contact page. Don’t hold back – what would be your dream book on data structures and algorithms look like? what would you expect it to cover? Does the language independent approach work for you?

Please let me know.



I’m sorry for the lack of posts…

Sorry folks for the lack of posts but ever since I’ve moved to Australia I seem to have had very little time to actually post something of any calibre.

At the moment I am actually working on some writing commitments I have so I will post about them when they appear online. In the meantime I’ve resurrected my Twitter account in a hope to micro-blog more in an effort to make up for my blog shortcomings as of late.

I can’t promise it will be pretty but you are more than welcome to follow my ramblings on Twitter.


Shared Source CLI Google group launched

I’ve just created a Google group based on the SSCLI which you can view and join by going here –

It supersedes now defunct SSCLI newsgroups from the Microsoft and Yahoo servers which have had all but no activity in the last 2 or so years. If you have any interest whatsoever in the SSCLI then I encourage you to join.

Data Structures and Algorithms book flying out (again!)

The updated version of the Data Structures and Algorithms book that Luca and I wrote is flying out once more! We are really very happy to see how many people are downloading our book. In total (counting the previous release) the book has had nearly 16,000 downloads! Amazing.

If you haven’t already got a copy what are you waiting for?! Its free so you don’t have to reach into those empty pockets at this time of year.

Download the updated version of the Data Structures and Algorithms book here!


Enjoy. Merry Christmas and a Happy New Year.

Shared Source CLI (aka Rotor) on Vista

I thought I would share my experiences with Rotor on Vista (x86 and x64). First off Rotor is an open source version of a big chunk of what’s in the full commercial .NET that you use on your machine today BUT certain things in Rotor are no where near the quality of that in the commercial .NET – keep that in mind.

I hacked around with Rotor on several setups not including the supported setup (XP with SP2 and VC++ 8.0). My mileage with each is briefly summarized below.

Vista x64 with VC++ 9.0

I tried to get Rotor working with Vista x64 and VC++ 9.0 but was unsuccessful. Couldn’t even get it to build. This was as I expected though.

Vista x86 with VC++ 9.0

Made the same changes I did with the x64 version pretty much and got it to build. After the initial hope of it all building and the tests that Rotor comes with all passing I was somewhat annoyed that some programs including the C# compiler were not behaving correctly e.g., the C# compiler would give random parser errors for programs. I’m sure that other components were affected as well but seens as though I needed the C# compiler to work this was pretty much the final straw for me.

Vista x86 with VC++ 8.0

Builds without any hacking required. Every now and then though a buffer overrun would occur during the build, particularly when building some of the BCL C# stuff. Haven’t had this error again since I rebuilt my machine but the obvious fix would be to just make the buffer that is overran larger. This occurred during a call to MakeMacroString and it seems as though someone else has come across this as well.

My personal view is that the SSCLI project is doomed to spend the rest of its time only officially supporting that which it did when it was first released. If anyone knows any different then let me know. I couldn’t find any information on the web hinting that it would be updated if only to support Vista.

Code Contracts – my opinion on them anyway…

One of the great things that came out of the PDC for me was the confirmation that code contracts would be coming to .NET 4.0. I was a big fan of Spec# [1] but admittedly I never thought it would make it into the mainstream C# or VB.NET languages even though the prior solution provides the more concise and descriptive syntax. On Sunday I played around with the library released at the PDC [2] and in general it all looks good. For the astute reader you will know that I co-authored a book on Data Structures and Algorithms [3] with Luca [4] not so long ago (we will probably release an update just before Christmas, more on that later) and each algorithm within the book states both pre and post conditions. We did consider explicitly defining invariants as well; however we opted not to for conciseness.

While I’m very much encouraged by the inclusion of code contracts in .NET 4.0 I’m still a little apprehensive about it in API form, maybe it’s because I was set on a language based feature set? I’m just not sure.

The big thing here is that there will be something in .NET 4.0 and hopefully its inclusion in the official distribution will emphasise to developers the importance of specifying explicitly contracts to which their algorithms will adhere to. Another interesting thing that came up in the session on code contracts [5], which coincidentally shared its session with Pex [ 6] was the announcement that there would exist tooling that would analyse the contracts within your code and inject the necessary documentation in there. Whether this will annotate the source code with xml-doc or do something else I’m not sure though. The former was the one most alluded to during the PDC session.

Sorry about not posting recently I’ve just moved to Australia from the UK to do my PhD. Today actually I shared my desk with Gordon Bell [7] who was visiting the Microsoft QUT eResearch Centre [ 8] of which I am now a member.


1. Mike Barnett, K. Rustan M. Leino, and Wolfram Schulte. The Spec# programming system: An overview. CASSIS . 2004, Vol. 3362.

2. Code Contracts download. Microsoft Research. [Online] 2008.

3. DotNetSlackers. [Online] 2008.

4. Tongo, Luca Del. [Online]

5. Channel9. [Online] 2008.

6. Microsoft Research. [Online] 2008.

7. Bell, Gordon. [Online]

8. Microsoft QUT eResearch Centre. [Online]