Monthly Archives: November 2010

30 Days of Geek: 18 – Most cringe-worthy geek moment

Ooops, I’ve missed days 16 and 17. Meh.

Nothing in particular, but I do have a couple of counts I could make:

  • Various occasions in High School computing classes where I found myself correcting my teacher.
  • Any time when someone uses Comic Sans when they should know better.
  • Seeing Jethro’s selection of the word ‘cringeworthy’. (:D)
  • The Oracle Sales guy at LCA2008, giving the same speech about their RHEL support programme on no fewer than 3 occasions, all of which I happened to make it to. Hrnnngh.

I’m sure I could come up with more if pressed, but right now I’m not! See you at the next post!

30 Days of Geek: 15 – A geek experience that changed your life.

So the original topic for this was “Earliest geek experience”. I really couldn’t identify with that one, so I’m going to do something completely different. I’m sorry if this one’s a bit heavy, but it needs to be written.

I’d like to tell you about one of the worst times in my life. The year was 2006 — it was early January (early enough that I was still coming to terms with the fact that it was 2006…). The last term of school in 2005 was fantastic — I’d had one of my most successful periods academically, was successful in programming competitions, and I had a number of excellent friends who I shared many interests and experiences with. In the new year, that changed. I had a massive falling out with a very good friend, which caused me to question every aspect of the identity that I had built up over the past few years. I became unsure of personality traits, which I though were an important part of who I was, and which I thought were endearing to those around me. I questioned my interests in life. I questioned the validity of every relationship I had come to value over those late years of my schooling.

It is one of two times in my life that I had seriously felt suicidal. I guess this is one of the inevitable results of constantly questioning one’s identity. With each aspect of my personality that I felt needed to be changed to be worthwhile to people, I questioned the effort that would be needed to make that change. Thought after thought permeated my brain, and the weight of it all brought me to the conclusion that faced with the mounting “evidence” (in that state of mind, burden of proof is extremely low) that it probably wasn’t worthwhile to make such changes. At the end of it all, and after all of the changes that I would have to make, the person that I would have had to have been would have been unrecognisable to the person that I was then.

I still have no idea why I survived that week.

I made it through to the Sunday of that week, and was welcomed with open arms onto a flight to Sydney to attend that year’s National Computer Science School. It was during that week I properly discovered Python for the first time — it’s since become my favourite programming language. More so than that, it was a week of hanging around with geeks from all around Australia (and one from New Zealand), each of whom had different areas of interest and inclinations, and each had different skill sets. The tutors were smart uni students apparently studying interesting thing. The week gave me an insight in what it meant to be involved with IT and Computer Science. By the end of the week, I’d made heaps of friends (some of whom I still keep in contact with) who I shared interests and abilities with, and it was a fantastic revelation that there could be so many people around the country who I could just talk geek with. By the end of the week, things had resolved themselves back home — I’d forgiven and forgotten whatever it was that caused my friend and I to fall out, and I had a renewed drive to be awesome with my life.

I have no doubt, however, that I was saved by that week at NCSS. I’ve never had severe depression since, and I’ve been proud of my identity as a computer science-loving geek ever since.

Two years later I returned, this time as a tutor of the group that I had taken part in two years earlier — partly because I wanted to pay back a debt, and partly because I really really wanted to. Returning in 2008 led to me forming even more lasting friendships with people, not only tutors but students as well. I communicate with many of them every day, in one way or another. It’s where I first saw a Google office and decided that I really really wanted to become an intern there. Just afterwards I attended my first LCA in Melbourne, and have found, both there and in other geeky circles around the country, that my ties with NCSS are shared with geeks around the country — the line “I saw the girl on the hill with the telescope” is a wonderful calling card (if you ever hear James Curran lecture you’ll know what I mean by that).

So thanks to James, Tara and Michael (and everyone else from that week in 2006, you are too numerous to mention) — you have made something to be truly proud of… You may even have saved a life πŸ˜‰

30 Days of Geek: 14 – Favourite Computer Conference

Oh. You probably won’t be surprised to hear this one, but the answer is the Australasian Free and Open Source Software Conference. I’ve been attending since Melbourne 2008, and have since “been” to Hobart in 2009 and travelled to Wellington to attend in 2010.

LCA is a great conference because it gives people in the broader FOSS-using community in Australia (people like me) the opportunity to meet the people who put together the software that we used on a day-to-day basis. It turns out that they’re an entirely friendly bunch of people, who are all too willing to share their experience: in 2008, Andrew Tridgell spent 20 minutes one-on-one with me explaining how a particularly awesome piece of code he’d written worked.

In 2010 I ran one of the short single-day conference streams (known as “miniconfs”), on the topic of Open Programming Languages. This was a fantastic opportunity to give back to the LCA community, and help bring more of the topics that I was interested in to LCA — we had a fantastic lineup of presenters, and the day went awesomely. I’m glad to have the opportunity to do this again: I’m running the Open Programming miniconf at LCA2011 in Brisbane, and along with my friend Peter Lyle, will be running the Research and Student Innovation Miniconf. Both of them are shaping up to be excellent miniconfs.

So yes, LCA is in Brisbane this January, and I thoroughly recommend you get along if you can!

DSCF1923.JPG 2009 -- Day 5
LCA2010 Speakers Dinner
LCA2010 Open Day

30 Days of Geek: 12 – What area do you want to expand your skills into?

I can’t really think of much to say here, other than that I’d love to continue expanding my skills. As a soon-to-be Ph.D student, I’d love to expand my researching abilities (papers papers whoo!) — hopefully resulting in an excellent thesis topic, and potentially an excellent thesis too. As a coder, I want to learn more skills and techniques to help achieve my ends quicker. But really, I’m pretty happy with the direction my geekery is headed, and expanding out in those directions is going to continue to be useful.

30 Days of Geek: Days 10 & 11

So yesterday I was in the air, and unable to do day 10’s post. Luckily they make enough sense combined to combine into a single post.

Picture, screenshot and specifications of your primary computer.

Apologies for the blurry photo. I’ve shown this one because it contains both of my primary computers.

The desktop is a generic Athlon 64×2 of some specification, with some RAM and some hard discs in them, it also has an nVidia (HRRRRRNGH) graphics card of some description to drive my two monitors — I honestly don’t care much beyond that, as it serves its purpose. It runs Debian “testing”. The keyboard is a Microsoft Natural Keyboard 4000 — I first used one of those during my internship at Google. I liked them so much that I bought one the moment I got home, and I haven’t looked back πŸ™‚

The laptop is my general purpose on-the-road device. It’s a black MacBook from 2008, with an Intel Core Duo 2.4GHz in it. It also has RAM.

Favourite hacking environment – music, light, seating, etc

Turns out you’ve got all of the clues you need in there as well — the corner of my bedroom where my desk is serves as my primary hacking area. It’s softly-lit, and has plenty of working space when I can be bothered cleaning it up πŸ˜€

As for music, well, it really depends on my mood whilst hacking on something — sometimes it’s nothing at all, but other times it’s something from my extremely esoteric and varietous music collection.

Oh, and if I get bored/stuck on a problem, I can always look out the window!

A Through-The-Windows Vista

30 Days of Geek: 09 – What OS/distribution do you run?

I’m a user of UNIX-like operating systems of different persuasions. On my laptop I run Max OS X 10.6. I’m not hugely attached to the Mac platform, for example the vast majority of applications I run are Open Source, or sufficiently generic that I can find Linux-based alternatives at the drop of a hat.

At home, I run Debian GNU/Linux’s “Testing” distribution. I like Debian, firstly because of APT/Aptitude, which makes delivering updates reasonably easy. However, these tools are available in a great many distributions now. The reason I use Debian over, say, Ubuntu is that Debian’s quality control protocols ensure that updates work correctly enough of the time that updating packages on a daily basis is not usually a dangerous process.

The “Testing” distribution’s policy with respect to release-blocking bugs means that the distribution is stable enough for everyday non-critical use, and that updates are reasonably timely.

Bring on the Red Hat/Gentoo trolls!

30 Days of Geek: 07 – Preferred smartphone platform. And which do you use?



I like Android for a couple of reasons. The first is that it slots into the Google Apps ecosystem that I built much of my online life around prior to getting an Android phone — an excellent Gmail app for starters, but also my use of calendaring has improved significantly since getting my ADP1.

The second is that it’s Open Source. This means that (provided you have a suitable handset), it’s possible to obtain or write your own custom firmware which lets the phone do more than what its manufacturer intended. This, for me at least means running later versions of Android well past the support of the manufacturer.

30 Days of Geek: 06 – Primary geek fuel (snacks/drinks)

This is a delayed post which is likely to show up as I’m several kilometres above New Zealand. The next few posts may/may not be delayed.

Nothing particularly fixed as far as food is concerned. I’ll eat whatever I can find (that I’d actually like to eat). Drinks, however, are a different story.

Firstly, I’m a second-rate coffee snob. I’ll only drink arabica-type beans, usually as a caffe latte, however, if circumstances dictate, I’ll have a plunger coffee au lait. If I have coffee out, it’s only acceptable if it’s better than the typical coffee that I have at home. This means I don’t drink that much coffee out.

Preferred soft drinks include a rotation between coke and lemonade, which is what usually powers me through a day’s coding/writing.

30 Days of Geek: 05 – Quick nifty hacks you’re proud of.

As it turns out, probably about 90% of the coding that I do these days is in the form of nifty hacks. This is particularly because in research the impetus is not necessarily to have code that is reusable in a lot of situations, but rather to try out an idea quickly and then throw the code [1].

For example, just today, I needed a couple of images to put into my research poster for the conference I’m presenting at in a couple of days’ time. This involved drawing some rectangles over photos were faces had been detected by some other software. Basically, by having sufficient data in a format I had documented (in the form of other code) this was easy to extract. There are countless other things in my Honours thesis which looks somewhat like this — lots of experiments done with a tiny bit of Python code tying other big packages together.

The hacks that I’m proudest of are the ones which provide me with sufficient useful output that I can reuse their results, and not necessarily the code.

[1] Obviously, no code should ever be thrown away. When I say ‘throw away’, I mean something more along the lines of ‘ceasing maintainence’. This is because you can never know when a piece of code you’ve already written could be useful.