Индусский код как он есть
Mar. 18th, 2015 11:25 amСподобился таки ознакомиться с образчиком индусского кода, так сказать, в живую...
Вот уже несколько лет я пытаюсь использовать KDE'шный KTimeTracker для того чтобы выяснить сколько времени я на что трачу. И вроде работает он... Но как-то странненько... Для внутреннего употребления вроде ничего, но вот понадобилось мне использовать его для отчета перед работодателем. И для этой задачи его странности уже стали неприемлемыми...
Полез внутрь с целью устранения и обнаружил, что программа писана неким индусом, и в девичестве называлась KArm. Потому что на его родном языке значит "работа". И, surprise, оно родственно слову карма...
Для начала, учет времени там ведется плюс/минус минута. Одинаковая последовательность действий может приводить к разным, в минутах, результатам из-за различий в 5 секунд при исполнении.
Совершенно прекрасен алгоритм возврата к времени начала простоя. (Когда у нас idle, выводится окно спрашивающее скручивать ли счетчики до времени начала простоя или оставить как есть) Так вот: программа запоминает DateTime простоя. При нажатии кнопки "вернуть взад" считает дельту с текущем временем, округляет до минут и вычитает полученное из всех активных таймеров. Представляете что получится если сначала войти в idle а потом усыпить ноутбук?! Счетчик-то он крутит на положенную дельту по регулярному евенту...
Ну и всякие другие замечательные мелочи, вроде того, что idle диалог показывался ровно один раз, и чтобы показался второй раз счетчик надо перезапустить... Или того, что сам idile диалог предлагал либо продолжать как есть, либо скрутить и остановиться. А вот скрутить и продолжить -- не предлагал. А мне то как раз он то и нужен был...
Короче KArm он и есть KArm. Как вы яхту назовете, блин...
Вот уже несколько лет я пытаюсь использовать KDE'шный KTimeTracker для того чтобы выяснить сколько времени я на что трачу. И вроде работает он... Но как-то странненько... Для внутреннего употребления вроде ничего, но вот понадобилось мне использовать его для отчета перед работодателем. И для этой задачи его странности уже стали неприемлемыми...
Полез внутрь с целью устранения и обнаружил, что программа писана неким индусом, и в девичестве называлась KArm. Потому что на его родном языке значит "работа". И, surprise, оно родственно слову карма...
Для начала, учет времени там ведется плюс/минус минута. Одинаковая последовательность действий может приводить к разным, в минутах, результатам из-за различий в 5 секунд при исполнении.
Совершенно прекрасен алгоритм возврата к времени начала простоя. (Когда у нас idle, выводится окно спрашивающее скручивать ли счетчики до времени начала простоя или оставить как есть) Так вот: программа запоминает DateTime простоя. При нажатии кнопки "вернуть взад" считает дельту с текущем временем, округляет до минут и вычитает полученное из всех активных таймеров. Представляете что получится если сначала войти в idle а потом усыпить ноутбук?! Счетчик-то он крутит на положенную дельту по регулярному евенту...
Ну и всякие другие замечательные мелочи, вроде того, что idle диалог показывался ровно один раз, и чтобы показался второй раз счетчик надо перезапустить... Или того, что сам idile диалог предлагал либо продолжать как есть, либо скрутить и остановиться. А вот скрутить и продолжить -- не предлагал. А мне то как раз он то и нужен был...
Короче KArm он и есть KArm. Как вы яхту назовете, блин...
no subject
Date: 2015-03-18 09:31 am (UTC)