つれづれ日記 2009年3月

予定

毎日


2009年3月31日 (火曜日)

22:07:26 # Life ocamlで関数を使ってみる。 letで関数が定義できて、functionというのはmatchをするための略記構文だというのが 新鮮だった。loop 関数の第二引数は明示的に宣言しなくても matchに利用される。 再帰するためには rec で宣言する、というのに違和感。 練習用に再帰してリストの項目を全部掛け算する関数を書いてみた。

# let listmul l = 
  let rec loop s = function
      [] -> s
    | hd :: rest -> loop (s * hd) rest
  in
    loop 1 l;;
# listmul [2; 3; 4];;
  - : int = 24
	

2009年3月30日 (月曜日)

21:37:06 # Life ocaml をとりあえず使えるようにする。 開発環境をそろえてみようと思い立ったので、いろいろと調査。 ocaml 用の Debian パッケージは ocaml あたりをいれれば入りそう。 emacs 用の開発環境は tuareg-mode と ocaml-mode の二つのパッケージがあるようだ。 どちらを使ったらよいのかはわからないのだけれども、tuareg-modeを優先するようなことがREADME.Debianにかいてあるので、 tuareg-modeを使うことにする。 M-x tuareg-run-caml で起動する tuareg-interactive-mode というのがあり、トップレベルを利用した インタラクティブな評価も可能なようだ。 しかし、ocamlでは型毎に加算演算のオペレータが違うそうだ。 強力な型が特徴な言語らしい。 どういう考え方なのか、すこしづつみていこうとおもう。

# "ABC"^"DEF";;
- : string = "ABCDEF"
# 1+2;;
- : int = 3
# 1.2 +. 3.4 ;;
- : float = 4.6
# 1 :: [2; 3; 4] ;;
- : int list = [1; 2; 3; 4]
# [1; 2] @ [2; 3; 4] ;;
- : int list = [1; 2; 2; 3; 4]
	

2009年3月28日 (土曜日)

15:10:13 # Life Tinny sound in macbook. MacBook 4,1 のサウンドカードのsubwoofer が Linux ALSA からうまくうごかないという件があるのだが それでカスカスな音がでることを tinny というらしい。 Google で検索すると tinny で検索しても tiny で検索されてしまうので +tinny で検索しなおしてみた。

16:32:07 # Life debootstrapでunpackが失敗したというエラーが出た。 unpack でもpreinstは実行され、preinstが失敗するとエラーになるのか。 とおもったが、結局ファイルの上書きがあったというしょぼい結果だった。 エラーメッセージが全然表示されないのだが、 /debootstrap/debootstrap.logにログが書き込まれるらしい。 それをみたら何がおきているのかがやっと分かった。521545

2009年3月22日 (日曜日)

10:06:01 # Life 東京エリアDebian勉強会報告。 2009年3月21日土曜日に 東京エリアDebian勉強会第50回 を東京大学にて開催しました。 今回の参加者は 岩松, あけど, 前田,キタハラ,たかはし,キタムラ,じつかた,やまだたくま, 日比野,藤澤とおる,よしの,虎,こたに,matsuu,かい, たなか,ささき(uwabami), まとはら,こう,John,よしだ@板橋,藤澤りそう,上川x2 の24名でした。

2009年3月21日 (土曜日)

11:56:42 # Life sshで接続先のサーバのユーザ名が違う場合。 たとえば、aliothをつかっていると ユーザ名-guestとい うユーザ名が割り当てられるのですが、そんなユーザ名で手元のマ シンを使っている人はほぼいないのでsshで接続する際に何も指定しないと現在利用中のユーザ名を使ってログインしようとして Permission Denied エラーがかえってきてなんでだろうと考え込むことになります。 つまり、ユーザ名をssh の -l オプション(もしくは@表記)で指定する必要があるわけです。 ただ、毎回 -l オプションを指定するのもなんなのでデフォルトで接続してくれるようにしたい、 そういう場合には.ssh/configHost alioth.debian.org 項目に User xxx-guestと記述しておくとそのユーザ名を使ってくれます。 こんなことを書くと「なんだよいままで ssh -l xxx-guest alioth.debian.org ってしてたのかよ、ぷふ」、と笑われてしまいそうですが、恥をしのんでここに記します。

2009年3月16日 (月曜日)

08:12:50 # Life rsync の速度。 ネットワーク経由で大量のファイルをコピーするのに rsync をつかっているのですが、 ssh を使うと compression を使っていたり、強い cipher を使っていたりします。 すると計算速度が遅いので、glantank とかだとネットワーク転送の速度が CPU bound になってしまいます。 いろいろ小技があるようなので調べてみました。 まず、~/.ssh/config にて Compression off にしてデフォルトで圧縮をオフにすることができます。 個別に必要なホストに対して Compression をオンにしてやればよいかなとおもうので、変更してみました。 あと、rsyncのコマンドラインオプションで rsync -avr -e 'ssh -c blowfish' として、ssh の -c オプションで暗号化方法を指定してあげます。 blowfish が一番軽いという噂。 いろいろな暗号化方法の処理速度を確認するためには、 openssl speedが便利なようです。 で、確認してみると、どうも手元のマシン(MacBook core2duo)では aes128-cbc のほうが blowfish より速い。 念のため ARM のマシンで実行してみると、blowfish のほうがダントツで速かった。 さらにいうとrc4 のほうが速い。ssh -c arcfourっぽい。 試してみたら blowfishは 340k/s程度。arcfour は 360k/s 程度。どちらにしても遅い。 通信速度はjnettopで確認してみた。

built on: Thu May  8 02:13:22 UTC 2008
options:bn(64,32) md2(int) rc4(ptr,int) des(idx,risc1,4,long) aes(partial) blowfish(idx) 
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O2 -g -Wall
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md2                179.90k      387.11k      531.37k      592.55k      613.04k
mdc2                 0.00         0.00         0.00         0.00         0.00 
md4               1626.91k     5676.33k    16639.66k    32200.02k    44318.72k
md5               1386.17k     4755.50k    13272.92k    24179.37k    31817.73k
hmac(md5)         1963.55k     6359.54k    16093.87k    26304.51k    32281.94k
sha1              1248.23k     3718.87k     8435.54k    12314.80k    14145.27k
rmd160            1179.36k     3486.89k     7842.47k    11431.25k    13145.43k
rc4              13691.70k    15984.60k    16667.14k    16835.24k    16891.90k
des cbc           2878.75k     3039.02k     3080.02k     3095.21k     3091.11k
des ede3          1084.21k     1114.71k     1119.91k     1120.26k     1125.03k
idea cbc             0.00         0.00         0.00         0.00         0.00 
rc2 cbc           2659.59k     2783.06k     2814.81k     2822.14k     2823.51k
rc5-32/12 cbc        0.00         0.00         0.00         0.00         0.00 
blowfish cbc      6495.24k     7270.44k     7491.93k     7549.61k     7547.56k
cast cbc          5831.41k     6464.43k     6638.93k     6699.01k     6717.44k
aes-128 cbc       3116.70k     3301.80k     3363.33k     3373.74k     3375.10k
aes-192 cbc       2698.55k     2847.19k     2882.39k     2895.19k     2899.97k
aes-256 cbc       2380.73k     2494.63k     2528.77k     2533.38k     2539.52k
camellia-128 cbc        0.00         0.00         0.00         0.00         0.00 
camellia-192 cbc        0.00         0.00         0.00         0.00         0.00 
camellia-256 cbc        0.00         0.00         0.00         0.00         0.00 
sha256             897.73k     2178.18k     3999.91k     5056.51k     5477.72k
sha512             173.14k      685.53k     1014.78k     1409.71k     1589.25k
	

08:37:13 # Life 確定申告。 毎年確定申告は 国税庁の自宅で作成できて書面提出できる PDFを生成するサイトでやっていた。 昨年まではできたのだが、 今年はなぜかブラウザチェックがかかってLinux の Firefoxでは作成できなくなってしまった。 しかたがないので窓口までいって、税務署に設置されている Windows PC で作業した。

20:34:39 # Life 今日はカーネル読書会。 カーネル読書会の会場でコードをいじってqemubuilderのinitrdがなんとなくそれっぽく動くようになるところまでやった。 しかし、まだ一般化できていないなぁ。

2009年3月9日 (月曜日)

00:48:19 # Life NYCの空港ラウンジでハック。 qemubuilder に inputfile オプションのサポートを追加。

2009年3月8日 (日曜日)

00:09:50 # Life sheevaplug. 変圧器かとおもったらarmマシンだった。すばらしい。

2009年3月7日 (土曜日)

11:52:29 # Life 任意のファイルを読み込めるオプションを追加。 pbuilder(git版) に --inputfileオプションを追加してみた。 適当にファイルを追加してchroot内部で扱えるようになります。 /tmp/buildd/以下にファイルはコピーされます。 現在サポートしているのは、pbuilder, cowbuilder、作業中なのはqemubuilder.

12:06:32 # Life gitosis いいな。 tutorial。 シェルのアクセス権限がなくてもコミットできるようにしているのがよい。

2009年3月5日 (木曜日)

12:23:12 # Life 気づいたら3月。 最近はqemuでこつこつと遊んでます。


Junichi Uekawa

$Id: 200903.html.ja,v 1.20 2009/03/31 13:10:50 dancer Exp $