Today we will talk about taking into account the most important, in my opinion, resource - time. Why do I consider it most important? Because it is irreplaceable: there is a certain amount of it and there will not be a new one. You can only try to make the most reasonable available disposition. And where in this business without the competent accounting? I would say that accounting is the basis for such things as time management and planning, because without understanding how time is spent, it is extremely difficult to distribute it and generally plan something. And it is simply useful to realize for what and in what quantities we spend the precious time of our life.
To solve this problem, I propose a fairly simple tool. Interested welcome under cat.
As you can guess from the title of the article, it will be a question of a time tracking program or a time tracker. And, to find out what this program should be, let's start with the ideological part.
Once I read about the so-called. "Lyubishchev's system" and she became interested in me ( there is an article on Habré). In short, the technique is to record what you spend your time on, distributing it into categories and from time to time to make reports, summing up the time spent on each category. Such data allows you to understand how much time and what it takes, as well as what you did at a particular point in time.
This is the approach I chose: take into account all the time. And in our age of high technology, I want something more convenient than just writing on a piece of paper. Since we are constantly surrounded by various gadgets and just computers, it would be nice to use them to solve our problem: why manually keep all this accounting, if you have a car? Time to spend, again :) So, we need a program in which we will celebrate what we are doing and which will all count, display reports and draw beautiful graphics :)
Now you need to decide on the list of requirements that must be met by this very program.
The list is small:
There is a whole class of programs that are trying to determine what they do by collecting various information about the user's activity. And for this program you need to be able to pull out information from various places, so such things as browser plug-ins, Skype, etc. are not uncommon. Not so long ago there was an article about a timetracker that supports the launch of a special daemon in a virtual machine, which tracks the user's activity in this very machine and transmits it over the network to the main program. In an attempt to somehow guess the activity of a user, it is necessary to invent ever more sophisticated algorithms and collect more and more data like a spider, entangling the whole system with its web. Do not be surprised if they start using data from fitness trackers to determine what the user is busy when he is not at the computer.
The main problem of this approach is how to understand what the user is really busy with? For example, if I am in the workplace, does this mean that I work? You and I are well aware that this does not mean at all :) If I have a browser open instead of the development environment, does this mean that I rest? Again, no. And even if a social network is open in the browser, one cannot say for sure what I'm doing there. Surely also have to adapt to the program so that it can produce adequate results. I summarize: in my opinion, at this stage in the development of technology, such a method cannot provide acceptable accuracy.
There is no need to try to determine what we are doing at a particular point in time. After all, we ourselves know it! At any time we can say what we do. It remains only to start recording :)
Of course, some discipline will be needed, at least until it becomes a habit. But when you constantly notice what you do, the perception of time changes a little. You can even say that there is such a thing as awareness .
Therefore, I made a choice in favor of the manual tracker and this is exactly what we will now consider.
When I needed a program that meets the above requirements, I did not find one, I had to write myself :) Please love and respect: G-TimeTracker or Global Time Tracker - (first?) Distributed program for time tracking. We will talk about what “distributed” is here a bit later, and first consider the main functionality.
The main screen of the program shows recent entries. It can be flipped to view earlier. Of course there is also a search and browsing history for a specific period of time. It looks like this:
The process of recording time is extremely simple: click on the '+' button and in the editor window that opens, specify the start time of the activity, the category and optionally write a comment. End time is not necessary, because it is calculated automatically based on the start time of the next entry.
Often, in different trackers you need to constantly start and stop something, in order to switch to another activity, you need to stop the current one and start this other, etc. I have a fundamentally different approach: you do not need to start anything, you don’t start time, it goes by itself :) You just create a record when you switch to another activity. And you don't need to stop anything: you can't stop time?
Categories can be created / deleted / edited. There is support for subcategories, the level of nesting is not limited. By default, a small set of categories is created that can be easily customized.
In addition to collecting data, you need to present them in a visual form. To do this, the program can build graphs of the distribution of elapsed time into categories. For each category, you can see a more detailed distribution of subcategories.
Now let's see what this distribution is. I am ready to call this functionality killer features of the program :)
So, instances of the program running on different devices can be synchronized with each other. It would seem that there is such a thing, clouds and clouds. But everything is much more interesting. The application itself is not tied to any clouds. You just need to create a directory that will be synchronized using any cloud services and specify this directory in the program. The program will be synchronized with this directory, and that in turn between other devices. So you do not need to create an account in another cloud service and trust someone else with your data. You can continue to use what you used before, be it Google Drive, DropBox or SyncThing. Just make entries on different devices, and when you synchronize, all changes will be merged.
Of course, in the implementation of this approach has its own nuances and had to work hard so that later did not have to resolve conflicts after the next synchronization. But the result is worth it.
By the way, it is not necessary to use synchronization, the program is fully functional without it.
The program does not give any ratings. There are no "good" and "bad" categories or "productive" and "unproductive". This is a research tool whose task is to collect and display data, and their interpretation is already a user's business.
At the moment there are builds for Android, Windows and Linux. Appearance under other platforms is likely :)
There is support for import / export in CSV-like format.
There is no advertising, the program code is open, the license is GPLv3.
Usually, when they talk about price, they mean a certain amount of money. With the help of time tracking, we can make a kind of virtual price tag like "it costs me N hours per week / month / year." This gives us an additional tool to increase our productivity and minimize the loss of time for insignificant things, which ultimately makes our lives better.
I would be happy to receive comments, suggestions and feedback on my program :)
Source: https://habr.com/ru/post/301798/
All Articles