Use a spare Android phone as an always-on IRC connection.

I ordered a Raspberry Pi (which should arrive in a few weeks), and my first project was going to be to set it up as an always-IRC connection using quassel. I use IRC regularly, usually from my desktop, but I don’t like leaving my 200w computer running all the time. (The electricity cost adds up quickly!) . If not for IRC, I’d set it to hibernate after 10 or 15 minutes of inactivity. Then I realized, why wait until I get the Pi? I’ve got my old Android phone (a Droid Incredible), which could serve just as well. Now I’ve got a quassel-core that I can leave on all the time, which runs on about 2 watts! It’s pretty easy, if you’ve got a rooted android phone you aren’t using.

2013-01-03-15-18-57-032

First, install a standard Linux distro on the phone. I did this using Debian Kit, which let me put Ubuntu 12.04 on without much hassle. Just follow the instructions.
Then, within your Linux terminal, run:

apt-get install quassel-core

That should get you everything you need. To start it, just run:

quasselcore

Then plug in your phone and turn off the screen, and it’s ready to set up as your always-on IRC connection. (You need to be connected to your wifi network, and the phone should be set not to sleep, so that it maintains the connection.) You probably also want to follow these instructions to set up SSL, especially if you run an open wifi network at home. They worked for me verbatim; just run this before starting up quassel-core:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout ~/.config/quassel-irc.org/quasselCert.pem -out ~/.config/quassel-irc.org/quasselCert.pem

Find out the local IP address of that phone, and then you can run a quassel-client (not a quassel monolithic build, which combines the core and client into one program) on any or all of your computers on the same network. You’ll need to use one of the desktop clients (Linux, Windows, or Mac) to begin, and at the first connection it’ll let you set up an administrator account. Once you’ve created that account, you can also log in from other Android phones using Quasseldroid. (It can’t set up the initial account, though.)

After that, as long as quassel-core is running, you can use whatever computer you have handy to chat on IRC, everything that happens while you are offline gets synced each time you connect to the core. This is how IRC is supposed to work!

UPDATE: 2013-06-04

I used quassel-core on my Droid Incredible for almost six months. Most of the time it worked pretty well, but at times the lag (for my own messages to reach IRC, and for others to reach me) was a problem. I recently tried setting it up on my Raspberry Pi (running it in the background on a Raspbmc system), but I experienced the same severe lag as noted on the RPi forum (actually, worse in many cases).

I’m now running it on an MK808B Android stick (which I also use for Netflix and other media on my TV), using the same method as above. This dual-core Android stick has been really snappy with quassel; backlogs load very quickly (on both the desktop client and Quasseldroid) and there’s no noticeable lag.

One thing I didn’t note above is that with Debian Kit, dpkg may report a problem when quassel-core is installed, but it will still work. (I didn’t notice this during my first installation, although it may have happened. But I tried recently on several different Android devices with both Debian and Ubuntu installations, including using other methods than Debian Kit of running Linux, and I get an error every time.)