Linuxでアクティブなアプリケーションを記録&可視化した

FluentdとGrowthForecastを使って自分の行動をロギング・可視化する -すぎゃーんメモ を見て、自分もやりたくなったのでやった。 上記リンクと違うのは、アクティブなアプリケーションを取得する箇所のみ。 Linuxだと、xpropというコマンドを使ってXの状態を取得できる。

なので、まずは今アクティブなウィンドウのIDを取得。

bash
xprop -root _NET_ACTIVE_WINDOW | awk '{print $5}'

次に、取得したIDを使ってアクティブなウィンドウの情報を取得する。 今回はウィンドウのクラスを取得した。 他にもいろいろな情報を得られておもしろそうなので時間を作って遊んでみたい。

bash
xprop -id ${取得したID} WM_CLASS | awk '{print $4}' | tr -d '\"'
これらをワンライナーにしてfluentdの設定に組み込んだのが下記である。 DISPLAY環境変数の設定を行っているのは、fluentdを実行しているfluentユーザからディスプレイを参照できなかったため。 今はmongodbとGrowthForecastに投げている。なかなかおもしろい。

html
<script src="https://gist.github.com/takaishi/6bcefcd3e43f5779fc15.js"></script>

GNUプロジェクトの一つにパッチを送って取り込まれるまでの話

昨年末にorg-mode(Emacs拡張)に対して送ったパッチが今日無事に取り込まれ たのでその記録を書いておきます.

パッチを送るの巻

org-modeにはEmacs外部からアクセスするためのorg-protocolという機能があっ て,これを使えばFirefox等からorg-modeにURLを送りつけたりできる.これに ついて機能追加をするべく,2012-12-31にパッチを送信した.

で,メンテナから「取り込みたいけど,君は既にTINYCHANGESな変更を一度し ているので,FSFに著作権譲渡してね」と言われた.FSFについての話は検索するなり してくれればよいと思う.とにかく,パッチを取り込んでもらうためにFSFに 対して著作権を譲渡するための書類を送る必要があるということ.

FSFに対してメールを送るの巻

さて,書類を送るためにまずはFSFにリクエストのメールを送るわけだが,org-modeはなかな親切なもので,How to contribute to Org? にどうやればいいか書いてあった. ありがたいことにメールのテンプレートまで用意してくれている. これに必要な事項を書いて送信.これが年始の話である.

assignment paperを郵送するの巻

しばらくして,FSFからPDFが送られてきた. これにサインをして,郵送しろとのこと. 海外に何かを送るのは初めてだったので妙に緊張してしまった. たぶん気にしていたのは自分だけだと思うが,送られてきたPDFはレターサイズだが,A4の紙に印刷して送っても問題ないようだ.

また,送る際に一つ失敗した.自分が郵送するのに使ったのは普通のエアメールだったのだけど,これがよくなかった. 向こうに到着した後,手違いでこちらに連絡が届いていなかったのだけど,僕は郵送途中で紛失したかそれとも船便になってしまって時間がかかっているのか,と思っていた. 送料はかかるが,追跡が可能なEMS(国際スピード郵便)を使うのが良いだろう.

パッチの取り込み

後はとんとん拍子といったところで,パッチをリポジトリの先端に対して作りなおして送信,微修正ののちに取り込まれた. GithubのPullRequestとは違い,なかなか手間がかかったがうれしい限りである.

一連の流れを見ると,やはりPullRequest方式は非常に便利だと思う. MLにパッチを送る方式の場合,git format-patchやgit amを使ってやりとりをするのだけど,これがなかなか難しかった. 慣れてしまえば何ということはないのだろうが,初めて送る時はハードルが高い.

参考

パッチを送るにあたり,以下の記事を参考にした.感謝.

追記

このページも参考になる