Make Sure It’s The Master

I recently bought an external hard drive case so that I could back up all of my files. I’ve been running XP (yeah, yeah, I could be using Linux but the software for my Mini-Disc Player and Tablet Pen only works on windows), and thought it would be simple as plug-and-play. I had an old hard drive lying around, so I put it in the case and plugged it in. Sure enough, Windows was nice enough to alert me a “USB Mass Storage Device” was detected, but after hearing that nice little bell that indicates Windows found some new hardware, I was puzzled that no drive icon appeared in Explorer.

Initially thinking that it was my installation of Windows, I tried it on my laptop but to no avail. A quick google didn’t give me any better information, so I went back to basics and tried playing with the jumper settings. Sure enough, it appeared that cable-select mode was not enough and the pins had to be specifically set for Master mode. Now, to script the backup process…

Pair Pong (No, It’s Not About The Smell!)

Pair PongI’ve been a little bit quiet on the blogging front, both personal and work related (or at least it feels that way). The last few weeks have been busy, as I’ve been getting back into my normal routine (riding heaps!) coupled with the preparation of two major presentations. The first of these, intended for an audience internal to my company for this weekend, has had most of my attention for the better part of last month. The second, which had been the focus of this month, was for the Agile India conference that I had been accepted into. This presentation (more like a workshop), titled, “Priming the Pair Programming Practice For Production” (I couldn’t resist the alliteration), was aimed at providing an environment for people to experience pair programming first hand, with the benefits of coaching that would usually be lacking in the workplace.

I had been designing the session to expose people to both the benefits and challenges associated with this practice that is best learned with hands-on experience. Unfortunately for me, due to a whole series of recent events and bad timing, I have had to withdraw from the conference.

Now that I will not have the chance to actually run my workshop, I may as well describe what had been planned. In addition to going over the thinking behind pair programming, all of my exercises had been designed to give as much practice as possible, coupled with constant feedback, to pair programming and other agile practices. The first two exercises were intended to be fairly trivial, a programming problem to be tackled in pairs, the second, a pair programming refactoring session. I was probably most looking forward to the third exercise (especially from the participant’s reactions) which I had named “Pair Pong”, after the game “Ping Pong”, combining pair programming with the agile practice of Test Driven Development (TDD). Much like the real game, a token (in this case, a keyboard) would be constantly passed around between the pairs. One partner would write a test case to represent a requirement out of a given list, while the other would write enough code to get it working. The roles would swap and the game would continue until all the requirements were complete, with the aim of the pairs to only ultimately communicate via the code they passed between each other.

Although the “Pair Pong” concept is not new, I think associating it with something that everyone can relate to can make it easier to actually implement. I’m sure I’ll have an opportunity to run with this workshop one day; I just know it won’t be next week.

A Comment Saved Me Today

I like to think I have a very strong trust in all the members of the team I work with to tell me things I need to know to get my job done. My team members may not always be there right next to me, feeding me tidbits of information, so I trust them to leave what they were thinking in the code they leave behind. Sometimes it is harder to read some people’s thoughts, but most of the time, I get what they are saying. It’s always a great day when someone has the courage to put that comment down that saves you hours of trying to work out why something works the way it does without delving into its great recesses. Thanks for the comment and the hours you saved me today in my bug fix.

A Last Supper

Double Chocolate Tart served with summer berriesTonight we had Ben and Michelle around for another dinner before they head off the UK. I’m very excited for them both as not only are they heading to somewhere different to live, but they’re having an awesome holiday before hand. I found it pretty difficult to put something together this time, wanting to do something that would be memorable and appropriately themed for the current weather (a ridiculous heatwave we’ve been having). Everything turned out better than expected, and with the rain that came down today, the evening was enjoyed by all. Tonight’s menu consisted of:

The Bike Is Back

Kua's KonaWell it’s been a month almost exactly since the big accident, and I finally got my bike back today but not with the frame that I had been expecting. Apparently the yellow Kona that was suggested by the store proved too troublesome to put together with the handlebars of my old Vivace. After trying eight headsets, from a variety of states, stores and countries, they decided that they would have to give me the 2004 model fram instead of the older (I think almost 2001) one. The bike now has a pearly white exterior, and I can now get back on the road and ride! Have a bit of closer look at the bike here and here. I can’t say that I have been too impressed with the customer service (or lack of) I’ve been given over the last month, and I’m still stunned at how my bike has been in the shop for much longer than my car has ever been in. I’m going for a ride…

Simplicity Lost in 3D

I don’t know about you, but if I see a three-dimensional array being returned by a method in Java, alarm bells start going off (without, of course, suitable (and it better be mighty) justification). I have no idea how this method was added to the code base without review by another developer (my guess is that it wasn’t), but proper developer hygiene and good conscience (who would want to inflict it upon anyone else?) won’t let me leave it there. After studying the single method for over half-an-hour and dragging over the original author, I finally realised what it’s purpose in life was.

There are already far too many articles about what simplicity is (try this link), but my favourite rule of thumb is, if you have to stop and think about what code is doing while you’re reading it, it may be excessively complex. I avoid writing complex code, not because I am lazy or stupid, but because it is a waste of time that prevents me from writing other code that adds greater business value.

Missing the Bike And Too Much Music

Well it’s been almost three weeks since my I was supposed to have my bike back, and almost four weeks since the store has had physical possession of it. At the end of this long waiting period, let me just say that I have not been a very happy customer. I think I tend to be a pretty reasonable customer, being rather understanding of the one or two things that might make something late, but there are only so many times I will let my expectations be crushed.

The current story is that a single part (the headset) that is required has not been sent by the supplier (Avanti) and is apparently on its way from New Zealand. Now I’m not sure on what planet the supplier happens to be living on, but I am under the impression that New Zealand is only a few hours flight away! Since it took a while for me to be accepting of the actual frame I am getting, I’m not entirely enthused by the alternatives that are now being suggested by the bike store. I don’t know about you, but either a) paying more for another frame or b) accepting a lesser frame to get the job done quicker, are on none of my “acceptable scenarios” list. Of course, I’d be willing to upgrade to a better frame if there was no cost involved, especially considering the time that it has taken.

Oh and while I’m really in the mood for ranting tonight, curses to JB Hi-Fi for enchanting my wallet to spill more blood. The chain always offers such great value for all types of music and tends to have a pretty comprehensive range. It’s such a danger when I have to wait for my bus because a store happens to be right next to my bus stop and I’m always bound to find something of interest. Tonight I ended up purchasing four more CDs to add to my collection including: