I do 90% of my work on my Macbook Pro. It’s the 2011 model with the 15″ 1680×1050 antiglare screen, Core i7 processor, and 8GB of RAM. It’s an amazing machine and I wouldn’t want to use anything else at home. However, I also spend 4-6 hours a day in class and another 2+ just generally “out”, and it became a bit cumbersome to always carry a 6+lb laptop that gets <4hrs of battery life (this figure used to be higher). So I decided I would get some better mobile gear. The obvious choice would be a MacBook Pro (or any ultrabook) however I didn’t want to spend all that money. I made a list of what I want in a mobile device:
- All day or multi-day battery
- Relatively cheap (<$600)
- Effortless sync with my other devices
- Ability to take notes, browse the internet, and code
This is not an easy task. At first, it seemed like such a device would have to wait a few years. But over the last few months, I figured out a setup that works for me.
Asus Transformer Pad TF300T – $399
The Asus Transformer Pad is a 10.1″ Android Tablet that runs Android 4.1 Jelly Bean, has a Tegra 3 Quad-Core processor, 1GB of RAM, 32GB of internal storage and costs less than $400. Compare that to any other device on the market and you’ll see what a steal that is. Just by buying this, I fulfilled the following bullet points: lightweight, all day battery, and relatively cheap. Because I am already an Android junkie, it also fulfilled the “effortless sync” bullet. When I booted the device it already had all of my Mail, Calendars, Contacts, and Google Docs. With an app called DropSync ($5 or Free) I was able to sync my Dropbox folders from my MBP. This is a good start, but I still couldn’t take notes or code easily, so this was more of a “fun” device than a work machine.
Asus Transformer Pad Keyboard Dock – $129
The tablet is not called the “Transformer” for nothing. For $129 (often less) you can get an attachable keyboard dock that provides a full suite of keys (similar to a Windows PC, plus Android specific keys). As an added bonus, the dock contains a battery that recharges the tablet with ~4 hours of extra battery life when it gets low. Now, I had 12h+ battery and I could easily take notes using Google Drive or QuickOffice. What’s left? Coding. This turned out to be the biggest challenge.
Raspberry Pi Model B – $35
The Raspberry Pi is an amazing device. It’s a $35 computer the size of a pack of cigarettes that has a 1GHz ARM processor, 512MB of RAM, 2 USB ports, an Ethernet port, an SD card slot, and HDMI out (plus some other ports). With an 8GB SD card containing the free Linux Distro “Raspbian”, this is a fully functioning Linux computer. What does this have to do with anything? Simple: this is the brain behind my tablet. I am using the Raspberry Pi so that I can code (and do other non-tablet work) on my Asus Transformer. Below are the steps I took:
- Enable SSH on the Raspberry Pi in Raspbian. From this point on, I tunneled into the RPi from my MacBook Pro and left the RPi completely “headless”.
- Give the RPi a static local IP, 192.168.1.xxx. This makes accessing the Raspberry Pi from a local network more consistent.
- In your router’s settings, port forward the ports for SSH and VNC (22 and 5901-5902, respectively).
- Find a Dynamic DNS provider and get a human-readable hostname to map to the external IP of your Raspberry Pi. I used dnsdynamic.org. Use ddclient on the RPi to update this DNS entry on boot and every few minutes thereafter.
- Install your favorite programming languages on the RPi. I installed Java and Haskell. For Java use open-jdk, the Oracle JDK won’t run on the standard Raspbian image because of some floating point compatibility issues.
- Install tightvncserver on the RPi and set it to run on boot.
So what did we accomplish? Well if everything worked (and it did for me, in just a few hours) you’ll be able to get ssh or vnc access to the Raspberry Pi from anywhere you have WiFi. Including (you must have seen this coming) the Asus Transformer tablet!
Apps: TerminalIDE, PocketCloud VNC Viewer ($0)
TerminalIDE provides a great terminal interface to SSH into the RPi. It maps to the hardware keyboard of the Asus Transformer so programming is simple. PocketCloud is one of many good VNC clients for android that allow you to get full GUI access to the VNC server on the RPi when you need it (I use SSH a lot more, personally).
So, it worked. For about $600, I have a device that weighs under 2lbs, has 12h+ battery life, syncs with all of my other devices, and allows me to do everything from read Hacker News to code in Haskell. It’s as good in practice as it is on paper. Email me if you would like a more detailed explanation of any of the above steps.