If you have me in your Circles on Google+ or follow me on Twitter then you have probably already seen the article I want to talk about. If not, why are you not following or circling me? You totally should! It’s like reading spoilers for Terminally Incoherent blog posts… Plus poop jokes.
Anyways, I have been doing a lot of writing and thinking about mobile technology. Clearly, portable computing is the future. The age of the desktop already passed, and traditional laptops are currently entering their twilight years. Pretty much everything that is not paper thin, and has a old-school spinning hard drive is to bulky to lug around.
I love my MacBook Pro but whenever I take it out “on the road” I find that it is not as portable as you would expect it to be. After about 4-6 hours of happy mobile computing I always find myself in a desperate need of a power socked to witch I need to tether myself. Compare that to the iPad which has a battery life of more than 10 hours. I charge that thing about once a week, and when I do I can stick the cord into any available USB port. The MBP needs to get plugged into a wall every day.
Clearly one of these devices was designed to be more “portable” than the other. A laptop (not just the MacBook – this goes for all the laptops out there) is more of a portable desk-top machine if think about it. You get to the office, plop it on a desk an start working. Then you fold it up, go home, plop it on another desk and work some more. Despite the name, keeping a laptop on your lap is not the most comfortable way to do computing. I mean, it can be done, but it will fuck up your hands after a while. The keyboards and touch-pads on those machines are not meant to be used from your lap.
A tablet, on the other hand was specifically designed for that type of work. It has the battery life, the form factor and the touch based UI instead of a mouse which prevents you from contorting your hand into a weird, unnatural position to click on things.
So a natural thing to ask is: could you work off your tablet? Could an iPad act as your primary workstation?
For me the answer was always no. An iPad cannot replace my laptop because it cannot run the tools I need to do my job. Even if there exist iPad versions of Vim and Python they do not meaningfully interact. Without file system, a working implementation of Git or the ability to install a web server I would not be able to do my job using it as a primary tool. I could use it as a lightweight email reader, but that’s about it.
For real work, I still need an actual computer. Something running a traditional OS. Something that can at the very least approximate the destination production environment towards which I’m developing.
But… Does this “actual computer” need to run on the machine I carry with me? Could an iPod be used as a thin client that connects to a remote system that lives somewhere else? Like at work? Or at my house? Or in the cloud?
Well… I don’t see why not. In fact, I’m not even sure why I haven’t done this already.
About a year ago a guy named Mark O’Connor has swapped his MacBook for an iPad and Linode. I highly recommend you read that article, because it is both inspiring and fascinating. Much like me, Mark is a user of Vim, and a person who is quite comfortable living on the command line. People like us run graphical environments mostly for stuff like Web and Email (because browsing the web in a text browser really sucks). We both chose MacBooks mostly because they had a fully functional Unix shell in a nice, hassle free UI package that surrounds it. Our real work happens on the terminal, and the other stuff (email, web, etc…) happens outside of it. They are basically expensive hardware and software shells that surround our primary work environment. But there is no reason why we would need to run said environment locally. There is no reason for the CPU that compiles and runs my code to be in the same physical location as me. As long as I can see the output, and there is no input lag, I don’t care where does that CPU live.
Mark has been using his iPad+Linode combo for close to a year now, and he reports no significant issues with the setup. At first he treated the whole thing as an experiment, but now it has become a way of life. Apparently the 3G connection by the way of a tethered iPhone is fast enough to run iSSH reliably and without much lag or hiccups. That said, he does live in a country with pretty decent cellular coverage. We Americans have to struggle with cell networks that barely approximate third world coverage. Still, this is quite impressive.
If you are curious about Mark’s setup, he described his entire stack and configuration here. For what it’s worth, I would use Tmux instead of Screen, would not need VNC access and of course use my own .vimrc. Other than that seems like a pretty decent set of suggestions.
Needless to say, I’m really tempted to try this. Probably not for work, but for my hobby projects. What appeals to me about it is that it marries the old school with the new. A perfect synergy between a command line / vim geekery and new and shiny ultra-mobile thin client. The way into the future, via the good old tried technology of the past.
What do you think? Have you ever tried a setup like this? Let me know in the comments.