Work

Stuff about work

The importance of being happy

Last week I had the fortune of being at the JISC Developer Happiness Days, or Dev8D. I'd like to write a little about what went on there, and why events like it are important.

The format of the event is somewhat unconventional, and therefore quite hard to justify. A large number of developers, not necessarily with any previous affiliation, are brought together for 4 days to work on whatever they feel like. There's no real schedule, just a few pre-planned events which are constantly subject to change. No-one's obliged to take part in any of the sessions. And it's free, which means someone other than the developers' employers have to stump up a not unsubstantial amount of cash. And it's during the week, so their employers are still paying them.

The event is described as "4 days of 100% pure software developer heaven," and that's right on the money. There's unlimited tea, coffee, snacks, electricity and dodgy WiFi. There's everyone from gurus to newbies, and most people are both in one respect or another. Any developer in this environment is going to be happy, but to justify its expenditure the event has to provide more than just smiles.

The first argument in support of the event can be taken straight from The Simpsons. There's an episode where Homer gets promoted to an executive position after growing hair with a baldness cure, and he tells Mr. Burns that there's not enough tartar sauce in the cafeterias at lunch time. After more explanation, Mr. Burns realises that a "happy worker is a busy worker," and by the gods he's right. While I was at Dev8D I achieved more in a day than I sometimes achieve in a week in my office (where I'm the only full time developer). We learned programming languages, we built applications, we designed algorithms, we gave talks, and all for fun! You can see that happiness can be an end in itself, because happiness provides motivation.

Another clear justification is looking at what he developer community produced during just 4 days. Everyone was encouraged to documents their doings on the wiki, and the list is as long as the printout of MPs expenses receipts that was produced on the Friday. A few developers including myself produced a set of web widgets to integrate with VLEs that I'll describe more in another post. People found new uses for existing public APIs. The Arduino workshops produced a storm of ideas for new electronic devices.

Finally, one of the most powerful outcomes from Dev8D is the community it builds. Bringing together like minded people in a situation where they aren't under pressure to see talks and report back to their bosses, but instead have the chance to meet each other and find out what makes each other tick promotes some of the strongest professional and social connections you're likely to find. The whole point of Dev8D is to bring the "chat in the pub" part of the conference (which, in all honesty, is where a lot of the best ideas and connections are made) to the fore, and it truly succeeds.

Here's to Dev8D 2011!

The line of code that could

--- a/theme/styles.php
+++ b/theme/styles.php

@@ -116,7 +116,7 @@ $files = array();
 // here can be overridden by theme CSS.
 if ($pluginsheets) {
     foreach ($THEME->pluginsheets as $plugintype) {
-        $files += get_sheets_for_plugin_type($plugintype);
+        $files = array_merge($files, get_sheets_for_plugin_type($plugintype));
     }
 }

That's the one-line patch I submitted to the Moodle tracker last week. It fixes a bug that was preventing plugins in the upcoming Moodle 2 from being able to include their own stylesheets.

Having been on holiday for a few days, I came back in to work today to find that the patch had been accepted and committed to the core Moodle CVS. This is a first for me, so rather chuffed with myself, I tweeted about it.
This was picked up upon by Steve Lee from OSS Watch who provide advice on the use of Open Source in education. He decided that it provided a good enough example of the benefits of the open development model to be worthy of a post in the OSS Watch blog. All because of one little line of code!

To pick up on some of they key points from Steve's post, the Open Source model really does prove advantageous when developing software. I've been working to update our moodle plugins to use the Moodle 2.0 APIs over the last few weeks, when I hit this bug. The open nature of the code not only helped me find and fix the bug quickly (Tim Hunt, who maintains this code, was on holiday), but being able to submit the patch for inclusion in Moodle's CVS repository makes it a lot easier for me to maintain the code at my end, rather than having to re-apply the fix every time I pull updates from moodle.org.
The opportunity to interact with the Moodle community is also invaluable, as it has allowed me to discuss various methods of solving the problems I've come across, giving me the knowledge to help others with similar problems. I've also contributed to discussions on future Moodle developments, such as the formation of the User Interface guidelines. When I studied HCI at university I thought it was a pain, but now I'm in the "real world" it turns out I can put my knowledge to good use!

This is also a prime example of what Jono Bacon posted recently about validation, so thanks to Steve, Tim and Tony for the encouragement!.

Of Microsoft, and... Open Source??

2 Surprise announcements in as many days. First off, Microsoft contributes code to the Linux kernel. Secondly, they contribute code to Moodle (which I happen to develop at work). All under the GPL. What is this, bizarro world?

Now these raise some interesting discussion points. Microsoft has long harped on about how Linux contains code that violates its patents, without ever suggesting which code this might refer to. The response from the open source community was pretty much "put up or shut up," but nonetheless enough FUD was generated to prompt Novell into striking a no-sue deal with MS.
However, Microsoft's now a contributor to the software they previously claimed is in violation of their intellectual property. This could be enough to extinguish the FUD fires they've been building. If Microsoft are so anti-Linux, why would they happily be a part of the project? A surprising change of heart, but by no means an unwelcome one.

Secondly, it'll be interesting to see how much Microsoft embraces the open source development model. Will they just throw the code out and say "Look! GPL! Aren't we great!" while only distributing code created in-house, or are they going to be encouraging community development? Are they going to submit the Moodle plugin for inclusion in CVS? Are they going to put it in the Modules and Plugins database?
One worrying sign at the moment is that the plugin is only supported on Moodle 1.9, yet it requires PHP 5. Moodle 1.9 doesn't have PHP 5 as a requirement, and Microsoft's documentation makes no mention of this.
I'm interested, but I'm not getting too excited, yet.

Of Moodle and First Class Honours

Well, time for a nice hefty blog post I think, as I haven't done one in a while.
I got my final results from university this week. I got a first. Everyone I know has been congratulating me, which is quite overwhelming. I'm happy, but I don't seem to be as happy for myself as everyone else is for me! It's probably becuase I was worried that I wouldn't get one, that when I did it was more a cause for relief then celebration.
Nonetheless, it's the weekend now, so party time tonight. Hells Yeah.

I've also moved into a new flat with my lovely girlfriend, and started a new job. I'm working at Taunton's College in Southampton as their in-house web developer. This involves working primarily with Moodle, the open-source Course Management System/Virtual Learning Environment. This is awesome, for 2 reasons. 1 - I get paid to code PHP, which is what I do for fun anyway. 2 - I get paid to contribute to an open source project, which is a position I've always wanted to be in. And it pays well enough for my nice new flat. And I get a local government pension. And I get to help people teach. Winner. Dream first job? I think so.

Moodle in itself is a pretty cool system, although it's suffered a bit from it's evolutionary development. The main problems are that when new and better solutions get introduced, the old ones remain. This is mainly a backwards-compatibility thing which means a lot of it is being culled for version 2 (the upcoming major release), but it means at the moment there are 3 different ways of keeping track of which javacscript files a page needs, a really flexible permission system which relies on an older "roles" system for assigning the permissions, and lang files for older components all over the place.

That said, the current "best practice" provides some really nifty plug-in APIs,and the database abstraction layer makes interacting with the database a breeze. Hopefully once version 2 hits the mirrors, the cruft will have been cut back, and the new plug-in points will make it an even more versatile platform than it already is (come on, gradebook plugins!).

The Moodle community's also brilliant, as are my Taunton's colleagues. I look forward to working with them all to make Moodle better!

Syndicate content