I've decided to retire this blog — I don't really see myself updating it any time soon, and haven't for over two years anyway. I intend to leave the content on-line for the forseeable future, but have converted it to a static site. As a result, dynamic things like search and comments aren't really going to work.

You can find me on Twitter or on Google+ if you like. Alternatively, I'm usually on IRC as LawnGnome on Freenode.

Thanks for reading!

30 Days of Me: Day 5

September 13th, 2010

A picture of somewhere you’ve been to

Unlike day 3, my problem here is too much choice, rather than not enough. My favourite travel photo, though, has to be this one from my trip to Tbilisi two years ago. (I haven’t even done any post-processing or retouching on it. Admittedly, that’s mostly out of laziness.)

Burned Out Building in Rustaveli

30 Days of Me: Day 4

September 12th, 2010

A habit that you wish you didn’t have

It’s linked to the final “fact” in day 1‘s post, really: I tend to over-analyse things. I re-read posts before I make them so I can tweak them until they’re perfect. Or, just as often, delete them because I don’t think anyone will really want to read what I have to say (also known as acute Redditor syndrome).

There are times — many of them, in fact — where I wish I could be more spontaneous. On the other hand, though, I look at people I know who are, and they often say or do things that they regret later.

So I guess it’s not all bad. Maybe it’s just a grass is greener kind of thing.

30 Days of Me: Part 3

September 11th, 2010

A picture of you and your friends

As I mentioned back in day 1, I don’t really like having my photo taken. I also have disparate circles of friends, which means that I’m going to be slighting a lot of people no matter what photo I pick. Plus, looking at the few group photos I have to hand, most involve one or more people I either don’t really know or don’t want to know any more.

So, instead of a real big group photo, here’s a small group photo of four of us (actually, five of us, but one’s off camera) playing nutball over the New Year’s break in Busselton.

That’s me on the left, losing my religion. Or at least my sobriety. And, for what it’s worth, I really don’t wear hats very often, in spite of the evidence so far.

30 Days of Me: Day 2

September 10th, 2010

The meaning behind your Blog name

OK, it’s not terribly well advertised on the site proper, but my blog is officially titled Five Minutes. This came about (rather prosaically) because I wanted to try to devote five minutes a day to it.

I started this blog on August 25, 2006. 1,476 days have elapsed since then. In that time, I’ve written 166 posts, for a net rate of 0.112 posts per day. Clearly something went wrong somewhere along the line.

30 Days of Me: Day 1

September 9th, 2010

I’ve been really awful about blogging over the last year or two. Mostly, I blame Twitter — it’s easy to just toss random thoughts out there and get instant gratification. Still, I really need to do some more writing that’s not limited to 140 characters or less (I mean, I have a Tropfest script to write, among other things), so I’m going to shamelessly steal have a go at the 30 days of me challenge to try restarting that part of my brain. At this stage, I’ll try to follow the same schedule as fellow PHP acolyte and all-round nice guy Jethro Carr, but we’ll see how that pans out in practice.

Planet Linux Australia readers, I can only apologise in advance. You are, of course, welcome to set up some sort of filter in your reading software — I’ll try to remember to include 30 Days of Me in the title each day. Or drop me off the Planet, if you’re an admin. (I mean, I’d prefer you didn’t, but I’ll understand — get in touch if you’d prefer a limited feed. You guys know how to find me.)

Anyway, to day 1:

A recent picture of you and 15 interesting facts about yourself

Ouch. I’m not sure I’m interesting enough to come up with fifteen whole facts, but we’ll see how we go. Here’s a slightly non-recent photo of me — specifically, taken at the Groovin’ the Moo festival in May:

So, your facts.

  1. I once saw a friend of mine fall down a manhole in Ulaanbaatar. Right in front of me. It was utterly hilarious at the time, although the fact he turned out to have broken ribs from it (which we only found out about four weeks later after we’d returned to Perth) was less funny. Weirdly, I didn’t write about it in my journal at the time — it’s long since become the iconic moment of the trip.
  2. The best birthday I’ve had was this year: I went with five friends to the outdoor cinema at Kings Park, we had a simple picnic dinner, and we watched Moon, which is a great, great film. Beat the hell out of big parties, and I owe them all big time for metaphorically twisting my arm until I agreed to do something other than sit at home and mope. They’re good friends.
  3. I studied film at university, first as a minor, then as a second major, and then finally as a post-grad. This came about while I was studying computer science; I needed to choose a minor or second major, and didn’t want to do something else technically inclined, since I already worked as a developer/sysadmin. Music composition was my first choice, but I didn’t feel confident putting an audition together, so I went for film as a second choice. Other options I considered included history and English literature.
  4. I’m a Swan Districts fan in the WAFL. I think supporting the Swans was always going to be imprinted on me; as a baby, we lived in Bassendean only a few blocks from their home ground, and Dad would take me down to the ground in a pram to watch the last quarter of games (once the gates were open and entry was free), and while I have no memory of this, it just felt natural to support them once I was old enough to pick a team, even though my mother and grandmother (Subiaco and South Fremantle fans, respectively) were horrified.
  5. When I was 10, I had the opportunity to get seven years worth of guitar lessons at and after school for virtually nothing. I said no. The 28 year old me would like to travel back 18 years and smack myself upside the head.
  6. I have a long and storied history of being carted off to hospital at linux.conf.au conferences held in even numbered years: in 2006 I had an allergic reaction to medication, and in 2008 I had a seizure on the streets of Melbourne. Somehow I survived 2010 unscathed.
  7. The best film I worked on at university (excluding side projects that weren’t assessed), in my opinion, was this. My lecturers disagreed.
  8. I’ve been on IRC a long, long time. More than fifteen years, in fact. That’s more than half my life.
  9. I’m asthmatic. It’s no more than an annoyance these days, but when I was a kid it was pretty bad, and involved quite a lot of hospital trips. One of those involved a near-death non-experience, which suggested to me that there didn’t seem to be any sort of afterlife, and more or less confirmed my budding atheism.
  10. Even though I was studying film, I never really intended to become involved in production or post-production at all. I only started doing production units after talking to my documentary theory lecturer at the tavern after our last class — he was the course co-ordinator as well and talked me into trying the first real production unit the following semester as a way of dipping my toe into the water. He regretted it years later when he was my supervisor for a somewhat ill-fated documentary project.
  11. I play cricket as a left arm wrist spinner. I’m not very good. I don’t really care about that, mostly because it’s too much fun to stop.
  12. I firmly believe that Paranoid Android is the best Radiohead album, but that How to Disappear Completely is their best song. While working on the aforementioned documentary project, I basically listened to it on repeat while working on the write-up, and ended up using it as the title for said write-up — the lyric I’m not here / this isn’t happening spoke very clearly to me at the time!
  13. I hate having my photograph taken, which is why the above photo is relatively non-recent. This flows on into other fields — I don’t enjoy acting, either, although as a film student or no-budget guerrilla film-maker you don’t really have much choice in the matter sometimes.
  14. I still think my final computer science project was pretty cool. It was basically a client-server plant simulation system using L-systems and healthy dollops of Python. Unfortunately, it never really got finished even to a mildly releasable state — the intention was that it would lead into an honours project the following year (complete with an exchange semester in Sweden), but the funding fell through, and it got left pretty much where it was at the end of my final semester as an under-grad.
  15. I’m a compulsive re-reader. Any time I’m going to post or send something, I tend to re-read it several times to make sure I’ve gotten it right. (Yes, this blog included.) This is sometimes a good thing, but I worry that it saps the spontaneity out of my writing.

Bizarre life triangle

June 26th, 2010

(This post was written on Thursday afternoon while flying over some barren-looking bit of far western New South Wales. Evidently recycled air stimulates my blogging neurons.)

Once again, it’s conference time. This time, I find myself winging my way to Sydney for a rare winter conference — specifically, the first edition of Pycon AU. As usual, I’m not presenting, but merely attending, although I hope (with the co-operation of the papers committee) to finally fix that at next year’s LCA. (Of course, if Silvia talks about HTML5 video, I’ll probably get knocked back!)

It’s been a busy month. Few months, really. I don’t tend to talk about my actual day jobs much on my blog, but I might as well mention a project I worked on earlier in the year — a prototype system for visualising the family trees of wheat strains, which is quite nifty if you like HTML5 canvas based goodies, although it’s far from a complete system. (If you work in agricultural or biological research, have a bit of spare budget lying around, and would like to see it become a complete pedigree traversal and analysis system, get in touch. We’d love to hear from you! Yes, this will be open source; in fact, it would be already if I’d had some spare time at work to sort that out.) Massive props to Nicolas Garcia Belmonte and his Javascript InfoVis Toolkit, which made the tree handling easy. It’s fair to say that the initial code that I wrote before deciding to use JIT was… ugly.

The project I wrapped up a couple of weeks ago was also rather interesting, and will be open source as well, but sadly I can’t yet talk about it. I’ll try to remember to blog about it when I can.

On a personal level, things have also been a little hectic. As per previous years, a group of my friends and I traipsed down to Albany for the Foundation Day long weekend, which was typically filled with wine and laughter, and I spent last Saturday taking part in the 15/15 Film Festival, which gives its participants an object and a quote (this year, a newspaper and "there is beauty in randomness", respectively) to put in a film and asks them to make a <15 minute film in 15 hours. We had an interesting time on that one, partly thanks to the loss of half of our raw footage due to technical issues (OK, NTFS not handling a dirty shutdown very gracefully, if we’re going to point fingers, and I am), which resulted in a very quick redefinition of the film in the editing process. I’ve yet to see the final cut (we were so pressed for time that we had to submit it without actually viewing it start to finish), and I don’t think the competition rules will allow us to put it on Youtube until the judging is complete, but it was a great experience and it doesn’t sound like the end product was that bad.

Admittedly, it didn’t sound that great, either.

All in all, I’m looking forward to a couple of days off. The conference proper is on Saturday and Sunday, so I’ve got tomorrow completely off, along with today and Monday as travel days. At this stage, the plan is pretty much sleep, broken up with the odd social engagement: with any luck, I’ll be having dinner with Noogz tonight, which is always fun, and will be off to the SLUG meeting tomorrow night — having never attended a proper LUG meeting, I’m looking forward to it! (Yes, this means I’ve lived in the city of PLUG for over fifteen years without ever actually going to a meeting.)

You gits

April 28th, 2010

I’ve been looking at GitHub more and more of late. Initially, it was just because lots of people were using it, but since I’ve been using Git on my own server for my own projects for a while anyway, it started making sense to upload some bits and pieces to it to save me worrying quite so much about trivial things like backups. Plus, GitHub seems like a pretty good home for those random bits of code that you tend to churn out from time to time as a developer.

So, I’ve spent the last couple of days pushing a few things up. It’s not going to completely replace my need to have some Git repositories on my own server (there are things that aren’t open source or aren’t for public consumption, like my resume — although making that open source could be entertaining), but it’s definitely handy for other things.

Obviously, my user page is going to cover the full list of things at any given time, but the projects I’ve uploaded so far include:

  • CineJS — the Javascript video processing library originally introduced at LCA 2010 and in an earlier blog post. There are a couple of releases probably coming for this in the next few months: an interim release to work around what looks like a bug in Mobile Safari on the iPad, and a more featureful release which will hopefully have the first steps towards WebGL support. I’ll probably get rid of the Google Code site for CineJS in the near future, since there’s no point having two issue trackers.
  • Dubnium — long time readers will remember this as my Google Summer of Code project back in 2007, and it’s been neglected far too long. It is, in essence, a cross-platform GUI debugger for PHP code. It’s gotten a bit of love in the last few months and I really just need to spend a day or two cleaning it up for a release. Unfortunately, part of that process involves getting a Windows build environment set up, and that’s rather killed my motivation so far.
  • A couple of little Gopher related things: the source tree for wp-gopher, my Python-driven Gopher interface to WordPress (which you can see in action on this very blog) and a Gopher stream wrapper for PHP that I knocked up on my lunch break today just for the hell of it, which I’m currently imaginatively calling php-gopher. Let’s face it: these are obviously Important Projects.

So, yay GitHub, helping me procrastinate from doing actual development work in my spare time for two days now. (Yay may not be the right word.)

Electoral Disobedience

February 19th, 2010

(also known as Adam has just done something really, really dumb)

So our good friends in Tasmania have an election looming. Good for them! Democracy’s awesome.

What’s not so good for them is that free speech is also awesome, and that’s no longer available to them in the political arena courtesy of section 191 of their Electoral Act, which means that all political statements during the election campaign must be authorised. This requires a full name and address, and effectively kills anonymous discourse dead. Digital Tasmania are talking a bit more about this, if you’re interested, and there’s plenty happening to Twitter, too.

As a result, I have decided to authorise anything Tasmanians want to say on-line. I mean, I don’t really care about Tasmanian politics, so I don’t mind authorising everyone and everything.

So, if you want to say something political in Tasmania in the next few weeks but don’t want to post your full address on-line, use my magical automatic authorisation Web site and I’ll authorise whatever you have to say. Promise.

(Side note: whatever you post is trivially publicly accessible. Bear that in mind.)

CineJS

January 19th, 2010

Yesterday at LCA 2010 I did a lightning talk in the Open Programming Languages Miniconf about a Javascript library I’ve been working on for a while called CineJS. CineJS provides a simple way to apply real-time filters to HTML5 video (and images) with only a few lines of Javascript and ships with nine pre-written filters that match the basic filters you would get from a simple image processing program.

There’s a simple example that applies a greyscale filter to a 30 second clip from the classic 1964 film Santa Claus Conquers the Martians. Check out the source code to look at how the filters are constructed and applied, or look at the more complicated stack demo to see how filters can be combined and altered.

This is pretty alpha, but it should work on current versions of Firefox, Safari and Chrome. I’d love to see some more complicated filters, and if you e-mail them to me, I’ll be very happy to include them in future versions.

The current version is 0.1.1 (and comes minified), and you can also clone the git tree.

(Unmoderated) manual notes are bad, mmkay?

October 30th, 2009

I’ve had a couple of whinges on IRC lately about why I’m not thrilled with having user notes in their current form in the PHP manual; we get entirely too many questions in ##php from people who’ve copied code out of a note and are then annoyed when it turns out the code is wrong, broken, horrible, or all of the above.

I present this example from the DateTime::getTimestamp() manual page. It’ll be disappearing from the mirrors over the next few hours, because I’ve deleted it (and posted a much simpler note in its place), so here was its content, for posterity:

If you are using PHP < 5.3.0 you can use this function instead:

<?php
function DateTime_getTimestamp(&$dt) {
$dtz_original = $dt -> getTimezone();
$dtz_utc = new DateTimeZone("UTC");
$dt -> setTimezone($dtz_utc);
$year = intval($dt -> format("Y"));
$month = intval($dt -> format("n"));
$day = intval($dt -> format("j"));
$hour = intval($dt -> format("G"));
$minute = intval($dt -> format("i"));
$second = intval($dt -> format("s"));
$dt -> setTimezone($dtz_original);
return gmmktime($hour,$minute,$second,$month,$day,$year);
}
?>

It’s fair to say that’s an interesting approach. The normal way of doing it would be:

<?php $timestamp = $dt->format('U'); ?>

I don’t know what the answer is — moderation has its own problems to do with workload, as PEAR can attest — but a system that’s letting that go up as recommended practice (and stay up for a month) has to be looked at.