Otanjobi Omedeto (Happy Birthday) Yoshinkan Brisbane

Yoshinkan Brisbane LogoYesterday marked the 6th birthday of the Brisbane Yoshinkan Aikido Dojo. I attended the once-a-year self-defence lesson and continued to watch an excellent demonstration by our Sensei and the black belts held exclusively for dojo members. It’s only my second month of learning my first martial art, but it was an excellent opportunity to learn more about it as Sensei Mori discussed the theory and practical basis for the things we learn in class all the time.

Of course, it was made even more exciting as we witnessed his amazing skills actually applied in all types of scenarios, one which included dealing with five attackers at the one time and without him even breaking a sweat! The Yoshinkan Brisbane dojo was highly recommended to me, and now after having attended it, I can also highly recommend it for anyone else. The members are extremely friendly and unlike many other dojos in Brisbane is not centred about recruiting new members and making money, but is there to genuinely teach and help improve everyone’s skills in Aikido.

Another Saturday Night Catch Up

Last night we had Mike and Marie (Juicy B) around for dinner. It was originally scheduled for some time in early December, but since it clashes with Al and Suz’s St Andrew’s night celebrations, it ended up being last night instead. I hadn’t the opportunity to catch up with them since the dinner at Gunshop Cafe with Sandy so it was great to have the chance to catch up. The night ended relatively early as we all were pretty tired from the hectic week, but not before much laughing ensued about so many different topics (Marie, the answer to the hypothetical question remains as nay!)

(more…)

Adventures In Pair Programming

Pair programming is one of the many Extreme Programming practices that I haven’t been able to use that much on my current project. We have a substitute dubbed ‘pairing’ which attempts to reap the benefits of this practice without incurring its perceived overheads. Part of ‘pairing’ allows us to pair program in certain circumstances (other factors prevent us from doing it actively all the time) and I recently had my first experience (or should that be an epiphany?) to reflect upon.

My first observation during this process was that I found the quality of code I wrote, and even my focus of what I was writing, increased tremendously. I also found myself absorbing more history and appreciation for the code I was adding to, instead of simply getting my tests to pass.

After enjoying my first taste of pair programming, I can conclude that to be really effective at it will definitely take a lot of practice. For example, one of my pair partners commented that I tended to unconsciously ‘huff’ while he was typing (probably because I can type much faster than him or was it because I found myself the victim of the Dominant Pair Syndrome?). Appreciating the feedback (of which I find myself so undersubscribed these days) I started to scour the net trying to look for some resources that described better pair programming etiquette. C2 Wiki has a good collection of resources such as ‘How To Piss Off Your Pair’, Pair Programming Questions, and Pair Programming Doubts. I’ve now added Pair Programming Illuminated to my wish list and am eagerly waiting for a copy of Peer Reviews In Software: A Practical Guide in my next Amazon shipment.

When a Unit Test is not a Unit Test

The term ‘unit test’ was being thrown about today at work but so many things about its context were just plain wrong. Just because our testing framework is called xUnit and each method happens to be called testX doesn�t make it a unit test. People have spent (far too much) time attempting to classify all types of tests coming up with categories like functional, acceptance, integration, or unit-integration tests. In my humble opinion, I tend to think of all tests falling along a spectrum, with unit tests (those that test just enough) on one end and the functional/acceptance tests (those that test too much) on the other.

Each test along this spectrum is important but the speed and quality of these tests will be one of the factors that determine how fast you can change or add to your code base. By all means, slower, bigger tests further along in the spectrum can be substituted for faster, lighter unit tests, but its consequences usually lead to a project that is less agile and more waterfall-driven.

Here are a few signs that your tests may be masquerading as something more than just (better, and faster) unit tests:

  • Your application must be �deployed� to run some of your tests;
  • A user must interpret console output or some other type of result for the test to fail;
  • Each test takes too much time to run (it should be possible to many of these within a second);
  • Excessive amounts of set up are required for each test (a smell that this might be integration test and/or testing too much); and
  • Tests cannot be run without some external resource (such as a database, specific computer or some file);

Dinner With the Gang

Last night we had Gerrod, Kristy, Ben and Michelle over to dinner. Though no reason is really needed for any sort of dinner party, there were plenty around to use (Gerrod and Kristy just back from their honeymoon, they are heading to work in the US at end of next week, and it’s always great catching up with Ben and Michelle).

(more…)

Trance With Matt Darey

Matt DareyJust got back from another big DJ act courtesy of The Family. Matt Darey, has been one of the biggest influences to the Trance scene and deservedly so. He has remixed or produced with all of the biggest DJs (including Tiesto, Oakenfold, Sasha, Pete Tong, Ferry Corsten just to name a few) and has produced many hits including Delerium’s Heaven’s Earth (Matt Darey Remix), Liberation and Beautiful.

Yet another brilliant set (and only for just Family’s standard cover charge!) that went far too quickly. Perhaps it’s a Friday thing, but I’m completely exhausted.

A Mighty Muffin

Feeling a little bit peckish this afternoon, I decided to try out one of the Texan Muffins that someone at work had previously bought. Rightly named a Texan Muffin, the top of this not-so-little treat fit almost quite perfectly into the palm of my hand (yes, it was that big).

My expectations were set quite low as the place of purchase (Nifty’s) is well known for its cheap and not-so-top-notch-quality food. However, considering that I paid $3 for this almost meal-sized muffin, I was quite impressed. The variety of muffins available is certainly not as great as many other places (anyone in the city – go to Cafe Modena), but has been, by far, the best muffin I have bought since working in the Milton area.

I decided to go for the Chocolate muffin over the Apple and Cinnamon one (come on, I was feeling indulgent!) and was delighted to find it an excellent choice. The first mouthful was enough to convince me that its baker really knew what they were doing because its texture was perfectly cake-like. The best indicator of a well-made muffin is that the crumb is of a cake-like consistency opposed to a more rubbery bread-like one. The latter type of muffin is an indication that its baker over-beat the muffin mix, developing levels of gluten in the flour that should be reserved for bread or pastry dough.

Generics Misnomer

Why did the latest JDK have to go and copy C# and name their language feature Generics when it looks like this:

List<string> notSoGenericListOfStrings = getInitialListOfStrings();

I hope it’s not just because the implementation happens to lose all of that compile time information, making each strongly typed element the lovely generic java.lang.Object. After reading the reasoning behind its implementation and appreciating some of its motivators, I’m sure it will be all the more be interesting resolving any Reflection or AOP bugs in the future.

Next Page »