Love comes to Castle Carfax

[Castle Carfax. Clouds threaten the castle, dropping a light but persistent rain. The small dining room is decorated with roses and hearts.] [Ewww -Ed.] Igor? Where are you, man? Here, marthter! Do you know what day it is today, Igor? Ummm… your birthday, thir? No, you fool, that’s not for months yet! Ith it my birthday, thir?” Even more wrong. No, it’s St Valentine’s day, the annual festival of love and romance.

Care of Walled Animals

[Castle Carfax. A thick mist roils above the moat. A solitary window in the pinnacle of the highest, 21A-covered, tower glows with candlelight. Within, the castle’s master summons his ramshackle henchman…] Igor! IGOR! Ah, there you are. What kept you? Thorry, thir. I wath converthing with the village’th patiththier. Ah, yes. Ordering crumpets for tomorrow’s breakfast, I trust. He is a masterful exponent of the art. Truly a baker’s 18D. Now, tell me, how did the experimental brain do with tonight’s crossword?

Thand, Thea and Thun

Note: this tale was posted in response to the story of Cuttleson and its subsequent demolition. The tale itself was then removed. [Scene: A ramshackle castle, perched on a steep and windswept mountainside. From this chill 4D, the slopes descend precipitously to a warm and pleasant bay, surrounded by white sand beaches on an azure sea, sparkling in the morning sun. A suspiciously new and unblemished harbour area lies to one side of the Caff.

Black Forest Gateau

[The scene: Castle Carfax. The drawing room, late at night. Candles gutter fitfully in sconces on the walls. An eerie melody swirls up from the organola† in the chapel across the courtyard. The castle’s dread master summons his twisted servant.] Igor! Yeth, marthter? One of our experimental subjects has taken action to fend off our usual methods! The orbital mind-control latherth, thir? Exactly! We must resort to other means to continue the protocols.

The fable of the land of btrfs, and the gnarly old boot

Once upon a time, there was a magical kingdom called btrfs, with many CoWs in it. In this kingdom was a castle, called Castle Carfax. One of the most important people living in Castle Carfax was called Amelia, and in the castle she kept eight circles of adamant. These hard disks, as they were called, held all the important knowledge of the castle. One day, Amelia’s grand wizard used some common magic of the kingdom to rearrange the knowledge on Amelia’s circles of adamant, in order to make them balance better.

Using the Hadoop MapReduce API

Using the Hadoop mapreduce API Hadoop’s MapReduce subsystem runs tasks, where each task may be composed of one or more jobs. A job is a MapReduce run of a single map phase and a single reduce phase. A large amount of the complexity in Hadoop is the (very poorly documented) set up and configuration for jobs and tasks. ToolRunner and Tool The ToolRunner is a helper class which contains code to parse the command line of a MapReduce job started via the hadoop jar command.


[A lecture theatre. A selection of young faces, many still showing the after-effects of a long Freshers’ week dissipation, gaze down at the lectern in a mixture of boredom and mild panic. Notes are frantically scribbled, some on paper, some on newly-purchased eyePads. The lecturer is in full flow.] … and finally, we add the tincture of saffron blended with the trace amounts of meteoric iridium catalyst. This is most important, and should under no circumstances be omitted.

Tied to a Post

[Note nailed to the sally port of Castle Carfax] Message to couriers: Please ring and wait for up to 10 minutes, to give Igor enough time to hack his way back out of the conservatory. If there is no reponse, DO NOT leave deliveries with the neighbours, as they will only use them to create their own unspeakable horrors. Instead, kindly leave your parcel by throwing it over the castle walls.

Distractions, distractions...

[The Small Experiment Hall, Castle Carfax. Mysterious organic objects lurk in jars of discoloured fluid. Three-phase power sockets feed glowing machines, into which complex pieces of chemical glassware drip slowly. Approximately three ferrets cower in a cage on the central table, guessing their fate. A door on the far side of the hall slams open, and a short twisted figure shambles in at speed.] Thir! Thir! Oh, do be careful Igor, you nearly had that liver on the floor!

Morning Has Broken

[Castle Carfax. Morning. The castle juts proud (and slightly lop-sided) from the mists of the mountain, slowly burning off in the hazy sunlight. Below in the valley, the village is quiet in the remaining fog, save for the occasional goat-bell. From a tall central tower, comes a deep and unearthly moaning.] Mrrrgh. Rithe and thine! Mrrrrrrgh! Marthter? MMMMRRRRRAAAAGH! Your breakfatht, marthter. Mmr…aaah! Wh… What, Igor? Thir? Never mind. Which fool came up with the idea of mornings?

The Crossword Machine

Igor! Yeth, marthter? Must you do that? Thorry, marthter, induthtrial ackthident. I did tell you not to drink the green one. Anyway, how did the brain do with this morning’s crossword? Here’th the report from the gnometh in the thellar levelth of the carthle, marthter. Ah, smooth running, I see. Good. It spotted 21 as an old friend, good, so the crossword-association linkage is doing well. I don’t like that delay on 9D, though.

Anyone fancy a quick rubber?

Last night, I went down to Cow Lane, not far from where I live, to see the first phase of the new rail bridges put in place. Railtrack are spending £850m on upgrading the station and tracks around Reading over the next few years, including two new platforms at the station itself, new lines, and an overhead section so that freight trains can bypass the station without getting in the way of the passenger services.

Insert Knob A in Hole B

On Tuesday, I took delivery of the first set of parts for my RepRap from the local user group. I manfully held off from doing anything with it until today, when I settled down and built the frame. Sadly, the group wasn’t able to print all of the frame parts that they’d intended to do, so it’s a bit basic right now, but at least I know how much space it’ll take up on my amusingly-titled “workbench”.

Announcing btrfs-gui

Here’s the email I sent to the btrfs mailing list a few moments ago: Over the last few weeks, I’ve been playing with a foolish idea, mostly triggered by a cluster of people being confused by btrfs’s free space reporting (df vs btrfs fi df vs btrfs fi show). I also wanted an excuse, and some code, to mess around in the depths of the FS data structures. Like all silly ideas, this one got a bit out of hand, and seems to have turned into something vaguely useful.


btrfs-gui is a graphical user interface tool for inspecting and managing btrfs filesystems. It is capable of managing filesystems on the local machine, and filesystems on remote network-accessible machines. It requires root access to the machine to perform most of its tasks (but separates the root-access part from the GUI). Development status Development is in its early stages, and currently only disk usage information and a list of subvolumes is available.


A graphical user interface for managing btrfs filesystems.

You are both a unique and precious snowflake

I’ve just got my hands on another arts and humanities data set. This one’s smaller than most of the others I’ve been looking at, and it’s been put together in an MS Access application. Fortunately, the owners are aware that that’s not a maintainable approach, and want a method of publishing it on the Web. Also, rather nicely, they’ve been aware of a number of data issues, such as regularisation of text fields: they’ve partially normalised the data, and effectively have a good ontology for their data.


Egregium is a first-person shooter, harking back to the days of the 8-bit micro.

Lost: password. Answers to name of "Administrator"...

… last seen being used by the person we paid to build our database. They’ve now gone away, and they don’t appear to know what it is any more. And, of course, nobody seems to have handed it over. This has prevented the database from being updated for some time. It also means that I can’t access the relevant bits of the DB server configuration to enable the JDBC interface that I need to use to talk to it.

Wall of Fire

One of the major problems with building a distributed system is that it’s distributed. This means that the parts of the system need to talk to each other. Of course, these days, networks are viewed by most large network operators (e.g. universities) as hostile environments, where anything even remotely risky is split out, preferably into its own little subnet. These two facts make it very difficult to deploy wide-ranging distributed systems, because the components of the distributed application have to be designed with a degree of security in mind from the outset (which many are not), and because the corporate mind-set of network management is against the distribution of systems across the network – because these distributed systems forge connections between the firewalled subnets of the organisation.

The piece of Codd which passeth understanding

I took a good deep look at one of the datasets I’m meant to be linking up today. Actually, it’s four separate datasets, but all held within the same database. I poked around a bit, and found this: Yes, that’s precisely one table, with 158 fields and over 17500 records. Of those 158 fields, 52 are computed fields (mostly containing logic to return “No information available” if the field value is NULL, or for doing display formatting).

A surfeit of Alan

Last night, I went to the Farnham Beerex — one of the country’s longest-running beer festivals. I went with Alan. And Alan. And Alan. Too many Alans for sanity, in fact: That’s Mr Bell, Mr Lord, and Mr Pope. Beer, perry and cider were tested and pronounced upon. Popey even tweeted brief beer reviews (and a couple of music reviews). Sadly, I wasn’t able to attend the curry at the end of the evening, as I had to catch a train (actually, several trains) back home.

Reasons to hate maven, number 85 in an apparently infinite series

$ wget [...] HTTP request sent, awaiting response... 403 Forbidden $ wget -U "Pointless arseholes" [...] HTTP request sent, awaiting response... 200 OK Was there some purpose to this minor irritation?

dev8D, days one and two

I’m currently at this year’s dev8D. So far, I’ve spent a morning learning about the other projects in the JISC’s VRE programme (of which I’m a part), learned about RDF support in Drupal, persuaded someone that they should be using Tycho in their project and pitched it to someone else, played a cool metagame guessing the rules of the game, learned the basics of Clojure in a programming dojo (I am now a LISP programmer, according to my sensei), discussed the use of metadata in a wide variety of contexts, and built a mangonel out of some pencils, some string and a plastic box, for firing rubber ducks across the room.

Repository Issues: Real Soon Now™

When we started this project many moons ago, we started with 10 identified repositories that we wanted to work with. Of those, two were new systems, being planned or put in. And therein lies the rub… It’s hard to write and test code against something that doesn’t exist yet (or which is partly set-up and has little data in it). It’s even harder to do when the configuration changes under you as they modify their testbed.


Calliope is a video recorder for DVB systems. It currently features a simple AJAX web-based UI, and supports TV tuners placed on arbitrary machines on the local network. At the moment, it’s in a very rough state, but appears to be functional for the purposes of making recordings. There’s little or no documentation on how to set it up – if you want to try it out and can’t work out what all the bits do, mail me.

Introducing calliope

Ever since I started playing with digital TV on my computer(s) 5-6 years ago, I’ve been intermittently messing around with the idea of writing a video recorder. Until now, I’ve mostly been using a set of perl scripts I hacked together in the early days. They Worked For Me, but there were several things they didn’t do well: No automatic allocation/resolution of recordings to specific tuners Only runs on one machine (i.

Repository issues: The Custom Application

After a project meeting today, it was suggested that I keep a note of all of the “interesting” issues that I encounter with the various data repositories I encounter on the project. So, here’s the first of them. At least two of our repositories consist of custom-built applications. One of them is a fairly large piece of PHP, backed by a MySQL database. The PHP for this repository is complex, and only understood by one person.

Drupal and blog filtering again

After some struggling over the last couple of days to sort out tag-based blog aggregator filtering in Drupal, here’s how I did it, with the extra patches and sub-modules I needed to make it work. Installation of modules First, install the Views, FeedAPI and FeedAPI Item Filter modules for Drupal. Apply the patch from the bottom of this page to fix some issues with using multiple filters in the FeedAPI Item Filter.

Drup, drup, drup...

… the sound of blog filtering through the percolator. I’ve been putting together a website for my current work project, in Drupal, and wanted to aggregate items from many blogs, filtered by keyword on the item’s tags. Now, Drupal’s default Aggregator module doesn’t do this. The News Page module seems to offer the feature, but I couldn’t get it to display any blog posts, which was rather a shame. I eventually wound up with the FeedAPI modules.

Playing with Drupal again

I’m playing with Drupal, to see how I can aggregate RSS news items with particular tag keywords from several sources into a single place. It seems that the Drupal Aggregator module doesn’t do that, but that the News Item plugin can be used to make it work. This post is more of a test of that mechanism, than actually saying anything interesting. :)

Review: Pro Git by Scott Chacon

When I agreed to review this book, through the auspices of HantsLUG, I had almost no experience of using Git. However, I’m an experienced developer, and have used several revision control systems in the past (CVS, Subversion, Monotone). I originally expected the book to be “the pro bits of Git”, covering the advanced uses and leaving out the basic parts, so I was prepared to have to do a significant chunk of reading before I could get into this book.


Ontomedia is an academic project to develop ontologies and tools for describing media and narratives using Semantic Web technologies such as RDF and OWL. For more information, see the Ontomedia website.

Evil Plot, Part 1

From our reporter in the Department of Vague Stuff. I have an evil plan. It’s been brewing for a while (subversion tells me since April 13th). With a few trusted Persons of Hench in the know, we’ve been working at a slow but steady rate on some code: hrm@joshua:wor $ find \( -name \*.py -o -name \*.js \) | xargs cat | wc -l 2313 Still working on the core code, which is a pain to deal with (I’m writing the vast majority of it, so progress is slow, but at least I know where I’m going with it).

Adventures in Matroksa

I’ve recently re-encoded a whole load of MPEG2 video I’ve got into MPEG4 (using H.264). I thought that I’d put it all in MKV containers. Sadly, this turns out not to be the case: HandBrake’s presets explicitly set the output container — mostly to MP4. So I’m now left with a large number of videos in a format that I didn’t intend. What’s worse, I can’t easily flip forward and back in the files I do have, using either my Popcorn Hour or any of the video players I have on my Linux desktop.

Why I love NFS

I export a bunch of directories over NFS. One of those is the filesystem I record TV onto. At the moment, the recording machine is working on two separate channels, all streaming to the NFS filesystem. My server just crashed. I rebooted it. The recording machine is still quite happily going. I don’t know if there’s any lost data, but I doubt it. More news after those files get processed tonight…

You know you need a break when...

… your compiler starts rejecting perfectly valid C++ like this: class ContextHandler: public DefaultHandler { ... } Of course, javac doesn’t like that very much. D’oh!

The Edge10 DAS 501t -- redux

After a couple of delays, my replacement Edge10 DAS 501t has arrived. Why a replacement? The first one refused to power on. I eagerly unpacked it, plugged it in, pressed the power switch… and got nothing. Again. This was exactly the same fault as last time. In a state of bemusement (and a little irritation), I phoned up the supplier, who also expressed their confusion over the state of affairs, confirmed that there was no physical way they could have shipped the same unit back to me, and suggested I call Edge10 again.

Fixed, fixed.

On several of my machines, I’ve moved over to using xfce4-terminal instead of xterm. However, my one gripe with it has been that on some machines, I can configure it to use the “fixed” font, and on others, I can’t. The “fixed” font is an antique bitmapped font, but at the right size, it’s absolutely ideal for text editing – I write all my code using it, and set all of my terminals to use it.

The Edge10 DAS 501t

This morning, I took delivery of an Edge10 DAS 501t storage box. It’s an external eSATA box with room for 5 drives, running with a port multiplier. Thus, it only needs a single eSATA connector to join all 5 drives to the host machine. Coming out of the box, it feels well-built. The front door of the unit is black ABS, which clicks shut. It has little flex in it, and probably won’t fly off the hinges if given an accidental knock.

King William's College Quiz

The King William’s College Quiz is out. Here’s my effort. (It’s locked in a bid to stop spammers and search engines – use fishooks for the guest account.)

Causing a scenegraph

Over the last couple of weeks, I've been working on a bit of the VERA project to do with 3D visualisation of archaeological data. Now, I'm no stranger to 3D graphics, but it's been a while since I really did any, and there's been several advances* in the intervening time. There are a number of requirements for this work, but one is for some degree of platform-independence. I won't go into the details, but I'm working on the principle that Java is probably the thing to use.

Castle Carfax has moved

Four months after I got my job at Reading University, I’ve finally found somewhere to live in Reading, bought it, and moved in. A week after moving day, I’m surrounded by cardboard boxes, and my sitting room and office are still covered in assorted computer cables, but at least I have a kitchen I can (just) cook in*, a bed I can sleep in, and a sofa I can sit on.

Certified, with multiple identities

I’ve just had to generate a new self-signed X.509 certificate for an internal website at work, and I thought I’d generate a certificate with multiple names, so we can refer to it as “”, and “”, and “”, and all of the other variants that people are likely to generate. It wasn’t easy to find the exact incanctations needed, but for the record, here they are: The hardest bit is understanding the structure of the configuration file, and what bits do what.

Autoconf recipes

I found this site the other day: It’s an archive of autoconf macro definitions for detecting any number of different languages, libraries, and system features. It’s useful for those occasions when you want to detect comething in your autoconf script, but the author of the library didn’t write one (and didn’t supply a pkg-config .pc file).

Licensed to...?

I’ve been trying to work out how to get a copy of Windows XP to run in a VM at work – not that I actually want one as such, but it’s useful to have for those Word documents that OpenOffice won’t open, and for the occasional website that requires IE. The machine I’m using was supplied with Windows, and has an XP license sticker on it, with a license key.

Foot(er)ing the bill

I’ve just had an email from a professional firm about some work I want them to do. The email breaks down as follows: 1 line of greeting 5 lines of content 2 lines of sign-off 5 lines of personal signature (position, phone number) 7 lines of company details (address, companies house info) 3 lines of partners names and company phone number 7 lines of legal disclaimer 9 lines explaining how to read the attached PDF document 7 lines of advertising pointing at their website 24 lines of spacing and padding, half of which are unnecessary So, of 70 lines of text, 10 (14%) are directly related to the content of the mail I sent.


Dear Eclipse, I’ve set my preferences on your system to not receive marketing mails. Therefore, it seems strange to get an email from your marketing manager telling me this fact, which I know very well, and telling me that I could get all sorts of marketing mails if I signed up for them. Maybe the fact that I’ve asked not to get mails from your marketing department is that, oh, I don’t know, I don’t want them?

Sitting up and giving notice

After a few weeks of negotiations, and another couple of agonising weeks of waiting for the paperwork to come through, I’ve been formally offered a job at Reading University’s ACET group, working on a project called VERA. Initially, I’ll be doing work on cross-database searching with peer-to-peer software, although there’s a big bunch of other things that need doing… 3D visualisation, semantic web, usability, and open-sourcing an established piece of software.

The Big Read meme

I’ve just seen this on nmg’s blog. Copy the list, bold the ones you’re read. Underline the ones you loved. Put the ones you’re going to read in italics. Marvel at how far you still have to go. Act all concerned over the fact that the average person has only read 6 of these. Actually, that’s the average. Therefore there’s a large number of people who’ve only read one or two.

Making quilt and subversion work together

At work, I’ve recently taken up managing the codebase of GridSAM. Part of this involved arranging and moving a whole load of patches from one svn repository (maintained internally) to another (the SourceForge site). Subversion on its own isn’t all that good at this, so I started using quilt to manage the patches. The workflow goes something like this: Write a script to extract all the patches in the svn log since a given point, including the commit messages.

Ooh, just a minute... has anyone got...

Having been to many conferences over the last 10 years, one thing that I find myself (as a part of the audience) subjected to with depressing frequency is this scenario: Chairman: “And our next speaker is Fred Nurk, who will be talking about Prestressed Bacon Yoghurt…” [Nurk plugs in laptop; looks at projection screen.] […] [Much fiddling and pressing of keys. Projection screen stays blank.] [5 minutes later] Nurk (weakly): “Has anyone got a USB stick?

In search of...

I found this handy little site yesterday: Go to a website, use its search function to search for “TEST”, then paste the resulting URL into, and it will write an OpenSearch plugin for Firefox, Mozilla, or IE7 that you can download and install.


Magellan puts pictures of the world (or of any other sphere) on your desktop. It will handle any number of different map projections, and will output to the X root window, or to a bitmap file. It can render multiple projections to a single output, and is fully configurable, with a modular design to allow plugins for alternative output methods and projections.


Magellan puts pictures of the world (or of any other sphere) on your desktop. It will handle any number of different map projections, and will output to the X root window, or to a bitmap file. It can render multiple projections to a single output, and is fully configurable, with a modular design to allow plugins for alternative output methods and projections.

A successful Verdi

We performed the Verdi Requiem in Winchester Cathedral last night. It was a superb concert – the soloists were great (particularly the bass and the soprano), and the orchestra was good. The big difference in the choir, though, was almost certainly the fact that we sang without scores. This meant that we had few places to look other than the conductor. As a result, we were tighter rhythmically, and much more responsive to the conductor’s indications on dynamics.

It's plugging hot!

After vlad died last week, I rebuilt him with a new hard drive in the main system RAID array. This drive was twice the size of the old one – 160GiB, not 80GiB – so I had a bunch of spare space not being used. Yesterday, I bought another 160GiB drive, and decided to test the whole SATA hotplug thing… It works. Beautifully. However, I wouldn’t recommend trying it without LVM on your side, and probably the RAID subsystem too.

Verdi's Requiem

The choir I sing with, the Southampton Phil, is putting on a performance of Verdi’s Requiem next Saturday, in Winchester Cathedral. We will be performing without scores, so I’ve got to learn my part from memory. I’ve got most of it down well, but there’s a short passage in the Sanctus (the Benedictus) I just can’t remember when to come in on. The Libera Me is also tricky to remember – it’s pretty complex.


Vlad is now alive again. After spending a significant chunk of Saturday grubbing around on the floor, elbow-deep in computers (think James Herriot, only less gooey and with sharper edges), I’ve diagnosed vlad’s problems: At least one of the two hard drives in the RAID-1 array containing my home directory has media errors, and the motherboard has decided to stop working entirely. After running the hard drives overnight in my desktop machine, I had a second hard disk error on the other RAID-1 drive – this time a timeout error, not a media error.

Wanted: Blood for resurrection ritual. Virgin preferred.

At about half eleven last night, my server, vlad, died. Quite comprehensively. I was watching an episode of Babylon 5, and at a critical moment of the denouement, the video player just started playing the last quarter of a second, over and over and over again. This is rarely good news when things like this happen. The shell session to the server from my laptop was also unresponsive. The server was making little “vwip” noises, like one of the hard disks was repeatedly trying and failing to spin up.

HantsLUG meeting: Openmoko

We held this month’s HantsLUG meeting yesterday. It was relatively quiet, but a good meeting nevertheless. I gave a talk on ssh – part two of my series on basic cryptographic software (part one was on GPG, part three will be X.509 certificates). There were also talks on Bacula and BackupPC from Damian and Adrian repsectively. We had some interesting hardware along for the day – Laura brought her new OLPC, and Daviey had a Neo1973 running Qtopia.

Hooray for XRandR

For years, it’s been a major failing of Linux (and X11 in general) that it’s not been possible just to plug in a new monitor and be able to extend your desktop on the fly. This is just about OK for desktop machines, which don’t tend to change their configuration very often. It really, really sucks for laptops, though. It’s really quite painful (and potentially quite embarrassing) to have to kill X and restart it before you can plug your laptop into a data projector at a conference.

S&M at part 2

In my previous post, I talked about the Apache configuration for’s Static and Managed (S&M) server. In this post, I’m going to talk about the patches and configuration needed to make DokuWiki work on it. The S&M service is for hosting static web pages, and providing a set of web applications that we can deploy for individual LUGs to use. The first two apps we’re providing are DokuWiki and AbUseMod – the latter being based on UseMod wiki, and tweaked by HantsLUG to increase its anti-spam abilities.

S&M at

Something I’ve wanted to do for some time (and have been talking about for far too long) is to get a “static and managed” service running on’s system. This will allow us to provision web applications for users in a way where we ( admins) control the installed app – so we can do upgrades when necessary, and have them rolled out over the whole service. The VM has been around for some time – it’s called snm (Static ‘n’ Managed), and is referred to colloquially as S&M.

Ealing 2, Mississippi 1

I watched the Cohen Brothers’ The Ladykillers last night. It’s a remake of the old Ealing comedy of the same title. Sadly, as with many remakes, it falls distinctly short of the earlier mark. Most of the main characters are ludicrously one-sided, and irritatingly overacted. The two main leads (Tom Hanks and Irma P. Hall) make the exception, and are actually entertaining – Hanks in particular. I’m starting to come to like Tom Hanks as an actor, after his performances in Castaway, The Terminal, and now this.

Switches and Routers

What does a switch do? What does a router do? How do packets get from here to the Internet and back? For (some of) the answers, read on… [ I need to start with an aside about ARP. If a machine wants to send a packet on the local network to a given IP address, it needs to find out the MAC address of the destination so that it can address the packet correctly at the ethernet layer, which is below the IP layer.

Site revamp

Well, I’ve dragged myself into another small part of the 20th Century. A new website based on Drupal (after having seen the site going up. This also means that I get to write a blog an occasional series of brief articles. It’s not all there, but the main articles have been pulled over, and I’m working on doing the software using Drupal’s Content Construction Kit, and Views. They look incredibly powerful, but there’s obviously a lot I don’t understand yet.


Virtual machine management for qemu. Vamos is a set of scripts to help configure and manage virtual machines running under qemu (with, optionally, kvm or kqemu acceleration). It currently handles configuration of RAM, CPU count, user-mode, bridged and routed networking, and IDE and virtio disks. Permanent configurations are written using a simple (shell-based) configuration language. It’s available here: Latest version Version 0.9.0 <?php $view = views_get_view(‘releases’); $view->init(); $view->is_cacheable = FALSE; $result = $view->execute_display(‘block’, array(‘7’));


DVB video recording scripts These scripts are what I currently use for a video recorder. The important ones are dvb-record and dvb-recordings. They control the timed recording (the former to set recordings, the latter to list or clear recordings). You will need the DVB tools described in the DVB section of this site for these scripts to work. It’s available here: Latest version Version 0.3.0 Version 0.2.0 Version 0.

qemu and virtio

What are paravirtual devices? When running a virtual machine, the virtual environment has to present devices to the guest OS – disks and network being the main two (plus video, USB, timers, and others). Effectively, this is the hardware that the VM guest sees. Now, if the guest is to be kept entirely ignorant of the fact that it is virtualised, this means that the host must emulate some kind of real hardware.


This page describes some of the tricks and tools that can be used for capturing and post-processing DVB (Digital Video Broadcast) streams in the UK. It doesn't go into details of obtaining, building or installing software, or of installing device drivers, as that would make it rather too long. Capturing DVB video Hardware To capture a DVB broadcast stream, you will need some hardware. There are three types of DVB going:


I recently bought an EPIA motherboard (a VIA Nehemiah-based M10000) to play with making a media station. One of the requirements for this piece of kit is that it should be quiet, so I wanted to have a little in the machine itself as possible. Having a big and ugly server in the back room, I decided that I'd try to get the little board booting over the ethernet. This page documents my struggle.