В этой статье я хочу рассказать о том, зачем мне понадобился тайм-трекер, как я его искал, почему не нашел и что из этого всего в итоге получилось.

Выбор трекера


Почти всю свою карьеру я работаю фрилансером. Специфика деятельности такова, что все контракты с оплатой не почасовой, а за сделанную в установленный срок работу. В таких условиях привыкаешь работать когда есть настроение — главное уложиться в срок. То есть весь день не прикасаться к проекту, а на следующий день 16 часов безотрывно пахать как раб на галерах — обычное дело. Заказчикам это, как правило, безразлично. Работая в таком режиме, о тайм-трекере не задумываешься.

В начале 2015 года мне предложили интересный удаленный проект и внезапно с оплатой не за проделанную работу, а с фиксированной зарплатой каждый месяц.

Спустя пару месяцев с момента начала работы, стало очевидно, что мой обычный подход работает плохо. Когда перед тобой висит некий дедлайн, а факт оплаты привязан к сдаче работы — дополнительная мотивация не нужна, тем более что нарушение сроков может вылиться в солидную неустойку. В случае фиксированной оплаты дело обстоит иначе. Осознав это, я понял, что работаю неэффективно и вряд ли мой работодатель будет доволен, если я продолжу работать в том же темпе.

В конце марта на хабре была опубликована статья Надзиратель для фрилансера: выбираем систему учета рабочего времени. Эта статья идеально совпала с моими размышлениями о повышении эффективности. Она посвящена в основном веб-инструментам и не подходит под мои задачи, но основная идея с учетом времени показалась мне серебряной пулей, которая позволит правильно распределить рабочее время и не подвести работодателя.

На мою удачу в комментариях к статье читатели делились своим опытом использования всевозможных трекеров, а Alexey2005 выложил ссылку на сравнительную таблицу трекеров.

Чем дальше я погружался в изучение разнообразных трекеров, тем очевиднее становилось, что ни один мне не подходит.

Был сформирован список требований к трекеру:
  1. Никаких ручных таймеров. В мире, где пользователь постоянно переключается между разными задачами, отходит «покурить», отвечает любовнице в ICQ, точность ручных таймеров стремится к 0.
  2. Только Open Source. Считайте меня параноиком, но я не хочу, чтобы закрытое ПО отдавало информацию о моей активности на чужой сервер. Еще пару лет назад я бы не стал об этом даже задумываться и спокойно установил себе проприетарный трекер. Но последние тенденции в мире слежки научили меня двум вещам:
    • Если у компании есть данные — она будет их использовать.
    • Данные обязательно утекут или будут предоставлены по судебному запросу

    Очень не хочется, чтобы в один прекрасный день ко мне «пришли» с обвинениями в использовании какого-нибудь запрещенного bitcoin.
  3. Кросс-платформа. Как разработчик игр, я в основном работаю в Windows, но Linux и Mac OS X также сопровождают значительную часть моей активности. Тайм-трекер, который будет отслеживать активность только в одной из ОС, не будет давать полной картины.

Автоматических кроссплатформенных трекеров существует две с половиной штуки. Open Source среди них я не нашел ни одного.

Пишем свой


Что же делать? Выбор очевиден — будем писать свой трекер.

Основной алгоритм работы прост — программа висит в фоне и, при смене активного окна, запоминает на какое приложение переключился пользователь. Если в течение некоторого времени пользователь не нажимал никаких кнопок, не двигал мышь и окна не переключались — переходим в режим сна, скорректировав соответствующим образом последнюю запись (отнимем время, которое пользователь был неактивен).

Было бы логично привязаться к переходу ПК в режим энергосбережения (отключение мониторов), но у многих этот режим отключен совсем или пауза слишком большая, так что полагаться на него нельзя.
Кроме этого, очевидно, что для точности подсчета времени нужны профили. В зависимости от типа текущей деятельности разные приложения могут относиться к разным категориям. Например, я использую notepad++ как во фриланс-проектах, так и в своих собственных.

Профили позволяют назначить приложение в разные категории. Соответственно, если активен профиль «свои проекты», то время использования notepad++ будет записано в одну категорию, а если активен профиль «фриланс» — в другую.

Внешние трекеры


И вот первая версия трекера написана и запущена. После нескольких дней активного тестирования оказывается, что текущей автоматизации недостаточно. На скриншоте в заголовке видно, что Хром съел 3 часа 50 минут и, в тоже время, категория Прокрастинация тоже заняла 3 часа 50 минут. Но на самом-то деле Хром используется также для доступа к багтрекеру, документации, stackoverflow. Но первая версия трекера не умела отличать эти действия и записывала всё в одну категорию. Одно из временных решений — использовать Хром для чтения хабра / почты / vk и т.п., а всю рабочую деятельность вести в Frirefox. Но привычка была слишком сильна и всё равно в итоге часть работы делалась по привычке в Хроме.

Проблема усилилась при работе в виртуальной машине. Трекер, естественно, сам по себе не способен увидеть: что там творится внутри VBox и видит лишь активность VirtualBox.exe. Конечно, под виртуальными машинами в один момент времени велась деятельность только одного типа и проблему можно было решить переключением профилей. Но изначально очень хотелось уйти от ручного управления.

В итоге родилось решение в виде внешних трекеров.

Внешний трекер — это программа, которая запускается внутри недоступного для тайм-трекера окружения и передает оттуда информацию. Например, в случае виртуальной машины этот трекер ведет себя идентично тайм-трекеру, но не запоминает, что за приложения запущены, а по udp-каналу сообщает о них основному трекеру на 25855 порт.

Формат сообщений получился достаточно простым:
5 char — фиксированный заголовок. TYTET
1 int - номер версии протокола. Сейчас 1.
utf8 строка(1 int длина строки и далее массив char) — текущее состояние системы.

Например, виртуальная машина просто отдает текущее приложение в видe chrome.exe, qtcreator.exe, explorer.exe. С браузером — чуть сложнее, так как сайтов — море, а в качестве состояния отдаются основные сайты, с которыми взаимодействует пользователь: habrahabr.ru, geektimes.ru, vk.com, gmail.com, google.com и т.п. Остальные же сайты уходят под общим статусом: undefined. То есть основные сайты определяются в соответствующие категории на уровне тайм-трекера, а undefined идут в отдельную категорию. Например, undefined у меня пишутся в Прокрастинацию, так как гораздо проще определить набор рабочих сайтов, чем миллионы мусорных, на которые попадаешь, читая очередную фигню.

1 int — количество перекрываемых приложений
utf8 — массив строк с именем каждого перекрываемого приложения

Перекрываемые приложения — это список приложений, которые будут подменяться при наличии свежей (менее 10 секунд) информации с трекера. Например, трекер Хрома перекрывает два приложения:
chrome.exe и Google-chrome-stable.

Соответственно, если от него приходит текущий статус habrahabr.ru, то тайм-трекер во время активности в chrome.exe под виндой и Google-chrome-stable в линуксе будет писать в БД не Хром, а habrahabr.ru.
1 unsigned char — контрольная сумма. Контрольная сумма считается простым сложением всех байт в пакете.

Тайм-трекер в комбинации с внешними трекерами позволяет получить максимально корректную информацию о времени, проведенном за ПК.

В принципе, ничего не мешает внешнему трекеру быть действительно внешним, например, андроид-телефоном. Это позволит учитывать активность и за пределами ПК. Но мне такой функционал не нужен, поэтому я его не реализовывал.

Работа с трекером


С точки зрения пользователя приложение представляет из себя иконку в трее, у которой есть контекстное меню, вызывающее нужные окна:



Незначительные функции:

Настройки позволяют определить общие детали функционирования приложения.

Профили позволяют, не открывая окон приложения, переключаться между активными профилями.

И самое важное:

Приложения — позволяют распределять приложения по категориям (приложения автоматически добавляются в список во время работы) и редактировать профили:



Статистика — позволяет выдрать из БД информацию за указанную дату и нарисовать график и таблицу.



С одной стороны — отображение статистики является важной частью тайм-трекера. Но я считаю, что само приложение трекера должно быть лишь простым поверхностным инструментом для анализа данных. Основное — это сбор. А красивые диаграммы можно и LibreCalc нарисовать на основе экспортированных CSV данных.

Отдельно стоит обсудить работу с БД.

Сначала я опасался, что она будет очень быстро расти и придётся программно разбивать ее на части.

Но процесс тестирования первой версии показал, что за полгода работы в трёх ОС с сотней приложений БД займет всего 1 мегабайт. 20 мегабайт за 10 лет. Не тот размер, о котором стоит беспокоиться. Зато код приложения упрощается, если держать БД одним куском.

Так как держать отдельный файл для каждой ОС бессмысленно с точки зрения статистики, то для себя я сделал exFAT-раздел на 100 мегабайт, куда положил БД и теперь Windows / Linux / Mac OS X работают одним этим файлом. В итоге — общая статистика, доступная в одном месте.

Идём в Open Source


Прошло около 10 месяцев с тех пор как была написана первая версия приложения. Для себя я оценил приложение как весьма пригодное. По счастливой случайности январе вышла статья Почему и зачем писать open-source код?. И подумалось — а не опубликовать ли тайм-трекер на github, ведь задача подсчета времени весьма актуальна, а Open Source решений не так уж много.

И вот, знакомство с github, переписывание приложения с учетом всех нюансов, накопленных за почти год использования и первая сборка лежит, готовая к скачиванию и созданию fork'ов.

Let me speak from my heart
Внезапно самым сложным при публикации Open Source-проекта оказалось плохое знание английского. В тот момент, когда стало понятно, что проект не имеет смысла без хотя бы минимальной документации и комментариев — возникло желание не публиковаться, чтобы не позориться… Потому что мой английский позволяет смотреть фильмы с субтитрами, читать документацию, понимать простую разговорную речь… Но писать осмысленные, граматически и орфографически чистые предложения — это мне не по зубам…

И встал выбор:
  1. Ничего не публиковать вообще.
  2. Ограничиться односложными комментариями. Авось не догадаются, что я не знаю английского.
  3. Писать столько, сколько считаю нужным на плохом английском.

Первый вариант показался неприемлемым. Проект видится полезным и публикация его важна. Думаю, несколько десятков пользователей для него найдется, так что жалко оставлять неопубликованным.
Второй вариант не позволяет полноценно расписать важные моменты по работе с исходниками и самим приложением. Да и какова вероятность, что я смогу в коротких предложениях расписать всё правильно?

В итоге остановился на третьем варианте. В конце концов это не экзамен по английскому и не книга, а ПО. Возможно серьезные косяки поправят более образованные товарищи, а может быть приложение сможет функционировать и с моими кривыми комментариями.

Исходники доступны здесь:
github.com/Allexin/TrackYourTime

Комментарии (86)


  1. gotch
    23.01.2016 15:00

    В ICL habrahabr.ru/company/icl_services есть трекер, как мне кажется мини-шедевр в свое роде. С выгрузкой отчетов в Microsoft Project Server, отличной статистикой.

    Так что вы не одиноки в своем начинании.


    1. AllexIn
      23.01.2016 15:01

      А где его посмотреть можно?


      1. gotch
        23.01.2016 20:06

        Вот с этим проблемка — надо устроиться к ним на работу в Казани или Воронеже. )) Или попробовать спросить, зря что ли заводили блог корпоративный. Будет что написать.
        Но тут интересна сама идея, что десктопное приложение это своеобразный клиент к Project Server. И там видно сколько часов работал каждый инженер, по какому проекту, по какому клиенту, сколько провел на митингах, учебе, и т.д.

        Правда со стороны сотрудника это уже не так весело. Если из Outlook можно автоматически импортировать календарь, то вот остальные задачи надо заводить вручную, и не забывать нажимать на кнопочки Play и Stop, когда работаешь надо задачами.


        1. gotch
          23.01.2016 21:12
          +4

          Честно говоря, немного не понимаю минусный дождь. Мысль которую я хочу донести, что проблема учета рабочего времени — довольно популярная. При этом мне пока не встречались настоящие адапты коммерческих систем онлайн трекинга. Все пилят свой велосипедик.

          Только практика подсказывает, что маловато скриншотить процессы и полагаться на автоматику. Трекинг хабра — это работа или развлечение? По делу читаем, или резвимся в комментариях?

          И на выходе мы должны получить какую-то полезную информацию, объективную, измеримую, на основании которой мы можем принять какое-то решение. Мы потратили на разработку сайта 100 часов и получили 1000$, а на мобильную игру — 60 часов и 1500$, значит мы или за сайты слишком мало денег берем, или надо бы больше игровых заказов брать, или повышать свою сайтописательность, или часть на атусорс отдавать.

          Вторая мысль, что отчетность, аналитика, может и в некоторых случаях даже будет лучше, если она дальше извлекается из профильного инструмента, например системы управления проектами. Так делают многие крупные компании. Для себя может не надо, но просто знайте, что при учете ресурсов, рабочего времени стараются использовать проектный подход. Не нравится Microsoft Project — есть OpenProject, хотя последний уж очень аскетичен.

          Как мне видится, зачастую прокрастинация — это недостаток планирования. Например, вы делаете веб проект, но ни на этапы не поделили, ни подзадачи не выделили, ни сроки выполнения — и получился не проект, а супчик такой. И мы с этим боремся, документируем сроки прокрастинации. Но есть и другие варианты.


          1. extempl
            24.01.2016 07:32
            +11

            Очевидно, что минусы за «в некоторой компании есть супер приложение для проблемы, которую вы решаете, оно офигенное, только я вам его не покажу.»


            1. Wesha
              24.01.2016 08:28
              +3

              1. gotch
                24.01.2016 13:55

                У них есть такие приборы, и кое-что про них мы расскажем.


            1. gotch
              24.01.2016 13:54
              -1

              Вы бесспорно правы с одной стороны. Хотел бы, но не могу, мопед-то не мой. Но вдруг ведущие корпоративный блог сами расскажут, до чего доросла их система.

              С другой стороны, мне кажется было бы интересным, если бы в комментариях вдруг появились сотрудники HP/MS/1cloud и написали бы — да, мы тоже имеем свой велосипед. Конечно, код мы не можем отдать. Но в нем основная идея то, то, и то. Возьмите на заметку. Кругозор-то расширить оно никогда лишним не бывает.

              Хотите еще расскажу про трекинг рабочего времени? В одной очень большой и распределенной компании, когда еще у них не было хороших каналов от центра до каждой точки присутствия тоже написали свой тайм-трекер. Он был в форме плагина к Outlook, и проделанную за день работу отправлял по «внутренней» корпоративной почте.

              В этом был мой посыл.


              1. zirf
                27.01.2016 14:57

                Если Вы официальный партнер MS/HP, то кое-что Вы узнаете, не о потрохах продуктов, но об их свойствах. Используют эти компании свой софт, идущий на продажу. у этой фирмы нет партнеров, так это не название, а ТМ, и даже зная ИНН: 16601462300 / ОГРН 1101690062638, то мало, что понятно, но если Вы там работаете, то знаете откуда ноги. Просто сравнение ICL КПО ВС имеет в клиентах «Газпром» ICL-Services кучу контор с латинскими буквами в названии, знающему политику «Гапрома» все понятно.


            1. zirf
              27.01.2016 14:42

              В тихушку скажу — навряд ли оно такое офиненное. Создавала небольшая закрытая группа. Это .Net. Обычно не на продажу делается кустарщина.


            1. zirf
              28.01.2016 08:50

              Не в бровь, а в глаз, я уже заметил что оно — отстой, это тоже правда, проверить все равно нельбзя.


          1. zirf
            28.01.2016 08:48

            Есть одно «но». В реальном бизнесе нужно отслеживать другую активность. Поэтому ПО для отслеживания CRM или телефонной активности — навалом и реальный бизнес его берет. Увы, с точки зрения «гениальности» телемаркетор или продавец активных продаж — робот, и чем больше, тем лучше. К роботу нужен датчик только и всего.


          1. k3lmiir
            02.02.2016 11:04

            Минусы наверное были от сотрудников компании, которые используют этот ТТТ. На самом деле это не то что шедевр, хотя нет, это именно что «шедевр». Ужасная утилита с ужасным юзабилити, причем на всех концах, и со стороны сотрудника, который его заполняет и со стороны менеджера, который просматривает статистику.
            Про интеграцию с Outlook тоже не совсем правда — были самописные скрипты, которые реализовывали импорт из Outlook, из коробки все это либо не работает вообще либо работает из рук вон плохо. В общем не все так солнечно, как идея, такой подход хорош, а вот его реализация даже не плоха — отвратительна (я не имею ввиду утилиту тс).


            1. gotch
              02.02.2016 11:27

              Смотрел на нее с обеих сторон, и остался вполне удовлетворен. С учетом числа проектов, инженеров, разнообразия задач результат мне показался вполне достойным.

              И главное — можно довольно точно понять чем занимаются все эти бесчисленные инженеры, часть из которых, как оказывается и вовсе ничем не занята.


              1. k3lmiir
                02.02.2016 11:34
                +1

                Вот именно, что смотрели, а не использовали. Когда начинаешь использовать этот «шедевр» каждый день, начинаешь тихо закипать.
                Интерфейс неудобный, функционал нулевой, время отнимает…
                По большей части трекинг происходит следующим образом — когда приходит напоминание о необходимости заполнения, достается файл, в которым ты отмечал свою активность или делается выгрузка из тикитной системы (так как это удобнее и проще) и начинается заполнение «задним числом» c подгонкой времени. Заполнять это по факту — мука. У ТСа гораздо лучше реализован принцип трекинга по процессу, в силу специфики работы можно добавить возможность одним кликом создать таск из письма и стартовать его, автоматическое заведение тасков из пришедших инцидентов и завершение по закрытию инцидента.


        1. zirf
          27.01.2016 14:39

          Блог заведен для рекламы. Идея малофонкциональна по двум причинам. 1. Это очень дорогой продукт, MS Projectecr Server. 2. Основная идея никак не связана с топиком — это всего лишь электронный колпак.
          Да и называть «шедевром» никому не видимый продукт, согласитесь, странно. Я говорю «это о полный отстой» и прав как и Вы. Проверить все равно нельзя.


  1. VioletGiraffe
    23.01.2016 15:04

    А вы уверены, что почасовая ставка, предложенная работодателем, расчитана на столь скрупулёзный учёт времени? Вполне возможно, рабодатель не расчитывает на то, что вы будете сами вычитать время, потраченное на прокрастинацию.


    1. AllexIn
      23.01.2016 15:08
      +4

      С работодателем никак не обговаривался учет времени. И в договоре не фигурирует почасовая оплата. Оплата каждый месяц с учетом 8 часового рабочего времени. Инструмент создавался чисто для себя.
      ИМХО инструмент совершенно не пригоден для контроля со стороны работодателя, ка краз из-за излишней детализации. Это инструмент для разработчиков, которые хотят чуть получше контролировать своё время и понимать — куда оно делось.

      P.S>
      Я согласен с вами насчет «добровольного рабства». Собственно, если бы работодатель предложил мне как быто нибыло контролировать мое время и вести отчеты на эту тему — я бы не согласился.


      1. VioletGiraffe
        23.01.2016 16:10

        Понял.


    1. ivanbolhovitinov
      23.01.2016 15:47
      +6

      Это просто инструмент для поддержания внутренней дисциплины.
      Также и всякие домашние бухгалтерии люди пишут не для последующего доклада в налоговые органы.


      1. foxmuldercp
        23.01.2016 16:43

        Свою веб бухгалтерию я на asp.net mvc вечерами писал где-то с год, с нуля без знаний web-программирования как таковых (скрипты на powershell/perl/bash не считаю). Запустил, работает.

        А вот чтобы написать домашнюю бухгалтерию с реалиями сдачи налоговой отчётности — у меня пару месячных зарплат уйдут только на юристов/бухгалтеров/налоговиков, и это без учёта тех, кого придётся привлекать, потому как объёмы кода там будут несопоставимы.


        1. zirf
          23.01.2016 20:47

          у меня пару месячных зарплат уйдут

          Не-а. Для УСН самообразования хватит. Только Вам не скучно будет читать кучу нормативов, они скучные до нельзя, как и тетки из налоговой.


      1. foxmuldercp
        23.01.2016 16:43

        Хорошая идея инструмента, и что самое важное для меня — опыт, полученный во время написания таких проектов


  1. Daedmen
    23.01.2016 16:59
    +3

    Кажется https://github.com/gurgeh/selfspy вам мог помочь


  1. vitaly_KF
    23.01.2016 19:01
    +1

    Первая идея, которая пришла мне в голову после прочтения: было бы круто добавить функцию учёта активных вкладок браузера, а также контактов в Skype. Так как и там и там есть набор личных и рабочих вкладок/контактов.


    1. AllexIn
      23.01.2016 19:11

      Есть поддержка внешних трэкеров.
      Приложение открывает UDP-порт на 25855 и ждет информацию от внешних трэкеров.
      Для виртуальной машины я уже сделал такое приложение, правда еще не допилил, поэтому не выложил исходники и бинарники.
      Для браузеров и скайпа тоже можно сделать, но я в ближайшее время этого сделать не смогу, потому что не знаком с особенностями написания софта под них.


      1. Alexey2005
        23.01.2016 22:49

        ИМХО, гораздо проще читать заголовок активного окна и просто пропускать его через задаваемые пользователем regexp'ы. Это покроет большинство потребностей пользователя.


        1. AllexIn
          24.01.2016 00:44

          Рассматривал этот вариант. Не понравился. Тем более что очень часто заголовок анализу не поддается или вообще никакой полезной инфы не содержит.


          1. Lol4t0
            24.01.2016 00:53

            тут проще extension изготовить. Например, можно начать с этого: stackoverflow.com/questions/25625109/chrome-extension-get-the-current-domain-on-every-tab-change


            1. AllexIn
              24.01.2016 00:54
              +1

              Именно так. У меня такое работает в тестовом режиме. Но публиковать пока не готов.


              1. nagimov
                24.01.2016 12:32
                +3

                Публикуйте в любом виде, пожалуйста!!! Браузер сегодня — это основной инструмент для многих (stackoverflow, например). А допилить поможем!


        1. kenoma
          24.01.2016 12:27

          Можно с помощью w2v обучить фразы относящиеся к развлечениям и работе.


  1. Vapaamies
    23.01.2016 19:18

    А бинарников для Windows нет? Для тех, кто не пишет на сях, установка компилятора/среды, установка Qt, пляски с бубном во время сборки — однозначно прокрастинация. Как ее учитывать? Рекурсия-с!


    1. AllexIn
      23.01.2016 19:21
      +4

      Есть конечно же. Только они не в репозитории, а в разделе Релиз.
      Я уже осознал свою ошибку, люди не пользующиеся github не знаю про раздел «Релизы» и ищут бинарники в исходниках.
      Добавил ссылку внутри репозитория на релизы.
      Вот такую:
      github.com/Allexin/TrackYourTime/releases


      1. Vapaamies
        23.01.2016 19:31

        Ну вот, там под 32 бита нет. А было б — наверняка под XP не завелось бы… Грусть-тоска.


        1. AllexIn
          23.01.2016 19:35
          +1

          Эти 32 на самом деле.
          А под XP действительно не завелось. Работаю над этим.


      1. EvilsInterrupt
        23.01.2016 21:27
        +1

        У Вас на заглавной страничке(readme.md) можно указать «How to install» и в этом разделе поместить все необходимое


        1. AllexIn
          23.01.2016 21:40
          +1

          Да, это единственно верное решение. В голову не пришло так сразу сделать. Хотя проекты на которые я смотрел как раз так и делают.


          1. EvilsInterrupt
            23.01.2016 22:29
            +1

            Выкладывать готовые, собранные бинари в репозиторий очень глупая затея. То где сейчас в 'Releases' это верное. Это же общепринятая практика, когда на страничке проекта есть вкладка «Downloads»


  1. MacIn
    23.01.2016 21:18

    del. Не посмотрел в корень.


    1. AllexIn
      23.01.2016 21:20

      Да. Qt. Проект настроен на сборку под MSVC 2013. Под MinGW не настраивал — там есть особенности и я пока не тратил время, чтобы с ними разобраться. В основном потому, что чуть больше размер дистрибутива получается из-за MinGW либ.


      1. MacIn
        23.01.2016 21:23

        Очень полезный инструмент, мне пригодится — как раз работаю удаленно по часам, бывает полезно самого себя контроллировать. Спасибо.


  1. zirf
    23.01.2016 22:04

    А репозиторий Ваш работает. Да, выглядит все кустарно, но это пока. Просто со мной шутка злее два варианта SalesPlatform . Стесняюсь у разработчиков спросить, почему их репозиторий пустой. Напоминает dockerhub и оригинальный vTigerCRM — сборки сугубо типа «example», к эксплуатации не годные. Но ладно, это способ зарабатывания денег (внедрение), у кого надо — свои сборки в закрытых репозиториях. Но как авторы у себя на гитхабе хостят по принципу — «все там и мы тоже». Залили допотопную ветку и забыли.
    Вообще муть — на сайте вообще нет бесплатного варианта, но покопаться он оттуда же и скачивается.


  1. Agel_Nash
    23.01.2016 23:23

    Ничего удобнее RescueTime не встречал. Жаль, конечно, что не OpenSource.


    1. Klaster
      24.01.2016 05:39

      Не смог найти как ей указать какие приложения у меня для работы, какие для отдыха. И список сайтов нужных в браузере тоже. Как она собралась без этого учитывать мое время не понятно.


      1. Agel_Nash
        24.01.2016 05:50

        Для начала открываем приложение. Потом заходим на сайт в раздел Reports -> Applications & Websites. Находим наше приложение и сопоставляем его с какой-то категорией, выставляем тип продуктивности. Profit.


        1. Agel_Nash
          24.01.2016 06:06

          Пример выше описывает сценарий, когда в конкретный день нужно изменить категорию/продуктивность для приложения. Чтобы изменения применялись всегда, нужно открыть Tools -> Categorize Activities. Тут отображаются все приложения, которые уже сопоставлены с каким-то видом активности. Вообще, новые приложения иногда самостоятельно каталогизируются (предложенную категорию и тип продуктивности можно поменять) на основании категорий выбранных другими пользователями RescueTime. Не забудьте так же заглянуть в раздел categorize your common activities — туда попадают новые приложения, которые не удалось каталогизировать автоматически.


          1. Klaster
            24.01.2016 06:22

            Я туповат наверно, абсолютно все сложно, неудобно, непонятно.


            1. Agel_Nash
              24.01.2016 16:47

              Можно поинтересоваться, чем Вы пользуетесь?


              1. Klaster
                24.01.2016 17:30

                Стыдно признаваться, но как бы вот http://motivateclock.org/.


      1. leoismyname
        24.01.2016 17:29

        Скука какая. Никогда ежесекундно не использовал аналитику с этого сайта. А что мешает собрать статистику за неделю или две и скорректировать принадлежность к той или иной категории? Думаю, это проще, чем искать как что-то занести в какой-то там список.


        1. Klaster
          24.01.2016 17:37

          У меня приложений в которых я работаю, ну десяток, это если максимум, обычно два :). В разных проектах, это разные приложения. + определенные сайты, какие то для работы, какие то нет. Вспоминай потом через неделю, что было и зачем.


          1. leoismyname
            24.01.2016 17:57

            Раз в неделю приходит отчет с RT, он содержит круговую диаграмму и список самых посещаемых сайтов и используемого ПО. Так вот, в этом списке отражена доля записей, которые автоматически не удалось привязать к какому-либо типу, в таком случае, можно перейти по ссылке в письме и откорректировать. За неделю то вспомнить сможешь :) Если я с какой-то программой за неделю поработал пол часа или час, все равно легко вспоминается.

            Минусы у RT тоже есть, так что не призываю конкретно к этому варианту, просто решил поделиться своим решением подобной проблемы.


  1. voidMan
    24.01.2016 05:23

    Под OS X 10.11.2 не запускается. Рискну предположить, что из-за SIP.


    1. KhodeN
      24.01.2016 05:50

      10.11.3, аналогично(


    1. AllexIn
      24.01.2016 10:43

      SIP не должен мешать. Приложение не делает ничего что попадало бы под его контроль.
      Скорее всего macdeploy не все зависимости добавил в бандл. А проверить я толком не могу, потому что у меня то окружение со всеми зависимостями уже.


  1. zirf
    24.01.2016 08:38

    Ветка превратилась в подобие трекера, поэтому предложение:
    Идете на gitter.im, регитесь с эккаунта github и создаете chatroom (кнопка Create посередине, там #channel), шарите, Вам предложат варианты обычный урл и бэйдж в README.md возьмите второй и суньте ссылку в свой README.md (сверху где-нибудь) и будет у вас прямо в README.md ссылка на Вашу конмнатку виде картинки image.
    Вообще про подобные украшения спросите google про github badges. Там чего только нет, хоть пожертвования собирай.


  1. zirf
    24.01.2016 09:04

    В догонку, если будет только урл, то вставка в README.md такого вида:

    [![Join the chat at gitter.im/your-name/your-room](https://badges.gitter.im/your-name/your-room.svg)](https://gitter.im/your-name/your-room?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

    your-name на github,gitter
    your-room — что Вы там выдумали.


  1. slonm
    24.01.2016 11:14

    Великолепная штука для оценки времени рутинной части работы.
    К сожалению так не учтешь сколько времени потрачено на обдумывание способов решения проблемы во время велосипедной прогулки, просто расхоживая по квартире, а так же делая наброски на бумажках или доске


  1. Antelle
    24.01.2016 11:45
    +1

    А что за приложение ArchiFuck.exe (на первом скриншоте пятое снизу)?


    1. AllexIn
      24.01.2016 11:46
      +1

      Несколько месяцев назад мне пробовали троянчика подкинуть. Никуда из песочницы он вылезти не смог, но след в трэкере оставил. :) Я как-то пропустил матерщину на скриншоте, вылетел из головы этот случай. Сейчас исправлю скриншот.


  1. RedSadnessTint
    24.01.2016 13:46

    Конструктив:
    — было бы полезно для некоторых приложений устанавливать таймаут индивидуально;
    — Браузеры было бы полезно учитывать по контенту, т.е. какие-то сайты добавлять, которые являются работой, какие-то 100% прокрастинацией;
    + удобную штуку (плагин) к браузеру, котрой можно быстро отметить домен в какую-то категорию.

    Очень понравилась простота, никаких тебе настроек, просто запустил и работает почти сразу, что очень большой плюс.
    Удачи в развитии!


  1. synchrone
    24.01.2016 14:17

    Подброшу ещё проект по теме: arbtt.nomeata.de.

    Очень гибкая штука, можно скриптовать свои правила. Работает под Windows + Linux.


  1. SkryabinD
    24.01.2016 17:46

    Под Mac пользуюсь трекером Timing. Трекер простейший, однако позволяет разбить по категориям сайты, пути в консоли, контакты в скайпе, открытые файлы в WebStorm, открытые базы в менеджере БД. Таким образом я могу учитывать даже время общения с заказчиком, или посчитать время работы над каждым проектом отдельно.
    Я это к тому, что раз у кого-то это получилось, значит, это как-то можно сделать, без всяких надстроек над браузерами и т.д. А учет времени только по названию программы точен быть не может.


    1. AllexIn
      24.01.2016 17:48

      Трекер простейший

      Это вы на основе чего такой вывод сделали?


      1. SkryabinD
        24.01.2016 18:01

        Я им пользуюсь уже давным-давно, и покупал, если мне не изменяет память, за 1 доллар. В то время из-за отсутствия синхронизации я записал этот трекер в разряд простейших. Конечно, трекер мощный и удобный, но для меня он остается родным и простым :).
        Чтобы случайно не начался спор, предлагаю считать его простейшим в плане юзабилити :)


        1. AllexIn
          24.01.2016 18:04

          Понятно.
          Просто с точки зрения сбора данных: там, видимо, огромная база приложений с алгоритмами расписанными как каждое из них анализировать.
          Это не реально сделать для беслпатного продукта, потому что приложения появляются быстрее чем можно себе позволить добавлять их поддержку.


          1. SkryabinD
            24.01.2016 18:39

            Не знал про базу, думал, что есть какие-то универсальные способы.
            Но все равно, если выделите определение приложения в какие-то отдельные файлы/модули, то уверен что кто-то поддержит и поможет добавить обработку самых нужных приложений.


            1. AllexIn
              24.01.2016 18:41

              Я тоже «не знаю» про базу, но не вижу универсального способа анализировать активность внутри приложений. Как минимум regexp для анализа заголовка каждого отдельного приложения.


              1. SkryabinD
                24.01.2016 18:53

                Кстати да, вот сейчас посмотрел, как трекается программа Sequel Pro (для работы с Mysql): в трекинге как раз отображается то, что в заголовке окна программы. Причем не совсем корректно составляется дерево активности. Но тем не менее, это позволяет выделить работу с разными базами в разные проекты.


          1. zb3k
            24.01.2016 20:45

            Думаю что база там не большая. Доступ к информации об открытых файлах или url-адресах программа получает с помощью AppleScript. В случае с файлами это стандартные методы. А вот для получения url скрипт прописан для каждого браузера. Для всех остальных берется заголовок активного окна.
            Вот чего не хватает в Timing так это возможности самостоятельно прописывать путь к файлам/урлам в AppleScript.


  1. RouR
    24.01.2016 22:44

    Но на самом-то деле Хром используется также для доступа к багтрекеру, документации, stackoverflow. Но первая версия трекера не умела отличать эти действия и записывала всё в одну категорию. Одно из временных решений — использовать Хром для чтения хабра / почты / vk и т.п., а всю рабочую деятельность вести в Frirefox. Но привычка была слишком сильна и всё равно в итоге часть работы делалась по привычке в Хроме.

    Так как была решена эта проблема? Я установил, запустил, а в отчётах только сам браузер без возможности разделить что эти сайты смотрю по работе, а это я во вконтактике сижу.


    1. AllexIn
      24.01.2016 22:46
      +1

      Решена. Тестирую сейчас и допиливаю до приемлемого уровня. В паблике этого функционала пока нет.


  1. monah_tuk
    25.01.2016 14:14

    Никаких ручных таймеров. В мире, где пользователь постоянно переключается между разными задачами, отходит «покурить», отвечает любовнице в ICQ, точность ручных таймеров стремится к 0.

    с остальными двумя пунктами согласен, но для себя идеалом таймера принял шахматные часы. только с количеством циферблатов по количеству задач — ткнул, ход пошёл.

    В общем и целом получилось: gitlab.com/hatreds-tools/task-timer

    собираешь (бинарники для винды могу дать, под Linux главное dev пакеты для Qt4 поставить), запускаешь, висит в трее, заводишь таски — начал заниматься кликнул по ней. Если долго отсутствовал — предложит скорректировать время задачи (время реакции оценивается по времени бездействия пользователя за компьютером и задаётся в настройках), на что можно согласиться или нет. Да и вообще, как показывает моя практика, для учёта достаточно точности до 30 минут и кто рапортует, что работал больше 30-35 (плюс-минус) часов в неделю и так круглый год, тот лукавит :)


    1. AllexIn
      25.01.2016 14:17

      Ну так то и таймер не нужен. :) с 9 до 18 рабочее время, что тут считать.
      задача то как раз в том, чтобы посчитать что внутри этих 9 часов.


      1. monah_tuk
        25.01.2016 15:14

        Нужна раскладка по задачам. Что бы потом можно было оринетироваться, типа «на изучение спеков нового чипа, ориентировочно столько часов», «на устранение такого рода проблем — столько часов» ну и так далее. Т.е. у меня в трекере, допустим, десяток задач, нужно понимать, но что ушло время и в каких соотношениях. Собственно эти задачи в трекере и висят и между ними происходит переключение как в шахматных часах.


  1. mn3m
    25.01.2016 16:29

    Пробовал ли автор Hamster Time Tracker?

    Подробнее о Hamster
    1. OpenSource, Python, QT;
    2. есть в стандартных Debian based дистрибутивах GNU/Linux в стандартном репе (sudo apt-get install hamster-applet);
    3. хоткеи для переключения активности;
    4. некое подобие отчётов;
    5. есть возможность переключения активности при переходе на альтернативный Workspace;
    6. есть hamster-cli свой консольный интерфейс для расширения функциональности или просто для доступа из консольного интерфейса;


    1. AllexIn
      25.01.2016 16:37

      Он разве кроссплатформенный?
      Я натыкался на него в процессе поисков, но не увидел нигде намека на кроссплатформу и поэтому не изучал глубоко.


    1. monah_tuk
      26.01.2016 07:47

      <зануда>QT — Quick Time?</зануда> А если серьёзно, то где вы его увидели:

      Hamster is written in PyGTK, using SQLite for data storage.
      ?


  1. mn3m
    25.01.2016 19:52

    Теоретически — да, т.к. Python, но практически — весьма сложно, т.к. зависит от множества библиотек которые прийдётся перетащить в чужеродную среду, среди которых D-BUS. Работать оно возможно даже будет, но вопрос — какой ценой и надо ли оно. И я ошибся. Он использует не QT, а GTK2.


  1. zirf
    26.01.2016 10:16

    AlexIn пожалуйста прямо на гитхабе, настройте чат, форум, вики, ну неудобно все тут отписывать — длинная простыня (да там почти везде англ интерфейс, ну делов то, а пиcать можно и по-русски или прямо на c++). Нужна помощь — обращайтесь.


  1. mvs3d
    26.01.2016 11:15

    Много лет работал на почасовой основе, за это время перепробовал различные варианты и сложилось такое мнение:

    • автоматические трекеры более точно считают время, но далеко не всегда поймешь к чему его отнести (скайп, например используется и в работе и для общения с родственниками… про браузер вообще молчу);
    • ручные трекеры дают более точную картину того над чем занимался, не только над каким проектом но и какой задачей, но бывает забываешь про него (что обидно, частенько забываешь запустить трекер именно в ходе самых продолжительной и продуктивной работы — в это время и про еду можно забыть, что уж говорить о кнопке «Старт» в трекере?);


    В целом, второй вариант выглядит все-таки предпочтительнее, если вы хотите получить более ясную картину о том, куда ушло время (а не только работал в это в время или в игрушки играл), плюс прививает рабочую дисциплину. НО! Автоматический трекер мог бы стать больши подспорьем в случаях, когда в пылу работы «про все забыли», или когда забыл поставить на паузу задачу когда отошел от компа или тебе позвонил родственник в скайп.

    В общем, мне видится полезным объединить два типа трекеров в один. Впрочем, можно использовать ваши данные, загружая из в свой «ручной» трекер… надо будет эту мысль обдумать. Спасибо за софт!


    1. AllexIn
      26.01.2016 11:21

      Плагинчики просто нужны внутри софта, чтобы было понятно что делало в том же скайпе.
      По поводу ручного режима — для этого есть профили.
      Пожалуй единственное что мешает их использовать как «задачи» — отсутствие возможности перенести профиль в архив не удаляя его. Это в планах, но не приоритет.


  1. Anton_Gorodezkiy
    26.01.2016 17:34

    В своё время я использовал taskcoach.org. Он opensource.


    1. AllexIn
      26.01.2016 18:10

      Он не автоматический.


      1. Anton_Gorodezkiy
        26.01.2016 18:18

        Ну так opensource же, вы могли бы заточить его под себя (не знаю конечно насколько это было бы легко).

        Ну да не суть, я просто хотел вам о нем рассказать, если вы не сталкивались. Мне очень помог, когда было нужно.