Lion からの ssh ログイン先で locale がどうのこうの、といわれる。

Lion にしてから、ログイン先の計算機で、なんか言われることが多くなった。

% svn status
svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LC_CTYPE is UTF-8
svn: warning: please check that your locale name is correct

意味が分からなかった(分からない)ので放置していたが、
とあるサイトに sftp すら出来ないことに気づいた。

$ sftp -v hoge
...
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_CTYPE = UTF-8
debug1: Sending env LANG = ja_JP.UTF-8
debug1: Sending subsystem: sftp
debug1: client_input_channel_req: channel 0 rtype exit-signal reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: Transferred: stdin 0, stdout 0, stderr 0 bytes in 0.0 seconds
debug1: Bytes per second: stdin 0.0, stdout 0.0, stderr 0.0
debug1: Exit status -1
Connection closed

どうやら Lion から ssh をするときに LC_* 環境変数を送っているのが問題らしい。
http://thegreyblog.blogspot.com/2012/02/fixing-mac-os-x-lions-ssh-utf-8-issues.html

man ssh_config には

SendEnv
Specifies what variables from the local environ(7) should be sent
to the server. Note that environment passing is only supported
for protocol 2. The server must also support it, and the server
must be configured to accept these environment variables. Refer
to AcceptEnv in sshd_config(5) for how to configure the server.
Variables are specified by name, which may contain wildcard char-
acters. Multiple environment variables may be separated by
whitespace or spread across multiple SendEnv directives. The
default is not to send any environment variables.

とあるのに、、、ずるい。

たしかに、/etc/ssh_config では

SendEnv LANG LC_*

となっている。
これをコメントアウトしてしまえばいいのだけれど、
/etc/ のファイルは触りたくない。

ログイン先で見てみると

% locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: LC_ALL?????????????????????: ??????????????????????
LANG=ja_JP.UTF-8
LC_CTYPE=UTF-8
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

などと、いっているので LC_CTYPE を送らないようにすればいいのかな。

LC_CTYPE="' ssh hoge

でアクセスするようにすると

% locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

となった。これで、とりあえず svn やら sftp するときの問題はなくなったので、よしとする。

boost memo


g++ に -v オプションをつけて compile することで、どの include direcotry を見に行ってるか調べた。

そのうちの
/usr/include
が、 boost をもってた。
/user/lib64
に boost lib あった。
そのうちに
libboost_regex.so
もあった。

% cat main.cc
#include
int main(){
boost::regex keyword("tgc_vme_tm_semaphore");
return 0 ;
}

$ g++ main.cc -lboost_regex
$ (compile OK)
% ldd a.out

libboost_regex.so.2 => /usr/lib64/libboost_regex.so.2 (0x00002b633afc2000)

Mac Lion に ROOT install

インストール。

svn checkout https://root.cern.ch/svn/root/tags/v5-30-06
cd v5-30-06
export ROOTSYS=${HOME}/ROOT/v5-30-06/root
# ./configure --help
./configure macosx64
gmake -j2
mkdir -p ${ROOTSYS}/bin
make install

.zshrc に加える。

export ROOTSYS=${HOME}/ROOT/v5-30-06/root
export PATH=$ROOTSYS/bin:$PATH
export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$ROOTSYS/lib:$DYLD_LIBRARY_PATH

ROOT でグラフを描いたときの、右上のアレ

こいつは TPaveStats.

こいつの捕まえかたは

TH1F * hist;
...
TPaveStats * ps = (TPaveStats*) hist->FindObject("stats");

いろいろ弄る

ps -> SetTextColor();
p->SetX1NDC(0.7); // x start
p->SetX2NDC(0.9); // x end
p->SetY1NDC(0.7); // y start
p->SetY2NDC(0.9); // y end

ほどよい iPad todo 管理アプリ

もとめてたもの

  • シンプル : カレンダーとか何時に何をするとか細かな機能は要らない。今すべきなのに出来ていない事を集めておくだけで良い。見た目もシンプルなのが良い。
  • カテゴリーに分けれる : 「いまできる事」と「できない事」とに分けたい。
  • めも書きがつけれる : 作業が一時中断しているモノに対して、なにを待ってるのかも記録しておきたい
  • iPad 対応 : せっかくなので。

みつけたもの : http://todotxt.com/

根底にあるのは todo をテキストファイルにまとめようと言うアイデア
テキストファイルのなかでは、 todo を、

  • 「プライオリティー "(A)"」
  • 「仕事をする場所 "@hoge" 」いくつでもつけれる
  • 「カテゴリー "+hoge" 」いくつでもつけれる

の簡単なメモをつけて管理する。

iPad のツールは、それを、こぎれいに整形してみせてくれる。

↓こんな風になりました。

プライオリティーの順番に並べられるので

  • A : いま、できるはずの仕事。
  • C : しかるべき時が来れば、やるべき仕事。「銀行にいく」とか
  • E : ひとに頼んであったりして「待ち」になっている仕事。

とした。
プライオリティー B と D を使って、境界になる棒線を引いた。

カテゴリーは「内容」に比べて目立たないグレーで書かれるので、
この機能で、どういう状態にあるのかを記録した。
たとえば

  • DoItNow : 今出来る
  • WaitingForPeople : だれかに、たのんである状態。

使ってみて

あると思ってなかった良い機能。

  • todo を書いたテキストファイルは DropBox で同期が取られる。なのでちょっと多い変更を加えたいときなどは、パソコンからもいじれる。

ちょっとした不満

  • おされだけど、文字、ちいさいなぁ...

Doxygen 使い始め

設定ファイルの作成

設定ファイルのひな形を作成してくれる。

doxygen -g

そのなかで

INPUT = path to the directory
FILE_PATTERNS = *.cc *.h
RECURSIVE = YES

辺りを弄る。

完成品

doxygen Doxyfile

を実行すれば html ディレクトリが出来てる。

CERN Higgs セミナー2