Publish OmniFocus tasks as highlights in RescueTime

Posted on August 21st, 2016

I prepared a little script that allows to publish OmniFocus tasks as highlights in RescueTime. I found it useful for review of completed tasks, since RescueTime provides more convenient interface for such review and includes additional context like used apps and visited websites.
You can download the script here, or see source code at the and of this post. To use the script you'll need OmniFocus Pro (for AppleScript support) and RescueTime premium account (for highlights feature).

To install and run the script:

1) Generate API key for RescueTime: https://www.rescuetime.com/anapi/manage


2) Open Terminal and run defaults write io.postach.kholodilov 'rescuetime.api.key' yourkey

3) Download script and open it with double-click. Script Editor application will appear. Go to its preferences and check “Show Script menu in menu bar":

Close Script Editor.

4) Open OmniFocus. In menu bar find “script" icon and click “Open OmniFocus Scripts Folder":


Copy downloaded script to this folder.

5) Go back to OmniFocus. Select one or more tasks (with cmd-click):
I usually open “Completed" perspective and select all tasks for the day. Don’t select any items beside tasks (like “Yesterday" item on the screenshot above), otherwise the script will fail.

6) Click “script" icon in menu bar again - now the script is here in the list, click on it:


7) Gear icon will appear in menu bar showing that script works:


8) On completion it’ll disappear - now go to https://www.rescuetime.com/daily-highlights and open report for the date of your task(s) completion (or current date, if tasks weren’t completed):


Enjoy your task in the report! It’ll start with project name in square brackets and have context and at the end.

As a bonus, completed projects will appear as RescueTime projects in the timeline:



That’s it. You can find source code of the script in the following gist. I’ll appreciate any feedback. Thanks!

Peopleware

Posted on May 29th, 2016

Мои заметки о прочитанной книге https://www.amazon.com/Peopleware-Productive-Projects-Teams-Second/dp/0932633439

Часть 1
  • Отличие проектной работы от производства
    • Не-взаимозаменяемость сотрудников, индивидуальный вклад
    • Возможность делать ошибки
    • Динамика важнее, чем стабильное состояние
    • Необходимость рефлексии
  • Ориентация на качество повышает продуктивность и долгосрочные результаты
    • Право вето на выпуск продукта, не соответствующего стандартам качества
  • Закон Паркинсона
    • Как правило не применим в нормальных компаниях - люди мотивированны
    • Возможно у отдельных сотрудников из-за несоответствия компетенций
    • Нереалистичные сроки плохо влияют на продуктивость, демотивируют
  • Нет простых способов повысить продуктивность

Часть 2
  • О планировках в офисе

Часть 3
  • Важность найма правильных людей (человек врядли поменяется внутри организации), портфолио, презентация прошлых достижений и опыта (всей команде)
  • Низкая "текучка", продвижение и переобучение внутри организации
  • Опасность методологий

Часть 4
  • Постановка целей компании команде, сплочение команды вокруг цели/идеи
  • "Выращивание" команды, а не "построение"
    • Доверять команде - лучшая стратегия, когда люди уже наняты; позволить делать ошибки
    • Общее рабочее пространство
    • Отсутствие отвлечений на другие проекты
    • Уровень качества
    • Отсутствие необоснованных дедлайнов
    • Создавать возможности для небольших совместных успехов
    • Создавать условия для продуктивной работы и не вмешиваться в нее
    • natural authority
    • Выделить отличительную черту команды, сплочение вокруг нее
    • Менеджер, как правило, не часть команды. Лидерские функции в разных областях лежат на разных членах команды, они не постоянны.
    • Добавление разнообразия, "отличающихся" людей, помогает сплотить команду

Часть 5
  • Внесение конструктивного беспорядка
    • Пилотные проекты, возможность попробовать что-то новое - увеличивает продуктивность, мотивирует; возможен подход "все проекты пилотные", но новое должно вводится в одной области, не во всех сразу.
    • Хакатоны
    • Совместные мероприятия, обеды, тимбилдинг
    • Автономность для сотрудников, возможность самостоятельно определять свою роль
  • Изменения в компании - не все сразу, что-то одно. Поддержка коллег.

Часть 6
  • Опасность программ maturity level (CMMI)
  • Изменения через хаос
  • Organizational learing происходит в middle management
  • "status" meetings, early overstaffing, time fragmentation,
  • Построение community сотрудников

Sublime Text - GitHub and GitLab integration with Github Tools

Posted on June 10th, 2015

Every day in my work I use Sublime Text editor. It is quite powerful for code and configuration files editing, and a lot of its power comes from plugins.

One of the very handy plugins is Github Tools. It allows you to quickly jump from currently opened file to its page on GitHub, or copy GitHub link to clipboard (or do some other things related to repository, but these two are the most important). You can do it as simply as typing "github open" in command palette (Cmd+Shift+P) - super useful when you want to quickly share something:


Convenience of Github Tools is very addictive, so it was real pain when my employer decided to move all our code to internal self-hosted repository management tool - GitLab. Fortunately, GitLab guys cloned most of GitHub features up to the structure of repository urls. Today I finally figured out that Github Tools might be able to work with GitLab. And it works!

To setup Github Tools with GitLab you need:
1) Open plugin's settings file:

2) Add your GitLab installation hostname along with "github.com":

3) Restart Sublime Text to re-read the config.
4) Enjoy Github Tools functionality with you GitLab repositories.

Some commands like "Pull Requests" won't work (because GitLab has "Merge Requests" instead and different urls for them) - not a big deal.

Bonus:
Intellij IDEA has the same functionality for opening files both on GitHub and Gitlab - you'll easily find corresponding plugins.

Happy hacking!

Postach.io Premium

Posted on March 16th, 2015

Two weeks ago Postach.io team announced that there'll no longer be free version of the blogging platform. From now, they offer 14-days trial and $9/month or $90/year plan with full feature set. As an early adopter I've received 50% discount code and it makes the price quite affordable.

So, what'll you receive for this money:
  • Modest, but tasteful blogging platform based on Evernote. You write a note in Evernote, tag it "published" and it appears as a new blog post. This way you can write everywhere you have Evernote - for example, on iPad (unlike Medium, which editor works only in desktop browser). You can create several blogs with separate notebook for each.
  • Several highly customizable themes for your blog. Here are some of them, check out the rest after sign up:
  • Static pages for personal information, CV, anything.
  • Ability to embed different things like tweets, gists, youtube videos, etc.
  • Add-ons for Disqus comments and Google Analytics, RSS, ability to use custom domain.

What I wait to be released:
  • Post preview functionality on the site. In Evernote you almost see what you get.
  • HTTPS access.

Wrapping up, Postach.io is beautiful platform for Evernote user who wants to blog without additional effort. I like it most for simplicity, but current feature set seems quite powerful and I see a growth potential. If 9$/month for blogging service is too much, I suggest to write to customer support - chances are they'll give you a discount too.

Things I learned this weekend: core.async and Light Table

Posted on January 18th, 2015

Overview of Clojure's core.async library. It allows to model processes communicating via channels inside your program. Somehow it looks like simplified version of Akka actors, but without supervision and network transparency (though, some work in this direction is planned). Such kind of concurrency style is killer-feature of Go programming language. There is 1985's book "Communicating Sequential Processes", which describes the theory behind it.
My simple example - snack machine simulator, implemented with this library - can be found on GitHub.
Conclusion: interesting thing to try, but probably too low-level for application development.

Light Table is a code editor, which main feature is interactivity. It aims to give you fast feedback from your code. For Clojure development, it allows you to evaluate expressions and see results inline:
(however, this feature is not very useful with lexical scoping).
Another nice feature is smart brackets highlighting with different colours:

For web development it also promises rich interaction with running application, like watching variables.
Light Table is open-source and has a plugin system similar to Sublime's, though, less developed - obvious Git integration plugin didn't work when I tried to install and use it (or I'm just not smart enough).
Conclusion: Not a bad replacement for Sublime Text, if you can live without your favourite plugins.