Alfred で作業時間を記録する workflow を作ってみた

ソニックガーデン Advent Calendar 2015 の7日目の記事です。

ソニックガーデンの仕事では、コードの品質だけでなく開発速度も重視されます。お客さんのビジネスに価値をもたらすソフトウェアを素早く開発し、リリース後にも日々変化する状況に柔軟に対応していくのがソニックガーデンの納品のない受託開発です。また、「長時間働いてがんばります」という働き方は全く推奨されていません。短時間でいかに成果を出すかが求められています。

さて、短時間で成果を出すと言ってもいろんな考え方があるのですが、まずは自分が何に時間を使っているのかを知りたくなりました。

試しにTogglといったサービスを使ってみたのですが、タスクの開始や終了タイミングで押し忘れてしまうことがよくありました。で、後で手動修正するのですが、その操作性がイマイチ。

シンプルに Googleスプレッドシートに手で記入する方法も試してみましたが、現在の時間を入力する簡単な方法がわからなかったり(後で調べたら Command + Shift + ; でできた)、コピペなどのタイミングで10秒くらい固まることがある(自分のマシンが非力なのか?)、ブラウザでスプレッドシートのタブに切り替えて記録するという手順がそもそも面倒、といった問題があり、やはりイマイチでした。

で、 Alfred の Worlflow を自作してみました。(ちなみに、Alfred の workflow を使うには Powerpackを購入する必要があります)

Workflow の機能

今はこんな感じの機能になっています。

  • l 何かテキスト で現在の時間と入力したテキストをログファイルに追記
  • l のみで 現在の時間と '------' をログファイルに追記
  • le 何かテキスト で現在の時間と入力したテキストを追記した上で、エディタでログファイルを開く
  • le で何も追記せずにログファイルを開く
  • lb で区切り線と今日の日付をログファイルに追記(その日に作業開始時用)

f:id:shunichi_san:20151207055943p:plain

これの何がいいかというと、シンプルなテキストファイルに書き込まれるというところです。テキストファイルなら自分の手に馴染んだエディタで編集できますし、時間記録とは関係無いメモも同じファイルに書けます。後からデータを加工したくなってもテキストファイルなら簡単にできます。

Workflow の作り方

Alfred の設定ウインドウで Workflows のタブを選択し、左下の+ボタンから Templates > Essentials > Keyword to Script を選ぶ。
f:id:shunichi_san:20151207053321p:plain

適当に名前をつける。
f:id:shunichi_san:20151207053912p:plain

こんな感じになる。
f:id:shunichi_san:20151207053903p:plain

左の Keyword をダブルクリックして、キーワード l を設定。
f:id:shunichi_san:20151207052951p:plain

右の Run script をダブルクリックして、実行するスクリプト名を設定。
ここでは main.rb というrubyスクリプトを実行することにします。
f:id:shunichi_san:20151207053000p:plain

ワークフローのコンテキストメニューから Show in Finder を選んで、開いたフォルダにスクリプト(main.rb)を作る。
f:id:shunichi_san:20151207053008p:plain

スクリプトはこんな感じ。

右上の + から Inputs > Keyword を選び、キーワード le も追加します。
f:id:shunichi_san:20151207060601p:plain

右上の + から Actions > Run script を選び、スクリプトを追加。 ruby main.rb -o "{query}" としました。
f:id:shunichi_san:20151207060849p:plain

追加した Keyword と Run script をドラッグでつないでください。

あとは、同様にキーワード lb も追加します。出来上がりはこんな感じです。

f:id:shunichi_san:20151207052923p:plain

まとめ

alfred workflow で検索すると便利な workflow がたくさん見つかりますが、欲しいものがなければ自分で作るのも難しくありません。 立派なものを作る必要はありません。さくっと作って、日々の作業を効率化しましょう!