I love my iPad, it’s a great, very portable device that I can use for almost everything. Unfortunately the almost for most people is a deal breaker – but I’m stubborn and see these things as a problem to be solved rather than a reason to use another device!
One of my most frequently used “tools” are servers – if you can call a server a tool. This blog runs on one, as does Automation Orchard, as well as a lot of little scripts which make my life easier. Unfortunately having an entire server running locally on an iPad isn’t quite possible yet – apps like DraftCode Offline PHP IDE are fabulous and can even run WordPress – but sometimes needs must, and you need something that is less restricted. This is where my Raspberry Pi Zero W comes into play.
The Raspberry Pi Zero W, for those of you not familiar with it, is an extremely small headless computer – it doesn’t have a screen – indeed when you buy it you just get the board, that’s it! The hard drive is a micro SD card, and it sports a few ports – 2 micro USB (one for power), and a mini HDMI. How on earth can you connect to that with an iPad?
The answer is not the shortest or easiest, but it does sound simple: wifi. I have set my Raspberry Pi up so that when it boots up it creates a wifi network, of course this doesn’t create an internet connection, but that’s not what we’re after here. I won’t go into the steps of setting this up here, instead I recommend you follow this guide: Setting Up a Raspberry Pi as an Access Point in a Standalone Network (NAT)
The other part I needed to do was to make sure the Pi would always have the same IP address. This allows me to use use Workflow to control it via SSH, and connect to it with Coda which lets me hook right into the device and has great syntax highlighting. As I mostly program for the web with PHP I use Coda in split screen with Safari which I can refresh to see the results of what I’m doing.
I use a CMS called Grav, and they have a nice little guide to help you set up the Raspberry Pi to run it – there are guides to set up most CMS on a Pi if you look.
Why would I do all of this over using something like Linode or Digital Ocean, you might ask. It’s a very simple answer: internet isn’t always a given. I travel a lot, and most of my flights do not have wifi (and those that do charge a fortune for it). Even trains go through tunnels where you lose your connection. If you always have wifi or cellular data then you can avoid carrying a tiny computer, cable and battery pack along with your iPad, but if you don’t then this is a very small combination that gives you a lot of power.
Hardware in use: