The Code Train

Where Neil Crosby talks about coding on the train…

RSS Entries

Five ways to make offline working easier

Posted on October 28th, 2008 by Neil Crosby. Filed under Blog Posts.

Nowadays an “always on” existence is far less of a pipe dream than it was even a year ago. Usable wireless hotspots have popped up everywhere and many of us have data tariffs on our mobile phones. It’s no surprise then that many people simply expect to always have a network connection and become flummoxed when this is taken away from them.

Not having a connection to the outside world shouldn’t be a blocker to getting work done though. On my commute to and from work I have no internet connection available to my laptop and it really doesn’t stop me from getting anything done. In fact, being disconnected from the cloud actually helps to free my mind and reduce the distractions that so often occur when I am connected.

A few people have asked me what my setup is for working on the train, so here’s a brief rundown of what I have on my laptop:

A Development Environment

For me, this is MAMP, a simple installation LAMP setup for the Mac. I personally currently run MAMP Pro, which costs money but gives me an easy interface for creating Virtual Hosts which I find very handy.


Just as important as the development environment is the documentation to go with it. If there’s a language or tool that you use that has documentation available for it then download it – you’ll regret your decision not to if you need it and you’re away from a network connection.

Because I write a lot of PHP and it’s a little inconsistent in its naming conventions I’m constantly in and out of the documentation. I find the PHP Function Index application invaluable on the train, as it makes the PHP documentation searchable and also allows you to download and keep an offline copy of all the user comments from


Right now I’m working in MarsEdit, the really rather nice blog entry writing tool. It allows me to write entries for multiple blogs, store them locally and sync with the blog servers when I have a network connection. It has built in support for Markdown (which matters to me) and gives a nice preview of your entries as you write them. I really wish it would let me turn on a column to show the “Post Status” of my entries though – it would make finding the half finished things so much easier.


I’ve only just started using git (check out my profile on GitHub), but it’s looking like it should fit my usage nicely. Working on the train means that there are plenty of times when I solve a problem and then want to move on to a new one. With my previous setup of an SVN server on a completely separate machine I couldn’t commit my code before starting the second problem. With git though, I can commit any changes I want locally and then upload them to an external server later at my leisure. Apparently, I can even use git on the train for intermediary commits and then commit back to my normal SVN repository when I get home.

A backup network connection

Of course, there are times when you really do need a network connection and then a phone with a decent data plan really comes in handy. On those occasions though Sod’s Law will apply and you won’t have any signal. When that happens I just sit back, relax and move onto something else.

Tags: , , , , , , , , , ,

If you enjoyed this post, subscribe to The Code Train and read more when I write more.

4 Responses to “Five ways to make offline working easier”

  1. There are also times when you, I suppose, type in “TODO:” insteard of a URL because you’re offline, then sync to your blog before replacing them with the real thing. cough


  2. Why yes, yes I do do that occasionally. Of course, I left those in there to test you :D

  3. I’ve moved away from MAMP-like things on my Mac, and instead do all my development in a Linux VM running in VMWare Fusion. It has much win, especially since using Samba or NFS means the file system Just Works™.

  4. I’m looking like I’m going to be moving away from MAMP “at some point” as well, just so that I can have a dev environment that can emulate my final deployment environment as closely as possible. For now though MAMP mostly does what I need it to do.

Comments RSS

Leave a Reply

TheCodeTrain Theme by Neil Crosby, Powered by WordPress