So for a very long time now I’ve always liked planning and scheduling things. I don’t know why I even wrote my own website to schedule the synchrotron station which I worked on. I even dabbled in using the many, many planning and tasking tool around. This blog is a sort of roundup of tools I have used and do use.

Post-it-Note Method

20130328_115530.resizedFirst of all there is the post-it-note method. For some reason it is often nice to have a stack of post-it-notes, or post-its as well sometimes call them, and to place them on your desk for the next one to two weeks. Yes that is correct stick 6 to 12 post-its on your desk side by side and write down the date on the top of each one. Why 6 well I normally split the first one into Saturday/Sunday and the rest are the “working week”.

Then you write down all your tasks in no particular order other than the day you want to get them done. It is worth taking this approach as well - find all your meetings and put them on the correct days. This instantly shows how much time is gone from that day. Using the post-it is good because they are not too big. I should state I am talking about the square ones not the rectangular ones at this point. It limits the day into a sensible number of tasks and by doing so makes them achievable. But there is a drawback you can’t really take them home with you and people sometimes write messages for you on them and that ruins the whole thing. But seeing the whole week in front of you is really useful. It is nicer I feel than a paper diary for planning.

Ok so that is a simple weekly plan but really we often grow past these things don’t we. So what next?

I was always taught with planning that it is important to fill your jar in the correct order. A very good friend in fact gave me that exact advice. So I will break it down for you.

You have a jar the volume of which is up to you it could be one day, one week or one month. Then you have rocks, gravel and sand. The rocks are the milestones the BIG tasks that are very important. You see you can think of a task as being small and quick but its relative size also needs to have a concept of importance. Paying your mortgage for example is small and quick in terms of time and effort but it is a very important task. Ok so you’ve put the rocks in the jar. This has already reduced the volume of your jar. Now what. Well next comes the gravel these are the other tasks which have an importance and will take up time. Then you add the sand - this is everything else. What you can not complete you don’t try. That is for another jar and if it wasn’t then it would escalate up to becoming gravel as say a deadline approached, etc.

So what tools are there to create our jar?

Microsoft Outlook Task

Lets not go there I use to use Outlook a million years ago and with it I used the task function a lot. Never really worked for me though. So I will skip it.

Google

Yes the big G. I have always found it odd that Google has a great calendar system with tasks but no native phone app to access it. Now there is an app. I’ve not used it so we will skip that. But I have used Google for planning. I think a centralised calendar is really useful. Especially one with alarms. I’ve used my Google one for ages and have it linked to my phone etc. Likewise my Evolution email client or PIM (I guess Linux Outlook) has access to it and it also has a task system. But I don’t use its task system either. In fact I used to use a simple document. Back when Google docs was docs and not gdrive I would start a document and on it schedule with the aid of my calendar the months big tasks and objectives. I would then break them down into my weekly jobs and tasks from there on in. Great when you know you have a lot a head. The doc can be edited locally and sync’d online later - another plus if you are on the train and you can email it to yourself and add and tweak things when you remember. Say when you are about to go to bed and just want to add something on your work to-do list. Now we have reached a to-do list. Which I guess the post-its are but they as previously mentioned are not a really portable thing in some respects?

And this is another reason why having tasks in your email client such as Outlook or Evolution is bad in that if you just want to add a quick to-do to something but then you’ve got your email open so why not take a quick look at your work email and then it is 05:00 in the morning you’ve worked all night and are tired and must go to work to work some more. Great but being tired makes you less productive so lets say no to that shall we.

So I’ve kept my document task system for a while now. It is a pain to fill in on the phone but still you can use other phone apps and then update the document later. I’ve also been wanting a new way of doing things. So I started to look at other task management tools. Not the most interesting thing to search for on Google.

Time Tracker and Getting Things Gnome

Both of these programs are in the Fedora repo and a quick yum search flags them straight away. They take seconds to install and once up and running you get to grips with their operation pretty quickly. You may now ask “Why are you putting them together”? Well the answer is that is the experience I have had with them. You see that Getting Things Gnome (GTG) can talk to many other programs including Evolution and Tomboy-Notes. It has a hook into the Evolution-server backend which became part of Gnome-shell and is when it works a brilliant way to centralise and sync data.

An aside on Gnome and Evolution-data-server (forgotten the actual name):

For example items in your calendar could be your Google calendar or local will show up in the Gnome-shell desktop-clock/calender thing at the top of the desktop (when it works - like right now it is not for me). Then if an alarm is set for an event it will trigger an alarm on your desktop, phone, pad whatever. Great.

End aside.

I did find using GTG a bit of a pain and I’ve never really got to grips with tagging and I didn’t really like the noting field. In fact in the end after populating GTG pushing the tasks to Time Tracker (TT) I just ended up using TT. But TT is not really to schedule your jobs but more to record the time and by definition effort you have spent on a task. In fact I would jump back on TT at anytime where I need to record my hours on projects etc. It is really nice and simple. I do understand the tags in this case and I also like the little breakdowns and summary information. No idea how to export it but it is nice. It is lacking in not being integrated into the new Gnome-shell very well but I used it for a couple of months quite happily. Where as I completely gave up on GTG and moved to using Gnote which is a faster port of Tomboy-notes but something which is really just a local post-it.

I was at this point getting interested to see what else was in the Fedora repo and did another yum search and came across a few more packages.

Todo2 or Devtodo2?

Now this is a command or CLI tool. Most people would run a mile but I am use of CLI I spent most of my life working there with shelxs/l and I guess that is why I like Linux. I’ve always got a terminal open on one desktop for one thing or another. So I fired it up. Now to me I didn’t like the data storage mechanism. It needed a directory to store the notes in. I have directory called tasks in my Documents folder (sorry I use directory and folder interchangeably)  so I put it in there. I gave a couple of task inputs and well just couldn’t get into it at all. Normally I will stick things out and come back to them later but even with this I didn’t. So I guess I better should again at some point.

I did recently go back to todo2 and found that I was wrong about the directory it stores things in a .todo2 file within the directory so that could be your $HOME just as it could be a task directory. It is a rewrite of the older todo and so far appears to have gained in speed and shrunk in size but at the cost of functionality at the moment. However I would now say a simple CLI this maybe the place to look (but read on).

Whilst I was searching for help and info on ToDo2 or Devtodo2 which I think people recommended using svn to sync - could be wrong I found TaskWarrior.

TaskWarrior or task

Instantly with TaskWarrior or task as it is called from the CLI - arrgh yes it is another CLI sorry but I do like it - I was stuck. I couldn’t do anything. In fact it turns out that in some distant past I had installed another GUI based task manager which was a frontend to task and had created all sorts of config files but which were all a bit out of date. So purging the old config files was easy. Everything config based lives in .taskrc and all its data lives in .task or in a path specified by the .taskrc. So far back to a clean install and again I was getting no where fast. A quick Google and straight on to a 30 seconds tutorial. After reading that I was good to go and had already add a few jobs/tasks. I will reenact that moment for you:

task add Write blog about taskwarrior

You see how easy that was. Then typing task (which is an alias for doing task list) gave me a list of all my tasks. The problem was the colours weren’t really setup for a white gnome-terminal. But again a quick Google and I found loads of useful help and advice on the taskwarrior website on how to change colours.

After about a week things began to annoy me though. I wanted to schedule and organise my tasks more so I went back to the tutorials and had another quick read.

task add Write blog about taskjuggler due:thursday scheduled:wednesday wait:tomorrow +blog

This command means my new task will be due on Thursday (yes it automatically converts that to a date) it will be scheduled to start on Wednesday and it will be hidden by the “wait” until tomorrow which in this case was Tuesday.

Screenshot from 2013-03-27 20:51:04

The +blog meant tag it as a part of the blog tags. Great stuff. You can modify a task at any point with

task 1 modify due:Friday

This would change the due date on task 1 to Friday. Or you can do

task 1 edit

And by doing so edit a load of different parameters at once. Nice.

It has the ability to be sync’d across ssh so you can have multiple machines keeping a task setup and better still there will be an app and a server version (both in beta testing I think). So brilliant. Well sort of there are drawbacks. For example if you setup a recurring event by using recur: then you can’t hide the recurring events. You can but only the first one with a wait once it has been done that triggers then next one into existence and that appears on your list even if it is months away. It is smart to know things like sow, eow, eom, etc but you can not do other logic and variable substitutions like:

task add Buy milk due:Friday recur:Weekly wait:due-1day

Which is a shame. You can have times something I’m just getting sorted out so you can have a date and time but once you start that you can still use today, tomorrow, friday etc but a specific date will fail without the time being included and this leads to some things with midnight stamps and others with times and no quick dating method so no “due:Friday@08:00” which would be brilliant unfortunately.

This is my current config file:

# [Created by task 2.1.2 3/18/2013 09:53:27]
# Taskwarrior program configuration file.
# For more documentation, see http://taskwarrior.org or try 'man task', 'man task-faq',
# 'man task-tutorial', 'man task-color', 'man task-sync' or 'man taskrc'
# Here is an example of entries that use the default, override and blank values
# variable=foo -- By specifying a value, this overrides the default
# variable= -- By specifying no value, this means no default
# #variable=foo -- By commenting out the line, or deleting it, this uses the default
# Use the command 'task show' to see all defaults and overrides
# Files
data.location=/home/user/.task

# Color theme (uncomment one to use)
#include /usr/share/doc/task/rc/light-16.theme
#include /usr/share/doc/task/rc/light-256.theme
#include /usr/share/doc/task/rc/dark-16.theme
#include /usr/share/doc/task/rc/dark-256.theme
#include /usr/share/doc/task/rc/dark-red-256.theme
#include /usr/share/doc/task/rc/dark-green-256.theme
#include /usr/share/doc/task/rc/dark-blue-256.theme
#include /usr/share/doc/task/rc/dark-violets-256.theme
#include /usr/share/doc/task/rc/dark-yellow-green.theme
#include /usr/share/doc/task/rc/dark-gray-256.theme

# Holidays
calendar.holidays=full
dateformat.holiday=YMD
include /home/user/.task/holidays.en-GB.rc

# Setting date format
dateformat.report=D/M/Y H:N
dateformat=D/M/Y-H:N
dateformat.annotation=D/M/Y
dateformat.edit=D/M/Y H:N
dateformat.info=D/M/Y H:N
color=on
color.alternate=on grey21
color.due.today=white on red
color.overdue=white on red

# Syncing to Pi
push.default.uri=someuser@someserver:.task/
merge.autopush=yes
locale=en-GB

I’ve changed my id to be user (bashful). Ok so I’ve not played with other colour schemes - I should but I’ve not and I’ve tweaked my own but I don’t like it too much to be honest.

I’ve also used a perl script that comes with task to pull all the national holidays down so that when I do task cal my calendar shows them in yellow!

Ok just a few more things and then well my task list says big planning tools (next blog post). Dependency and projects. I’ve tried task with projects and I am uncertain if they are good or bad. You can use them to rapidly filter a thing but so can tags so I am in two minds on that. The other thing is dependency or child tasks. Now task is smart and knows if you say a task 1 “depends on” on task 2 being completed then it would say task 2 is blocked until task 1 is done. You can even filter for blocked tasks. Again I think there is probably more to task. Such as durations and ordering (there is obviously a H, M, L priority listing).

One last thing I added quite recently was:

# Custom Reports
report.today.description=Todays Jobs
report.today.default=status:pending
report.today.columns=id,status,project,priority,due,start.active,due.countdown,tags,description
report.today.labels=ID,Status,Project,Pri,Due,A,Countdown,Tags,Description
report.today.sort=due+
report.today.filter=due.before:tomorrow status.not:deleted,completed status:pending or due.before:tomorrow status.not:deleted,completed status:waiting

This is a custom report which basically shows only “todays” tasks and orders them by the time they are due. How easy was that to write and by typing “task today” I get the result straight out. Actually not that easy because I also wanted to show the waiting tasks. I found that depending on how I filtered the searches such as due:today or due.before:tomorrow due.after:yesterday type of things I would loose results for no obvious reason. Also ORDER is very important - something it is easy to forget about. Now I am sure there is a better way to do this and if I asked someone on the TaskWarrior website they would tell/help me but my registration is stuck just like my http://openmicros.org/ one so it will have to be twitter and IRC (I’m not bitter I run a forum so I can understand the logistics)!

Update (01/04/2013): My registration with TaskWarriors website became unstuck but this lead to more confusion. I posted a bug about the above need to restate the clause twice for the “or” and got an almost instant reply. The response pointed out a mistake in my syntax that should read:

report.today.filter=due.before:tomorrow status.not:deleted status.not:completed status:pending or status:waiting

But this lead me to even more confusion as when I tried to do a (A or B) and C term it completely failed and so I am using the term above and have posted for more advice on the TaskWarrior forum. This has slightly dulled the shine of TaskWarrior as I just realised I spent about three hours trying to get to the bottom of this filtering rather than doing something productive!

I’ll probably do an update at some point - with pictures. For now I will say goodnight/day and say the next blog is on planning and Gantt charting for projects, proposals and life.