Roll Your Own Pocket Server

After reading about clever hacks with a and strange input devices, I decided to up the ante a bit.

So I set up a Sony Xperia Arc S (which was kindly gifted to me by an old college mate) as an all-in-one pocket server and wireless gateway.

I use that phone mostly to test apps and play , but now it moonlights as an machine by running a chroot install inside a 2GB image file on the SD card, just like I did . Which is trivial to do these days on any rooted phone – just grab Complete Linux off the Play Store, download one of the images, and you’re done – there’s actually very little hackery involved.

The great thing about this is that it isn’t just a gimmick. You can get a surprising lot done even on a relatively underpowered device, and it’s especially useful if you’re traveling given that the phone can also double as a personal hotspot.

As to performance, your mileage will vary depending on the hardware you have available. The Xperia Arc I’m using has 320MB RAM, but even given its meagre single-core CPU it makes for a reasonably decent Linux box given that I can install just about anything on it.

The sensible thing to do (and what I’ve been doing out in the green fields of Portugal) is into it from my – which, with great apps like , Prompt and Textastic makes for a pretty good work environment1. The is still an excellent terminal and graphical editor, even if it can’t run much locally ( is a notable exception, but even though I use it for testing REST services and other arcane purposes, it has its limits).

Running things inside makes it virtually indistinguishable from any other machine I usually work in, so I’ve been merrily cloning and repositories, editing code, running tests and committing the results upstream without any problems whatsoever.

And given my penchant for optimizing code by testing it on low-end hardware, this is a pretty sweet setup - even for testing multi-threaded code, with or without gevent2. In fact, most of the stuff I’ve been working on publicly on Github has been tested and profiled there, including my feed reader code and a few other things.

Of course you can go crazy on more modern devices, where you can pull off stunts like running a full remote desktop or plugging it in to a TV and a keyboard all on its own. The thought of a portable quad-core ARM with 1GB RAM – about as powerful as my Linode – is… tempting, but the point here is that a little box you can bring along with you can be both trivial to set up and surprisingly handy.


  1. Even considering that Panic hasn’t done much in terms of feature updates (such as better syntax highlighting or faster performance), I still like their apps. ↩︎

  2. It bears noting that the ARM packages for gevent and greenlets cause segfaults, but that’s easily fixed by installing the latest versions with pip↩︎

This page is referenced in: