つれづれ日記 2011年7月

予定

毎日


2011年7月29日 (金曜日)

22:26:19 # Life 肉の日なのでcowbuilderのパッチをいじる。 過去一年分のパッチが積み上がっているのでいくつか読む。 cowbuilder / qemubuilder はCのプログラムで、qemubuilderとcowbuilderはそれぞれの独自の部分だけが別のファイルになっていて コマンドラインパーサーのコードなどは共有している。 よって、一方に追加した機能は他方にも追加しないといけないということになっている。 それを理解していない人がパッチを書いているので大体壊れる。 なんというか、コードはできるだけ共有しないほうがこわされなくてよい。

2011年7月28日 (木曜日)

11:16:54 # Life apt-cache search の高速化メモ。 手元でずいぶん前からapt-cache searchのインデックスをつくってから検索するようにするというコードを書いている。 気が向いたのでいろいろと高速化していってるのだけど、とうとうインデックスの作成自体がapt-cache search より高速になった。 apt-cache search で検索するより、インデックスを作成して検索結果を表示するほうがはやいという。 だからどうだということはないわけですが。

2011年7月26日 (火曜日)

18:55:17 # Life gcovを使ってみた。gprofを使ってたらなんかしらないけど行単位の出力がなされないのでマニュアルを真面目に読んだら時代はgcovらしい。 いやいや、と想いながらも試してみる。 -fprofile-arcs -ftest-coverageをつけてgccでコンパイルして、実行するとgconv関連のファイルが出力されるらしい。 gcovコマンドを実行するとあらゆるソースコードに対するアノテーションがファイル名.gcovというのに出力されてうざいことこのうえない。手元のどうでもいいソースコードに対して実行したら60のgcovファイルが出力された。STLのヘッダ一つ一つ用のプロファイル出力とかもカレントディレクトリにはいていただけるらしい。 うーん。

$ g++ -pthread -I../threadpool ../threadpool/threadpool.cc strutil.cc apt-index.cc apt-index-http.cc -g -pg -o hoge -fprofile-arcs -ftest-coverage
$  hoge available 9999 
Threadpool web server based on Upaccho webserver
copyright 2001,2005,2010 Junichi Uekawa
bind: Address already in use
$ gcov apt-index.cc 
File '/usr/include/c++/4.4/bits/char_traits.h'
Lines executed:25.00% of 8
/usr/include/c++/4.4/bits/char_traits.h:creating 'char_traits.h.gcov'

	

2011年7月23日 (土曜日)

10:32:35 # Life Hack 4 japan 設定の時のメモ。 DHCPと違うIPアドレスを使いたいとき。 wlan0が対象の場合、適当な数字を:の後につけたデバイス名をつかえばよい。 /sbin/ifconfig wlan0:2 192.168.11.5 up 番号である必要があったか、番号がいくつまでつかえたのか記憶にない。。。

ここのネットワークはnetmask 9bitつかえることになっているから、 500台くらいまではDHCPでつながるのかな。

多人数が同じソースIPからアクセスするとひょっとするとTwitterからDoS認定されるかも。

AP hack4jp-1: 64 IP address 制限と DHCP lease time 48 時間とかになっていたので、 DHCP lease time 2 時間に変更したのと 128 IP address にしてみた。

2011年7月19日 (火曜日)

09:10:35 # Life グーグルカレンダーのヘッダがウザい。でかすぎる。実際の内容が画面の1/3くらいにしか表示されていない。これは間違っている、ということで。 新しいデザインになってから以前かいたブックマークレットが動かなくなったので 調べてみる。 上の検索ボックスがいらなさそうなので、id='vr-proto-header' とid='onegoogbar', あと必要ないsidebar (作成ボタンは領域選択してその時間に作成するほうが便利なので使わない) を消せばいい気がする。 smaller calendar2

2011年7月18日 (月曜日)

20:54:05 # Life qemu user モードエミュレーションについて調べたことの続き。 armが一番メンテされているんだけど、mips とかほかのアーキテクチャは若干壊れているとのこと。 Debian BTS の562887とか、 今月にはいってからの qemu-develへのパッチとか qemuのソースは引っ越したのかな。3年前はkernel.dkからクローンしていたけどそこにはもうリポジトリがないようだ。 git clone git://git.savannah.nongnu.org/qemu.gitにものこっているけど昨年の10月でとまっている。 最新はgit://git.qemu.org/qemu.gitのような気がする。 repo.or.czにあるミラーも新しい気がする: http://repo.or.cz/w/qemu.git。 ながめると、 メーリングリストに流れていたパッチはだいたい取り込まれていた。 qemu-userは Riku Voipioがメンテしているっぽくて、かれががんがんとりこんでいるツリーがどっかにあるようだ。

2011年7月15日 (金曜日)

10:20:42 # Life pristine-tar. 近年、Debian のソースパッケージの管理の一般的な体制は 任意のVCS(Svn、Git、Mercurial、Bazaarなど)を使ってソースコードを管理しつつ、Debian Project としてのソースレポジトリには旧来の方法でエキスポートするという運用になっている。 Dpkgのソースパッケージ形式をざっくりといってしまうと、アップストリーム(開発元)のソースコードを orig.tar.gzとして、それに対してのDebianでの差分をdiff.gz(もしくはv3ではdebian.tar.gz)として配布するという形式になっている。 Sourcesファイルからdscファイルのハッシュがわかり、dscファイルからorig.tar.gzおよびdiff.gzのハッシュがわかるため、Sourcesファイルに対してのReleaseファイルの署名を確認すればDebian Project のソースファイルだということが確認できるという仕組みになっている。 ここで、注意するべきは、orig.tar.gzのハッシュ値はアップストリームのバージョンについて一意である必要がある点。

tar.gzというファイル形式は、tarでアーカイブを作成する際とgzで圧縮する際にいろいろなオプションなどがあるので、内容が変わりうる。 Gitでソースを管理している場合に、orig.tar.gzを管理する際のアプローチとして以下の三つが(多分)ある。

で、git-buildpackageがサポートしているっぽい pristine-tar をながめるわけですよ。あとで読む。

挙動を確認するには、まぁ、md5sum コマンドとか使えばいいのかな。

$ apt-get source yatex 
  # dsc ファイルに書いてあるハッシュの値とmd5sum 等が一致することを確認。
$ grep orig.tar.gz yatex_1.74+dfsg1-1.dsc 
 bb57f463cda40f7d24fd2a5bcaba0a385f91ce39 362256 yatex_1.74+dfsg1.orig.tar.gz
 190d0ff572f50191c5c48b3707aa1d7f2ce370cf79bc4122b9f67cfd0ea28926 362256 yatex_1.74+dfsg1.orig.tar.gz
 ea8123d9972a2ac8c9a41633dd2a03cb 362256 yatex_1.74+dfsg1.orig.tar.gz
$ md5sum yatex_1.74+dfsg1.orig.tar.gz 
ea8123d9972a2ac8c9a41633dd2a03cb  yatex_1.74+dfsg1.orig.tar.gz
$ sha1sum yatex_1.74+dfsg1.orig.tar.gz 
bb57f463cda40f7d24fd2a5bcaba0a385f91ce39  yatex_1.74+dfsg1.orig.tar.gz
$ sha256sum yatex_1.74+dfsg1.orig.tar.gz 
190d0ff572f50191c5c48b3707aa1d7f2ce370cf79bc4122b9f67cfd0ea28926  yatex_1.74+dfsg1.orig.tar.gz
	

2011年7月14日 (木曜日)

07:18:03 # Life CNAME lookup. debian.org の CNAME がひけないといってMAILER-DAEMONさんからメールが帰ってきた。なんじゃこりゃ。

08:07:33 # Life qemu devel. メーリングリストを眺めたらすごく活発にパッチが投げられている。 多数のパッチキューがあるみたい。 Avi Kivity がRFCで56パッチなげてるとか、よむきが失せないか・・・ 今誰がメンテナをしているのかはまだ把握していない。

2011年7月13日 (水曜日)

15:57:44 # Life cowbuilderを久しぶりにプロファイルしようかと思い立ってみる。 パッケージをインストールするたびにman-dbを作っているところは無駄な気がする。 ほかは目立って引っかかってるところはあまりないような。 ubuntuのbuildd ではすでにされているようだが、 man-db/auto-update=falseでdebconf DB preseedすればよいようだ。 って、これもろ D80no-man-db-rebuild ですな。HOOKDIRを適切に設定して終了。

16:07:56 # Life qemubuilderを久しぶりに実行しようとしたらけっこう最初の方のエラーで停止。 どうやら手元のカーネルが古すぎるらしい。 いや、そうかもしれないが、各アーキテクチャ分をあさってくることになるのでこれはめんどくさい。

[252] PCI: PIIX3: Enabling Passive Release on 0000:00:01.0
[256] kvm: no hardware support
[257] FATAL: kernel too old
[257] Kernel panic - not syncing: Attempted to kill init!
	

22:46:58 # Life yatexのスポンサーアップロード。 DM-Upload-Allowed: yes になっているのでこれが最後になると思われる。このパッケージは平均年1アップロードもしていないようだ。 とおもったら、 yatex_1.74+dfsg1.orig.tar.gz のファイルサイズがもともとと違う。これは残念な感じだな。

2011年7月5日 (火曜日)

07:58:51 # Life UTF-8に変更。 ながらく時代に逆行してEUC-JP設定のままやっていったが、UTF-8にいい加減移行してみることにした。 ファイルシステムにEUC-JPで書き込まれている以外はうまくいくと思う。 UTF-8に切り替えるのを拒否していたのは UTF-8の文字列をlocaleをみて符号変換せずにそのまま出力するバカなプログラムが UTF-8切り替え初期のRed Hatに散見されたのでEUC-JPでしばらく居座っておくことに価値があるかなとおもったことがあったような気がする。 しかしそれからおそらくもう六年くらいたったし、偏屈でいつづける必要はない気がしたのでこのコストを削減するに至る。

2011年7月4日 (月曜日)

07:17:24 # Life 米国建国記念日。 四半期のはじめに建国したということは締切り間に合っていないのではないか、 そもそもそういう概念はあったのか、とかいろいろと妄想。

2011年7月1日 (金曜日)

07:19:28 # Life Debian勉強会の資料のTFIDF計算して出力してみた。 しかし、mecabのわかちがきが微妙だということがわかる結果になった。


Junichi Uekawa

$Id: 201107.html.ja,v 1.26 2011/07/29 13:29:31 dancer Exp $