Whid is a simple application that keeps track of time. You can use it to see what you actually did today, or you can use it to keep track of time spent on projects. It can also print invoices.
In 1998, I felt that I totally lost control with time. My Free/Open Source projects lagged behind their time-schedules, and I was unable to account for how I spent my time. I also needed some way to keep track of the time I spent on commercial projects. At that time I also wanted to learn more about C++ and the Standard Template Library stl. I spent a few months writing a small program in C++/MFC/stl that kept track of my time usage. I named the program “wtm- War Time Manager”, 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 kind of people would contact me for support or “business opportunities”, and I simply had far enough of this constant rush of emails with my existing software. So I used the program myself and only gave it away to a few people I knew that were in need for it.
In the spring of 2006 I read the book “User Interface Design” by Soren Lauesen, and a single illustration in that 600 pages book inspired me to think about a new time management 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!”.
The idea behind Whid
The idea behind WTM and WHID is very simple: When I start to work on a project I click on the project and the “Start” button. Then the meter is running until I press the “Done” button. If I am interrupted by a new customer, I click on his project and press the “Start” button again. The previous meter for the project is put on hold, and the meter is running for the new one. When I press the “Done” button, the previous project becomes the current project, and the meter is running again. If I take a break, I press the “Pause” button and the meter is put on hold.
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 accounting at all.
When you create a software package - you must have some design goals in order to pick the right technology. The Design Goals defines the phremises for how the application is created.
- Multi-platform. I use both Linux and Windows, and need to use the application on both.
- Three-layer Client/Server design. - Also a full separation between the user-interface and the business-logic. That means more work while the application is made, but makes it a lot easier to maintain later on.
- SQL database storage. The problem with WTM was that it stored all data in memory while it was running, and after a few years it started to consume too much memory.
- Multi-user, so that it can be used by a company with more than one employee.
- Simplistic. The program must be good at what it is designed to do and nothing else. There is to much bloatware out there.
- Multi-language support. It must be easy to translate the program into new languages.
How Whid is built
This is the current status of how I have met the Design Goals for Whid.
- GUI (Graphical User Interface) based on wxWidgets. This is a multi-platform GUI toolkit that makes it relatively easy to use the same C++ source code under Windows (Microsoft) and Xwindows (Linux).
- Multi-language support is handled by wxWidgets/GNU gettext. The log-file and some critical error-messages are in English to simplify support. The initial release comes in English and Norwegian.
- ICE (Internet Communications Engine) as middleware. This is a toolkit that separates and encapsulates the business-logic. Currently I run the server and client in the same physical application, but it is easy to separate the two in a future version if the demand should arise. It also have the nice side-effect that the program can be scripted with C#, Visual Basic, php and Python! The business-logic is easily available for other programs, and a web-counterpart is therefore very easy to make.
- Database abstraction trough “warlib” (my C++ library). The default database is “sqlite”, an embedded SQL database that keeps its data in a single data-file. MySQL is also supported, and this is what I use (it's a lot faster than sqlite, but require MySQL to be installed somewhere). Data can be migrated between the databases trough the database backup/restore feature.
- The initial release is for Windows. The application compiles and runs under GNU/Debian Linux “etch” and will soon be available as pre-compiled binaries for Debian. But I have to fix a few bugs before the Linux version is released.
Whid is free, lisenced under the GPL license. See www.fsf.org/licensing/licenses/gpl.html for details. The source code is available for download.
No spyware or advertizing
There is no spyware, surveillance, tracking, pop-up ads or any other nasty threats in any software from Jgaa's Internet. If you don't believe me - the source code is distributed along with the applications, so you can check for yourself. That's just one of the many advantages with free software.
- Very easy to use
- Multi-language support (currently English and Norwegian [bokmål])
- Can keep track of time on ongoing projects just by pushing one button
- Flexible (optional) invoicing of time spent on customer projects
- Powerful rules for rates (how much to charge for time spent on projects)
- Click one button to see the status (progress) for the current week
- Reports can be outputed as XML - makes it easy to format the reports any way you like
- Very powerful (but currently undocumented) external scripting interface for C#, Visual Basic, Python, Java and php5. Can even be used by C++ programs tio access Whid's internals.
- Single or multi-user mode
- Can store it's data in a singe file (Sqlite) or use the MySQL database engine
- Backup and restore in XML files
See also the todo-list.
I've written a users manual for Whid
There are several options available for support (you have already used a search-engine to find a solution for your problem, right?)
- Sourceforge. WHID has moved to Sourceforge.net. Please use the trackers for bug-reports, support-requests and suggestions. Please use the forums for community-help and general discussions around this project.
- Commercial support. I'm running a company who will provide you with commercial support.
- Single support-case: A single priority support-case costs 70€. Contact me on email to open a support-case.
- Custom features in Whid: I can extend and customize WHID to meet your specific requirements. Features purchased by one company will normally go into the Open Source version in the next release so that everyone who use the application can share the benefit.
You can contribute to the project if you want.
- Spread the word. Free software is not advertized on TV. An applications success depends on it's users spreading the word. If you like the program, tell people about it. Write a blog-entry about it. Link to it. Suggest it whenever someone needs an application like this.
- Report problems and Suggest features. This is the most valuable contribution anyone can provide. Good products are not created by brilliant developers - byt rather by ordinary people who gets over their frustration with the product and suggest improvements, rather than just throwing it away.
- Write, improve or translate the documentation. English is not my native language, so the documentation I write is far from perfect. As a user of the product, you also have a totally different view of it than I do. You can use that advantage to improve the product documentation radically.
- Add new features. If you are a C++ developer, you may hack the code and add new features. If the code-quality is decent, and the feature is useful, i'll most likely add your contribution to the project.
- Fix bugs. There will always be bugs in software. If you find one, and give me the receipt to kill it, you provide a very important contribution.
- Find bugs. If you find a bug, but cannot fix it, you contribute to the project by providing me with an exact receipt on how to reproduce the problem.
Click on the thumbnails on the bottom of the page.
Current state of this project
WHID is in active development. A new release for Debian GNU/Linux and Windows will be made available in march 2009.
The Whid*.msi files contains the Whid application, resource files (images, software licenses), documentation, and the full C++ source code including the Microsoft Visual Studio 2003 project files.
- Current release [2009-02-06]: [Download] from SourceForge.net