Richard Banks' Blog

Software Development and Agility

It’s Amazing The Difference a Little Practice Makes

A few days ago I wrote about code katas and the poor effort I thought the first one was for me and how eye opening that was.  Well that effort has spurred me on to improve myself and I’ve stuck with it over the last few days by going through the kata a number of times... Read more

Looking for a List of Katas?

As a follow up to yesterdays post about code katas I’ve received a few questions on twitter about where to find katas to try. Before giving you a list of resources, remember that you can always make your own – katas are about practicing techniques on a known problem.  That said it’s often easier to work... Read more

Are Code Katas the “New Bright and Shiny Thing”?

I’ve been hearing about Katas and Coding Dojo’s for a while now, in fact probably since I first ran across the Alt.Net movement and it’s gained momentum with the Software Craftsmanship crowd.  In fact, lately I seem to be hearing about them more and more, so much so in fact that I’m starting to think of... Read more

PDC09 Day 4

It’s a wrap!  PDC is all over for 2009 and now comes that hard part where you have to gather your thoughts, not get scared by just how wide development is these days and that you can’t learn it all, then try and remember and imbibe everything you saw so that it’s there in your head... Read more

PDC09 Day 3

Keynote 2 today and wow! What a series of announcements, and what an excellent surprise with the giveaway of a touch screen tablet netbook to all the attendees (including yours truly)! Happy days! So apart from the goodies and all the nice stuff happening around Windows hardware and the sheer variety of form factors, the big... Read more

PDC09 Day 2

I’m going to skip the talking much about the keynote since various news channels and others have already written about it, dissected it, given their opinions and more and I lack both the time and the energy for it.  Anyway I live tweeted for most of the day today so you should be able to get... Read more

PDC09 Pre Conference Workshop

I’m currently at PDC (follow my tweets for on the spot thoughts and impressions) and today I went to a pre-conference workshop on VSTS.  I wasn’t sure what to expect and was kind of hoping to be reasonably hands on and have a chance to chat a bit closer to a few more of the team.... Read more

Raising Events With Rhino Mocks AAA Syntax

There’s various posts on the web showing how to raise events in Rhino Mocks but they typically show you how to do it using the Record/Replay syntax, which I personally find quite awkward.I was just helping out someone today and showing them how to do it using the Arrange, Act, Assert (AAA) syntax in Rhino Mocks... Read more

How To Build VS2010 Solutions Using TFS2008 Team Build

So you’ve got your hands on a bright and shiny copy of Visual Studio 2010 Beta 2 and you want to switch your solutions and projects over to it but you don’t want to upgrade your existing TFS 2008 server to TFS 2010 Beta 2 yet because you’re not yet ready for that much change.  The... Read more

Test the Right Thing

I was helping a customer recently to improve the way they do testing and I looked at one of their tests as follows:[TestMethod]public void FeedFileProcessorResolvesLoadDirectoryViaFeedType(){ MockRepository mocks = new MockRepository(); using (MockServices services = new MockServices(mocks)) { FeedType feedType = MockServices.CreateStubFeedType(1001, null, null, @"z:\PickUpDirectory"); Expect.Call(services.FeedTypeProvider.GetByFeedTypeID(feedType.FeedTypeID)) .Return(feedType); mocks.ReplayAll(); MockFeedFileProcessor.DefaultFeedTypeId = 1001; FeedFileProcessor processor = new MockFeedFileProcessor(); string... Read more

Architecture in the Small Presentation

Last night I was privileged to be the first speaker at the newly formed Sydney Architecture User Group put together by Paul Glavich (@glav) and Omar Besiso (@omarbesiso) and sponsored by Datacom. There was a strong turnout and plenty of people in the audience willing to ask questions.  I’ve uploaded my slide deck from last night... Read more

How to Make Linq to NHibernate’s Expand() Type Safe

Linq to NHibernate is great.  It makes your queries so much easier to understand since it expresses the intent of what you are doing better than the CreateCriteria API does.For example compare this statement:var query = session.CreateCriteria<UserProfile>() .Add(Restrictions.Eq("Id", identifier)) .SetFetchMode("Sites"), FetchMode.Join);var result = query.UniqueResult<userprofile>();with this:var query = from p in session.Linq<UserProfile>().Expand("Sites") where p.Identifier.Equals(identifier) select p;var result... Read more

Sydney Architecture User Group, Oct 22nd

Just thought I’d let you all know that I’ll be speaking at the first meeting of the Sydney Architecture User Group next week (you’ll find the group on Facebook).  So, if you’re in Sydney on Thursday Oct 22nd then head on over the the Grace Hotel, 77 York St, at 6pm and I’ll see you there. ... Read more

How I Learnt To Love A Password Manager

For the longest time (i.e. since I first used a password) I’ve always kept passwords in my head.  In the early days it was easy since systems were isolated and pesky password policies hadn’t yet become the norm.  It was usually easy to remember, because the number of unique passwords I had was, um, just one.... Read more

Solved: Connection Issues with Communicator 2007

At Readify we use Microsoft Office Communicator 2007 R2 as the internal IM and presence tool, with the added bonus that since we are federated with Microsoft we are also able contact the people we know in Microsoft through the same tool. Unfortunately I’ve had a recurring problem where communicator wouldn’t connect when I was plugged... Read more

Missed TechEd Australia? Get the content anyway

Close on the heels of TechEd Australia, Readify have announced the latest Dev Days events for both Sydney and Melbourne. When we last ran these we had multiple tracks which presented tough choices on what to see at times, so we’ve changed things around and will now run separate morning and afternoon tracks instead.  It means... Read more

Australian Virtual Alt.Net – Influence Strategies

I attended the QCon conference in London earlier this year and during it I was lucky enough to attend one of Linda Rising’s workshops on Influence Strategies.  Recently I presented my own take on her content at the Oz Virtual Alt.Net group, and here it is for your enjoyment. P.S. The credit for the good content... Read more

Using P4Merge with Visual Studio 2008 and TFS

The merge and diff utility included with Visual Studio 2008 is, let’s face it, not the best tool on the market.  Sure, it does the job, but it could be so much better.  Thankfully, Visual Studio gives you a way to customise the tool that is used for merging. Now, in the past, I’ve usually gone... Read more

A Simple SQL Performance Tip

For those who don’t follow me on twitter (and why not!) you might have missed me having a whinge about a SQL database I was looking at recently from a performance perspective. Anyway, I found this little INSERT INTO statement in one of the extremelyy slow stored procedures they were having problems with (table names changed... Read more

How to Build a Small Software Enterprise From Zero

At the moment, I’m at Tech.Ed Australia and have just been in Joseph Albahari’s session on building micro-ISV’s.  For those who don’t know Joseph Albahari is the author of an number of .NET books and also of the handy LinqPad utility. Here’s a run down of his talk.  Obviously I didn’t capture everything said during the... Read more