
Many people are interested in the issue of Time Management. This explains the high ratings of articles describing various methods and technical means associated with them. I will try and make my contribution by telling how, on the basis of several Linux machines (3 x Ubuntu 9.10), I have implemented and used the last six months the system of planning and creating a task list (
Getting Things Gnome! 0.2.3 aka GTG ), timekeeping (
Time Tracker 2.29.92 aka Project Hamster ) and synchronization of configuration and database files using
Dropbox for Linux v.0.7.110 , so much loved in the vast habr. The first two applications are written in python, which makes them even more attractive, because allows you to quickly figure out the code and screw them (applications) by yourself. Although in the standard configuration, they cope with the tasks are not very bad.
Let's start with a visual description of the programs, i.e. from screenshots.
')
An example of my real postgraduate task list:

- A new task can be added through the “fast entry” line.
- Each task can be opened as a separate window for editing, with the ability to add subtasks and tags in this window.
- Tasks are combined into a tree structure. Those. Any task can be broken down into subtasks.
- There are a number of plug-ins available. Of the most interesting interactions with RememderTheMilk and Hamster Project
- The “Work view” button will show only the ends of the branches, i.e. exactly the tasks that must be performed first.
- The presence of tags allows you to quickly find the necessary tasks.
- Each task can be assigned two dates: the beginning of the task and the end. This will determine whether the task gets into Work View or not.
The features of the program listed above do not make the application too bulky. The authors tried to adhere to the principles of minimalism, when writing this application. But this does not interfere with decorating the tags in different colors, for a quick visual orientation in the sometimes huge list of possible tasks (if you put them yourself).
Functionality and stunning design - the main features of this program. What is even more shocking is that the whole project is led and supported by a single person: Toms Bauģis. Although he gladly accepts changes from other developers.
Here is a report on my chrome for a couple of months:

Reports - this is what the whole timekeeping is conducted for. It is from the reports that you can find out what time it took. I can say that it was Hamster who disaccustomed me to sit at the shooters for hours on the flight. You'd be surprised how much time is lost on such seemingly innocuous things as reading news, toys, or going out with friends for coffee. I do not urge you to stop doing this, I only advise you to familiarize yourself with the number of hours spent on different activities. This data makes you think.
For example, it turns out that I have been spending more than two hours on writing this article:

- Hamster is the GNOME Applet that hangs on the gnome panel.
- Shortcuts can be assigned to the application.
- It also saves the list of categories, tasks and tags that were previously entered.
- As a result, registration of a new task takes only a couple of seconds.
- You can also enter already completed tasks that for some reason were not recorded.
- Sample when viewing statistics by day, week, month or even year.
- Sample statistics by categories and / or tags
Dropbox needs no introduction. But still, if you heard about it for the first time, then you should know that this is an instant folder synchronization program written not only for Linux, but
do not believe it for Window and Mac.
Free account allows you to synchronize folders up to 2GB in size.
- Web-based interface, with the ability to manipulate files (rollback versions, view, etc.)
- Excellent integration with the operating system. Those. for you it will just be a folder in your home directory.
- One click opportunity to get a link to a file that can be sent to another person. A good way to share photos.
- A folder or file can be shared immediately between multiple accounts. Those. several people will simultaneously have access and the ability to change any file or directory
- The referral system allows you to increase the space on the virtual disk up to 10GB, or you can buy it.
Here is such a list of features. And now to the
integral glabolization! global integration.
File
The idea is that when installing Dropbox, it asks you to specify which folder will be synchronized. It is in this folder that we are going to put our configuration files for GTG and Hamster. And then just make a link to these files in the places where the programs are trying to find them.
GTG stores its files in the
~ / .local / share / gtg folder . Hamster stores the SQLite database in
~ / .local / share / hamster-applet / hamster.db . Suppose that we agreed with the default settings, and set the Dropbox folder to ~ / Dropbox /, then the sequence of actions is as follows:
- Create a working folder inside Dropbox, for example ~ / Dropbox / work /
- Copy the folders ~ / .local / share / gtg / and ~ / .local / share / hamster-applet / to
working folder ~ / Dropbox / work / - Now delete the folders by their original location (programs
it is better to let them be turned off) - Create a symbliic link on the folders in the right place:
ln -s ~/Dropbox/work/gtg/ ~/.local/share/gtg
ln -s ~/Dropbox/work/hamster-applet/ ~/.local/share/hamster-applet
- Enjoy the fruits of civilization
A couple of
"BUT" :
- GTG records its files after each keystroke (the authors are paranoid), so you can not be afraid - synchronization will occur 100%
- Hamster starts earlier (when GNOME boots), and so synchronization may not be in time. And then the old data will be used. This is to be treated by restarting Hamster. For example, the following command:
/bin/kill $(/bin/ps axfv | /bin/grep hamster-applet | /bin/grep python | /usr/bin/head -c 6)
The command was recorded in a script file and laid out for quick launch on the very same GNOME panel. - After the publication of the article itself on Habré, I received a letter from Toms Bauģis himself. He said that since Hamster 2.29+, support has been added for auto-updating the database if it has changed its size. But it turned out that these changes are not fixed, if a real link is not specified, but a softlink, as is the case with Dropbox. On this occasion, they have already opened a bug report here: https://bugzilla.gnome.org/show_bug.cgi?id=614779 But there is still a way.
- You need to leave the Hamster Project files where they are (this is when installed on the first machine). Softlink organize in the opposite direction, i.e. like this:
ln -s ~/.local/share/hamster-applet/ ~/Dropbox/work/hamster-applet
Dropbox already knows how to follow links and sync folders and files to which these links point
- A little strange is the connection of the second, third, etc. machines, but this is only because we want to point Dropbox to a file that is already listed in its directory. Let's go consistently - it will be easier. Installed on another computer Hamster. Go to ~ / .local / share / hamster-applet / and naturally see that both the folder and the database file already exist.
- Copy the file from the Dropbox directory into the Hamster folder
- Hamster will detect the change in the database and open a new database (more precisely, the old one, that is, the one in which the records were from the first computer)
- Now you need to make a softlink from the Hamster folder to the Dropbox folder. But this does not work, because the file at the destination already exists. Therefore, we simply remove it. Those. if we decide to make a softlink to the entire directory, then simply delete this entire folder
rm -r ~/Dropbox/work/hamster-applet
- Well, the last action - restore the file in the Dropbox'a folder.
ln -s ~/.local/share/hamster-applet/ ~/Dropbox/work/hamster-applet
Now we have two machines in sync, and Hamster will update the database itself if he sees that something has been brought in from another machine.
I have it all. Thanks for attention.
PS: I have already become a tradition to post a graph showing activity in a written article:
