18:42:34 # Life gitattributes. なんかファイルのdiffがバイナリーだと言われて表示されずなんでだろうなぁとおもって調べていたんだけど、どうも日本語の文字列がそういう扱いになっているのかな。 仕方がないので.gitattributesファイルにdiffアトリビュートを追記しておいた。 textアトリビュートなのかと最初思ってたらそれは改行コードの変換をするという意味で期待しているものとは違うものだった。
18:53:33 # Life dired からの vc-log. 最近はEmacsのVCの使い方になれてきてGitの履歴とかを全部Emacsで見てる。 特にdired の . から C-x v lででてくるディレクトリ全体の履歴がマージのヒストリとかを眺めるのに便利。もっと簡単にこれ表示するショートカット作るべきかも。
06:40:25 # Life メインの環境をDebian testing 環境に移行してしばらくたつ。 大体動くようになったんだけどずっと試行錯誤していたのがGnomeで再起動と画面のロックができない点。 なんでだろうとおもったら最近は再起動と画面のロックはDisplay Managerの提供するサービスで、GNOMEはどうもそのサービスが提供されていないと画面ロックと再起動ができないっぽい。 手元でLightDMを使っていたのが問題で、GDMに切り替えたら画面のロックと再起動ができるようになりました。 LightDMからは再起動とかできるのでおかしいなぁと思ってたんだけど。なんじゃこりゃ。 systemdの軍門にくだれという要求に屈するのか。
17:35:55 # Life Make で並列プログラム。 MakefileでPHONYルールを並べて並列にしまくってみた。 Makeにはそれなりに癖があって大変なんだけど、可読性のある依存関係のあるシェルスクリプトを記述する手法としては悪くはないかも。
all: job1 job2 preconnect: ssh server uname -a job1: preconnect ssh server hogehoge job2: preconnect ssh server fugafuga .PHONY: job1 job2 preconnect
シェルで同じこと書こうと思ったらまだこのレベルならかけなくないけど依存関係のある一連の流れとかを記述しようとしはじめたりエラー処理を考えたりすると悲惨。
set -e ssh server uname -a ssh server hogehoge & ssh server fugafuga & wait
16:50:59 # Life スクリプトからemacsclient 経由で gdb を起動したいんだけど。パラメータを適切にクオートしてくれる仕組みはないかな。 execveでgdbを起動するような配列はあるとしてそれをemacsclient -e '(gdb "....")'として起動できる文字列にエスケープするにはどうするべきか。