Alexito's World

A world of coding 💻, by Alejandro Martinez

Time tracking in plain text

I've been always a big fan of productivity, time is gold. But funny enough, as many other people, we fall into the traps of being productive by just spending more time on looking for tools and solutions to be more productive. This is not a bad thing per se, but it can end up being. You may end up having a false sense of productivity because you improve your workflows and tools. But, in reality, the only thing that matters is the output of your work and, specially, your happiness.

One of the interesting aspects of this productive world is time-tracking. I'm sure you all have listened many podcasters or internet gurus talk about this for hours. There are many tools out there that promise many cool features. But at the end of the day the only important thing is to have your time tracked.

Personally, one of the questions I always ask with any of these tools is, where is my data? What can I do with my data if I don't like the product after some weeks? Usually these are the type of questions that don't our friends at Silicon Valley don't like to answer.

Luckily there is a simple universal old solution for this, plain text.

A format that is open, that can be read from almost any computer out there (although Unicode doesn't make it easy) and it has the best chance of being able to be read in the far future.

For a long time now I've been tracking my time in my projects simply by writing it in a plain text file in the project root folder. This is more than enough for my needs and the best is that I don't have to think about the tool that I use to keep track of time. I can edit the file with any text editor or even just use the command line to append new time at the end of the file. And what about sync? Or being able to access it from any device? Again, simple. My projects are usually in Dropbox, so the file is automatically sync and accessible from anywhere. No dark magic necessary.

And one of the advantages of this is that is super easy to build tools around it. When your data is stored in plain text files, anyone can write some quick scripts to manage it. That's how PlainTimer started. It was a simple Swift script that I wrote in hour and a half. How do I know it was one hour? Well, because I tracked the time with it! 🎉

After using it for months and with a better way of building Swift command line tools I decided to refactor it a little, add some unit tests and, obviously, open source it. I'm not sure that anybody else is gonna use it at all, but as usual what I built, I do it for myself and it does exactly what I need. There are a bunch of tools out there that do similar things, so even if you don't use PlainTimer I recommend you to thing about using more plain text in your life. Is really sad, but it keeps being the best format out there.

I realise that I put time to build a tool for my productivity. Funny. In my defence, I just want to play with Swift 4 all day 🙃

If you liked this article please consider supporting me