Comments 22
А насчет двух категорий: в какую категорию тогда относить запись в статистике? Если во все, то получится сумма > 100% :)
Если вы в дороге, чтобы не терять времени, читаете книжку (как делал тот же Любищев), то можно и записывать это в "чтение", а не в "дорогу". Получается, что одной категории тут достаточно :)
У каждой записи есть свой UUID. При создании двух записей у них будет разный UUID и при синхронизации в итоге будет две разных записи. Тоже работает для редактирования, удаления и для категорий. А вот если одна запись редактировалась на двух разных устройствах, то в итоге будет более поздняя версия.
А если попробовать реализовать какую-нибудь последовательную CRDT (например LSEQ) поверх дропбокса, то можно добиться вполне приличного слияния при редактировании записей.
Спасибо :) Ну у меня по сути нечто типа CRDT и реализовано — я так и проектировал, что было SEC. Только у меня записи являются атомарными. Я думал о том, чтобы можно было редактировать только часть записи, но тогда нужно хранить время модификации еще и для каждого поля. Сделать не проблема, но будет оверхед и я пока не решил, что оно того стоит.
Могу посоветовать пару книжек:
1. Алан Лакейн. Исскуство успевать (Alan Lakein «How to get control of your time and your life» ) — каждый из неё найдёт для себя что-то полезное. Перевод есть в сети.
2. Томас Лимончелли. Тайм-менеджмент для системных администраторов (Thomas A.Limoncelli. «Time Management for System Administrators») — ну, тут конкретно для ИТ специалистов (не для всех). Книгу в электронном виде покупал на books.ru по свободной цене.
В системах тайм-менеджмента нередко все начинается с того, чтобы начать учет времени. Собственно вот он :)
Но такой учет может пригодиться не только для тайм-менеджмента, но и просто чтобы оценить, во сколько обходятся те или иные вещи. Например, у вас есть автомобиль. Время от времени его нужно возить на СТО, менять резину зимнюю/летнюю, возить на мойку, оформлять разные страховки, покупать туда разную фигню и т.д. Все временные расходы можно записывать например в "Обслуживание > Авто" и потом можно будет оценить, во сколько обходится машина не только по деньгам, но и по времени.
Другой пример: на дорогу до работы и обратно тратится часа по два с половиной или даже больше. Можно подсчитать, осознать, что это почти месяц в году и тихо офигеть. Или громко :) И можно попробовать подсчитать, сколько будет стоить переехать поближе к работе и оценить, сколько это сэкономит времени и сделать выводы — выгодно или нет.
Учет особенно полезен для каких-то нерегулярных вещей, как в примере с машиной, когда навскидку подсчитать временные затраты не так просто.
За книжки спасибо, посмотрю.
1. Добавляем в настройках приложения точку на карте и указываем, что это, например, работа или, там, бассейн.
2. Приложение периодически считывает данные о местоположении устройства
3. Если устройство находится рядом с указанной точкой и не было заявлено никакой другой активности, то логируется активность, соответствующая этой точке (работа, бассейн..)
4. Если устройство движется со скоростью, > x км/ч, записывается активность, заданная в настройках для таких условий (например, «дорога»)
Простой пример.
Есть время на дорогу. Я в дороге, когда еду на работу, когда еду в магазин покупать что-то для своего хобби, когда еду навещать родителей на дачу, когда еду на тренировку в спортзал. Можно, конечно, сделать подкатегории для категории «дорога». Но как тогда быть, если я хочу понять, сколько всего времени тратится на хобби, или на спорт? Значит надо делать в категориях хобби, спорт, работа, семья и прочих подкатегорию «дорога»? А как тогда понять, сколько всего времени уходит на разнообразные разъезды? Ортогональные классификаторы элементарно решают эту задачу, но их ни где нет!
В некоторых трекерах (например, расходов) есть зачаток системы независимых категорий под названием «проект». Это, конечно, уже кое-что, но по хорошему в проектах тоже нужны подкатегории. И главное, я ни где не видел просто нескольких независимых классификаторов, по которым можно было бы рассовывать затраты времени, денег и т.п.
А если бы еще можно было поменяв классификатор по каким-то кастомным правилам пересортировать «старые» записи в новые категории…
Я, конечно, не надеюсь на имплементацию такой фичи, но хотелось бы понять, неужели это такое странное и не очевидое желание?
Мысль интересная, не сказал бы, что неочевидная. У меня сделано так, что показывает распределение времени по категориям. Т.е. смотрим график за месяц и у нас не будет суммарно больше времени, чем месяц. И если посмотреть отдельно по категориям статистику и сложить, то получится тот же месяц. А если одна и та же запись будет "Хобби > Дорога" и "Дорога > Хобби", то тут уже цифры могут не сходиться. Конечно, если пользователь ожидает такое поведение, то все нормально.
Я думал над тем, чтобы добавить тэги, которых можно навесить на запись и сделать поиск и статистику не только по категориям, но и по тэгам.
Да, тэги частично решают эту проблему. И это самое простое.
Но ортогональные классификации — это несколько другое. Там в рамках каждой классификации тоже сумма времени будет ровно месяц. Надо ведь отнести запись к какой-то категории по каждой из классификаций.
Тут как раз «проект» — наиболее очевидный вариант классификации. Например: Работа, семья, хобби, жизнеобеспечение (сон, еда), друзья.
Сейчас подумал и понял, что сделать «правильную» систему классификаций — очень не простое занятие. Наверное потому их и не имплементят. На первый взгляд просто и логично, а как начинаешь думать уже конкретно — не все так очевидно. Но я бы, наверное, все равно подумал.
Распределенная программа для учета времени