A powered on Raspberry Pi.

Don’t buy one and put it in the cupboard; buy one and do an interesting thing with it and tell the world what you did.

Eben Upton

When I finally got my hands on the low priced Raspberry Pi computer, it was autumn. Although it had been released in February, its low price and the engagement of the Raspberry Pi Foundation with the user and developer community meant that people were clamouring for them and supplies were scarce. This explains why it was very difficult to get hold of for several months. Since then, I've found several uses for my Pi, and I thought it might be useful, in the spirit of the opening quote, to briefly discuss them.

My uses for the Pi are fairly simple, especially in comparison to those that frequently adorn the official Raspberry Pi site, but I've still found them very handy nonetheless. I wouldn't have been particularly unhappy if I'd spent £30 on a device that does just one of the tasks that I using the Pi for. It's no surprise that a device that does all of these tasks, and can still do more, makes the Pi one of my favourite bits of recent hardware. I'm certainly not alone in that view: the driving force behind the Pi, Eben Upton, was quoted as initially hoping for 1,000 sales; a huge underestimate from the hundreds of thousandsit has sold.

One of the most obvious uses for a Pi is to run XBMC, the fantastic open source media center software. The fact that XBMC was shown to run pretty smoothly prior to the Pi's release no doubt played a part in the Pi's early popularity, considering the feature set that XBMC alone offers. That said, my assumption is that anyone with a Pi already knows about XBMC — in the unlikely event that you don't, make sure to try Raspbmc out — therefore I'll skip over it here and leave that discussion to the many pages that discuss XBMC on the Pi. Instead, I'll focus on other useful functions.

For reference, at the time of writing, Raspbian is the officially recommended operating system and that's what I'm running on my Pi. All of the uses for my Pi use it headless. I usually connect to the Pi via an SSH client, though you could attach a keyboard and TV/monitor to it and enter terminal commands directly.

So, what can you use a Pi for?

1. Access to useful Linux command line tools

Even just installing a Linux distribution like Raspbian, without installing anything else, gives you access to several powerful programs (particularly the text processing commands) that you might not have ready access to, if you don't already have another PC running Linux available.

Yes, you can get access to some of these tools within Windows if you install something like GnuWin32 or Cygwin, or go to the trouble of installing Linux in a virtual machine, but it's nice to just power on a device and start working with these tools immediately and without any further setup.

Another example is that when I started using github, I found it easy to just run the git command line tool from the Pi. It just worked. In my case, git had already been installed, so I didn't even need to type sudo apt-get install git. This was a lot simpler than me trying to decide on the best way to run git on Windows.

2. Wireless adapter for a device without onboard wifi

I installed a cheap Ralink wifi adapter (around £4 from eBay) to connect my Pi to a wireless network. Because of this, the Pi's onboard Ethernet port was going unused. It's relatively straightforward to configure the Pi to enable a device connected to it by Ethernet to use the Pi's wifi connection to access the network

Wifi adapter for the Pi.

Wifi is a common feature of networked devices these days, but the Xbox 360 is an exception to this rule. Earlier this year, I explained in a Stack Exchange post how to configure the Pi such that the Xbox can access the network. There's no reason why the same procedure couldn't be used for other networked devices without wifi.

3. AirPrint server

Earlier this year, I was asked, "How can I print something from my iPad?" My reply was along the lines of, "Not easily: we don't have a printer that supports AirPrint."

That conversation inspired me to have a look around in case it was actually possible. After a quick search, I found airprint-generate, along with a step-by-step guide explaining how to install this on the Pi. Even with having to install CUPS and testing a couple of iDevices, I don't think the whole setup took more than thirty minutes or so. With this AirPrint solution, printing from an iPad is integrated just as if we used an AirPrint-compatible printer; no third party app is necessary to print.

As its price suggests, the Pi isn't hugely powerful, but that doesn't hinder it from being incredibly useful for applications where computing power isn't critical, like the AirPrint server. (Here, even if it runs a little slow, the response time isn't really an issue: would a user really notice the extra few seconds that a document might take to print, compared with a much faster PC?) The Pi is also very cheap to run, as well as being silent, making it ideal for server applications with modest computing power requirements.

Even if you are starting from scratch, and need to run the Pi's operating system installer first, it should only take you, at most, a couple of hours to get everything here running. In a single evening, you can complete a small project that you get something back from almost immediately, which is really encouraging.

On that upbeat tone, that's probably a good place to end this post! When I write about the Pi next, I'll cover uses of the Pi as a file server (using Samba), and how I've found get_iplayer to be a great alternative to the BBC's officially supported service.