Archive for the ‘Geekery’ Category

Today I wrote a text filter for Moodle 2.2 which will help Moodle teachers and admins cite documents from a Fez digital repository. Fez is a digital repository written by University of Queensland library staff for the university’s digital assets and for use as an open access research repository.

The best fit in Moodle for a digital repository such as Fez would be through a repository plugin, but the Moodle repository API assumes that you only want either a file, or a URL. I think there’s room for the API to be able to return a snippet of HTML as well – of an appropriately formatted link to the document in question. For instance, it would not be enough to simply present a URL, such as

Link to a document

it would instead be really nice to be able to have the repository plugin return a <div> element, with a formatted citation, such as:

Taylor, William (2005) (FAB_15_2_095) Lest We Forget: the Shrine of Remembrance, its redevelopment and the heritage of dissent. Fabrications : The Journal of the Society of Architectural Historians, Australia and New Zealand, 15 2: 95-112.

This would also apply to other repositories – it would be nice if the Flickr, Picasa and YouTube repository plugins could return a thumbnail of the image or video instead of just the URL. Until that happy day arrives however, we can use a filter instead. After installing the filter, we tell it which Moodle content formats we would like it to parse, and the base URL for our Fez repository:

Fez text filter settings in Moodle

Fez text filter settings in Moodle

Then, in our content, we insert a search term or a Fez document PID into a placeholder using double curlies, e.g.

Inserting a Fez document into Moodle content

Inserting a Fez document into Moodle content using a placeholder.

Which when we save, and have the Fez filter enabled, will produce a nicely presented citation:

Fez document citation in Moodle

A Fez document citation displayed in Moodle.

It would not be very difficult to convert this into a repository plugin that simply returns the URL to the document, or to extend or clone this filter to talk to other digital repositories, such as EPrints, DSpace or Fedora.

TODO: add a setting to control how many search results you want to display.

Hopefully I’m going to Brisbane in a week or two for LCA 2011. This would be fine except for the worst flooding in Queensland in over a hundred years. The organisers are still saying (at time of writing) that everything’s fine because the venue, Queensland University of Technology, is sufficiently above the river. I’m a bit skeptical myself, so indulge my urge to paraphrase: “Hey – the streets that aren’t still inundated will be buried in two feet of silt, you’ll need a gondola to get around, the power might be out, the sewer might be overflowing, most of the hotels will have been seconded for evacuees, snakes have followed all the rats into basements and attics, but hey, QUT is above the water-line so there’s no problem! Mind one of the crocodiles wandering around in the parks doesn’t EAT YOUR LEGS OFF”

Don’t get me wrong, I’d love to go, and I’m hoping to meet up with a bunch of Brizzy friends and conduct some business with folks at University of Queensland while I’m there, but I don’t hold out much hope, and I don’t fancy getting eaten alive by crocodiles, snakes, giant ants or zillions of mosquitoes.

Dearest friends of mine,

You may have noticed I’ve dropped off the Facebook radar. Apart from finding it to be a gigantic time-waster, their increasing evilness with private data is a concern, as this link shows:
http://mattmckeon.com/facebook-privacy/

I urge you all to boycott it as well. You can rescue your friends’ email addresses into Yahoo Hotmail or GMail before you leave, as explained here:
http://www.labnol.org/internet/export-email-addresses-from-facebook/12970/

For someone medically forbidden from drinking caffeine, I have perhaps an overactive interest in coffee. Well I inadvertently bought a home coffee roaster (I blame Matt), to go with Miss Silvia the espresso machine and Mr Macho the grinder, and I’ve started roasting green coffee beans. So far I have had really good results with Ethiopian Harrar, Colombian, and an Indian origin. Each has a distinct different flavour, and it is as much of a jump in flavour going from bought beans to freshly roasted as it is from going from filtered to espresso. I’ve ordered some decaffeinated beans to roast up and blend in so I don’t go overboard…

I just got back from 3 days of Moodle Moot in Hamilton, officially the hickest town in the whole world! I gave a talk on digital repositories, got to hang out with and learn heaps from a whole bunch of cool Moodle people in NZ and also from Australia (including the big Kahuna Martin himself), Fiji, Canada and elsewhere. Photos are up on flickr with the moodlemootnz07 tag.

Okay Joel, interesting argument, and I sort of agree, but please don’t make silly stuff up to support your argument: http://www.joelonsoftware.com/items/2007/09/18.html

“You can follow the p-code/Java model and build a little sandbox on top of the underlying system. But sandboxes are penalty boxes; they’re slow and they suck, which is why Java Applets are dead, dead, dead.”

Well that’s not really true. Java Applets died because when Microsoft swamped out the Sun JVM with its own crippled 1.1 VM, nobody could realistically write to the much better Applet APIs that came out after version 1.1, so we either wrote crap AWT applets or ActiveX controls instead (a whole other world of pain and silliness). Also, the JVM is hardly “slow” these days, and is certainly faster than your average JavaScript engine.

“What’s going to happen? The winners are going to do what worked at Bell Labs in 1978: build a programming language, like C, that’s portable and efficient. It should compile down to “native” code (native code being JavaScript and DOMs) with different backends for different target platforms”

What, so JavaScript/DOM in a browser isn’t a frickin’ sandbox? Hello?! It seems ludicrous to add another language compiler layer on top of JavaScript/DOM, when you may as well write it in Java and “compile” it into an applet, which will have the same access to browser capabilities, require the same security restrictions and functionality sandbox, run a lot faster, and not require learning a new round of language, compilers and APIs.

Here are some photos from a LAN a couple of weeks ago. Civilisation, Joint Operations, Halflife 2 Deathmatch, far too much bacon corn fritters and Rocket Fuel sauce, and of course Mystery Science Theater 3000 “This Island Earth”.