Category Archives: Work


I moved teams at work; I’m no longer writing connectivity oriented UI’s for Moblin. I’ve joined the fledgling Moblin SDK team and have a goal of making Moblin the best gosh darn development experience out there!

Which I realise is *quite* the lofty goal, so let’s reel it in a bit. I’m making the rest of this year “Make Moblin Development Not Suck” time.

Right now we have a pretty poor offering for third party developers; as with many such projects we’ve been hugely user-oriented up until now.
Our little team is working on making this right, we’ll hopefully have some useful stuff to show soon.

For myself, I’m trying to address the Moblin Foundations and make them more approachable. We have some sweet libraries in there but they are largely a black box to developers due to low Gtk-doc annotation coverage outside of the core UI toolkits (Nbtk & Clutter).

Over the coming weeks I aim to address this; I’m looking through the code and trying to understand the APIs enough to get slightly better than skeletal Gtk-doc annotations added to our platform.

As a bonus prize with Gtk-doc annotations come almost free introspection metadata!

So, you’ve read this far and for that I thank you, as a reward here are the two lessons I’ve learnt so far this week:

  1. Makefiles care about tabs, you can’t align with spaces
  2. Building GObject-Introspection metadata outside of the standard, system, prefix. Tweak your environment!
    GI_TYPELIB_PATH is where the gobject-introspection module looks for typelib files (perhaps add /usr/local/lib/girepository-1.0) and the giscanner looks in XDG_DATA_DIRS for gir-1.0 directories chock full of .gir files (maybe add /usr/local/share)

Self deprecating

Two weeks after it was given my talk on writing Connectivity UIs for ConnMan is already out of date. Crumbs!
There have been over half a dozen ConnMan releases in the time since!

Because of this I’ve decided that I’m going to keep a set of notes against ConnMan git for budding UI developers.

These notes will sit on this here website and be updated each time there’s a change in the ConnMan interfaces.
Once the interfaces stabilise for ConnMan 1.0 I’ll write the information up nicely and post on the ConnMan website or some such.

See the first draft here: Writing connectivity UIs for ConnMan.

On Universitites and Placement Years

I’ve been meaning to type these words for quite some time. I created a draft of this post in November 07, which was some significant time after doing an interview (for one of my sisters’ psychology assignments) about placement years and how mine affected my life.

I’ve finally gotten around to writing these thoughts down since I’m currently involved with interviewing candidates for an industrial placement at work.

Plenty of people choose not to take industrial placements while studying at university; I’m not aware of precise figures but I think easily less than 50% of computing students at my university took a placement year – most of whom forsook the placement out of choice.

I think that is a mistake.

An industrial placement might not be the greatest experience, it may mean you are older than some of your peers when interviewing for jobs (trust me, that means less than you might think) and it may mean ‘delaying’ graduation and ridding yourself of the shackles of academia, etc.

But what it does give you could be extremely valuable!

The industrial placement I ended up with wasn’t ideal for me. It was in an environment I could never see myself working in, using technologies I couldn’t see myself working with once graduated, and yet still the experiences I gained there where some of the most valuable during my entire undergraduate career.

There are the obvious benefits of an industrial placement:

  • Money, money, money, money. While taking an industrial placement you’ll earn something like a real world salary. You’ll be able to buy yourselve things, save for your final year, etc.
  • Real-world experience. This counts for a lot! Less so in graduate/junior positions in the computing industry but even still.
    For starters being able to relate to events outside of your academic career is extremely useful in interviews, there’s also the experiences of developing for real world users – and the shocking realisation that many programming jobs are not all code.

And yet the most important benefit of my placement year was not one which had ever been mentioned to me before, which is the reason why I’m writing this now. That benefit – breathing room!

Room to breath!

While I was working in industry for a year my mind wasn’t constantly busy; with no assignments to think about I was left with more time for personal projects (learning new programming languages and technologies) and more time with an unladen mind to contemplate my future.

The future is now, the future is tomorrow

My industrial placement confirmed my initial suspicions; I didn’t want to work in that environment and nor did I want to work with those specific technologies. I also learnt more about what directions I did want to take with my career, what sort of role I wanted upon graduation and directions I could see my career taking.

I wouldn’t have been able to figure out these things had I not taken the industrial placement; a combination of first hand experiences and free brain time resulted in me changing degree specification and graduating much happier landing a decent job straight out of University.


I just want to finish this post by stating that while the technologies I used on my placement where possibly not ones I would have picked up otherwise, I still value the experiences and knowledge I gained from using them for a year.

It’s a topic for another post, but learning new languages, tool kits and paradigms might not be explicitly necessary for your day to day work; but certainly gives you an edge! A breadth of experience and knowledge that enables you to develop better code faster by adopting paradigms and techniques learnt while exploring these other technologies. That and it’s all kinds of fun!