As hamster-lib
s readme states, we are firm believers in the *ix toolbox
principle - do one thing and do it right.
In order to facilitate a focused and transparent development effort but also to
manage expectations it seems advisable to write a bit about what kind of tasks
hamster and its various components tries to takle and which not. And what that
entails for your itches left unscratched.
Hamster has always been about tracking time and it is this very task we strive to do well. That means to provide easy to use yet sofisticated functionality centered around this task. And it means to provide the easiest possible access to the accumulated data possible.
As a first instance and as our current focus this means providing various desktop clients (CLI and GUI) that allow fast and precise data entry and retrieval. On top of this, as a next step, it also will be about more native integration into existing desktop environments, e.g. gnome shell extensions and the like.
Once those core aspects have been covered we envision extending connectivity even further by providing a REST API as well as advanced export capabilities that will not only return generic csv data but export files ready to be imported into you second favourite hamster alternative.
What all these examples have in common is that they are straight forward extensions of hamsters aformentioned core functionality.
There are however other things one may feel inclined to wish hamster would do. As far as I can see there are two obvious directions: invoicing billable hours and running detailed data analysis and plotting of its results.
The 'bad news' (depending on you stance on this I guess) is that I do not
feel these are genuine tasks for the little furrball and do not think that they
should be implemented within hamsters scope. This is not at all to say that I
do not consider them valid use cases. Quite the opposite. As a freelance
consultant and developer the first case is exactly what I use hamsters time
tracking capabilities for.
However, I think there are better and existing tools for generating good
looking invoices as well as sofisticated graphs around and by providing the
most convinient access to hamsters data possible anyone interested can use
those seamlessly to work on top of their hamster workflow.
When it comes to hamster-gtk
s graph plotting it was always clear that this
is about eye candy and 'get an overview at glance' more than about detailed
statistical analysis. So while we will still provide some of this to make
hamster look good and interesting R will be a better option if you want
to crunch numbers and plott fancy graphs.
The 'good news' is, that besides its strong focus on data accesibility hamster
aims to feature a flexible and extensible layout and foundation to build on top
of. Besides providing modular packages for different time tracking needs
(hamster-lib
, hamster-cli
, hamster-dbus
, hamster-gtk
, to name
some) that allow you to use just the functionality you are interested in for
your own work frontend clients such as hamster-gtk
provide an extendible
plugin infrastructure that encourages and enables you to build custom 3rd party
functionality on top of what we provide. So if there is substancial community
interest and effort there is nothing inhibiting anyone writing a plugin to
provide such added functionality.
I hope this sheds some light on our general direction an scope. If any of this sounds interesting to you we would be happy if you give Hamster a try or even find the time contributing.