Screenshot from 2017-11-19 07-27-25.png

A few months ago, I was introduced to multidisciplinary developer Devine Lu Linvega and his time-tracking utility, Horaire. The idea was simple: track time, see patterns in workflow and creativity, and thus be able to plan work more efficiently in the future. Inspired by this, I went ahead and created my own time-tracking system, which you may download over here for free.

Let me walk you through it:



When you open the Log, you will find yourself in the Overview. It is a dashboard with three columns showing the following information:

Peaks. The Peaks show your peak hours for today and peak days based on previous log entries, which give you an idea of when you are most productive. If you're a new user, these charts may not look so helpful, but as you log more and more, they will start showing patterns.

Forecast. The Forecast predicts what sector and project you will likely be working on today based on previous log entries. It also shows you your peak time for today as well as your expected average SD (session duration). For example, if you consistently work for 30-minute blocks, your SD would be 0.50 h.

Overview. The Overview shows you a timeline of your day, a graph showing your past log activity, and a few stats for the day. We'll go more into stats in a bit.

Sectors and Projects. And lastly, the Sectors and Projects show you a list of the sectors and projects you have worked on today.



The Details section shows more statistical information about your logs — log hours, focus distribution, peak times, sector and project details, etc.

Focus. Focus is defined by 1 divided by the number of projects you work on. For example, if I work on two projects, my focus is 0.50. If I work on ten projects, my focus is split among those and is thus 0.10. The focus chart gives you an idea of how often you focus on just one thing per day.



Screenshot from 2017-11-19 07-30-08.png

The Visualisation is a chart that shows the distribution of log entries in a set time period (past 28 days by default). Each row is a day and each bar is a log entry. The more time you spent on an entry, the longer the bar will be.


Logging Entries

The Log's core feature is, of course, the ability to create log entries. Each entry consists of three things: a Sector, a Project, and an optional Description. To start a log entry:

start "A Sector" "A Project" "A Description"

If you find typing double quotes tedious, there are alternate ways to use the start command:

start A Sector, A Project, A Description
start A Sector; A Project; A Description
start A Sector | A Project | A Description

Once a log entry starts, the clock on the upper-right starts ticking. To end the log, simply type:


Editing and Deleting Entries

Screenshot from 2017-11-19 07-30-22.png

You can edit and delete entries by navigating to the Entries section and looking up the entry's ID number in the table. Once you have it, you can do the following. Be careful with the delete command though; there is no undo (yet).

edit 123 sector "Edited Sector"
edit 123 project "Edited Project"
edit 123 desc "Edited Descrition"

delete 123


Screenshot from 2017-11-19 07-46-41.png

The Log can be customised to suit your personal style. The background colour, text colour, accent colour (indicates current time and day in the Overview), sector and project colour codes, how much history is shown on charts, and the time and date formats can be changed with the set command.

Colour. To customise the interface colours, use the set command and define a hexadecimal or HTML colour name:

set bg #c0ffee
set colour red
set accent #000

View. By default, the charts will display activity from the past 28 days but let's say you only care about seeing activity from the past 14 days. To do so:

set view 14

Time and Date. Time stamps can be displayed in 12- or 24-hour formats. For dates, you have three format options: Gregorian, MONOCAL, and Aequirys. Gregorian is the default format. Ian Battaglia's MONOCAL and Aequirys are perennial calendars based on the International Fixed Calendar. To use them:

set time 12
set time 24

set cal gregorian
set cal monocal
set cal aequirys

Colour codes. Sectors and projects will use the set text colour by default but let's say you want the Code sector to be red or the Novel project to be #283593. To do so:

set sector "Code" red
set project "Novel" #283593

Colour modes. The colour mode determines how the chart data is colour coded. By default, it colours entries using the sector colour codes.

set colourmode sector
set colourmode project

Import and Export

Your logs, personal preferences, and colour codes are stored in a JSON file. If you already have an existing log data file, you may import it by dragging and dropping it into the Log app or by using the following command:

import /home/absolute/path/to/yourfile.json

To export, and I urge you to do so regularly for backups, simply type:



Logging and time-tracking has helped me a lot. At the time of this writing, I've been successfully working on something productive every day for the past 55 days, totaling to ~280 hours of focused work. But I do have to say that this is not for everyone. This system was built around the spontaneous work patterns of someone with the attention span of a sparrow's. If you're like me, then this might help you as well.

This project is open-source and its source code is available on GitHub under the MIT License. If you have any thoughts, comments, suggestions, or you just want to say hello, you may contact me either here or over on Twitter.

CodeJosh AvanierdevComment