Hero of the day

is Jeb Miller. Not only does he manage to QA and break cluster (of course the whole point of QA) – this morning he brought in coffee. Marvellous. Brilliant. oh, and awesome.

$10 bet r.e. 5.1 GA timing

I have a $10 bet (AUD or USD… whichever is worth more at the time) with Jeffrey r.e. a 5.1 GA release in $TIMEFRAME. He’s betting that it will be and I want to be proved wrong :)

(of course… who’s definition of a GA release we use hasn’t been mentioned… which will lead to a good laugh. :)

New Qantas safety scare – theage.com.au

New Qantas safety scare – National – theage.com.au

This was my flight to LAX the other day. fun.

in Orlando

Here for the MySQL All Company Meeting. Arrived okay… albeit late (got to stop in two cities I didn’t intend to). Had breakfast with Monty, Monty and Giuseppe and a few cups of coffee later… it sorta feels like morning.

Running for President (of Linux Australia)

The other day, I accepted the nomination for President of Linux Australia in the upcoming election. The following, is the spiel I’ve put up to help make my case for electing me:

Hi, I’m Stewart Smith and I want to be the president of Linux Australia in 2008.

I have previously served on the Linux Australia committee both as Vice President and as an Ordinary Committee Member.

This year, I’m running on the following platform:
– Keep the organisation solvent (if we loose money, we go broke and don’t have an organisation any more… which likely means no LCA, which would be a disaster).
– Ensure an awesome LCA is organised for 2009
– Improve processes, especially in finances and book keeping
– Use LA’s resources for more things directly benefiting members (including investigating member services, talking to government to ensure Australian law is friendly to the needs of our members, supporting LUGs)
– Be inclusive and in touch with members, and what’s holding back other people becoming members.

In addition to being on the LA committee previously, I’ve also been on the LUV committee, am currently helping with LCA08 things and was rather active back in the (not too distant) past at my university. I’ve co-authored two books related to free software (Practical MythTV and the MySQL 5.1 Cluster Certification Study Guide), currently work for MySQL as a Senior Software Engineer on MySQL Cluster and live in Melbourne.

I’m also the author of this membership and voting software, MemberDB – and no, it’s not rigged but yes, it is free software.

Coopers at Qantas Club International lounge in Melbourne

This is great news – a beer that everybody knows is vegan is right there (see, even photographic proof). Now if only it wasn’t 10:50am….

Coopers at Qantas Club Intl in Melbourne

A few weeks with new stereo system

Just before Christmas, I bought myself a new stereo. This is something I’ve been thinking about for a while and one of those things that takes some care in looking at because it’s a non-trivial amount of cash.

I’ve ended up with B&W 683 speakers, an Arcam amplifier and CD player (Tivoli HiFi had a special on saving about $800+ on the amp and CD when bought with speakers).

The basic summary is that this sounds awesome. Tool especially sounds awesome. The only real downside is that i’m starting to get really used to this as the standard of audio I listen to.

Even better, no complaints from neighbours (yet).

MemberDB speed improvements

So I finally installed the xdebug PHP extension and started doing some performance analysis of MemberDB using xdebug and kcachegrind. The upshot of which is a number of commits to the bzr tree that dramatically improve performance in several key areas. The answer? Caching.

I’m not even talking using memcached or caching things in database tables or anything like that – just about everything is still the same dynamically produced content as before, but I’m now caching some simple things avoiding many round-trips to the database while executing a script.

There were a few things that were taking a fair bit of execution time:

  1. The generation of the menu. In MemberDB, there’s a menu on the left. There’s also a powerful (read: non-trivial) permissions system allowing relatively fine grained granting of permissions. So, we need to check that the user has permission to go to the page before showing the page in the menu.
    Previously, for each item in the menu, we’d do a lookup to the database – checking if they have the permission or they are an admin. This ended up taking a bit of time – up to 30% of the time for the front page was taken up just generating the menu!
    So, now I cache the set of permissions for the user. One function to fetch it from the DB into a structure, another function to check the permissions of the user in that struct.
    While testing this, I actually used memcached to cache the menu to see how much of an improvement I could get… I’m about 69/70ths of the speed of using memcached with a purely PHP implementation caching the permissions info.
  2. Getting the information about a member is done in a variety of places. On some pages, you want information on the current logged in user (or just need to find their member ID). These are now cached for the duration of the script. Saved quite a few DB round trips
  3. When viewing an election (not the results, just the normal “view election” page that lists candidates), we need to get the membership information on a number of users (okay… so technically I should rewrite some of the queries to use joins in the DB… but this was easier). I now have a (limited) cache of membership info. So now, when a member has nominated multiple people, we only pull the member info out of the database once.
  4. Rewrite the “current_members” view. The old one was not as efficient as it could be. While the new one has slightly different semantics (can have duplicate rows, it turns out the use of DISTINCT was adding a bit of execution time, which for a bunch of queries is not needed) it’s significantly quicker.

I used the faithful Apache Bench (ab) to do benchmarks against the modified PHP code. I think the biggest improvement was the view election page which went from about 6seconds/page to 0.2seconds/page.

Enabling bluetooth on a hp laptop (6710b IIRC)

A friend of mine has a HP 6710b (if i remember the model name correctly). Bluetooth wasn’t working. Nada… not even a USB device showing up in lsusb for the inbuilt bluetooth.

It turns out, if you disable the bluetooth radio from the Windows thingy, it does something you cannot undo from Linux (at least with Ubuntu Gutsy) .

Except… after hours of fucking around, we reset the BIOS to default settings and this made it work.

Yep, no option in the BIOS setup to do this (there’s an Enable/Disable switch… but that doesn’t fix this problem). But a reset does it.

I really hope this saves somebody else the hours of “fun” we had.

Baked Bread

Bread looks like this:

dsc_9889_small.JPG

now only to find a way to have the sesame seeds stay on…

Baking Bread

Sometime in what we laughingly call the past (okay… the last week) I used a (slight) modification to this Basic white bread recipe and baked bread. Today, I’m doing it again. Why on earth I’m baking in hot weather is another question…. but anyway. The only real change to the recipe was using vegetable oil (just normal cheap cooking oil) instead of butter (i.e. to make it Vegan).

Last time I made the bread it was quite good – the crust was totally awesome. Hopefully will be this time too. Maybe I’ll even take pictures :)