独学してエンジニア職についた初級者が中級者になるためにプライベートで実践している学び方
という記事で紹介したgithub.com/aimof/ultra-violetの紹介記事です。(実はREADME.mdの日本語下書きも兼ねています)
市民、あなたは幸福ですか? (幸福は義務です)
ultra-violet(uv)は~~あなたが幸福かどうかコンピュータが監視するためのツール……~~cronに登録することでユーザーのウィンドウ利用履歴を記録し、可視化するツールです。元々github.com/sourcegraph/thymeというメンテされてないツールがあったので、それにテストコードを書いて、cronで使えるように改造しました。その辺りの動機は前述の記事に書かれているので詳しくはそちらをどうぞ。名前の元ネタは某ディストピアもののRPGです。
機能
ウィンドウの状態を取得、記録するtrackコマンド、取得したデータを可視化するshowコマンド、その両方を簡単にcron登録するためのwatchコマンドで構成されます。内部的には、x11のWindow情報をwmctrl, xdotoolなどでとってきてパースするというだいぶ原始的な処理を行っています。このコマンドをインストールしてね❤️と教えてくれるだけのdepというサブコマンドもあります。(文字列出力するだけだけどね)。
ultra-violetの何が良いの?
普段あなたがコンピュータに向かっている時間、いったいどれだけ有効活用できていますか? 生産的で幸福な活動をしていると言えますか? その辺りを振り返り、自分を省みるためのツールです。(現状では簡単に改ざんできるけど、開発の方向性次第では本当に監視ツールにもなりうるかもね)
デモ
こちらの画像はthyme付属のものですが、可視化部分には手を入れてないので今も同じです。記録したデータをjsonで保存してシンプルに出力してくれます。
開発状況
元々あったツール(thyme)からWindowsサポート切ってtrack部分のテストコードとwatchサブコマンドを追加しました。(年末年始はそれだけで吹っ飛んだ)。depコマンドでちゃんと依存関係をなんとかする機能や、バグフィックス、データ圧縮、READMEなどやることは山積みな状態です。
使い方
go(1.8以上)とdepがインストールされた状態で、
$ go get github.com/aimof/ultra-violet
$ cd $GOPATH/src/github.com/aimof/ultra-violet/cmd/uv
$ dep ensure
$ go install .
crontabへの登録(linux)
# crontab -e
* * * * * /path/to/bin/uv watch -d /path/to/dir
まとめ
github.com/aimof/ultra-violetをよろしくお願いします。価値を感じたら使ってみてください!