Tips for being a productive developer while traveling

Now that I have been traveling for the last 6 months I have picked up some tips for staying productive while on the road.

  1. Carry a notebook – Not your laptop, but an actual paper notebook. There are many waiting moments while traveling. Waiting in line, for a bus, at the airport, for food, etc. Having a notebook handy is perfect for putting down notes and ideas when things come to mind. Capture all those ‘aha!’ moments.
  2. Create a todo list – Since most tasks I need/want to get done require me to be on the computer I like to plan out goals before my next working section. That way when you sit down for some work you can get going right away. Also, when you are on the road you can go over your todo list and refactor it, optimize it to make best use of your working time.
  3. Seek out WIFI – In south america this could be difficult at times. Many places advertise WIFI but don’t actually have it in the room, or have it strong enough to be usable. I would keep my iPod touch handy when looking at rooms or cafes to verify I could get a good signal.
  4. Have something to test on the road – For my HTML5 flashcard app I would target to have something ready for me to use when I was on the road. Since the app worked offline, I would make sure to load the latest version on my iPod touch before heading out. On long bus rides or flying I would use the app and note features I want to add or change and test it to death looking for bugs or ways to break it.
  5. Get plenty of rest – For some reason, on long travel days, even though most of the time can be spent sitting, is tiring. Trying to work while on the road seems to tire me faster than normal. Sometimes, rather than trying to be productive your time might be better spent simply getting rest and relaxing until you can get to a proper setup.

What are some things you do to be productive while traveling?

Travel expense stats

For the last 5 months during my travels in South America I have recorded every expense. From hostels to cab rides to buying candy on the street, I record it in Gnucash. It has been draining at times to keep up with this but I find it interesting to make random graphs and charts, like this:

Spending per day in Colombia

Total expenses by category

Since Gnucash stores all of the data in a sqlite database, I can also query it for random stats to see how much we have spent on:

  • Twix: $16.26
  • Starbucks: $46.55
  • Laundry: $24.36
  • Dinner: $670.11
  • Buses: $857.69
  • Cabs: $107.73
  • Beer: $76.58

Or even just silly things like the number of transactions that contain the letter ‘a’: 608

After exploring the database schema that Gnucash uses I found that the main tables I needed to look at for stats like this were the accounts, splits, and transactions.

Most stats that I got above were calculated using a query similar to:

select sum(s.value_num) from accounts a, splits s, transactions t where t.guid=s.tx_guid and s.account_guid=a.guid and a.guid='b2548da9122135502dcb36ed8ba6c393' and t.description like '%twix%';

Where %twix% searches for transactions that have ‘twix’ anywhere in the description.

And ‘b2548da9122135502dcb36ed8ba6c393‘ is the unique id (guid) of the account that I am searching.

Now I wish I had stats for how much time I have spent on this…