Meaningful Names

Bar the Foo, no one really cares about you.

I like good names for all things, even for test variables, even though you may not care what value they have. However, even if you don’t care what value it has, please think about people who will maintain it and tell them (by giving it a good name) what it supposed to represent (how about something like anyName, or anyEmail?).

Pair Pong Perfection

Our last iteration introduced full time pair programming as an accepted practice (in contrast with our previous practice of “pairing”). The last couple of days I’ve been pair programming with one of client’s developers and because we seem to work well together, it hasn’t been hard to all building the synergy. As part of pair programming, I suggested we give pair pong programming a go and despite it being a new practice, we’ve found it excels at providing us with the rhythm that makes us amazingly productive.

I think there are a couple of reasons why pair pong programming works. Firstly, it’s got all the aspects of pair programming (such as constantly discussing design, questioning and trying to improve on the code that is written). As I mentioned earlier, it’s got the rhythm of proper TDD (writing a failing test, and then getting that test to pass) and finally it’s really good for actually forcing pairs to drive and navigate for an evenly distributed time. I think we’ve almost got to the point where when we write the test for each other, the other pair already understands what it would take to implement it and then the code just flows.

With the right partner, pair pong programming can be such bliss…

Splendiferous Splendour

Last year’s Splendour in the Grass was amazing. This year’s one includes acts such as Queens of the Stone Age, Moby, Interpol, The Finn Brothers, The Living End, Shihad, and Sarah Blasko. Despite tickets for this year only going on sale yesterday, it appears that they have already sold out! Such disappointment! It’s also amazing to see that people are already ebaying them for almost double the price!

Pair Programming Patterns

On our current project full pair programming has been more of the exception than the rule. In our current iteration we are trying full pair programming and we’ve seen some really good things come of it. I was thinking of writing up some entries here for Pair Programming Patterns/Anti-Patterns because it would be good for future reference but maybe there is some resource out there already. Does anyone know of such a resource and would it be worth writing some up?

Why Rely On A Compiler When You Have Tests?

I’ve been playing around with Ruby and reading up on Ruby on Rails lately (yes, I have joined the bandwagon) and it interests me how Ruby’s popularity (at least in some of the circles I partake in) seems to have resparked the debate of dynamic languages being better than static languages. Static language advocates will suggest that they have frequently less bugs in the class of wrongly assigned data types because the compiler provides them with one level of feedback. Of course this does not mean that static languages (such as Java) exclude this class of bug completely (which is why we have our most favourite ClassCastException). This level of feedback comes at the cost of its programmers having to endure a much higher level of verbosity.

Although I code everyday in a static language for my current project, I’ve written some development tools and worked on a project all based in Perl (gasp!) and enjoyed the freedom its dynamic typing provided. My suggestion for people looking at using dynamic languages for a production system is that the higher level of power that the language provides also requires a corresponding higher level of discipline from developers who use it.

My response to people who strongly advocate for static languages solely based on its type safety is that this issue goes away if one actually writes tests for it (and even better, test drives the entire system). It amuses me to no end to see how many projects (both production and even many open source projects) fail to even compile when you take a copy from their source control system. Although seeing a project fail to compile gives me one level of feedback (yes, you won’t even be able to run it), I think it’s bad that when you do see a project compile successfully, it gives people a false sense that the system must be working correctly. Yes this requires high discipline from developers to write useful unit tests but is this any different from what you are currently doing or what you expect your team to be doing? I really hope not.

Sarah Blasko @ The Rev

Sarah BlaskoWith nothing to do this Friday, I somehow managed to nab myself a ticket to see Sarah Blasko at The Rev in the Valley and it was an amazing show. This artist is becoming ever more popular with looks somewhere between a miniature cross of (at least I think so when you see her live) Natalie Imbruglia and Sophie Ellis Bextor but definitely with a style distinctly her own. She has more recently been compared to the likes of Missy Higgins and although her voice and talent could easily be mistaken for Missy at times, Sarah’s own unique style of music contains an enchanting and almost haunting undertone. She was also one of the latest representatives for Australia at the South by Southwest Festival in the US.

Sarah Blask At The RevThe Rev made a perfect spot for this gig, with the intimate surroundings giving Sarah great opportunity to interact with the crowd. It seemed she was genuinely impressed by the Brisbvegas audience based on her comments and the way she responded to everyone’s reactions. What a bargain to see this Indie/Folk US signed artist perform for the measly sum of AU$15! (Especially considering she will be gracing one of the stages at Splendour in the Grass later this year). Fantastic night that went a little later than I expected but well worth staying up for!

Three Weeks Goes Fast

I finally arrived back in Australia after leaving three weeks ago for holidays. It’s been a whirlwind trip but at least the three weeks vacation has actually felt more like a month and a half. I’ve been hurting without Internet access for the last week and a half, so unfortunately I haven’t had any opportunity to update the blog. So much has gone on since the last post, so here’s a brief summary:

  • Last days in New York – Our second last day in NY was spent with my Aunt and family walking around Chinatown. Manhattan’s Chinatown is pretty huge and offers so much in terms of food and interesting stores providing for things to look at all day. There’s even a bus that leaves from Flushing to get right into the middle of Chinatown for the same price as the subway (all without having to transfer either)! Our final day in New York that I spent with my brother and sister walking all around Manhattan was jam-packed with so much. From a foodie perspective, we stuffed ourselves by visiting the Doughnut Plant, Il Laboratorio Del Gelato and Brother’s BBQ (you’ve gotta have the beef brisket). We dropped into J&R somewhere along the way to pick up some decently priced MP3 players after failing to pick up anything in Japan. We somehow also managed to fit in a trip on the (free!) Staten Island Ferry, and visits to the Brooklyn Bridge, Wall Street, Times Square, FAO Schwarz, and the Chrysler building before meeting up with Gerrod and Kristy for one last dinner. One cocktail from a Mexican place, lovely dinner at an Asian fusion restaurant and a cupcake from the Buttercup Bakeshop later and I was well and truly stuffed and made for a lovely finish to our time in NY.
  • Knott’s Berry Farm – This was our first theme park visit in LA and one that caters for the younger crowd with a theme based around Snoopy and the Peanut’s gang. It was good thing for us though because we had our 11 year old cousin along for the trip. Fortunately for us, our visit to this theme park happened to be the week after spring break, so there was very little lining up for any of the rides and we were able to hit most of the big and many of the small ones as well. If you want to schedule time for any of the shows, the ones worth visiting including the Wild West show and the Mystery Lodge show. I would also recommend going on the Perilous Plunge in the middle of the day instead of the end because you will be soaked by the time you get off it. Traveller’s Tip – Buying tickets online can save you significant money off the entrance fee.
  • Six Flag’s Magic Mountain – My brother, sister and I spent our last day in LA at this theme park and is one of those theme parks that is just full of rollercoasters. I therefore recommend you not taking younger family members or people that have a bit of a weak stomach as they may not be able to enjoy many of the rides. Once again, buying tickets online can save you significant money, and I also recommend trying to sneak some food in because the prices they charge can be pretty ridiculous (try USD9 for a slice of pizza and coke)! Despite the theme park being slightly more crowded than Knott’s Berry because of a number of field trips from local schools, we still managed to get on all of the rides we wanted to, including the fantastic X ride which is really worth the wait (imagine a normal rollercoaster with plenty of loops and G-forces, and then imagine being flipped around in your chair at the same time). An awesome day where you really don’t want to eat much at all.
  • Los Angeles – The rest of our time was mainly spent with family, with the whole purpose of our trip leading up to a grand birthday celebration for my grandmother. We did manage to make it out to places like Venice Beach, Santa Monica, Malibu, and drove around Mulholland Drive in my cousin’s Mini Cooper S (which I will say handles really really well!). I also managed to fit in time to catch up with Sanjoy (who I used to work under at Oracle) and had a great night out on the town (and such a nice Z4 convertible as well!).

New York, New York

Gerrod And Kristy in Central ParkIt was only about three/four years ago that I was out here hitting all of the touristy joints and reeling at the events of September 11. Yesterday was therefore for me was really just a great way to catch up with Gerrod and Kristy, two Aussies I know from back home who moved here just late last year. I brought with me a care pack containing all of the essentials (who could forget the Tim Tams) so they wouldn’t miss Australia so much. By some miracle, no subway guide and only verbal directions, I managed to find their place okay in Manhattan only just a little bit late, and off we were for the day

Gerrod And Kristy in Central ParkWe headed out for a (much needed) cup of coffee to meet up with another couple of Gerrod and Kristy’s friends (who happenned to also be fellow Aussies) Michael and Lucy. Meeting them at the latest Joes (as in a cup of Joe) store, I had the best coffee I had drunk since for a while. It was made just right that no sugar was necessary (not that I have any normally anyway). It was great having some locals to give the tour and somehow we hit so many more places that I was expecting and walked our little feet off. We managed to fit in places like Union Square, the Village, Hudson River (near the Chelsea Piers), Ground Zero, Central Park, 5th Ave and St Patrick’s Cathedral. I even managed to indulge in one of the things that I missed about New York so much, a bagel with (only a smidgen) of cream cheese.

New York put on its best and brightest, with blue skies for pretty much all of the day making for perfect walking weather. See the rest of the pics from the day right here. Thanks again for the awesome day guys.