Archive for March, 2009


Start them young!

A 13 year old boy named Dmitri Gaskin has just given a short talk at DrupalCon DC. What makes this even more amazing is the fact that Dmitri has already been developing drupal software for 3 years (this site is based on drupal) and that last year he was a Google Summer of Code mentor and will be again this year!

When work is seemingly getting you down and you think you are struggling to get to the dizzy heights of open source stardom even though your trying hard, think again. At 13 years old I think I was still playing with action men!


rsstorrent version 0.2

Some rss feeds contain url’s that use something called content-disposition. From the HTTP/1.1 spec:

"The Content-Disposition response-header field has been proposed as a means for the origin server to suggest a default filename if the user requests that the content is saved to a file. This usage is derived from the definition of Content-Disposition in RFC 1806 [35].

content-disposition = "Content-Disposition" ":"
disposition-type *( ";" disposition-parm )
disposition-type = "attachment" | disp-extension-token
disposition-parm = filename-parm | disp-extension-parm
filename-parm = "filename" "=" quoted-string
disp-extension-token = token
disp-extension-parm = token "=" ( token | quoted-string )"

All this means is that when you request a file from a site that uses content-disposition, you probably won’t get the filename that you expected. This used to trip up rsstorrent, until now. As a quick fix, I have enabled wget support which is used when rsstorrent comes across content-disposition in the header field of any torrent address. This may not be the best solution but it does work. I’m looking for a better solution but wget is a pretty ubiquitous application and fits in with the lightweightness of rsstorrent. It does mean that rsstorrent now depends on wget and while I was at it, I upgraded pythons urllib module to urllib2 as urllib is being depreciated.

Go download the latest version from or get the git repository from


Ubuntu running on the Nokia N8x0 tablets

Wow, just wow. The fruits of the arm port of Ubuntu are starting to flourish, behold, Ubuntu 9.04 on the Nokia N8x0 tablets.


Automatically download torrents with rsstorrent and rtorrent

Have you ever wanted to automatically download torrents when they become available, not just when you manage to remember them? Have you ever wanted to have your torrents sat waiting for you when you come home from work? Do you want someone to give you a step by step rundown on how to do this? If the answer is yes to these questions, this how-to is for you.

Prerequisites: or what you need first

For this how-to you need the following software.

See the individual packages web sites for instructions on how to install them.

Setting up rtorrent

rtorrent has an excellent feature that enables you to drop .torrent files into a specified directory and it will automatically start downloading. To enable this you first need to edit the .rtorrent.rc found in your home directory,

You need to change the line that reads something like

#schedule = watch_directory,5,5,load_start=


schedule = watch_directory,5,5,load_start=/home/jamie/downloads/torrents_files

Obviously change the load_start directory to the one that you want to use.

rtorrent should then be run in the background all the time. It will watch the directory and any .torrent files you drop in there will be automatically downloaded. I use the screen command to have rtorrent always running. Start it with:

screen rtorrent

Type [ctrl]-a [ctrl]-d to detach the screen and go back to the command prompt. rtorrent will still be running.

Next step, setup rsstorrent.

Setting up rsstorrent

rsstorrent is a simple python script to download and check rss files that contains torrent information. It will figure out if a new torrent has been added to the feed since the last time it checked and if so, it will download the .torrent file into a directory of your choosing. Obviously when used in conjunction with rtorrent, these two are pretty powerful.

You can put the file anywhere that you have access to. I put it in my home directory at:


Edit the script with your favorite editor and change only the top few variables:

# List of url feed to be parsed.
DOWNLOAD_DIR = "/home/jamie/downloads/torrents/"
TIMESTAMP = "/home/jamie/downloads/rsstorrent.stamp"

FEEDS is a list of rss feed urls that contain the torrent information. From the example above I have used the popular site to get a random feed, this one is for the tv series Lost.

A little side note here. Please do not download any illegal torrent files or any files you do not have permission to own. OK, with that out of the way, add as many feed urls as you like, in the format shown above, to the FEEDS list. You will also want to change the DOWNLOAD_DIR and TIMESTAMP variables. Change DOWNLOAD_DIR to the same directory that you used when setting up rtorrent and the TIMESTAMP path can be anywhere that rsstorrent is allowed to save it timestamp information.

Once you have this setup, your ready to go. If you just want to test it out, change the VERBOSE variable to True and run rsstorrent:

python /home/jamie/scripts/

If all went according to plan you should see ... nothing downloaded. Why? Well on first run, rsstorrent has no timestamp information so it has to use the current time as a starting point. Rest assured, if you only get the "No new torrents to download" message, everything should be working right.

If you run rsstorrent again later, it will use the timestamp file to determine if any new .torrent files need to be downloaded.

Automating the process

To completely automate the process, rsstorrent can be called from cron. Edit the /etc/crontab file and add an entry for rsstorrent, something like this.

30 */6 * * * jamie cd /home/jamie/scripts && python ./

This line means that cron will call rsstorrent every 6 hours.


So there you have it. cron calls rsstorrent periodically to determine if any new .torrent files are available. If they are, the files are downloaded to a directory that rtorrent 'watches'. If rtorrent see's any new .torrent files in this directory, it downloads the torrent automatically.

Now all you need to do is sit back and see your legal torrents download without lifting a finger.



rsstorrent is a simple python script to fetch .torrent files from an rss feed.

Getting rsstorrent

The latest version of rsstorrent is stored at To get it you will need a git client.

git clone git://

You can also download rsstorrent from the site. The latest release is rsstorrent-0.3 and can be found below.

If you have any comments or questions, please use the contact link at the top of this page.


Questionable Karma?

A little lightheartedness.

I just looked at my Maemo profile today and was greeted with this …

A ‘devilish’ Maemo user?



The date for the second homecamp has been announced, Saturday 25th April 2009, 10am until 6pm, at Bash Creations, 65-71 Scrutton Street, London, EC2A 4PJ.

So what is homecamp I hear you ask, well …

From the homecamp website:

“Home Camp is an unconference about using technology to monitor and automate the home for greener resource use and to save costs. This is about low energy devices and servers, reducing your electricity bills, monitoring your mouse traps, home automation, monitoring your water usage, using solar power. This is a hack day.”

For more information, the homecamp blog can be found here and a link to the first event is here.

The second homecamp promises to be great, don’t miss it!