Data Structures and Algorithms: new free eBook available (first draft)

I’ve been looking at this for a while: Data Structures and Algorithms: Annotated reference with examples. It’s only in “first draft” stage at the moment, but the authors would love your feedback (as would I). Somehow I’ve managed to end up as the editor and proof-reader, although due to my holiday the version currently available doesn’t have many of my edits in. It’s a non-academic data structures and algorithms book, intended (as I see it, anyway) as a good starting point for those who know that they ought to be more aware of the data structures they use every day … Continue reading Data Structures and Algorithms: new free eBook available (first draft)

Core .NET refcard now available

Same drill as before – and same registration requirements (although if you registered before, you don’t need to register again). The Core .NET refcard touches on some of the topics which I personally need to refer to MSDN for most often. It covers: Common .NET types, aliases and sizes String literals and escape sequences Format strings (general, numeric, date/time) Working with dates and times Text encodings Threading Using the new features of C# 3.0 / VB 9.0 in .NET 2.0 projects It’s only 6 pages long, which should give you an idea of the depth of coverage on each of … Continue reading Core .NET refcard now available

Lessons learned from Protocol Buffers, part 4: static interfaces

Warning: During this entire post, I will use the word static to mean “relating to a type instead of an instance”. This isn’t a strictly accurate use but I believe it’s what most developers actually think of when they hear the word. A few members of the interfaces in Protocol Buffers have no logical reason to act on instances of their types. The message interface has members to return the message’s type descriptor (the PB equivalent of System.Type), the default instance for the message type, and a builder for the message type. The builder interface copies the first two of … Continue reading Lessons learned from Protocol Buffers, part 4: static interfaces

Lessons learned from Protocol Buffers, part 3: generic type relationships

In part 2 of this series we saw how the message and builder interfaces were self-referential in order to allow the implementation types to be part of the API. That’s one sort of relationship, but in this post we’ll see how the two interfaces relate to each other. If you remember from part 1 every generated message type has a corresponding builder type. As it happens, this is implemented with a nested type, so if you had a Person message, the generated types would be Person and Person.Builder (in a specified namespace, of course). Without any interfaces involved, this would … Continue reading Lessons learned from Protocol Buffers, part 3: generic type relationships

Holiday blogging

Assuming I manage to get the publication order (and also assuming that you’re reading this blog in publication order to start with) you’ll see a number of posts seemingly written very shortly after this one. As I type this, I am on holiday in Southwold in Suffolk – a delightful seaside town which unfortunately has not been blessed with a transmitted for my mobile data provider. I’d rather hoped to be able to pick up a signal, but have been disappointed so far. I’m currently half way through the eight day holiday, and being out of my normal communication circles … Continue reading Holiday blogging

Lessons learned from Protocol Buffers, part 2: self-referential generic types

In the first part of this series we saw that a message type and its builder are closely related. The tricky bit comes when we want to define an interface describing messages and builders. Although some members clearly depend on the data being built (the first and last name in the person example above, for instance) others apply to all messages or all builders. For instance, a message can always provide you with a suitable builder, and a builder always allows you to build it to create the actual message. Likewise the message and builder types also have methods which … Continue reading Lessons learned from Protocol Buffers, part 2: self-referential generic types

Lessons learned from Protocol Buffers, part 1: messages, builders and immutability

My port of the Protocol Buffers project has proved pretty interesting. I thought I’d share some of the lessons I’ve learned along the way, as well as some of the frustrations at concepts I still can’t express in C#. This was originally all going to be in one post, but I’m becoming acutely aware of how long some posts can grow. I don’t know about you, but I find very long blog posts quite intimidating, so I’ve decided to split them up into individual topics. You’ll still probably need to read the posts in order to understand them though – … Continue reading Lessons learned from Protocol Buffers, part 1: messages, builders and immutability

Pre-Copenhagen interview

Brian Rasmussen has just posted an interview we did by email, as a sort of precursor to my talk in Copenhagen. It’s nice to occasionally write down “where I am” in terms of my feelings about Java, C# and my own career. There’s a bit of technical content, but it’s mostly stuff about me as a person, just to dampen expectations suitably. I’m really, really looking forward to giving the talk now. Nearly two and a half months is a long time to wait… Update: If you tried to get to the link earlier on and failed, try again – … Continue reading Pre-Copenhagen interview

Speaking in Copenhagen, October 30th

I should have announced this earlier, but I’m delighted to report that on October 30th I’ll be speaking at a C# event in Copenhagen. Brian Rasmussen has organised a one day seminar which basically consists of me talking about C# all day and fielding questions. That sounds like more fun for me than anyone else, but apparently enough people disagree that the event is already fully booked. Still, if you want to sign up in case anyone drops out, the registration page has the details. My plan is to make it a verbal edition of C# in Depth, with as … Continue reading Speaking in Copenhagen, October 30th

Visual Studio 2008 SP1 and .NET 3.5 SP1 both out now

I suspect this will be pretty widely advertised fairly quickly, but both Visual Studio 2008 SP1 and .NET 3.5 SP1 are available for download. Personally I’ve had problems signing into the MSDN subscriptions site and going to the downloads page, but the direct links work fine. Both are fairly small files which then download more stuff when you execute them. The .NET 3.5 SP1 download doesn’t require you to have .NET 3.5 installed beforehand. Update (13th August): Patrick Smacchia has a great post showing the differences (in terms of numbers rather than features) between 3.5 and 3.5SP1.