つれづれ日記 2005年6月

予定

毎日


2005年6月30日 (木曜日)

08:33:33 # Life 今週末のDebian勉強会の参加表明は今日の夜までです. Debianでのglibc とか toolchain の現状と今後の予定について 後藤さんが紹介してくれます. 皆様の御参加をお待ちしております. 詳細はこちらです.

2005年6月29日 (水曜日)

07:24:51 # Life 今日のLinusツリーのmake oldconfig. 主としてはUSBドライバ関連がいろいろとアップデート.

        IT821X IDE support (BLK_DEV_IT821X) [N/m/y/?] (NEW)
  Enable support for multiple I2C devices on Video Adapters (EXPERIMENTAL) (TUNER_MULTI_I2C) [N/y/?] (NEW)
  ISP116X HCD support (USB_ISP116X_HCD) [N/m/y/?] (NEW)
  Acecad Flair tablet support (USB_ACECAD) [N/m/y/?] (NEW)
  ITM Touch USB Touchscreen Driver (USB_ITMTOUCH) [N/m/y/?] (NEW) ?
	

09:06:27 # Life 今日のDebian Weekly News拝読. gxemulの紹介があった. mips64のエミュレーションをけっこうしっかりやってくれるらしい. そこから関連したところにレイトレーシングについての記事があった, 旧来のレイトレーシングは光がカメラから出ていたけど, それとは違い,フォトントレースという技法があるらしい. 科学的にはこちらのほうが正しい手法なのだが,ほとんどのフォトンは カメラまで到達しないため,遅い,らしい.

2005年6月28日 (火曜日)

06:04:50 # Life 今日のLinusツリーのmake oldconfig. IngoのPREEMPTが入って来たのかな. kexecも入って来て,ext2のXIPがなぜか入って来ている. ext2のXIPが使えるようなディスクなんぞ存在するのだろうか...

Preemption Model
  1. No Forced Preemption (Server) (PREEMPT_NONE) (NEW)
  2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY) (NEW)
> 3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT)
choice[1-3]:
kexec system call (EXPERIMENTAL) (KEXEC) [N/y/?] (NEW)
  TCP: advanced congestion control (TCP_CONG_ADVANCED) [N/y/?] (NEW) ?
  Enable support for multiple I2C devices on Video Adapters (EXPERIMENTAL) (CONFIG_TUNER_MULTI_I2C) [N/y/?] (NEW)
  Ext2 execute in place support (EXT2_FS_XIP) [N/y/?] (NEW)
	
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -43,6 +43,14 @@ Who: Randy Dunlap <rddunlap@osdl.org>

 ---------------------------

+What:  RAW driver (CONFIG_RAW_DRIVER)
+When:  December 2005
+Why:   declared obsolete since kernel 2.6.3
+       O_DIRECT can be used instead
+Who:   Adrian Bunk <bunk@stusta.de>
+
+---------------------------
+
 What:  register_ioctl32_conversion() / unregister_ioctl32_conversion()
 When:  April 2005
 Why:   Replaced by ->compat_ioctl in file_operations and other method
	

2005年6月26日 (日曜日)

19:40:16 # Life 今朝マシンを起動しようとしたら,起動ボタンが反応しなくてあせりました. なんかごそごそといろいろといじっていたら起動しました. 危険. しばらく動かしていたら再起動しました. CPUの温度が75度を越えて,熱暴走センサーが作動してしまったらしく, 扇風機だけでは耐えられないようなので,クーラーを起動. とうとう夏になってきましたね.

21:40:13 # Life gitで,あるリビジョンのcommitオブジェクトには親が二つ以上あることがある. 彼らはこれを Octopus Commit と呼んでいる. 日本語で言えばタコ足コミットか? これができるのも,gitが前のリビジョンからのdeltaとして各バージョンを保持しているわけでなく, 完全なツリーを保持しているからだろう. しかし,複数のツリーのマージ結果を一つのcommitとしてもつことは 従来のバージョン管理システムではデータ構造上不可能だったのだが, 運用上は無理ではないのだろうか. あとからみて,8のブランチがここでマージされている,ということがわかったとして, はたしてそれは有意義なのだろうか.うーむ. しばらく運用してみないとわかりませんなぁ.

各リビジョンのdeltaを保持している形式で複数の親を持っている場合のmergeの結果というのは どういうデータ構造になるのだろう. こう書いてはみたが,違うような気もして来た.

2005年6月25日 (土曜日)

15:56:06 # Life Musical Battonなどというものがまわっているらしい. どうまちがってここまで到達したのかよくわからないけど, 気づいたら岩井支障 からバトンがわたってきたので,音楽について書いてみる.

コンピュータに入ってる音楽ファイルの容量
多分10GBくらい
今聴いている曲
聞いていない...
最後に買ったCD
Dream TheaterのOctavarius
よく聴く、または特別な思い入れのある5曲
  • Enigma -- 全部おすすめ
  • Weather Report -- Birdland
  • Jeff Beck -- Scatterbrain
  • King Krimson -- Red
  • Mangosteen -- August 15th
バトンを渡す5人
面倒ならスルーも可です.問題ははたして気づいてくれるか?という点にありますが...
  • いわまつさん
  • えとーさん
  • やまねさん
  • いまいさん
  • さわださん

なんとなく芸がないので,こんな感じのバトンがまわってきたほうがおもしろいかも.

コンピュータに入ってるソースコードのsloccount
....は計算するのが厳しいかも? ソースコードの容量とかにしておく? cvscheckoutディレクトリ, DEBIANディレクトリあわせて87万行くらいか.半分がC.
今いじっているコード
  • pbuilderのバグsquash
最近気になるバグ
  • debootstrap sid --variant=builddでうごかね
  • dpatch-edit-patchがうまくうごかねえ
よくハックする,または特別なおもいいれのあるバグのあったソフトウェア5個
  • fakeroot -- 目から鱗
  • pbuilder -- そろそろいろいろと書き直したい気持になっています
  • debootstrap -- くされ縁
  • ecasound -- ずっとメンテしてます
  • gaim -- 国際化パッチがなんかよくわからない理由でずっと取り込まれてなかったですよね

2005年6月24日 (金曜日)

07:29:00 # Life 朝からcg-update.Linus の今日のツリーを適用してみる.ここ数日はリリース直後の影響で, 更新がはげしいので恐い. HZが100/250/1000のどれにするんだ,と聞かれる.

  TCP/IP networking (INET) [Y/n/?] y
    Choose IP: FIB lookup
    > 1. FIB_HASH (IP_FIB_HASH) (NEW)
      2. FIB_TRIE (IP_FIB_TRIE) (NEW)
    choice[1-2]:
  Analog Devices ADM9240 and compatibles (SENSORS_ADM9240) [N/m/?] (NEW)
  Attansic ATXP1 VID controller (SENSORS_ATXP1) [N/m/?] (NEW)
  Winbond W83627EHF (SENSORS_W83627EHF) [N/m/?] (NEW)
  Maxim/Dallas Semiconductor DS1374 Real Time Clock (SENSORS_DS1374) [N/m/?] (NEW)
  Philips PCA9539 16-bit I/O port (SENSORS_PCA9539) [N/m/?] (NEW)
  MAXIM MAX6875 Power supply supervisor (SENSORS_MAX6875) [N/m/?] (NEW)
  RME Hammerfall DSP MADI (SND_HDSPM) [N/m/?] (NEW)
NFS file system support (NFS_FS) [Y/n/m/?] y
  Provide NFSv3 client support (NFS_V3) [Y/n/?] y
    Provide client support for the NFSv3 ACL protocol extension (NFS_V3_ACL) [N/y/?] (NEW)
NFS server support (NFSD) [Y/n/m/?] y
  Provide NFSv3 server support (NFSD_V3) [Y/n/?] y
    Provide server support for the NFSv3 ACL protocol extension (NFSD_V3_ACL) [N/y/?] (NEW)
	

08:00:51 # Life ftp-masterとdbのホスティングをしてくれていたところから移動することになったらしい. James Troupがdebian-devel-announceにメールを流していた. Above.Netがサーバを置く場所を提供してくれていたのだが, 継続することができなくなったので,次をさがしているということ. サーバはHPに輸送されるところだ,ということなので一時的にでもサービスが一部 動かなくなるということかな. 開発者じゃなけりゃあまり影響ないですかね.

2005年6月22日 (水曜日)

08:51:23 # Life dpatchとdebootstrapの問題を捜し出して時間が過ぎる. Debian勉強会の資料を作成. dpatchって結構完成度の低いアプリケーションだなぁ,と思う. 機能追加しすぎて,こなれていない部分がある. シェルで全部再実装しなおす必要なんてなかったでしょ?

2005年6月21日 (火曜日)

07:56:15 # Life shellの小技. shellでcsvを解析すると, IFS=, set -- $XXXという構文をつかうことになるが, $1とかが上書きされてしまう. しかし,それをfunctionの中でやってしまえば functionの中の$1が上書きされるだけなので,影響範囲が小さくなる.

$cat a.sh 
csvread () {
    while read A; do 
	IFS=,
	set -- $A
	echo $1 ":" $2
    done < a.csv
}
csvread
echo $1
$cat a.csv 
1,2
3,4
5,6
$sh ./a.sh parameter
1 : 2
3 : 4
5 : 6
parameter
	

09:11:23 # Debian dpatchのハック. ドキュメントをかくところではない状況. いろいろとうまく動かんので,testsuiteを作成してregression testをつくって すこしづつ直す方向で.

2005年6月20日 (月曜日)

07:51:27 # Life 今朝のLinusのカーネルツリーのdiffを見る.2.6.12をリリースするためにここ一週間くらい 蓄積していた何かを一気に放出するかのようにごっそりとマージしている. この勢いは絶対何か壊れるな... 今朝のoldconfigで聞かれた質問

SCSI media changer support (CHR_DEV_SCH) [N/m/y/?] (NEW) ?
Fusion MPT ScsiHost drivers for SPI (FUSION_SPI) [N/m/y/?] (NEW)
Fusion MPT ScsiHost drivers for FC (FUSION_FC) [N/m/y/?] (NEW)
New SysKonnect GigaEthernet support (EXPERIMENTAL) (SKGE) [N/m/y/?] (NEW)
	

19:42:39 # Life gamixのデバッグ.g_mallocの挙動にだまされた. g_mallocは0バイトを指定すると,0を返す. mallocは0バイトを指定すると一応アドレスを返してくれる. ただ,普通はg_mallocをかけるまえにエラーチェックするべきだよなぁ.. gamixって使われているわりにはコードをメンテしている人が少ないと思うのだけど, 実はメンテしてます,という人いたら教えてください. 泣ける. とりあえず今日も一行はコードを書いた.

20:04:33 # Life OpenSolarisをダウンロードしてみた. BitTorrent経由. opensolaris-src-20050612.tar.bz2 は45MB程度.ユーザランドの/usr/binに入っているコマンドや, grubのソースコードとかがあるみたい. /standにあるのは何だろう. usr/src/uts/以下にあるのがSolarisカーネルソースか? コメントで語っているのを読むのはなかなか面白い. usr/src/uts/common/c2以下にあるのがaudit関連かな. usr/src/cmd/awkとか,usr/src/cmd/shあたりが気になる.

2005年6月19日 (日曜日)

08:15:43 # Life soundtrackerとgamixにドイツ語訳のアップデートのパッチが来たので対応してみる. language coordinatorとかが頑張っているところだと思うのだけど,そういうのの存在を Jens Seidelさんはしらずに大量にバグレポートを投げている?

09:00:11 # dupload 今日のDebianパッケージメンテナンスはbinfmtc.binfmtcの0.6-1をここらへんに置いてみる.

10:22:41 # Life 朝からdpatchについてハックする. とりあえず,挙動が変なのとドキュメントとコードが一致していないため, testsuiteを追加した.

16:42:38 # Life planetにはツッコミSPAMがもろにつっこまれるので, こまった. 正規表現とかでRSSのエントリーを除外とかできないだろうか. できそうでできないこのかゆさ.

20:44:01 # Life メモリの確保はどうなっているんだろう,と思い,調べてみた. glibcのmallocのソースコードから見ると,サイズで分岐して, brkを使う場合とか,mmapを使う場合とかで一番経験的にはやいものを選択しているような雰囲気.

テストプログラムを動かしてみると,最初の挙動と後の挙動がちょっとちがう. 期待していたのは同じような動きを繰り返してくれることなのだが,いちど大きな領域を確保すると 挙動がかわってしまうようだ. 一度確保した領域はOS側に返却していないからかな. 実行中のアプリケーションをtopで見ると,VIRTサイズがkB単位から1GB程度 までくるくるまわっているのがわかる.

/*BINFMTC:
 */
#include <stdio.h>
#include <stdlib.h>

main()
{
  int i;
  while (1) 
    {
      for (i=1; ; i<<=1)
	{
	  void*ptr;
	  ptr=malloc(i);
	  if (!ptr) break;
	  printf ("%i %p\n", i, ptr);
	  free(ptr);
	}
    }
}
	
1 0x804a008
2 0x804a008
4 0x804a008
8 0x804a008
16 0x804a018
32 0x804a030
64 0x804a058
128 0x804a0a0
256 0x804a008
512 0x804a008
1024 0x804a008
2048 0x804a008
4096 0x804a008
8192 0x804a008
16384 0x804a008
32768 0x804a008
65536 0x804a008
131072 0x804a008
262144 0xb7f49008
524288 0xb7f09008
1048576 0xb7e89008
2097152 0xb7d89008
4194304 0xb7b89008
8388608 0xb7789008
16777216 0xb6f89008
33554432 0xb5f89008
67108864 0xb3f89008
134217728 0xaff89008
268435456 0xa7f89008
536870912 0x97f89008
1073741824 0x77f89008

	  [中略]

1 0xb7e00480
2 0xb7e00480
4 0xb7e00480
8 0xb7e00480
16 0xb7e00490
32 0xb7e004a8
64 0xb7e004d0
128 0xb7e00518
256 0xb7e00480
512 0xb7e00480
1024 0xb7e00480
2048 0xb7e00480
4096 0xb7e00480
8192 0xb7e00480
16384 0xb7e00480
32768 0xb7e00480
65536 0xb7e00480
131072 0xb7e00480
262144 0xb7f49008
524288 0xb7f09008
1048576 0xb7cff008
2097152 0xb7bff008
4194304 0xb79ff008
8388608 0xb75ff008
16777216 0xb6dff008
33554432 0xb5dff008
67108864 0xb3dff008
134217728 0xafdff008
268435456 0xa7dff008
536870912 0x97dff008
1073741824 0x77dff008
	

20:50:52 # Life Cプログラムのメモリマップはどうなっているのだろう,と調査. gdb上で実行して停止して,ちょうどglibcにはいっているところで止める. btをとってみてそれと/proc/XX/mapsと比較する. /proc/XX/mapsに書いてある仮想アドレスにコードがロードされており, スタック上にそのアドレスがちゃんと書いてあるんだな,ということが確認できる. ちょっと安心.

(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x4515fb36 in munmap () from /lib/tls/i686/cmov/libc.so.6
#2  0x450fcd3c in malloc_set_state () from /lib/tls/i686/cmov/libc.so.6
#3  0x08048446 in main ()

$ cat /proc/6905/maps
08048000-08049000 r-xp 00000000 00:0d 9350       /tmp/a.out
08049000-0804a000 rw-p 00000000 00:0d 9350       /tmp/a.out
0804a000-0806b000 rw-p 0804a000 00:00 0          [heap]
45072000-45088000 r-xp 00000000 03:03 1929540    /lib/ld-2.3.2.so
45088000-45089000 rw-p 00015000 03:03 1929540    /lib/ld-2.3.2.so
4508b000-451b5000 r-xp 00000000 03:03 1929543    /lib/tls/i686/cmov/libc-2.3.2.so
451b5000-451be000 rw-p 00129000 03:03 1929543    /lib/tls/i686/cmov/libc-2.3.2.so
451be000-451c0000 rw-p 451be000 00:00 0
b7e00000-b7e21000 rw-p b7e00000 00:00 0
b7e21000-b7f00000 ---p b7e21000 00:00 0
b7f24000-b7f25000 rw-p b7f24000 00:00 0
b7f36000-b7f38000 rw-p b7f36000 00:00 0
bfb23000-bfb38000 rw-p bfb23000 00:00 0          [stack]
ffffe000-fffff000 ---p 00000000 00:00 0          [vdso]
	

21:06:00 # Life あと,codefestの時の宿題を完了する. redirect-processはRubyでかかれていて, それはそれでよいのだが,シェルでも書けるよな,と思って,oneliner. PARAM= で指定したプロセスのstdout を自分のstdoutとして出力してみる例. PARAM=12519 gdb -batch -n -x <( echo -e "attach $PARAM\nprint dup2(open(\"/proc/$$/fd/1\", 1), 1)" )

2005年6月18日 (土曜日)

11:04:05 # Life Debian policy 3.6.2.0がアップロードされました. いろいろとACCEPTED状態だったけれども, 適用待ちだったポリシが適用されたようです. 共有ライブラリ関連で私の提案していた内容も受け付けられたようなので, libpkg-guideも更新が必要かな.

20:24:11 # Life FSIJの月例会いってまいりました. uimについて. うーむ.SCIMに敗けてしまいたいような雰囲気がプレゼンから醸し出されてましたが 頑張ってください. Codefestの報告についてはまぁ,まったりと. その後はスカイラークで夕食. 一日一行はコードを書きましょう,ということで解散.

今日のカーネル. IRQ probe failedというメッセージが複数出はじめたな. 前まででていたのだろうか? なんのメッセージだろう.

[   25.157506] Probing IDE interface ide0...
[   25.540225] hda: ST3160023A, ATA DISK drive
[   25.540274] hda: IRQ probe failed (0xfffa)
[   26.067288] hdb: IRQ probe failed (0xfffa)
[   26.339839] hdb: IRQ probe failed (0xfffa)
[   26.391308] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
	

再度起動してみるとちょい違う.なんか不安だ.

[   25.553743] Probing IDE interface ide0...
[   25.936461] hda: ST3160023A, ATA DISK drive
[   26.547818] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
[   26.547890] Probing IDE interface ide1...
[   27.338159] hdc: TOSHIBA DVD-ROM SD-R5002, ATAPI CD/DVD-ROM drive
[   27.949942] ide1 at 0x170-0x177,0x376 on irq 15
[   27.950100] Probing IDE interface ide2...
[   28.462205] Probing IDE interface ide3...
[   28.973363] Probing IDE interface ide4...
[   29.484521] Probing IDE interface ide5...
	

syslogを見ると:

Jun 18 20:21:31 atoron kernel: [   25.157312] PCI: Via IRQ fixup for 0000:00:11.1, from 255 to 14
Jun 18 20:21:31 atoron kernel: [   25.157349] VP_IDE: chipset revision 6
Jun 18 20:21:31 atoron kernel: [   25.157365] VP_IDE: not 100%% native mode: will probe irqs later
Jun 18 20:21:31 atoron kernel: [   25.157392] VP_IDE: VIA vt8233a (rev 00) IDE UDMA133 controller on pci0000:00:11.1
Jun 18 20:21:31 atoron kernel: [   25.157427]     ide0: BM-DMA at 0xff00-0xff07, BIOS settings: hda:DMA, hdb:pio
Jun 18 20:21:31 atoron kernel: [   25.157469]     ide1: BM-DMA at 0xff08-0xff0f, BIOS settings: hdc:DMA, hdd:pio
Jun 18 20:21:31 atoron kernel: [   25.540225] hda: ST3160023A, ATA DISK drive
Jun 18 20:21:31 atoron kernel: [   25.540274] hda: IRQ probe failed (0xfffa)
Jun 18 20:21:31 atoron kernel: [   26.067288] hdb: IRQ probe failed (0xfffa)
Jun 18 20:21:31 atoron kernel: [   26.339839] hdb: IRQ probe failed (0xfffa)
Jun 18 20:21:31 atoron kernel: [   26.391308] ide0 at 0x1f0-0x1f7,0x3f6 on irq 1
	

同じカーネルで昨日はこんなかんじか? んー.危険な香りがする.

Jun 17 09:37:36 atoron kernel: [   25.433107] PCI: Via IRQ fixup for 0000:00:11.1, from 255 to 14
Jun 17 09:37:36 atoron kernel: [   25.433144] VP_IDE: chipset revision 6
Jun 17 09:37:36 atoron kernel: [   25.433160] VP_IDE: not 100%% native mode: will probe irqs later
Jun 17 09:37:36 atoron kernel: [   25.433187] VP_IDE: VIA vt8233a (rev 00) IDE UDMA133 controller on pci0000:00:11.1
Jun 17 09:37:36 atoron kernel: [   25.433221]     ide0: BM-DMA at 0xff00-0xff07, BIOS settings: hda:DMA, hdb:pio
Jun 17 09:37:36 atoron kernel: [   25.433262]     ide1: BM-DMA at 0xff08-0xff0f, BIOS settings: hdc:DMA, hdd:pio
Jun 17 09:37:36 atoron kernel: [   25.816030] hda: ST3160023A, ATA DISK drive
Jun 17 09:37:36 atoron kernel: [   26.427490] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Jun 17 09:37:36 atoron kernel: [   27.217719] hdc: TOSHIBA DVD-ROM SD-R5002, ATAPI CD/DVD-ROM drive
Jun 17 09:37:36 atoron kernel: [   27.829509] ide1 at 0x170-0x177,0x376 on irq 1
	

21:54:23 # Life Debianのkernelの開発はsvn管理でされているみたいですな. パッチの管理はdpatchを使ってやってみようとしているように見えます. あたらしくいろいろと冒険しようとしているみたいですなぁ.. ここらへんにREADMEがあります. しかし,全然おいつけていません.

22:28:37 # Life FSIJの月例会の後,コメントには why を書くんだよ,という話しがあった. コードが何をするかなんてコードを読めばよいんだから, なんでこうするのか,というのを書きなさい,ということだった. うーん,確かにそうだなぁ.とひとしきり反省. 最近コメントって言い訳しか書いていない気がする.

2005年6月16日 (木曜日)

09:13:30 # Life しらいさんにたきつけられて,シェルスクリプトでCSVを扱う方法を試してみる. awkを使うよりシフトキーを押す回数が少なくてすむかもしれない. 数字は扱えるけど,浮動小数点は扱えないんだよなぁ. HPUXやsolarisのshとかだとどうだろう.

$ cat rcsv
IFS=,
while read CSV; do
        set -- $CSV
        echo $1 ":" $2 ":" $3
done
$ cat a.csv
1,2,3
3,4,5
3,5,7
$ sh ./rcsv < a.csv
1 : 2 : 3
3 : 4 : 5
3 : 5 : 7
	

知らなかったんだけど,シェルってカーネルのそとっかわだからシェルって呼ぶんですね. へぇ. 日本語でいうと核と殻.ちょっと微妙.

21:52:51 # Life ubuntu-tanについて. なんだか経緯はよくわからないが,バランスのとれたきれいな壁紙だと思う. 世界に訴え出てみるに,日本で一般的に流布されている壁紙とはこういうものだと思われてそう. Debu-tanとかをつくっても多分あまりかわいいキャラにならなさそうなのが困る.

2005年6月15日 (水曜日)

08:28:49 # Life メールの処理を改善したい. gmailみたいなインタフェースを使いたいな. スレッドの処理をgmail並にできるとよろしい. wonderlustだと不自由なので何かよいものはないだろうか. 理想としては,Maildirをそのまま扱えて, メタデータを別途作成して対応, メタデータが破壊されてもMaildirの情報からそれなりに復旧できること.

08:55:54 # Life keysigningのためのスクリプトを考えてみる.こんなものか? ということで,Debian勉強会に参加した方々の署名完了.

	  cat idlist | while read MAIL ID REST; do 
 echo "checking $MAIL $ID"
 gpg --keyserver pgp.mit.edu --recv-key $ID 
 gpg --fingerprint $ID; 
 gpg --sign-key $ID; < /dev/tty
 gpg --export --armor $ID | gpg --armor --encrypt -r $ID > ./mail/$MAIL ;
 done
	

22:12:20 # Life lurkerというウェブベースのメールアーカイブソフトがあるらしい. debian.orgのメーリングリストをそのインタフェースで見た場合の出力. Marco d'Itriのblogで紹介されていた. きれいな出力であることと,スレッドがうまいこと扱われているという点でいうと優秀かもしれない. しかし,この人1GBくらいディスクをつかっているよ...

2005年6月13日 (月曜日)

07:59:36 # Life debootstrapの新しいバージョンがアップロードされた. slinkの対応がなくなった,という大きな問題とともに, cross-strap対応になったという衝撃.すばらしい.

2005年6月12日 (日曜日)

08:33:47 # Life 第5回東京エリアDebian勉強会報告. 今月もDebian勉強会を開催しました. debian-installerや,update-alternativesのDebianのインフラの ディープな話について盛り上がりました.

今回の会計はこんなかんじかな?

科目 出費 入金
資料コピー15人分 3685
DWNクイズ景品代 100
会場代 1500
勉強会費 6000
宴会 23703 32000
デニーズ 5324
合計 3688

09:22:05 # Life xargsがrmにargumentを出しすぎているというバグレポートが来た.うーん. xargsは本当にこれでよいのか?

xargs: rm: Argument list too long
	

ということで,findutilsのメンテナとデバッグしまくり. そんな日曜日.

15:55:19 # Life debconfのtalkにvoteしようとしたら,なぜか,自分の提案したBOFが選択できるようになっていた. これってやることになっているのだろうか? ちょっと不安.

2005年6月11日 (土曜日)

12:47:46 # Life んー,Linusのツリーのgit headがさしているオブジェクトが無いなぁ. なんでだ?

New branch: 27198d855abbfc82df69e81b6c8d2f333580114c
error: cannot map sha1 file 27198d855abbfc82df69e81b6c8d2f333580114c
fatal: failed to unpack tree object HEAD
	

14:52:29 # Life CodeFestはビデオを作成するまでが遠足です,ということで調べてみる. ppmtompegというのがnetpbmパッケージに入っていて,それを活用したら, ppmをmpegにすることができるらしい. 参考

とりあえず何かはできたけど,あまり嬉しくない... paramファイルのなかの圧縮アルゴリズムのパラメータに関連するところなんて, パラメータ固定で十分じゃないのかなぁ?

$ for A in $(seq 1 441); do convert ../mhatta/$A.jpg -resize 320x200!   $(printf %.4d.ppm $A); done
$ cat param
OUTPUT mhatta.mpg
BASE_FILE_FORMAT PPM
GOP_SIZE 1
PATTERN IPBP
INPUT_CONVERT *
PIXEL HALF
PQSCALE 10
IQSCALE 8
BQSCALE 25
BSEARCH_ALG       CROSS2
REFERENCE_FRAME   ORIGINAL   
RANGE 10
PSEARCH_ALG TWOLEVEL
SLICES_PER_FRAME 1
FRAME_RATE 30
INPUT_DIR .
INPUT
*.ppm [0001-0441]
END_INPUT
$ ppmtompeg param 
	

mencoderでも同様のことはできるみたい ただ mencoder "mf://*.jpg" -mf type=jpeg:fps=25:w=160:h=120 -o output.avi -ovc divx4 を手もとで実行してみたら,どうも色が変だ.

2005年6月10日 (金曜日)

06:14:47 # Life ブックマークサービスを使ってみました. del.icio.us. ウェブインタフェースを使っていることが苦痛でない程度の 良好なインタフェースで,なんとも便利そう.

2005年6月8日 (水曜日)

09:10:39 # Life さて,今週末いよいよ Debian 勉強会ですね. リリースもされたことですしはりきっていきましょ. 参加表明は明日木曜日の夜24:00までにしてください. よろしくお願いします. 詳細はこちら

2005年6月7日 (火曜日)

06:56:16 # Life Debian GNU/Linux 3.1 がリリースされました. いろいろとありがとうございました. 今回のリリースは巨大なリリースになりました. また,配布方法も,bittorrentとかいろいろとおもしろい方法が使えるみたいなので, 是非いろいろお試しください.

08:01:04 # Life 今日の(insert (shell-command-to-string "uname -a "))の出力: Linux atoron 2.6.12-rc6 #1 Tue Jun 7 07:03:27 JST 2005 i686 GNU/Linux. 無事に起動したみたいだ.

08:40:54 # Life 思い付き供養について,「tribute to fond memories of undone hacks.」 という訳語を思い付いた.

2005年6月6日 (月曜日)

08:46:18 # Life sargeさんとbritneyさんが離婚したらしい. そんな今日のIRCチャンネルのトピック. さて,今日の動きはどうだろう. 本当にリリースアナウンスがでるだろうか.

2005年6月5日 (日曜日)

11:48:46 # Life Codefestは無事におわりました. みなさんありがとうございました. 成果としては,普段やらないだろうと思われるバグの修正とか, いろいろとできたのでよいんじゃないだろうかと.

12:13:48 # Life 署名をするスクリプトとかを探すのが面倒なので,適当に処理. 結局メールを手動で書いてしまった.ローテク.

 for A in $(cat /tmp/wor); do 
 gpg --fingerprint $A; 
 gpg --sign-key $A;
 echo USERNAME; 
 read B;
 gpg --export --armor $A > /tmp/$B ;
 done
	

12:53:55 # Life いまのところまだDebian Developerとしての活動が再開できる状態ではないので, 鍵の交換に必要な処理の依頼をする. うーむ.

emacsでコマンドの出力をバッファにそのままインサートしようとしたら, (insert (shell-command-to-string "gpg --export --armor E81E55C1")) って感じでできるみたい. vi でも :!あたりを駆使したらできた気がします.

17:56:37 # Life codefestにて話題になったのは, もう時代はなんとなくcdbsになってきたんだけど, いざ使うとなると,使い方はコードを読め,という感じなので 他人には勧められない,ということだった. こういうところをなんとか改善できないだろうか. ただ,cdbsのやりかたはじっくりとコードを読める人じゃないと対応できないかも. debhelperはブラックボックスとして使えるけれども, cdbsはカスタマイズする方法が異様に難しい. また,ソースを読むとスクリプト言語としてのmakeを把握することが必要なので, それも厳しいか...

19:17:54 # Life マシンがリブートした. 熱くなりすぎたようだ. 気づいたら部屋の温度が30度. もうそういう季節なんですね.

20:08:05 # Life cogitoでよいなぁ,と思う点は,分散レポジトリであり, 現在のレポジトリがワーキングコピーとセットになっている点だ. ワーキングコピーの.git/ディレクトリ以下に現在のツリーの情報が集約される. ブランチを作るのは,cp -al でツリーをまるごとコピーすればよい(-lオプションは, i-node同じでファイルを変更しない場合に限る). .git/objects/以下で,既存のファイルは変更されないという保障があるため, 複製もそれなりに楽になるような気がしている. ただ,rsyncは既存のファイルは絶対に変更されない,という特性をうまく活用した コピーツールというわけではないと思うので,それは今後の課題か.

2005年6月4日 (土曜日)

00:29:45 # dupload binfmtc.binfmtcの0.4-1を作成. 一時ファイルを削除するための変な子プロセスが居るという仕様をバグフィックス.

 
 binfmtc (0.4-1) UNRELEASED; urgency=low
 .
   * New upstream version
	

01:34:28 # Life fortranとpascalのスクリプトをbinfmtc経由で実行できるようにハック.

01:54:07 # dupload pascalとfortran対応のbinfmtc.

 
 binfmtc (0.5-1) UNRELEASED; urgency=low
 .
   * New upstream version

	

02:26:21 # Life pbuilderのテストが通った. testsuiteをpbuilderのchroot内部で実行するというもの. debian/pbuilder-test/以下にファイルをおいておけばよい. B92test-pkgというフックスクリプトを利用して実装している. それなりにうごいているっぽい.

03:00:10 # Life 思い付き供養. gonzuiでDebianのソース検索しようと思ったけど, debianのパッケージが多すぎなのと, ソースがそのまま見れないパッケージが多すぎなので, debian/rulesを調査したけど,最初の1000個くらいで飽きました, ということで供養.

朝のラジオ体操を探したら, こんなページから こんなmidi ファイルがたどれた. すばらしい.

04:17:58 # Life えらく昔からopenにしているバグだが,pbuilder の autoclean optionを作成してみる. check項目としては,変なものが削除されない点かな. とりあえず,build logが変更しないかどうかを確認する.

確認してみて,動作がうまくいっているようだ,ということを認識. このパッチはOK.

05:14:33 # Life さて,pbuilderとpdebuildのオプション処理の部分を分割して, pdebuildにpbuilderのオプションを指定するとエラーがでるようにできるか? とか気合いをいれてみたが,結局中断.

06:17:37 # Life update-clusterのドイツ語翻訳がきたので,更新.

10:19:15 # Life ブランコ,こどもががんばってこぐため,lが変わる. 周波数二倍,周期の半分で変わるとエネルギーが加わる. パラメータれいしん.パラメトロン.同じことをLC回路で頑張る. 二つのブランコのフェーズのずれがどうかということで0/1を表現できる. メモリになる.

3個,多数決.a,b,0=and; a,b,1=or.そのまま使ってadder. notは,逆に線を繋げる.xorは多数決ではできない.

512 wordしかないので,いかに長い間はしるプログラムか.

11:23:25 # Life binfmtcをarchレポジトリにcommit.

pdebuild に pbuilder のオプションを指定しても勝手に動作していたのを, エラーチェックして動作しないように変更した.

ビルドチェック.

12:16:24 # Life テストを通ったので,pbuilder の pdebuildオプションチェックをコミット.

12:57:39 # Life update-clusterについてのバグについて処理.

13:15:55 # Life pbuilder についての処理. pdebuildまわりの確認. --helpオプションがきかなくなっていたので,追加. pbuilder-user-mode-linux と pdebuild-user-mode-linux に--help オプションがないのに気づいたが,面倒なので,とりあえず放置. 全オプションが存在するか試験しないとなぁ...

--with-pdebuild-internalをしてしまうと,rootユーザがownしているファイルが多数できてしまう. それが困る...いままで気づいていなかった.

13:55:17 # Life pbuilderをほげほげ.BUILDRESULTUIDあたりをいじり,ユーザをchroot内部に作成するとか.

とりあえず解決.

14:37:21 # Life gonzuiでcogitoつかえないかなぁ,と調べてみる. イメージとしては:

	  gonzui-import --cogito rsync://kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/ linux-2.6
	

しかし,あきらめる.

15:11:37 # Life 今回のハックを総括してみる. Debianの観点からすると,バグを8くらいcloseすることに成功.(3 closed, 5 pending).

2005年6月3日 (金曜日)

07:53:18 # Life 今日の夜のCodeFestにむけてマシンの準備とか. いろいろたいへんじゃのう. いろいろとハックして,ひさしぶりにdist-upgradeしてみたり. 雨はつらいなぁ.

17:49:09 # Life CodeFest会場に入る. ハッピーハッキングキーボードにマウスをさすとなぜかマウスがきかなくなるという障害. とりあえず本体に直差しにして対応. ネットワークがおかしかった, とりあえずハブがダメだったみたいなので鵜飼さん持参のハブに変更. なんかときどきbashが waitpid(-1, 0x7fffedf8, WNOHANG|WUNTRACED) = 0 でハングしている.

pbuilderをハックしようとしたが, iostatが無いので,sysstat をインストール. んでもっていろいろ.

binfmtcのdaemonモードをほげほげしようと思う.

ここはハック部屋なので,向こう側で議論してね.

中国は2人倒れたので,ここは3人くらいは倒れるだろう. 気を付けてね. しっかりと水とバナナはとってね.

20:29:30 # Life とりあえずまずpbuilder for experimentalパッチを適用してテスト.

sudo pbuilder create --distribution experimental --basetgz /var/tmp/experimental.tgz
	

テストが終るまでの間は,鵜飼さんの日記解析のために,wilikiをインストールしてみる. pythonのコードを書こうとおもったら,python-modeがはいっていなかったので,インストール.

pbuilder for experimental パッチは,pbuilder updateコマンドの存在を無視している感じなのでその点コメント. experimentalのchrootで作業してみると,パッケージの証明がとれない場合は, パッケージをインストールしてくれなくなっている...

root@ibookg4:/# apt-get install lv
Reading package lists... Done
Building dependency tree... Done
Recommended packages:
  bzip2
The following NEW packages will be installed:
  lv
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 436kB of archives.
After unpacking 676kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  lv
Install these packages without verification [y/N]? y
Get:1 http://ftp.jp.debian.org sid/main lv 4.51-1 [436kB]
Fetched 436kB in 0s (1539kB/s)
Selecting previously deselected package lv.
(Reading database ... 7675 files and directories currently installed.)
Unpacking lv (from .../archives/lv_4.51-1_powerpc.deb) ...
Setting up lv (4.51-1) ...

	

pbuilder-for-experimentalパッチをpbuilder createとpbuilder updateに ついて動くように変更して,テストを書いて動作させてみる. woodyからexperimentalにアップグレードした場合に,dpkgがこけるのを確認. psコマンドの存在を前提としているみたいだ.

(Reading database ... 7481 files and directories currently installed.)
Preparing to replace dpkg 1.9.21 (using .../dpkg_1.13.4_powerpc.deb) ...
/var/lib/dpkg/tmp.ci/preinst: line 98: ps: command not found
dpkg: error processing /var/cache/apt/archives/dpkg_1.13.4_powerpc.deb (--unpack):
 subprocess pre-installation script returned error exit status 127
Errors were encountered while processing:
 /var/cache/apt/archives/dpkg_1.13.4_powerpc.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
	

dpkgのバグをファイルして終了.

22:10:08 # Life debconf7はどこでするかねぇ,と雑談. オリンピックセンターはどうよという話. ネットワーク回線がネックだね,ということで.

23:10:15 # Life 武藤さんから. release critical bugをみる ページ

2005年6月2日 (木曜日)

09:14:39 # Life LinuxTagのDebian Dayにてniibe yutakaさんがm32rにportingする話しをするそうだ. でもドイツはちょっと遠い.

09:20:43 # Life 何をcodefestでハックするか,というメールを書いて出したきがしたのだが,出ていないので,どうしたものか. おもいつくままに何ができるか考えてみる.

必要っぽいもの

2005年6月1日 (水曜日)

08:42:53 # Life SH4の近況とm32rの近況がきになる今日このごろ. m32rのページsh7780のページ. 専門用語が多いのといろいろと違うみたいなので,単純に比較するのは難しい...

最新のカーネルでiptablesを使えるようにしてみようとmenuconfigをみてみたら,えらく 階層が深くなっている...

09:14:16 # Life むむ,明後日がcodefestだ...すぐではないか.


Junichi Uekawa

$Id: 200506.html.ja,v 1.108 2005/06/29 23:33:54 dancer Exp $