WHID - 20th anniversary edition
I am happy to announce a totally rewritten version of my most useful software application ever - the definitive time tracking application for freelancers and Intependent Contractors - What Have I Done (or just Whid).
The new version is available (in Beta) for Linux, macOS and Windows. It's free, contains no ads, does not track you, and stores your data on your local computer. (There is no cloud you know, it's just someone else's computer).
In 1998, I felt that I totally lost control with my time. My Free/Open Source projects lagged behind their time-schedules, and I was unable to account for how I spent my time. In addition to Open Source, also needed some way to keep track of the time I spent on commercial projects. I spent a few months writing a small program in C++/MFC/stl that kept track of my time usage, learning the C++ template library, and using the native Win32 API. I named the program War Time Manager (wtm), and the intention was to release it as free software. But my experience with free software at that time was not too good. Releasing something meant lots of work; all kinds of weird people would contact me for support or “business opportunities”, and I simply had far enough of this constant rush with my existing software. So I used the program myself and only gave it away to a few friends and customers.
In the spring of 2006 I read the book “User Interface Design” by Soren Lauesen, and a single illustration in that 600 pages brick inspired me to think about a new time tracking application. Wtm was able to do lots of things, but it was unable to give me a quick summary about my current status. The example in Sorens book was so obvious, and elegant, that I simply thought I want that! In stead of just implementing the feature in wtm, I decided to make a new multi platform application, backed by a proper database engine.
Illustration from the book "User Interface Design" by Soren Lauese, page 123.
I changed the name to What Have I Done (WHID), and released the application as Open Source in December 2006. It supported MySQL and SQLite for data storage, used wxWidgets for the GUI, and I was quite happy about it. Especially since I had long ago switched to Linux on my desktop, and really hungered for a naive Linux version.
3. The idea behind WHID
The ideas behind wtm and Whid is very simple: When I start to work on a project I click on the project and the “Start New” button. Then a time-meter is running until I press the “Done” button. If I am interrupted by a new task, I click on that task's project and press the “Start New” button again. The previous meter for the previous project is put on hold, and the time-meter is running for the new task. When I press the “Done” button, the previous project becomes the current project, and it's meter is running again. If I take a break, I press the "Suspend" button and the meter is put on hold. No matter how many tasks I have open, only one can be active at any time. The stack of started tasks is also useful to quickly resume work where I left off before the interruption. It kills a lot of procrastination off before it even gains my attention.
WHID is also a program designed for people who work with projects in an office. People like me. I'm lazy, and therefore I've made WHID as easy to use and foolproof as I can. I like to work with my source code. I don't like to to write lists of hours or bills or really accounting at all. As a master procrastinator, Whid reminds me about what I am supposed to do, and how little I have actually done so far, today. I am much more efficient when I use it, and I alway have been. For 20 years, it has by far been my most useful piece of software. (In those 20 years, I have written roughly 10 million lines of code. The current version of Whid is less than 4000 lines. That's something to reflect on - not just time spent, but how and on what we spend our time and efforts).
The 20 years anniversary edition
After the release of Whid in 2006, I have used it to track my time, not to spend my time. At some point it became hard to compile it for new versions of g++ and Debian. For many years, I ran the old Windows version in a Virtual Machine. Every day I thought that I ought to spend a few days to shape up the source code, but there was always something more urgent.
Until two weeks ago. I was really fed up by having to boot this Virtual Machine every time I rebooted my PC. So I asked myself - can I re-implement a working version of Whid, using QT, in just one week? Actually I challenged myself. I have not written a QT Desktop Application before, so it was also a nice opportunity to learn something new. The answer was yes! So in stead of doing what I was supposed to do, I spent one week re-implementing Whid, having a great time, like I did in 1998 and 2006. Few things gives me more pleasure than writing great software that I really need for my own use.
Since - after all these years - nobody else has cared to write a time tracker that works well (my way), I decided to spend another week to implement the last 10% of the features and add the finish that makes an application useful for other people. So now, two weeks later (and almost 4000 lines of code richer) I am ready to launch the 20 years anniversary edition of my time tracker application!
I will implement new features as I need them. The project is now on github, so you and other people are free to check it out and send pull-requests - if you are a software developer - or just file issues regarding missing features or bugs.
Version 2.0.2 beta 1
Release date: 2018-01-31
- Windows installer: whid-2.0.2-x64.msi
- macOS package: whid-2.0.2.dmg
- Linux: Debian and Ubuntu packages
I have also recorded a short 12 minutes video to show how the application work. It's compressed down to a reasonable size, so the images are not razor sharp. Introduction video.
Please create an issue on github if you experience any problems.