極私的ログ管理ツール "Worg" のご紹介

たぶん自分以外の誰にも、少なくとも現段階ではとくに使われる理由も必要もナイとは思うのですが、自分的にはけっこうエポックメイキングな感じになってきたのでお知らせしておきます。

note103/Worg · GitHub

Worgというネーミングは「Work」と「log」から来ています。
テーマ曲はこれです。

Isley Brothers「Work to do」。夢のような名曲です。

上記GitHubではREADMEもほぼナイに等しいので、あらためてざっくり&だらだら説明しますと、これは毎日の「自分が何をしているか、何を終わらせたか」というテキストログを定型でアーカイヴィング&再閲覧しやすいように統一的に整形するためのツールです。

じつはこれの前身というのがすでに公開されていて、

note103/chat2spreadsheet · GitHub

そっちのREADMEはけっこう一生懸命作ってあるので、まずそちらをご覧頂くと早いかもしれないのですが、あとはこんな紹介記事もありまして、

#Perl入学式 第2期最終回&修了式に行ってきた&LT発表した - 103

これは今年の3月末に、Perl入学式の第2期最終回&修了式というのがあった際にその修了式のLTで発表した内容ですが、さらにその記事中でも触れている同ツールの紹介スライドはこれになります。(ツール紹介以外の話題も多いですが)

ここで取り上げている「chat2spreadsheet」(以下「c2s」)というやつ。これはHipChatにモバイル&PCからサクサク入れておいたログを、Excelで管理しやすくするための整形ツール、みたいなもので、Perl入学式で学んだfor文やif文を駆使して作ったのでそうした場で発表させてもらったのですが、もう少し具体的に、どういうことをするのかというと(だからまあそのスライドとかREADMEを見てもらえばいいんですが)、たとえば

今日はAという仕事のBという作業をした。 2014/06/28 22:57

とか書いて、そのログをこのツールに通したときに、その中の日付や時刻、それから、上記の例ならばAとかBといった語句をキーワードとしてソースコードに登録しておくと、いわばフィルタ的に、文中からその要素を抽出して格納しておいてくれる、みたいなことをやっています。

で、その「c2s」をグレードアップしたのが今回ご紹介している「Worg」なのですが、(今思いましたが読み方、考えてなかったですね・・「ワーグ」とかですかね。「ウォーグ」でもいいですが)、「c2s」の場合は入力したテキストがExcel複数列(カラム)に分かれて格納されるように整形されるのですが、「Worg」の場合はExcelではなくテキストファイルに出力されることになっていまして、上記の例文だと以下のようになります。

# 2014/06/28
* 22:57 [A,B]今日はAという仕事のBという作業をした。

まあ、厳密にはちょっと違うんですけど、大まかにはそんなコンセプトだということで。
で、しかしそれだと何が「グレードアップ」なのか、という気もするのでもう少し詳しく書き出してみると、「c2s」から「Worg」への転換にあたって変わった部分はこんな感じです。

  • 機能追加 / 変更
    • HipChatだけでなくPC上で使ってる作業ログからも同じ形式に整形できるようにした。
    • 前身ではExcelへの出力を前提としていたが、テキストファイルへの出力に変えた。
  • 不備解消
    • 同じタグも遠慮なく重複して抽出していたが、重複しないようにした。
    • 特定の語句を別の語句としてタグ化できるようにした。
  • 技術的改善
    • 一時はHipChatからの整形用コードと作業ログからのそれとで共通部分が多くあるにもかかわらず、それぞれに(ほぼ)同じ内容を載せていたけど、共通部分を別のモジュールに移して共有できるようにした。
    • HipChatからの整形用コードと作業ログからのそれはどちらも同じタグの登録リストを使っていたけど、それも共有できていなかったので共有できるようにした。

みたいな感じでしょうか。

本当は上記「c2s」のREADMEみたいなキャプチャ群とか、DEMO動画などあると分かりやすいんだと思いますが、あまりにも普段使っているソースが極私的(プライベート&マジ仕事に関わるもの)すぎてそれは公開しづらく、となると公開用のサンプルソースを作る必要があるんだけどそんな時間もなかなかないのでかなり抽象的な話にしかなっていないですが、そういえば以前、というか去年にこういうブログ記事を書いたんですけど、

私のメモ術 - 103

これともちょっと繋がるところがあって、その続編(最新版)も書きたいと思っていたので、その辺と繋げて続きを書けたら書きます。

あとはまあ、この辺の作業フローって全般的にVimの利用とか、あと以下のような内容ともそれなりに密接に繋がっていたりもするので、

MarkdownのプレビューをVimで見る2つの方法 - the code to rock

本当はそれらも含めて総合的に紹介してみたいんですが(あとgitか・・gitもめちゃ日常に侵食してるな)、うまく時節があったらそのときに・・

※そういえば最近 peco を入れてみました。Docker熱がやや冷めてきたので(あまりにもわからないので)今はVagrantの復習とpecoをいじってみている感じでもあります。この辺も日常に関わるツールという点で自分にとっては本文の内容と少し共通しています。