Victoria .NET Developers Association Code Camp on Saturday, 8 April 2006

This Saturday, the Victoria .NET Developers Association is having its first Code Camp! I’m really looking forward to it; as you can see from the schedule, we have quite the line up of speakers. I don’t know where they got that Jason guy from. 

If you’re in Victoria, I encourage you to come by and check it out. We have sweet prizes to give away, including an MSDN license, generously donated by Ken Cox.

Click here to register, or drop by on Saturday.  

Version Numbers

This is a uber-geeky. You are warned.

Version numbers consist of four numbers at their most complex: Major.Minor.Revision.Build. They’re very important, especially when you have multiple releases in the wild. They let you track what code is running on the users machine, so if they have a version that contains a bug, you can tell if it’s a new bug, or if it has been fixed in a later release.

Suppose you were part of a software team that writes components which other teams in the company use to create products. Suppose you release fairly often and the possibility that you may have to support multiple versions of the same library, and may even continue releasing multiple versions.

Let’s say you have ComponentX.dll whose latest version is 1.6.7.0. The next release is a bug fix release with no added functionality, so the next version released is 1.6.8.0. Once version 1.6.8.0 is released, there will be a branch release, 1.6.8.1, and the next bug fix release, 1.6.9.0. A further release on the 1.6.8.1 branch is required; it will be 1.6.8.2.

Starting to see the pattern?

OK, now what if your team were to impose a daily build with this versioning scheme?

One of you wants to increment the build number on every build; this creates havoc for the system above, so you must come up with an intricate set of rules to govern version numbers that requires lots of lost time to explain the whole system. Another thinks the daily builds shouldn’t be versioned at all, because once the daily build is institute, he’s going to bring continuous integration into the mix. This would potentially mean several builds a day, that really only reflect the health of the code in the repository; they’re throwaway builds that will never be released.

What do you do for your builds at your shop? Whose side would you be on?

Now playing: The Philosopher Kings – Last Stand

What I’m Reading

I’m always reading something: blogs, magazines in the bathroom, books. The frequency of each ebbs and flows. Right now I’m amid a dearth of books half read:

The Blank Slate by Steven Pinker The Blank Slate by Steven Pinker – This book is an argument against the theory that humans are born without any innate knowledge or skills. He already convinced me in How the Mind Works, so it’s been slow going.
Data Binding with Windows Forms 2.0 by Brian Noyes Data Binding with Windows Forms 2.0 by Brian Noyes – This book is about exactly what you’d think it is. This is a fantastic technology that will save tons of lines of code. It’s part of the always excellent Addison-Wesley .NET Development Series. I’d recommend any book from the series; this one is no exception. I’m about half-way through it.
The New Rules of Lifting by Lou Schuler and Alwyn Cosgrove The New Rules of Lifting by Lou Schuler and Alwyn Cosgrove – This is the first training book I’ve bought in a long time. It emphasizes just six movements that we use in daily lift as the basis of a strength conditioning program. It’s a great book for anyone who’s just starting or has been doing the same, damn thing for years and ain’t gettin’ no results. Great pictures of all the movements. I just started this one.
Naked Conversations by Robert Scoble and Shel Israel Naked Conversations by Robert Scoble and Shel Israel – This book is about – surprise! – blogging. It’s for businesspeople, trying to convince them that blogging is a good thing for their business. Duh! I’m reading it to bone up for some plans I have. Muhahahaha!

 What’s curious to note is the approach and the language in each of the books. They are written to very different audiences and by authors with very different backgrounds. Pinker’s book is definitely from academia; I used to read books like that frequently, but I haven’t in a while. The text is small and dense, the words are big. And this is from a very readable author. It’s a what a journal article would be like if there weren’t so many rules that academics must follow for journal articles.

The computer book is what you would expect; the language is very plain and boring. There tables and diagrams, the font is big. It’s an extended MSDN article.

The lifting book is written in a conversational tone, the author’s joke around often. The language is light and it’s very readable. There are frequent pictures. It gives the impression that this guy is talking to a group of guys in the middle of the gym.

Scoble’s book is written for businesspeople, as I said above. I’m not half way and I’ve already noticed a pattern: blogging is great for business, here are some examples: yadda, yadda, yadda. Every chapter. Like the only way these suits are going to get it is if it’s repeated ad nauseum. Businesspeople are idiots.

Now playing: Headstones – Coffee Cup

Hanselman owned tonight. I want to have his baby

Scott Hanselman gave a talk at the Victoria .NET Nerds Developer Association tonight. It was very good. I’d heard that he was a great speaker and my hearing was right. He was all over the map, and since I read his blog, a lot of his technical asides (showing tools, etc.)  weren’t news to me.

Still I picked up a few things and he almost convinced me to switch to dasBlog with his presentation. Officially, his talk was about ASP.NET Software Architecture using dasBlog as an example. There are lots of cool things in that project.

The second coolest thing was something he showed in passing: the Call Stack Window in VS that Microsoft does by default is to repress the stack for all non-user code. Apparently, you can right click and choose to show that. I had no idea aobut this, but I’ll be sure to turn that setting on at work tomorrow. He called it the switch that means “I prefer the Matrix.” Hilarious.

The coolest thing was when he was deep in the bowels of generated XmlSerializer code and someone asked why the object properties had the ‘@’ character in front of them. He didn’t know (actually, he couldn’t remember); but I did. That’s the syntax used when the property name could be a reserved word of C# (My google skills aren’t with me tonight; I can’t find a reference to that piece of C# lore). Yes!

It was a great talk. Hopefully, he can come back soon.

Greetings From Subtext!

If you’re a regular web reader of jasonkemp.ca, you’ve probably noticed my new skin. This is because I’ve now switched to Subtext.

They released version 1.0 today. Congratulations to Phil Haack and the rest of the team. Despite what the people page says, my contribution was virtually non-existent. I never got around to asking Phil to remove me. Maybe now I should contribute. I’ve thought of some things I want to put in the engine. Plus, given what I went through attempting a trial install with subtext, I think I need to refresh my skills on databases and ASP.NET.

While the install would have been very smooth for a new blog, the import from .TEXT was not successful. I suspect it was because of the way my host is configured. It could never find the database. So I downloaded the source, extracted the SQL import script, and ran it through the Query Analyzer. It worked, so no big deal.

Then I had a problem posting because an emoticons.txt file was missing. I just put up an empty file in the right spot and bingo! Posted.