I have a lot of things to do, for various people, at various times. If you’re anything like me, you find this rather stressful and much of your time is wasted by simply trying to work out what to do next.

This blog post will describe some of the ways I’ve used tools available online to dramatically reduce my stress levels and make sure that I never lose track of what I’m meant to be doing.

The Tools:

This is what you’ll need, and also what I use – of course, other tools exist.

  • A Task List: I use Remember The Milk (free/$25pa) to keep track of tasks – its simple to use, pretty fully featured and I can get at my task list on multiple platforms; web, computer and phone.
  • A Calendar: I use Google Calendar – it’s free, cloud based and transparently integrates with my iPhone, iPad and computer through webcal.
  • ifttt to trigger actions based on certain events and provide extra automation (which I’ve talked a bit about before).

Setting up your task lists

Much of how I use my task list is influenced by this great post over on the Remember the Milk blog, and I’ve made my own tweaks.

Here are the main points:

  1. Create a Personal and Work list to track the day to day stuff.
  2. Create a list for any project or task which can be broken down into more than a few tasks.
  3. Any item which depends on another task gets tagged with “depends”
  4. Create a smart list “not tag:depends” and call it “Next Actions” to give a summary of your next tasks.
  5. Create a smart list “tag:depends” and call it “Review – Pending tasks” to give you an overview of tasks which you can’t do yet.
  6. Create a smart list “(NOT addedWithin:"1 week") AND due:never” and call it “Review – Stale tasks” to help you keep track of any loose ends.
  7. Review the contents of these lists regularly (you might want to schedule a repeat task to remind you).

I also find it helpful to create a smart list called “Today” (“dueWithin:"1 day of today" or dueBefore:now“) to list stuff that has to be done today, or that you want to do today. Before I go to bed at night I go through my tasks an assign myself stuff to do for the coming day.

The nice thing about this is I start the day with a ready made plan of action to work through, and unlike the default RTM “Today” overview view this task also shows overdue items which have rolled over from the previous day.

Setting up the calendar

Google calendar can be used natively or through their (ever increasingly sophisticated) web interface. How you use the calendar should be fairly obvious, but setting it up to use natively or on a smart phone is less so.

Essentially, you want to find the ical link for the calendar you’re using (available under calendar settings) and then link to it on each device.

Done right, this means you can view and add events to your calendar from any device and have it synchronise automatically across them.

This ubiquitousness is important, and it allows you to capture the task’s pertinent information (when, where and set reminders in time to get there) as soon as you find out about an event – meaning you only need to remember the task once, and you will never again double book yourself!

Automate all you can

A lot of the automation is dependant on your tasks and what you need to get done, but here are some ideas:

  • Use ifttt to put things in your task list or calendar based on certain external events – for example, an important blog post, if tomorrow is a snow day or any number of other things.
  • Use recurring tasks to set up maintenance schedules for your car (or perhaps more importantly a self examination routine for your own body).
  • Never let a project go stale by adding recurring tasks to prompt you to drop an item from the project on the “Today” list. Always move towards your goal!

Key concepts:

So in summary, by capturing information straight away and automating as much as we can we never need to lose track of the disparate threads of our lives. The goal of all this being to reduce everything down to a system, one that requires as little thought as possible from you.

  1. Capture the task or appointment into your system as soon as you think of it. I always am either near my computer or iPhone, so this is easy.
  2. Store the information in a place that is secure but available everywhere, so cloud based systems are really handy here.
  3. Automate as much as you can.

Have a stress free day!

Image from the film “Memento”.

For a little while now I have been using the online todo list Remember The Milk to keep track of the numerous disparate tasks and projects I’ve got going on at any one time.

Using lists, tags and smart searches I’ve managed to not only never lose track of a task. I estimate this has made me about a billion times more efficient, and has reduced stress levels a thousand fold.

Additionally, I use the new and increasingly indispensable ifttt beta to automate a bunch of tasks around the internet; e.g. to grab a copy of Facebook pictures I get tagged in, send me an SMS when the there’s a problem on my girlfriend’s route to work, etc.

Every so often something happens on the internet and, rather than undertaking a specific action, you want to be prompted to undertake some appropriate action. Wouldn’t it be sweet if when these things happened you could have a virtual PA drop a note on your daily todo list?

Twitter to the rescue!

Sadly, Ifttt doesn’t have a Remember the milk channel (yet) but, like many web apps, Remember the milk has a twitter bot. If you add this bot as a friend and associate your RTM account with your twitter account you are able to add things to your task list by sending the bot a direct message.

Ifttt has a twitter task, so all you need to do to add something to your task list when an action is triggered is begin the twitter message with “d rtm”, e.g.

d rtm Write about Latakoo’s latest blog ^today #work

You can use RTM markup in your message to control what list it goes to, set due dates etc.

My standard use case is to prompt me to write a blog post in response to a client updating their blog, or to tell me cover my car’s windscreen when it’s forecast to snow the next day. I’m sure there’s much more you can do with it!

Apple Airprint is a technology (a zeroconf implementation under the bonnet) which allows apple devices to detect, configure and print without any overt configuration on the part of the user.

The bad news is that in only works for a handful of airprint printers natively. But never fear, Linux to the rescue!

At this point I’m going to assume that you have a Linux box somewhere on your network acting as a file and print server (pretty regular kit in most geek homes).

Set up your printer

The first step is to set up CUPS on your linux server and then installing the appropriate printer driver for your printer.

I won’t go into detail here as there are numerous guides out there on the wider web, but mostly this is a matter of installing cups and foomatic and then visiting the cups configuration website on the server (localhost:631 usually) and adding your printer.

Make sure that the printer is shared. Print a test page.

One gotcha I found is that my default configuration only allowed connections from the local machine, even though the printer was marked as shared (although frankly I was cheating since most of my computers printed to my server over a Samba relay, but that’s by the by).

Take a look at /etc/cups/cupsd.conf and make sure that has an Allow From from your local network. E.g.


<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.0/24
</Location>

Export the printer

The next step is to install the zeroconf demon, which is called Avahi. This varies from system to system, but on debian this is pretty much a matter of apt-getting avahi-daemon. You may also want avahi-discover so you can browse the exported devices on your network.

Assuming you’ve correctly set up and shared your printers in CUPS the next step is to generate an avahi configuration for it. Thankfully, there’s a handy Python script called airprint-generate, available on github which does much of the donkey work.

Copy the resultant file to /etc/avahi/services and restart the avahi demon.

If your printer is password protected, you will want to add a <txt-record>air=username,password</txt-record> field to the file before doing so. Where username and password is the literal cleartext strings sent.

Profit!!!

Theoretically that should be it. After the configuration, and restarting the various demons involved your printer should be available to the various iOS devices kicking around your network.

Let me know if you have any questions!

Update for IOS6 users

If you are using IOS6 and are seeing a “no airprint printers found” when you try and print (even when ios5 devices can print fine), you must make a small configuration change to CUPS.

Create two extra files in /usr/share/cups/mime:

airprint.types

image/urf urf string(0,UNIRAST<00>)

airprint.convs

image/urf application/pdf 100 pdftoraster

Then restart CUPS before regenerating the avahi configuration file for your printer using airprint-generate as documented in the steps above. Replace your existing avahi printer configuration with this new one and restart avahi.

You printer should now be visible again to both ios5 and ios6 devices via airprint.