Marty Andrews

artful code

Friday, November 25, 2005

Australian 8-Ball Championships - Looking Back

I started out with four goals at the start of the nationals. As it turns out, I achieved 2 of them, and never got a chance for the third. Making the team final and the last 32 of the singles was great, but I'm dissapointed with my performance in the teams matches overall. I won about 40% of my matches for the tournament, which was the worst result in the team, and meant I got to sit on the bench during the finals.

The other great result for the trip was coming second in a major knockout tournament before the nationals began. That was certainly a surprise.

Overall, I'm reasonably pleased with the trip, but I'm keen to try and improve the results next year.

Australian 8-Ball Championships - Grand Final

Tonight we played against Qld in the grand final. They got out to a flying start in the first quarter and led us 5-3 with some amazing pool. Their formed continued as they beat us 6-2 in the second quarter to end with an 11-5 half time lead. The VIC's haven't played bad up to this point, and the Queenslanders have been on fire, potting everything in sight. Not a good start for us.

The third quarter is a bit more even in terms of play, but Qld still win the quarter 5-3, giving them a 16-8 lead at three quarter time. Crap! We have to win every frame in the last quarter to send the match to a tie-breaker.

We reel off 5 consecutive frames in the last quarter to give ourselves a chance before Queensland finally get their winning frame. The scoreline at least now looks a respectable 17-13, but it was too little too late for the Victorians.

Its dissapointing to get so close and not win it. I think we played our grand final yesterday when we cleaned up the SA in the preliminary. We also had two Victorians playing off in the singles final (well done Ben and Paull!). So the VIC's had a pretty full-on day yesterday while Qld was resting. That highlights to us just how important top spot on the ladder is to get straight into the grand final.

Its been a pretty good campaign overall. One of the best Victorian teams that has been put together for a while did a good job. Hopefully we can learn from our lessons and go one step further next year.

Australian 8-Ball Championships - Preliminary Final

Tonight we played one of our best matches and knocked off SA in the preliminary 17-11 (finals are four rounds of 8 frames instead of 3 rounds of 8 frames like normal matches if you're wondering why the scores look different). Thats the worst defeat SA has had for the tournament. It also puts us in the grand final tomorrow against Qld, and is the first time in 14 years that SA has not made the final. That amazing given that its reputadly the strongest team they've ever sent away. Every one of their players has represented Australia at some time in the past.


Australian 8-Ball Championships - Day 10

Our run home is fairly weak, so we have a couple of percentage boosters to play today. The only goal is to get a win against Tasmania. They're the only team that we haven't yet beaten in the tournament. As it turns out, we do that comfortably. We beat NSW 18-6 and then beat Tasmania 17-7.

After having played everyone twice, we end up with some unexpected results on the ladder. Qld are the surprise packet, and finish on top. The VIC's come in at second, and SA finish in third. That means Qld are straight into the final tomorrow, and we have to play SA in the preliminary tonight.

Australian 8-Ball Championships - Day 9

(Day 8 was a rest day, with no play).

Our first match for the day is an important one. We play Qld, who are currenltly on top of the ladder. They get out of the blocks well early with a 5-3 lead in the first quarter. We come back at them strongly with a 6-2 second quarter that puts us in front at half time. We manage to hold on to that lead for the rest of the match and win 13-11. A good start to the day.

Our second match is against NT, who we give a caning to and come out with a 21-3 win. Its been a good day for us.

Australian 8-Ball Championships - Day 7

Its singles day again, and this time I'm playing a guy called Marcus Jackson from Tasmania. My play is up and down during the match, but solid enough for me to beat him 5-3. That means I achieve on of my goals in making the last 32 for the singles. My next match is in the afternoon against Wayne Stubbs, also from Tasmania. Wayne has represented Australia before, so will be my toughest match so far.

Wayne gets out to an early lead in the match, and we go frame for frame for a while until he ends up ahead 5-3 in a race to 6. My play improves a bit at this point and I peg it back to 5-4 and get good control in the next frame in attempt to bring the scores level. Towards the end of the frame I get a bad kiss on one of my shots, which accidentally knocks Wayne's ball into the pocket. Disaster. The cover I have is good enough for me to win normally, but Wayne digs out his covered ball with one of his two shots, and pots the rest to win the final frame. I lose the match 6-4.

I'm pleased with the fact that I achieved my goal in the singles draw, but dissapointed that I lost after having a real chance in the match. A win in this match would have also meant that I would play Jack Halligan in the next match, which would have been an opportunity to achieve one of my other goals. As it turns out, Wayne beats Jack in the next round and goes through to the quarter finals.

Australian 8-Ball Championships - Day 6

This was by far our most important day so far, and we didn't go so well...

In the morning we played ACT, and beat them 16-8. That was a good start to the day, but it went downhill quickly. We play two of the other top teams in our other matches for the day, and get beaten in both. SA beats us 13-11, and then WA beats us 13-11 as well. The only good news is that the close matches mean our percentage is still looking ok.

My results continue to suck. I've adjusted to the table speed ok, but my confidence is down and I'm giving my opponents an extra shot in the games as a result. At a national level, thats easily enough to get your ass kicked. I suspect I'll be spending some time on the pine in the home stretch.

The teams event is being put on hold for a couple of days now whilst we get into the singles event.

Friday, November 11, 2005

Australian 8-Ball Championships - Day 5

This morning we played against NSW, who are by far the weakest team. We have a huge win against them and come away with a 22-2 result. No-one can remember anyone ever being beaten by such a margin. In the same round, SA beats Qld, which means we are now on top of the ladder with great percentage. I play all three frames in the match and win them all. That gets me back to 50% having won 5 out of 10 frames now.

We play Tasmania later this evening, which will see us having played every other state once. I'll update the entry with results later on.

Update: We had a draw with Tasmania, which is a bummer, but there were two other shock results for the round. SA drew with the ACT, and WA beat Qld. That means that after having played everyone once, the VICs are on top of the ladder.

Australian 8-Ball Championships - Day 4

Today is the first round of the singles draw. There are no team matches on at all, but we all play a best of 9 match against an opponent in a straight knockout draw. I'm looking forward to some match practice on the tables so I can adjust better to their speed.

I have been drawn against Steve Saxon from WA. He gets off to a good start while I continue struggling with the tables and he jumps out to a 2-0 lead on me. The third frame see a bit of luck go my way, so I peg it back to 2-1. From that point on in the match, I become much better adjusted and my confidence grows with each shot. Steve doesn't win another frame, and I come out with a 5-2 win.

We're supposed to play the second round today as well, but the matches are running behind, so they are postponed until Sunday. The last ladies singles match finished some time after 1am in the morning. With a few tables free, I get some much need practice in as well.

I'm feeling much better about my control on the tables now, having been able to play on them for several hours today. I'm looking forward to tomorrow.

Australian 8-Ball Championships - Day 3

This morning we play against the home state - WA. We have a very strong match against them and come out with a 15-9 win. I play two frames and win them both. I'm still missing position a bit, but getting better as the tournament moves on.

Our second match for the day is against Qld. They are another very strong team. We have a bad loss to them with a 16-8 result. I play one frame and lose it.

Finally, we come up against NT at the end of the day. They are one of the weaker teams in the competition and we beat them comfortably with a 16-8 win. I don't play at all in the match. The big story of the round is that WA beats SA in a huge upset.

The day is a mixed bag for the VIC's. We are dissapointed with the loss to Qld, but the loss by SA means that we are in outright second, which is very good at this stage given that we haven't played all of the weaker teams yet. I'm personally on 2 wins out of 7 frames, so haven't started well.

Australian 8-Ball Championships - Day 2

(Day 1 was just the opening ceremony, so no action in terms of competitive play)

Our first match is against ACT. They have a reasonably good side. Probably middle of the field. We beat them 14-10. A good start for the team. I struggle with the pace of the brand new cloths and don't get good position at all. After two losses I get stuck on the bench.

Our second match is against SA. The favourites. We have a great match and get over the line with a 13-11 win. I continue to struggle with the tables and lose two matches again.

Overall, this was a great days play for us, having beaten the favouries. We are second on the ladder to Qld, who have have two good wins for a better percentage than us.

Tuesday, November 8, 2005

Australian 8-Ball Championships - Warm Up Event

Its a tradition of the championships that a warm up event is held before the official titles are held. Most of the players have gathered in the same place already, so they run a tournament for a cash purse as a preliminary event. Its a bit like the Queens Club tennis tournament just before Wimbledon, and becomes one of the major tournaments for the year given the quality of the players that are gathered together.

As it turns out, I played well enough in the event to make the final, and was runner up to Colin Laoutaris from South Australia. I had a 3-0 lead in the final before he raised the bar and reeled off 6 consecutive frames to beat me 6-3. Missing out on the win after getting so close is a touch dissapointing, but overall I'm delighted to do so well. I was definitely a roughie in the field of players that was put together, and Colin was one of the favourites. Its no disgrace to lose to him in the final.

I picked up $1000 cash for my trouble in the event, and a further $600 given that I had bought myself for the princely sum of $20 in the player auction that was run before the event. Top players go for about $200 or more, so that was a bargain price.

A great start to the trip. I hope I can keep up my form in the main event over the next two weeks...

Friday, October 28, 2005

Australian 8-Ball Championships - Goals

I'm a big fan of goal-setting. One of the most useful techniques you can use in goal-setting is to write them down and share them. It makes them more concrete, and you more accountable. So given that I'm heading off to the Australian 8-Ball Championships to represent Victoria in one weeks time, here's my goals for the tournament:

  • 57.5%
  • I last played for Victoria in 1999, and managed to win 55% of my matches that year. Thats pretty good for a first year player, but you also spend a lot of time on the bench, and get more of a run against the weaker teams. This time round I want to raise the bar a bit, so I'm aiming for 57.5%.

    The maximum amount of frames anyone can play in the teams event is 42. There's 3 per match against 7 opposition teams that we play twice each. I'm guessing that I'll play about 30 of them with rotation off the bench. That means I want to win 18 games of pool at the nationals.

  • Team Finals
  • The South Australian team is a clear favourite at the nationals, having won the last 6 consecutive championships. Then Western Australia, Victoria and Queensland are ranked quite closely together. This year we want to make the final and give ourselves the opportunity of knocking off the South Australians.

  • Last 32
  • In recent times, the national singles title has been opened to anyone who represents their state (it used to be only played by the state champions). My goal for this knockout tournament is to make the last 32. To some extent, this is a stretch target for me, but it depends heavily on what names are pulled out of a hat to play against me.

  • Hit the road, Jack
  • This one's personal. When I was a young up-and-comer playing pool, I went searching for a coach, and eventually spent a lot of my time being groomed by one of the most decorated player's Australia has ever had - Jack Halligan. He took me from being yet another pub pool player to bordering on state team selection. Since that time, he has moved to Queensland, and this year is the captain of their state team. If the opportunity arises, I'd love to beat him in a match at the nationals.

    Watch out Jack, I'm coming for 'ya.

Monday, September 5, 2005

The development multiplier effect

Most software development projects have developers as the largest group of people within it, and they are engaged for the longest time on the project. They also tend to do the same things over and over again many times every day. Write a test, write some code, update from source control, run a build, check in. Rinse. Repeat. Good developers will do this up to tens of times per day.

All of these things mean that minute changes in productivity on a single task for your average developer on the project can have dramatic impacts across the project as a whole. On a project with 10 developers that do 10 builds a day each, improving the build speed from 5 minutes to 4 minutes saves over 13 hours every week.

For these reasons, I'm very wary of compromising on even the finest details around productivity for developers, and aggressively seek out improvements where possible. The biggest culprits that I see are in the IDE, source control system, and automated build. Be proactive about constantly improving these things and you'll be well on the way to a productive environment.

Wednesday, August 10, 2005

I'm not normally one to brag

...but last weekend I achieved one of my long time goals when I finished high enough in the state 8-ball titles to gain automatic selection for the Victorian team this year. I've made the top 20 (the number of people that get to the final playoff for selection) 6 times now, and been first emergency for the team twice. In 1999, I actually got to play because they decided to use an extra player, but I've never before qualified for automatic selection.

Needless to say, I'm thrilled. Its been hard to wipe the grin off my face for a couple of days. The Australian championships are in Mandurah, Western Australia in November this year. I can't wait.

Anyone wanna game for fifty?

Tuesday, March 29, 2005

Expectations on test speed

Unit testing

Tests single classes only.

  • Hundreds - thousands of tests should be able to run in the order of seconds to get very fast feedback on changes.
  • The speed is facilitated by using mocks to provide expected behaviour from other services nearby.
  • The use of mocks is facilitated by dependency injection techniques.

A side effect of this technique is that design has very low coupling. A code base that achieves this is likely to have many interfaces. Developers are often confident to refactor code or otherwise make changes quickly given that they have a large safety net. They will usually run unit tests many times per day on their development machines.

Integration Testing

Test groups of classes or components working together.

  • Hundreds of tests should be able to run in the order of minutes

These tests are usually at least run as part of the continuous build. Sometimes developers will also run them on their development machines based on their judgment about whether their work may impact groups of components working together.

System Testing

Test the system as a whole.

  • Tens of tests should run in tens of minutes or hours.

These tests are run on a regular basis. Ideally this will be part of the continuous build, but sometimes this becomes difficult (tests might take too long, or full environments may not be available all the time). If this is the case, they may be run overnight, or on weekends. System tests can take the form of HttpUnit or JWebUnit tests for web applications, or testing technologies that interface with other protocols. Applications with thorough system testing should experience low regression figures.

Friday, March 25, 2005

Life getting back to normal

Its been very quiet on this blog in recent months. I haven't dissapeared, but I did go and get married recently. The amount of effort involved was huge, but very much worth it. Thanks to all my friends for their help and support. Life is getting back to normal now.