Thursday, October 25, 2007

Edmonton Code Camp '07

Wow, thanks to the EDMUG guys... you did a fantastic job of organizing this event and what a great turn out. I think this year had a very cohesive series of sessions and really show that the
Edmonton development community is engaging more and more in ALT.NET and moving away from the MS endorsed drag 'n drop Designer Oriented Architecture (DOA for short... no really). I met a lot of great people (even some nice Calgarians ... heh heh) and had some great conversations. Hope to see you all around!

In case you missed it I did a session on Unit of Work where we implemented a hand rolled Unit of Work to demonstrate all the moving pieces: Object State, Identity Map, Repositories and Workspace. We also talked a bit about some problems inherent in the Unit of Work including how to deal with object state during and after persistence as well as what to do when objects are getting persisted in the wrong order.

You'll be able to download the code using the following two tags representing the start and completion of the session:
http://bourgeois-codecamp.googlecode.com/svn/T4.EdCodeCamp.UnitOfWorkStart
http://bourgeois-codecamp.googlecode.com/svn/T4.EdCodeCamp.UnitOfWorkComplete

My slide deck is posted here (please forgive the tacky background):
http://bourgeois-codecamp.googlecode.com/files/UnitofWork.ppt

The Unit of Work session was actually part of a bigger course. In this SVN repository you will find the entire contents of this day long course which covers the following topics:

  • Refactoring out the Code Smells
  • Introducing the Model View Presenter
  • Inversion of Control using Windsor
  • Unit of Work
  • Building with NAnt
In conversations with others I realized a lot of interest in these topics and would like to share these practices with your team. So if you think your dev team would benefit from a day of hands-on immersion in these topics please feel free to contact me.

Booya! on a Mini-Friday

Rob Conery posted a nice binary poem for a mini-Friday and unable to resist my curiosity I resigned myself to solving it in boo with minimal LOC:

for word in @/ /.Split(poem):
Console.Write(Convert.ToChar(Convert.ToByte(word.Trim(), 2)))

Once you solve that see if you can figure out Ayende's question d'jour.

As a side note it was disheartening to realize all that I've forgotten about bits and bytes since my days in CS class.

Saturday, October 13, 2007

Now Serving Ice Cold Code

I've had many requests for the code I talk about on my blog and thought it would be a time saver for both myself and those requesting the code if it was available for download. So I started a project on code.google.com and licensed it under an MIT License. I've just checked in code for the Raising Events in NMock and Lazy Loading .NET Objects but I'll be committing any new stuff to this project as well.

You can have access whenever the Internet is open by doing an SVN Checkout:

svn checkout http://peodeas.googlecode.com/svn/trunk/ peodeas

Enjoy!

 
s