Автоматизация рутины в OS X. Урок 10. Анализируем собственную продуктивность

Автоматизация рутины в OS X. Урок 10. Анализируем собственную продуктивность

Эта статья написана для людей, которые постоянно используют приложение «Напоминания» в OS X и iOS для личного планирования. Она расскажет как с помощью JavaScript Automation собрать данные о завершенных делах и провести анализ собственной продуктивности. После ее прочтения и выполнения нижеприведенного кода на своем компьютере читатель научится основам взаимодействия приложения «Напоминания» c JavaScript и, возможно, узнает что-то новое и интересное о самом себе.

Что мы будем делать?

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

Куда писать Java Script код?

  1. Открыть программу «Редактор скриптов» (Программы -> Утилиты).
    Снимок экрана 2015-10-10 в 21.02.41
  2. В верхнем меню выбрать Файл -> Новый.Снимок экрана 2015-10-10 в 21.08.11
  3. На переключателе языков выбрать JavaScript.

Снимок экрана 2015-10-10 в 21.11.37

Как получить информацию о напоминании?

Снимок экрана 2015-10-15 в 19.38.50Для начала научимся обращаться к отдельному напоминания с помощью JavaScript и разберем методы, которые позволят получить информацию о нем:

//Создаем переменную для приложения «Напоминания»
var Doings = Application("Напоминания");
//Получаем заголовок напоминания
Doings.reminders[1].name();

Снимок экрана 2015-10-15 в 19.35.58Собрать информацию о напоминании можно с помощью следующих методов:

  • id: идентификационный номер;
  • body: текст напоминания;
  • completed: завершено ли дело;
  • completion date : дата завершения дела;
  • creation date: дата создания напоминания;
  • due date : дата предполагаемого завершения дела;
  • priority — приоритет дела (обозначается целым числом).

Как записать информацию о напоминания в таблицу?

Снимок экрана 2015-10-15 в 19.49.01Теперь создадим таблицу в 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();  
  }
 }

Теперь необходимо выяснить, какое значение встречается в крайнем столбце чаще всего. Для этого мы будем использовать статистическую функция МОДА().

Снимок экрана 2015-10-15 в 20.52.43Пользоваться ей очень просто. Надо в ячейке набрать знак «=» +»МОДА» и выделить диапазон, для которого будет производиться поиск самого часто встречающегося значения.

Таким образом мы выяснили, что самое продуктивное время — 20.00.

Снимок экрана 2015-10-15 в 20.53.16

Как вычислить самый продуктивный день недели?

Чтобы узнать самый продуктивный день недели необходимо немного модифицировать центральную строчку в нашем скрипте для сбора данных. Вместо метода getHours() применить метод .getDay().

table.cells["E"+j].value=Doings.reminders[i].completionDate().getDay();

Этот метод возвращает значения дня недели в числовом формате, где 0 соответствует воскресенью, единица понедельнику, а 6 субботе.

Предыдущие публикации из цикла «Автоматизация рутины в OS X» вы можете найти по следующим ссылкам:

Что полезно знать:


✅ Подписывайтесь на нас в Telegram, ВКонтакте, и Яндекс.Дзен.



Добавить комментарий