A Day on the iPad Mini
Today, I ran something of an impromptu experiment with my iPad Mini. I kinda forgot to charge my laptop before heading out the door this morning, and had to run a few errands along the way. So as I bounced from cafe to cafe for breakfast, second breakfast, lunch, and a late afternoon tea, I used my iPad mini as my primary development environment. It's kinda fun to sit there with a wireless keyboard, a cellphone, and a screen smaller than the keyboard to get work done. You'd think that the small screen size would matter, but when you're on cramped cafe bar seating, all of a sudden you find moving the screen away from the drink and the keyboard to be liberatnig.
Now the funny thing about the iPad mini is that is vastly more powerful than the terminals that the software I use on a daily basis emulates. For connectivity Panic's Prompt turns out to be much nicer than iSSH for day to day work. In fact, the only time that I bring out iSSH is when I want to VNC to one of my machines at home. Even then, using VNC is rather painful with two thumbs, but that's usually enough to kick off a stopped process or shutoff the TV. I've been tempted to write an application using Two Lives Left''s Codea, which with the inclusing of XCode export has just become pure awesome, to manage all of the backend proceses I have running on my machines at home, but have yet to find the time. Considering Codea's bindings are in Github, there's ample reason to explore using them for a few projects I've been toying with for a long time. The best part, it will just work!
The tasks I tried to do today were pretty substantial too, so this activity wasn't an idle exercise in using gross inappropritate tools:
- I setup a RabbitMQ cluster in Rackspace's public cloud
- I then configured 3 federated exchanges for realtime data feeds
- I spent a considerable amount of time looking at tcpdump output debugging connection issues
What this meant in practice was:
- 3 terminal windows
- 4 browser tabs
- email & chat
- some light documentation in PDF format
Switching between tabs and terminals was done by tapping the appropriate tab in the interface. Asside from some network timeouts when I had shoddy cellular coverage in the bowels of one coffeeshop, I didn't have any trouble bouncing through the windows. On the servers, I used screen and tmux to make my life easier, so that I could have multiple windows on a single machine. Surprisingly, the 101x30 width terminal emulator with the medium font, can be terrible effective when debugging log files and entering the occasional commands on the CLI. The browser windows themselves were no different from the desktop, and since 1/2 of them were AMQP server management interfaces which update every 5 seconds the responsiveness was pretty impressive.
The hardest bit to manage was actually chat, as I'd often disappear for long periods of time, not wanting to lose my train of thought. I tended to ignore the messenger and notification center, until someone I had asked a question of answered. At that point the notification center actually became terribly useful. Avoiding distractions is one of the hardest things to do on the desktop. I can see where for certain types of work, in which I put my terminal in full screen mode, the iPad does the exact same.
The nicest bit however was probably lunch. I put the keyboard back in my bag, and read 3 papers while eating. Being able to keep up on journal articles in your field over a hearty lunch, and not feel like you've plenty of room for the 3 courses and 2 drinks on the table was a novel experience. Add that to the fact that after a full day of use, as I'm typing this I still have 39% battery power, that's pretty incredible. My daughter was also playing video games on it this morning before I left, and I watched a few videos before putting the kids down for bed.
I'm absolutely convinced that the future of computing lies in lots of small connected devices, often distributed all over the world. What is amazing about this eco-system is that a $330 computer and a decent ($80) bluetooth keyboard can totally replace the need for a $3k development system. With a handful of rented servers (at about $30/mo) you can power all of the development of rather complex software. Since all of the devices in question are also redundantly backed up to other storage nodes in geographically distributed storage systems, there's very little worry about data loss. In fact, I'm becoming more concerned with being able to delete all of the copies of my data that are out there somewhere in the Internet. Probably nicest of all, the keyboard and iPad mini take up no room in my bag, and should they be stolen or broken, they are replaceable with out major impact to my monthly budget. That level of reliability and availability makes it very hard to justify buying another gas guzzling laptop. Instead, I'm now much more interested in buying a farm of Mac minis to work as a distributed build farm for the Codea projects I'm starting.