Alfred で作業時間を記録する workflow を作ってみた
ソニックガーデン Advent Calendar 2015 の7日目の記事です。
ソニックガーデンの仕事では、コードの品質だけでなく開発速度も重視されます。お客さんのビジネスに価値をもたらすソフトウェアを素早く開発し、リリース後にも日々変化する状況に柔軟に対応していくのがソニックガーデンの納品のない受託開発です。また、「長時間働いてがんばります」という働き方は全く推奨されていません。短時間でいかに成果を出すかが求められています。
さて、短時間で成果を出すと言ってもいろんな考え方があるのですが、まずは自分が何に時間を使っているのかを知りたくなりました。
試しにTogglといったサービスを使ってみたのですが、タスクの開始や終了タイミングで押し忘れてしまうことがよくありました。で、後で手動修正するのですが、その操作性がイマイチ。
シンプルに Googleスプレッドシートに手で記入する方法も試してみましたが、現在の時間を入力する簡単な方法がわからなかったり(後で調べたら Command + Shift + ; でできた)、コピペなどのタイミングで10秒くらい固まることがある(自分のマシンが非力なのか?)、ブラウザでスプレッドシートのタブに切り替えて記録するという手順がそもそも面倒、といった問題があり、やはりイマイチでした。
で、 Alfred の Worlflow を自作してみました。(ちなみに、Alfred の workflow を使うには Powerpackを購入する必要があります)
Workflow の機能
今はこんな感じの機能になっています。
l 何かテキスト
で現在の時間と入力したテキストをログファイルに追記l
のみで 現在の時間と '------' をログファイルに追記le 何かテキスト
で現在の時間と入力したテキストを追記した上で、エディタでログファイルを開くle
で何も追記せずにログファイルを開くlb
で区切り線と今日の日付をログファイルに追記(その日に作業開始時用)
これの何がいいかというと、シンプルなテキストファイルに書き込まれるというところです。テキストファイルなら自分の手に馴染んだエディタで編集できますし、時間記録とは関係無いメモも同じファイルに書けます。後からデータを加工したくなってもテキストファイルなら簡単にできます。
Workflow の作り方
Alfred の設定ウインドウで Workflows のタブを選択し、左下の+ボタンから Templates > Essentials > Keyword to Script
を選ぶ。
適当に名前をつける。
こんな感じになる。
左の Keyword をダブルクリックして、キーワード l
を設定。
右の Run script をダブルクリックして、実行するスクリプト名を設定。
ここでは main.rb というrubyスクリプトを実行することにします。
ワークフローのコンテキストメニューから Show in Finder
を選んで、開いたフォルダにスクリプト(main.rb)を作る。
スクリプトはこんな感じ。
右上の + から Inputs > Keyword
を選び、キーワード le
も追加します。
右上の + から Actions > Run script
を選び、スクリプトを追加。
ruby main.rb -o "{query}"
としました。
追加した Keyword と Run script をドラッグでつないでください。
あとは、同様にキーワード lb
も追加します。出来上がりはこんな感じです。
まとめ
alfred workflow で検索すると便利な workflow がたくさん見つかりますが、欲しいものがなければ自分で作るのも難しくありません。 立派なものを作る必要はありません。さくっと作って、日々の作業を効率化しましょう!