Автоматизация рутины в OS X. Урок 10. Анализируем собственную продуктивность
Эта статья написана для людей, которые постоянно используют приложение «Напоминания» в OS X и iOS для личного планирования. Она расскажет как с помощью JavaScript Automation собрать данные о завершенных делах и провести анализ собственной продуктивности. После ее прочтения и выполнения нижеприведенного кода на своем компьютере читатель научится основам взаимодействия приложения «Напоминания» c JavaScript и, возможно, узнает что-то новое и интересное о самом себе.
Что мы будем делать?
Напишем скрипт, который занесет данные о завершенных задачах в электронную таблицу и вычислит самое продуктивное время суток, день недели и месяц года.
Куда писать Java Script код?
- Открыть программу «Редактор скриптов» (Программы -> Утилиты).
- В верхнем меню выбрать Файл -> Новый.
- На переключателе языков выбрать JavaScript.
Как получить информацию о напоминании?
Для начала научимся обращаться к отдельному напоминания с помощью JavaScript и разберем методы, которые позволят получить информацию о нем:
//Создаем переменную для приложения «Напоминания» var Doings = Application("Напоминания"); //Получаем заголовок напоминания Doings.reminders[1].name();
Собрать информацию о напоминании можно с помощью следующих методов:
- id: идентификационный номер;
- body: текст напоминания;
- completed: завершено ли дело;
- completion date : дата завершения дела;
- creation date: дата создания напоминания;
- due date : дата предполагаемого завершения дела;
- priority — приоритет дела (обозначается целым числом).
Как записать информацию о напоминания в таблицу?
Теперь создадим таблицу в Numbers со следующими полями:
- название дела;
- дата создания дела;
- дата предполагаемого завершения дела;
- дата реального завершения дела.
И напишем скрипт, который будет заносить в нее данные:
//Создаем переменные для приложений Напоминания и Numbers var Doings = Application("Напоминания"); Numbers = Application("Numbers"); //Открываем электронную таблицу для записи информации о сделанных делах var path = Path("/Users/irina/Desktop/Doings.numbers"); var doc = Numbers.open(path); var sheet = doc.sheets[0]; var table = sheet.tables[0]; //Перебираем все дела for (i=0;i<=Doings.reminders.length-1;i++) { //Номер ряда в электронной таблице равен итерации цикла + 2 j=i+2; //Проверяем является ли текущая задача выполненной if(Doings.reminders[i].completed()==true) { //В первый столбец записываем название дела table.cells["A"+j].value=Doings.reminders[i].name(); //Во второй столбец дату создания дела table.cells["B"+j].value=Date(Doings.reminders[i].creationDate()).toString(); //В третий планируемую дату завершения table.cells["C"+j].value=Date(Doings.reminders[i].dueDate()).toString(); //В четвертый фактическую дату завершения table.cells["D"+j].value=Date(Doings.reminders[i].completionDate()).toString(); } }
Как вычислить самое продуктивное время суток?
Эти данные теперь можно анализировать вдоль и поперек. К примеру, определить, в котором часу завершается больше всего дел. Для начала напишем простенький скрипт, который будет записывать часы завершения дел в отдельный столбец:
//Перебираем все завершенные дела for (i=0;i<=Doings.reminders.length-1;i++) { j=i+2; if(Doings.reminders[i].completed()==true) { //Узнаем про каждое дело в котором часу оно было завершено и записываем в столбец E table.cells["E"+j].value=Doings.reminders[i].completionDate().getHours(); } }
Теперь необходимо выяснить, какое значение встречается в крайнем столбце чаще всего. Для этого мы будем использовать статистическую функция МОДА().
Пользоваться ей очень просто. Надо в ячейке набрать знак «=» +»МОДА» и выделить диапазон, для которого будет производиться поиск самого часто встречающегося значения.
Таким образом мы выяснили, что самое продуктивное время — 20.00.
Как вычислить самый продуктивный день недели?
Чтобы узнать самый продуктивный день недели необходимо немного модифицировать центральную строчку в нашем скрипте для сбора данных. Вместо метода getHours() применить метод .getDay().
table.cells["E"+j].value=Doings.reminders[i].completionDate().getDay();
Этот метод возвращает значения дня недели в числовом формате, где 0 соответствует воскресенью, единица понедельнику, а 6 субботе.
Предыдущие публикации из цикла «Автоматизация рутины в OS X» вы можете найти по следующим ссылкам:
- Автоматизация рутины в OS X. Урок 1. Пакетная обработка изображений
- Автоматизация рутины в OS X. Урок 2. Генерация слайдов для презентаций
- Автоматизация рутины в OS X. Урок 3. Рассылаем спам
- Автоматизация рутины в OS X. Урок 4. Простейший парсинг почтового ящика
- Автоматизация рутины в OS X. Урок 5. Пакетная конвертация текстовых файлов
- Автоматизация рутины в OS X. Урок 6. Простейший парсинг веб-страниц
- Автоматизация рутины в OS X. Урок 7. Пакетная конвертация видео и аудио
- Автоматизация рутины в OS X. Часть 8. Архивируем и анализируем записи из «Заметок»
- Автоматизация рутины в OS X. Часть 9. Пакетная архивация файлов
Что полезно знать:
- Как записать видео с экрана айфона
- Как отключить вибрацию на iPhone при уведомлениях
- Как заблокировать неизвестный номер на айфоне
✅ Подписывайтесь на нас в Telegram, ВКонтакте, и Яндекс.Дзен.