DevTeach Toronto 2008
DevTeach is just around the corner again. I'm sitting here tonight putting the final touches on my presentations and I'm thinking about all the things that I enjoy about my trips to DevTeach. I might as well give you the top 5.
5. The presenters that you get to see in sessions are phenomenal. DevTeach has managed to draw the best of the best in the industry to speak at it. As a result you can choose any session on the schedule and be guaranteed to see a top name presenter speaking on something they're passionate about.
4. The varied content is refreshing. If, at any time, you feel that you want to go off and see a session that will put your mind into a different place than it normally is, you can. On a number of occasions I've decided to refresh my brain by seeing something that isn't in the .Net or Agile tracks. If you want you can see SQL Server content or, new for Toronto in '08, Sharepoint.
3. Great before/after parties. Party with Palermo, spontaneous pub nights and non-stop partying make the conference a lot less stressful than most you go to. While everyone attending or speaking is deadly serious about their profession, almost all are also there to live life and have fun while doing it.
2. Pre and Post Conference sessions. Outside of the traditional one hour sessions during the conference, there also are a number of full day seminars that are held before and after the main conference. Topics range from SQL Server, to Silverlight and Agile development. Always good content.
1. Hallway conversations. Because the speaker to attendee ratio is so low at this conference you have the opportunity to easily enter insightful conversations with the speakers and luminaries that are attending. Half the time you'll unknowingly end up having lunch at a table with at least one of the speakers. If you decide to skip a time slot, you'll always find people out in the halls mingling, working on code or trading ideas on the industry. Skipping a session to hang out in the hallways is one of the best ways to enhance the content that you take home from the event.
DevTeach starts up on the 12th of May. If you haven't already, take the next few minutes and register for the event. It's one of the best choices that you can make for your career.
Building community one developer at a time
I've been working in this industry for a number of years and through that time of progressed from being somewhat competent at showing up for work to now being somewhat competent at showing up for work sober. In reality, we all progress in our skills as we gain experience and move through a number of jobs. Since getting involved in the local Edmonton community with Edmug, one of the things that I've tried to work on is providing something to the growth of newer developers. There are a number of ways that I try to do this. In some cases it's simply standing up and speaking at the user group and code camp. Other times I do nothing more than show up at the local pub to talk and answer questions (the pub part is a favourite of mine). As a very non-interactive method of transferring knowledge I also provide books to people when I can.
While I'm not a big fan of lending books, due to the lack of interaction, sometimes you're just better off to get the whinging bugger out of your face before you end up being the lead story on the local news. As you've probably read this week, Justice Gray has been bemoaning the fact he can't attend the MVP Summit in Redmond. The primary reason for this is, contrary to what he'd have you believe, the fact that he hasn't been designated as an MVP. Prior to leaving Edmonton, Justice's actions were making it very obvious that he was going to be trying hard over the next year to become Edmonton's next MVP.
Being community minded, and knowing that Justice was mired in the pits of the software development skills category, I decided to lend him a helping hand. I dug through the bookshelf in my office and found a book suitable for his first steps on the ladder to programming greatness.
I know that you're thinking that VB6 is an old technology and that I'm starting Justice down an ill-advised road, so let me explain to you the rationale behind this personally crafted skills enhancement program.
First, we have to realize that every developer has to start somewhere. When you've been out of meaningful development and development conversation for as long as Justice has, you need to ensure that the student practitioner begins their journey with something that they won't be intimidated by. VB6 provides the perfect opportunity for Justice to begin acquiring skills that will allow him to remain irrelevant in the development community for years to come, thus saving all of use from having to rewrite all the code he contributed to projects.
The second consideration in this book choice is the fact that it is a '...in 24 hours' book. This is very important. I was sure I wouldn't be needing this book while in Seattle at the Summit. Given that I'm away for a full 8 days and nights in combination with Justice's impeded knowledge gathering skills I'm fairly confident that he will be able to get through the first 3 chapters during the 192 hours that I'll be out of town.
The final point that I considered in this Herculean learning project was that I would *definitely* be out of contact while in Seattle. A person can never be too cognizant of ensuring that you've done all things possible to eliminate all communication channels. Although Justice claims to be keen to learn, there is a point where his continual update phone calls of "Hey Donald, I've finished page one. What should I do now?" become a bit more than simply annoying. Remember that if you're going to ask a two legged dog to walk across the yard, you better be ready to be its crutch.
It's only a few more days before I arrive back in Edmonton. When I do, I'm not expecting Justice to be returning the book to me, and I'm okay with that. Justice, I hope you enjoy this book for many years to come.
What happens in Seattle, stays in Seattle...
Or so Dave thought. Tonight at the MVP Summit a few of us Canucks decided that we should embrace the international flair of the event. Instead of just hanging with the Canadians and the people that we knew, we set out on a journey. During the mix and mingle event prior to dinner Tom, Dave and I managed to get some time with the Koreans, Ukrainians (interesting as they didn't speak English, but fun all the same), some of the French, Germans, Italians and the Aussies.

At dinner they tables were segmented off so that there were areas for each of the major international MVP regions. Because hanging out with the international crowd had been so much fun at that point, a few of us decided to join the folks in the Europe, Middle East, Africa area. Our table was a good little UN area having an America, Scotsman, Englishman, a few Swedes and us. Good times.

After dinner Dave decided to truly get into the international spirit and he dropped his preference for goats in favour of a little kangaroo loving. Poor animal probably wishes that it had stayed down under. I don't think that Dave will ever be allowed into Australia.

Places I'll be
I figured I should put up a bit of info about my plans for this spring's conference season. So here they are.
April 14 - 17, MVP Summit...and of course Party with Palermo. I'm only an attendee at this one, but I'm sure it'll be an interesting experience going to the mothership for the first time.
April 18 - 20, Alt.Net Seattle. Again, only an attendee...or is anyone 'only' an attendee at an Open Spaces conference.
May 12 -16, DevTeach Toronto. Speaking at this one. As always I'm sure it'll be a great conference which will allow you to get quality face time with speakers and other people with great ideas.
May 19 & 20, The Great Developer Summit Bangalore. This one is going to be very interesting. I've never been to India. I'm from a wee-tiny-hick-town, not a city with many millions in it. I don't do well in heat. What I am looking forward to is seeing how passionate, pragmatic and skilled our development counterparts 1/2 way around the world are.
May/June, Desert Code Camp Phoenix. I'm not committed to speaking at this yet, but it's way up on my list. Let's say I'm 90% in the margarita bowl already.
So it is going to be a busy spring getting all this in plus staying on top of a book, blog and that other thing that work thing that pays the bar bills I stack up while at these events. If you're going to be at any of them, ping me or search me out. I'm always up for a good conversation.
Subversion migration
I don't know if I finally won the battle at my current contract or if the stars just all aligned for me this week. I'm helping the company to takes its first steps away from Visual SourceSafe and into the Subversion realm. Our project has been using SourceSafe for about 5 months now and, as a result, we have a significant codebase stored in it. Part of the migration away from VSS is to ensure that we get all the files, structure and commit history into the new repository.
This being the first time that I've done a migration of this nature, I had to research the tools. Here they are in case you have the same scenario.
Subversion server setup: VisualSVN Server. Not only is it free, but it's so bloody easy to use that I had an architect install it in about 10 minutes and he'd never been exposed to anything related to Subversion before.
Client/Developer tools: TortoiseSVN and WinMerge. Nothing fancy or new here.
Migration of artifacts: VSSMigrate. Great little tool, but it has some config file quirks so make sure to run a trial before doing the real thing. Conversion can be slow...a good reason to do a test run with a copy of the VSS database you intend to migrate from. Our conversion ran without error and it appears that everything was migrated correctly. We did have a simple VSS repository where we'd done nothing more than checkin, checkout, add and delete. We'd also never had a corruption problem either.
We took some steps to get the system into the state we wanted after the conversion was completed. The first thing was to open all the *.sln files and remove the source control bindings from them. They will still be pointing at VSS and there's no need for that. We also renamed the network share that our VSS database was stored behind. This ensured that no-one could hook up to it and commit changes by accident.
Overall, it's been a good experience. Here's to helping more companies make a good decision.
Principal of Least Privilege
The Principal of Least Privilege is the concept of running with the lowest permission set possible. Historically we developers tend to run on accounts that have Administrator level privileges. It's been talked about over and over that we shouldn't so I'm not going to get into that here. We know that we should, but we're either to lazy or not able to accomplish this feat.
I just got a new laptop and I was setting it up last week when I ran into some interesting things. I'm running Vista with least privileges and I didn't even notice or care. Then I tried to install a couple of developer tools into the Program Files folder and run them. Sure I got the now infamous prompt "Are you sure?" that Vista is known for, but that wasn't the problem. I actually didn't mind it since I was xcopy-ing files into a semi-system folder. I don't want that to happen without me knowing.
Instead the thing that really got me worked up happened when I went to run them. Both applications failed to run successfully for roughly the same reason: trying to write to the application's installation directory. When I looked into the error logs, both application were trying to save user configuration files (like settings and most recent files) to their directories.
Why? Haven't we as developers gotten past this back, oh, when we were working in VB6 (or whatever you worked in at that time)?
It was so bad that one application had to be killed from Task Manager to get out of it. You couldn't shut it down in any other way. To the folks who wrote these apps (and got sternly worded defects logged by me), I can't believe that you'd do this. Especially with the reason (yes this is what I was told by one) that "...we didn't want to spread files related to the application all over the file system..." Anyways, Least Privilege is tough to accomplish. I don't need to be hindered by the tools that I'm using on top of everything else.
Brownfield Application Development in .NET
Some of you may have been wondering why my blog posting has trailed off. Others will have been thanking the Gods that it has. Still more of you couldn't care less and....ooo...look....shiny.
Over the past few months I've been working on the first parts of a book with Kyle Baley (baaaa-lay.....yes...for those of you who don't know that translates from Manitoban to English as "sheep screw"). We're pushing a book that talks about the code and environmental issues that you may encounter when working on a brownfield application. Today we reached a milestone. We (well, the publisher) has released the first of our MEAP (Manning Early Access Program) copies of the book. More on the book can be found at its site (www.manning.com/baley) and the first chapter (free for you cheap buggers) is available here (www.manning-source.com/books/baley/baley_meapch1.pdf). We also have a set of forums available for discussion of the book topics, any errors that you may have found or questions that you have. That is available at: www.manning-sandbox.com/forum.jspa?forumID=436
Feel free to let us know what you think. Personally I like the dude on the cover. He looks like he could hold his own in a pub with me.
Pursefight owner revealed...
Hey Bellware, sorry you had to take the beating for my statements and comments on the pursefight, that was not the intent. And to make it official to everyone, Scott Bellware is NOT the author of the Alt.Net purse fight, I am.
Wow, that was a action packed few months. I have not felt that alive in a long time. There was always so much content, so much to bitch about, so much to make fun of. The only part that saddened me was that the fun had to come to end. I have to say that on March 21st when Jeff P sent that final and last thread announcing that the 'original' AltDotNet (oops, sorry CLI_DEV. What a stupid name for a list.) site was dead, I shed a tear.
You know, the hardest part about maintaining the blog site was not picking out the content (cause trust me, that was WAY too easy), it was keeping up with it. There were some days where literally there would be over 100 posts. And at one point, the vast majority of posts were people bitching about this, or bitching about that. To be honest, I thought I was reading a bunch of posts by 3rd graders, not posts by a group of 'professional' developers.
Of all the back and forth, I would have to say that the serve and volley between JDN (aka John) and Scott Bellware were the greatest. So, what made this back and forth so nice? Simple. JDN being the ultra cynic he is (btw, JDN I still owe you that beer) everyone is always wrong. And Scott likes to use words that are so large that even he as to look them up to understand their meaning (hey Scott, I contacted the guys over at http://thesaurus.reference.com/ and they would like to bill you for all the bandwidth you used).
Well, like everything in life, all things must come to an end.
Till next time,