2016 Kernel miniconf CFP

Why yes, it’s another long URL thanks to Google Docs:

Got a kernel topic you want to talk about? Got a kernel topic you want to start discussion on? Or a Q&A? Submit NOW! We’re going for part sessions, part unconference.

Questions? Contact me at 2014: Perth!

perth from kings parkIt’s been over ten years since the last in Perth but don’t worry, this upcoming January, we’re back in Perth for 2014. I’m really looking forward to getting back to Perth as I’ve only been there very, very briefly since 2003 and would love to explore the city a bit more.

Perth 2003 was the first I ever went to and I’ve been to every single one since (2004 in Adelaide, 2005 in Canberra, 2006 in Dunedin, 2007 in Sydney, 2008 in Melbourne, 2009 in Hobart, 2010 in Wellington, 2011 in Brisbane, 2012 in Ballarat and 2013 in Canberra – each one of them absolutely brilliant). A few things were different back then, for example, there was a terminal room with actual terminals where you could use cutting edge technologies such as telnet.

As a surprise to many, 2003 was the first year that Linus came to an LCA, arriving in the fashion of the time (a penguin suit).

I have many fond memories of LCA back in 2003 and with the list of speakers and miniconfs for this year mostly up already, it’s looking to be an excellent conference in January 2014 – just a few short months away.

Early bird registrations finish soon so head on over to to register now. 2011 CFP Open!

Head on over to and check it out!

You’ve got until August 7th to put in a paper, miniconf, poster or tutorial.

Things I’d like to see come from my kinda world:

  • topics on running large numbers of machines
  • latest in large scale web infrastructure
  • latest going on in the IO space: (SSD, filesystems, SSD as L2 cache)
  • Applications of above technologies and what it means for application performance
  • Scalable and massive tcp daemons (i.e. Eric should come talk on scalestack)
  • exploration of pain points in current technologies and discussion on ways to fix them (from people really in the know)
  • A Hydra tutorial: starting with stock Ubuntu lucid, and exiting the tutorial with some analysis running on my project.
  • Something that completely takes me off guard and is awesome.

I’d love to see people from the MySQL, Drizzle and Rackspace worlds have a decent presence. For those who’ve never heard of/been to an LCA before: we reject at least another whole conference worth of papers. It’s the conference on the calendar that everything else moves around.

Save the Devil: it’s what the cool kids are doing

At and now Dreamhost are doing a $50 discount and $50 to the devil deal.

Money going to real research – on an infectious cancer that is fatal to the Devils.

We managed to raise an amazing amount of money at for the Devils (expect a press release with the final tallies real-soon-now, as the last of the pledges is trickling into our bank account).

So save a cartoon character and if you haven’t already, head to to find out what you can do.

Things not to post on Planet LA

Publication of the ACMA blacklist could possibly be a crime.

We encourage our members to speak up and have the debate on censorship. We believe the governments policy to break the internet is broken.

We have to act responsibly however, and based on our legal advice we cannot syndicate the feeds of people engaged in such activies.

Please mail to get your feed removed if that is how you want to use your blog.

Thank you,

Stewart Smith
President, Linux Australia 2009 wrap-up (incl Open Source Databases Mini-conf): Day 0-1

It’s no secret that I love My first was 2003, in Perth and I’ve been to every one since (there are at least two people who’ve been to every single one, including CALU as it was called in 1999).

I’ve been on the board of Linux Australia for some insane proportion of the years since then (joining in 2003). Linux Australia is the not-for-profit community organisation that puts on It’s all volunteers and amazingly enough we have more than one group of people wanting to put on each year!

This year, we Marched South to Hobart.

Here I detail what I saw, what I wish I saw and whatever else comes to mind.

Sunday – Before the conference

Ran into Bdale while checking in. Short flight down. A million and one people on the plane and on the ground that I knew. It must be

Seeing way too many awesome people I know, checking into accommodation (oh my, what a hill), registering for conf, beer and then off to a “ghosts of conferences past” dinner – where a few people who had organised previous’s were hastily gathered together to chat to part of the 2010 team.

Monday – Open Source Databases Miniconf Day 1

Oh, that’s right – I’m running the OSDB Miniconf :)

First up, Monty Taylor spoke on “NDB/Bindings – Use the MySQL Cluster Direct API from languages you actually like for fun and profit”. Possibly taking the prize for the longest talk title of the conference. The NDB API is not SQL, it’s what the MySQL server (and one day, when Monty and I get around to it, Drizzle) translates SQL into for NDB. That being said, you can (pretty much always) write NDB API code that dramatically outperforms equivilent SQL (for a variety of reasons). Monty maintains the NDB/Bindings project that lets you use languages other than C++ for the NDB API.

At the same time as Monty was speaking, I wish I’d been able to fork() and go and see “Is Parallel Programming Hard, And, If So, Why?by Paul McKenney and Michael Still talking about MythNetTV (pull RSS feeds of video in as MythTV programs).

After morning tea, we were meant to have “InnoDB scaling up and performance” by Bruce Huang, but he was a no-show. Hint: if you don’t want bad things to be said about you by conference organisers, either show up or let them know you’re not able to make it.

Instead, we led a crazy Q&A type session around the room which was a whole lot of fun. Really a “ask the experts” meets running up-and-down stairs with a microphone.

Next up, Arjen Lentz who runs Open Query spoke on “OurDelta: Builds for MySQL”. The best way to describe OurDelta is a “distribution of MySQL”. It’s the MySQL server plus a bunch of patches provided by various people that haven’t yet made it into the main source tree (for any number of reasons).

At the same time (if you’ve never been to, you’ll find that you often want to be in at least 3 places at once) I would have really liked to see “MythTV Internals by Nigel Pearson” (I co-wrote Practical MythTV with Michael Still, which is having a “second edition” in wiki form over at as well as the panel on geek parenting as this may be something I’m one day faced with.

Up next: Russell Coker filled in for Kaigai (same talk, different speaker) to talk on The Security-Enhanced PostgreSQL – “System-wide consistency” in access controls. I found this quite interesting and different approaches to database security are worth looking at. Modern applications (read: web applications) don’t map their uses to database users at all. There are usually two users on the database server: the super user and the user that the app uses. It would be nice to have a good solution for those who want it.

Again, If I had the ability to be in two places at once, I would have also seen “How I Learned To Stop Worrying And Love ACPI” by the extremely handsome Matthew Garrett.

Monty Widenius (blog here – and yes, we have two Monty’s now… which does cause confusion) talking about the Maria storage engine. Maria is based on MyISAM, but adding crash safety and transactions (among other things).

Again, if I was able to be in several places at once I would have also seen Rusty‘s “Large CPUmasks”, Nathan Scott talking about “System level performance management with PCP” and Bdale’s “Collaborating Successfully with large corporations”.

An awesome start to the conference.

iTWire – Linux Australia election results are in – but is there a mandate?

iTWire – Linux Australia election results are in – but is there a mandate?

I mostly disagree with the conclusions drawn by David here.

On voter turnout, this year we were consistent with previous years (see previous graphs, and reproduced below):

We’ve even been on a (slow) increase. How do we increase this number though?

There are also other factors as to why people didn’t vote:

  • Happy with any combination of candidates (this was voiced at the AGM)
  • Not aware of voting timeframe, or in the middle of LCA prep/travel (how do we deal with this? Longer voting time? automated pestering of people via email from the membership system?)
  • No/limited choice in executive positions

If we look at the people standing for positions over the years (reproducing this graph from previous post):

It’s quite possible to assume that many people are happy with who’s standing for executive, and not too worried about OCM positions.

There is also no way to express “I’m happy with any combination of candidates” in the election system. The query for “number of members voted” (see the source. incidently, i wish launchpad let you link to line numbers):

$result = $dbh->query("select count(distinct member_id) as count from election_vote where candidate_id in (select id from election_candidate where election_position_id in (select id from election_position where election_id=".$election['id']."))");

So if you didn’t vote for anybody, you’re not counted in having voted. Patches are welcome to fix this :)

If it’s uncontested, then many people just don’t put a 1 in the box. New MemberDB releases (what we’re likely to use for next year) have a drop-down menu of numbers, which may result in less of this. It could also be a few votes against the candidate – in the absence of another choice (or the voter choosing to stand themselves). In any of these scenarios though, it’s not a significant number of votes – all candidates got an overwhelming majority of votes.

I also feel that somebody joining the council who is *not* a new face is a very big plus. We want (and indeed need) people who understand the organisation.

I’d also like to contrast our 66 voting members to the 2006 ACS AGM with only 26 voting members present and the 2007 ACS AGM having 40 voting members present. I was unable to find out details on how many people voted for board members though…

So I don’t think Linux Australia is in a bad place with having 66 people voting… I just think it could be better.

Do we have a mandate? Well… it’s mind-numbingly simple to stand for council – get one other person to nominate you and nominate yourself. The fact that nobody has is a sign it itself (and we do have active members and the broader community watching us).

Linux Australia on Wikipedia needs references added

The Linux Australia entry in Wikipedia, has a “needs references” banner on it. It’d be neat if someone fixed this up (it’s pretty easy to link to the appropriate sources on

In fact… I’ll buy the person a beer (or other beverage of their choice).

History of voting in Linux Australia Council elections

Over the past few years (since we’ve been using MemberDB) total number of members voting has looked like this:

Year:Members voted - 2005:57, 2006:110, 2007:63, 2008:65

Year:Members voted - 2005:57, 2006:110, 2007:63, 2008:65

So what does this tell us? Err… Nothing much. Except that we should probably expect about 60-70 votes for this election.

If we look at how many candidates we’ve had for each position, it looks a little bit more interesting:

In this chart I’m using numbers of *candidates*, not nominees. I’m also using numbers that are after we’ve computed the results and already redistributed preferences for existing winners. e.g. if I was standing for President and Vice President and won President, I appear here as a candidate for President and not for VP.

What can we tell here? We don’t have too much choice for P, VP, S or T…  In fact, Google Spreadsheet is just drawing it all over each other so you can’t really tell.

2005 was the last year there was a choice in President. It was also the last year there was a choice for Secretary.

There was a choice of Treasurer in 2006.

There has been a choice of Vice President in 2005, 2007 and 2008.

There has always been a choice for OCM.

It’d be great if we set a record this year for how many people voted (which for those counting means we need 111 votes).

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.

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.

More training needed with gradings coming…

Made it to the Honbu today for the first time in a while. I really need to train more – have a Judo competition on Monday night (would be Saturday, but I have the LA face2face, so I’m going to the alternate).

The good thing about training on Thursday evenings is that there tends to be a lot of people on the mat – often more than at any other time. A lot of black belts show up too… some I don’t see too often (but that could be due to me generally not training as much this year).

At the end of November is gradings… so better be prepared. That, and I need to build up some fitness again.

Didn’t stay for the Sword class though, was quite knackered after the 1.5hrs of jiujitsu (well… more Judo style today). The class was good too – Kancho was on the mat and doing things for a while.

I feel I fixed some problems with my 5th and 6th hip throws today (or at least learnt where I tend to go wrong). My 5th leg still isn’t the best… but practice, practice. I think it’s more a consistency issue – sometimes I can just hammer in for the hip throws and execute them beautifully (at least for my grade…. nothing like a 3rd, 4th, 6th or 10th Dan or so throwing you around for a bit to see how far you can still go).

I totally vote we open a Melbourne MySQL office right near there (which is actually further from home for me.. which would be rather annoying, but means I could train every day :)

Doctor != Hacker

Thoughts on manadotry registration of IT professionals.

Having the argument for this and comparing to “we have it for doctors” doesn’t fly. If you start playing doctor on random people, you can kill them.

Writing code and whacking it up on the net can in no way directly cause harm to someone the same way as DIY heart surgery could.

Anybody who goes and grabs random code out in the wild and runs a system on it on which human life depends gets everything they deserve. They’re the bad guys here – not those writing and sharing code.

So how do you make sure this person constructing a system on which life depends is competant? The same way you do for everybody you hire – check their resume, talk to them, have appropriate checks and balances in place.

Just because somebody has a sheet of paper means nothing about their actual ability. Remember those crappy teachers from your school years? They all had teaching degrees. Rember how the university student tutor you had was a lot better than the teacher? Hrrm… that teaching degree obviously means a lot when it comes to ability then.
I certainly wouldn’t hire at least 80% of my past fellew undergrad students – even though they have the same sheet of paper as me.

Please, everybody go read The Daily WTF and see how much even experts with certifications can get it so, so, so wrong.

Beware Digital Rights Traps

I’ve added the “Beware Digital Rights Traps” buttons to both my blog page and the main page of

I’ve also taken a photo I took ages ago and used it as a header image thingy. doesn’t look to bad on the front page… not 100% happy with the wordpress theme integration atm.