つれづれ日記 2005年5月

予定

毎日


2005年5月31日 (火曜日)

08:14:35 # Life git版のカーネルがなんとなくビルドできたので,インストールしてみる. 二子山親方死去のニュースが見れるみたいなので,bttvドライバもきっちりうごいているようだ.

Linux atoron 2.6.12-rc5 #1 Tue May 31 08:09:51 JST 2005 i686 GNU/Linux
	

2005年5月29日 (日曜日)

11:57:08 # Life おくじさんのブログを読んでいて, bramcohenのブログは凄いと書いてあった. たしかに見てみると, なんというかマニアックな話題に対してもコメントが10とか20とかついているみたいに見える. これは従来のメーリングリストの使い方と同じような勢いでブログを使っている,という 流れになってきているように思えますね.どちらがよいんだろう.

2005年5月28日 (土曜日)

16:37:37 # Life はげしい勢いでメールのバックログを消化してみる. 二か月分近く,2万通くらいあるので,なんというか,いろいろ起きましたねぇ,という印象. しかし5000通くらいよんだところで力尽きる.

17:03:39 # Life んが,git版のカーネルビルドエラー.

  GEN     .version
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
arch/i386/kernel/built-in.o(.init.text+0x16d8): In function `setup_arch':
: undefined reference to `acpi_boot_table_init'
arch/i386/kernel/built-in.o(.init.text+0x16dd): In function `setup_arch':
: undefined reference to `acpi_boot_init'
	

2005年5月27日 (金曜日)

07:40:50 # Life Debian辞典を買って来た. Social Contractが見開きの頁にあるのがなんともいえませんなぁ... 大きさはコンパクトな感じなので扱いやすい気がする. 中身はけっこうディープなところまで追求しているような雰囲気が...

今朝は久しぶりにlinusのツリーをビルドして動かしてみる. 2.6.12-rc5か.とりあえず無事にうごいているみたい.

Linux atoron 2.6.12-rc5 #1 Fri May 27 07:03:42 JST 2005 i686 GNU/Linux
	

07:46:08 # Life 気づいたらaliothのプロジェクトができていました. debian勉強会の資料置場です. ここでlatexのソースを晒しておきますかね.

2005年5月26日 (木曜日)

09:26:31 # Life cogitoについてのメモを更新しました. こちらです. これでカーネルの最新版をおいかける毎日にもどりますか...

2005年5月24日 (火曜日)

08:43:15 # dupload 今日のDebianパッケージメンテナンスはbinfmtc0.3-0.1を作成. Java対応してみました. 昨日のFSIJのミーティングに出ていて,やっぱjavaって必要だよね(極論) のような話しもでていたきがしたので対応しました.

$ cat javatest.java 
//BINFMTGCJ: --main=javatest
public class javatest {
    public static void main(String args[]) {
	System.out.println("hello world");
    }
}
$ time ./javatest.java 
hello world

real	0m0.304s
user	0m0.254s
sys	0m0.047s
	

2005年5月23日 (月曜日)

07:33:31 # dupload binfmtcのパッケージを作成したので,おいておく. こっちの頁からたどれます.


 binfmtc (0.2-0.1) UNRELEASED; urgency=low
 .
   * New upstream release

	
      

2005年5月22日 (日曜日)

09:27:32 # Life 第4回東京エリアDebian勉強会報告. 昨日もDebian勉強会を開催しました.

部屋の都合で途中で移動させられてしまいましたが,混乱させて申し訳ありませんでした.

今回の会計

科目 出費 入金
資料コピー8人分 2080
会場代 1500
勉強会費 4000
宴会 25092 22000
合計 2670

2005年5月20日 (金曜日)

06:44:35 # Life Joeyのblogで知ったが,CodingMarathonという企画があるらしい. LinuxTagで, 会場にて4時間で問題をといてもらう,という形式になるみたい. マシンを貸与してそれで作業してもらうらしい.

2005年5月19日 (木曜日)

08:26:43 # Life ecasoundのプレゼンがドイツであったそうな. (theora形式の動画)ライブで説明するなら音声とかだして編集とかしてみせるのがおもしろそうだなぁ..

09:30:24 # Life fontforgeというのがなんとなく気になる. なんとなく今朝見た頁... おぉ.しかも,CodeFestに来られるらしい. どきどき.

2005年5月18日 (水曜日)

07:56:02 # Life まとめて気合いをいれる場合に,何をしたいかを考える. そして,それが人がたくさんいると何が嬉しいのかを考える.

08:50:49 # Life f-spotをインストールしてみる. binfmt-supportやmonoがインストールされてちょっとびびる. 最初に起動しようとしておそいぞーと 途中でctrl-cで停止してしまうと二度と起動しなくなった. どうやら/home/dancer/.gnome2/f-spot/photos.db が中途半端な状態になっていたようなので,削除して復旧. ここらへんは改善の余地ありだな.

EXIF情報がないファイルは日付がimportした時点の時間になるらしい. これは困った.

2005年5月17日 (火曜日)

09:06:42 # Life CodeFestJapan2005でできることってなんだろう. とりあえずDebian Conferenceまでにはlibpkg-guideのアップデートをしたいので,その作業かなぁ... あと,man大好きなので,man pageをいくつか翻訳したいのと作成したい.

2005年5月16日 (月曜日)

04:25:05 # Life sidでpppoeの設定をしなおしてみる. はまる. どうやら/etc/network/interfacesでeth0をきっちりと設定しないといけないように仕様が変更になったらしい.

04:40:13 # Life gpgキーをrevokeする必要がでたので,する方法を調査しないといけない. あたらしく作成しなおすので,近辺在住のdeveloperのみなさま, 署名をお願いにまわりますが,よろしくお願いします.

05:29:49 # Life 次回Debian勉強会はいよいよ今週末です. 詳細については,こちらを御覧ください. お待ちしております.

06:43:29 # Life kinnekoさんの日記拝見. DocFestってやってみたらおもしろいだろうなぁ.. 翻訳関連とか. 合宿して24時間でする必要は(ネタとしておもしろい以外には)無いとは思いますが. 今回のCodeFestでどれくらい頑張れるか,ですね.

2005年5月15日 (日曜日)

07:46:31 # Life 今回のハック旅行のテーマは結論からいうと, 「繰り返してすることはなんらかのハックをほどこす.怠けるためにコードを書く.」 これは,某Makeに関しての文書をウェブに書かれていた方への, 僕なりの Homage. 今回の成果,けっこう少ない気がする.

dancer-diaryについて好きな点としては,データをそのまま直接いじっている感触があるからだろうか. それは一般にはうけいれることのできない内容だろう. ただ,いろいろいじるためには,データの構造を把握していることは大切. デバッグの際も,データの形式がわかっているほうがよい.

2005年5月14日 (土曜日)

22:37:41 # Life ラウンジでhfsplusのコードを読む. Mac OS X 領域をマウントした場合に, iTunesのデータがLinux側で利用していないuid, gidのみで読み書きできる権限になっているので, それをマウントのオプションでuid,gidを指定してマウントできないか,と考えている. uid=xxx gid=xxx という設定を反映させるには,どこをいじればよいのだろうか. なんとなく,inode.cのhfsplus_get_permsだけをいじればよい気がしていたのだが, 書き込みの時のuid/gidは矛盾なく保持できるのだろうか. 書き込みはするな,という方向が正しいのか,それとも, uid/gidオプションをそのまま反映させるのが正しいのか. bind-mountとかでも対応できるのだろうか. nfs経由でアクセス,とかsamba経由でアクセス,とかでは対応できそうだが, その他に対応する方法はあるだろうか? きれいな解決方法はあるだろうか. 運用として,xineをroot権限で実行する,というのが現在考えている一番安易な解決方法.

2005年5月13日 (金曜日)

23:29:39 # Life flashをいじろうかなぁ,とみていたら,libmingがDebianから削除されていることに気づいた. flashってもうはやっていないんですか? 最近の流行に遅れすぎているようで萎える.

2005年5月12日 (木曜日)

05:56:42 # Today's hack gimp 用のschemeスクリプトをここにおいておきます. select-to-file. gimp 本体にこのままの形ではなくても, これに似ているものが入っているとよいかもしれませんね. gimp 向けのschemeスクリプトを活発に開発しているグループとかはあるのかな?

2005年5月9日 (月曜日)

03:31:17 # Life 怠けるためにコードをかかないと行けない. そんなことを誰かがいっていたきがする. 写真の処理にはgimpを活用しているのだが, 全く自動化の処理をしていなかった. gimpのschemeの使いかたがよくわからないのだが,おもいきって gimp の script-fu をいじって,いつもしている作業を自動にしてみた. 選択領域をきりだしてファイルとして保存する,というものだが, デフォルトではまったくその機能を実装しているものは存在しないみたいなので,適当に作成. /usr/share/gimp/2.0/scripts/select-to-image.scm あたりを参考にしたらおもったよりも簡単にできた. スクリプトを作成したのはよいのだが,登録のしかたがよくわからなかったのだが,適当に /usr/share/gimp/2.0/scripts/以下においてみたら読み込んでくれた. emacsでいう(load-file)みたいな機能はないのだろうか?

作成した scheme スクリプトはjpegで保存するのがきめうちになっていたり, いつもつかっているサイズにリサイズしてくれたり, デフォルトのパスがいつも使っているパスだったりと,いろいろと自分仕様になっている. これは便利...なのか? 一旦作ってしまえばそれまでなのだが.

2005年5月8日 (日曜日)

23:33:03 # Life 昔ソケットの勉強用に書いた,upacchoといううさんくさい(ウェブ?)サーバがあるので, それをいじって遊ぶ. httpを喋る100行くらいのCのコード. 今日の方針としては,mozillaとw3mと会話できればそれでよしとして, Cのアプリケーションを開発する際のウェブインタフェースを作るためのツールとして利用できないか,と 思っている. 2時間くらいいじってみて,それっぽくelservみたいな動作ができそうな雰囲気がしてきた. マルチスレッドにしたほうがよいのだろうか. 現在はシングルプロセス,シングルスレッドで回るようにしている. 昔はスレッド大好きで,リクエストが来るたびにスレッドをたちあげればよい,と思っていたのだが, 今の考えとしては,DoSでサーバが死ぬより,クライアントの反応がわるいほうがよい,と思う. コードの書き方も,スレッドのロックをかけまる必要があるコードよりも,そうでないコードのほうがはやいと思う. なんとなく,だけれども.

2005年5月7日 (土曜日)

02:25:40 # Life dpatch関連で,patchコマンドがファイルを変更する場合に, 同じi-nodeを使うのか,それともあたらしいi-nodeを作成するのかを調査. cp -la でツリーをコピーして作業したほうが物理的にファイルをコピーしないため,高速なのだが, その上で,patchコマンドをはしらせて安全かどうかを確認. copy-on-writeの要領で変更を扱えるのが理想. patchコマンドもemacsも両方ともファイルを変更する場合にはファイルは新しいi-nodeになるようなので,合格. viを使う場合には別途考える必要があるが,viを使う人はそれぞれ copy-on-write用のスクリプトを作成しているみたいなので,問題無いか.

2005年5月3日 (火曜日)

07:00:58 # Life binfmt_misc ハック. 今日はC言語で書いたソースコードをコンパイルして実行できる binfmt_misc ハンドラを書いてみた. 予想していたより,便利かもしれない. 実はコンパイルの時間はそこまで遅いわけではない. 若干ださい実装をしている部分もあるが,そこらへんはあとからいろいろといじる予定. binfmt-supportパッケージを活用すればいろいろとできそうだ.

$ ./print.c 1 2
argc: 3
argv[0]: ./print.c
argv[1]: 1
argv[2]: 2
$ cat print.c 
/*BINFMTC: 
*/
#include <stdio.h>
int main(int argc, char** argv)
{
  int i ;

  printf("argc: %i\n", argc);
  for(i=0; i<argc; ++i)
    {
      printf("argv[%i]: %s\n", i, argv[i]);
    }
  return 0;
}
	

C++のプログラムは遅すぎてつらいかもしれないけど, Cのプログラムはコンパイル時間がはやいので,使えるレベルではないか?

$ time ./cxxprint.cxx 
Test C++

real	0m1.318s
user	0m1.140s
sys	0m0.149s
$ time ./print.c 
argc: 1
argv[0]: ./print.c

real	0m0.163s
user	0m0.119s
sys	0m0.035s
	  $ 

2005年5月2日 (月曜日)

05:54:16 # Life なんとなく, for A in /usr/share/locale/ja/LC_MESSAGES/*.mo; do echo $A; msgunfmt $A > ${A##*/}.po; done として,出力をmsgcat *.poでマージしてみる. たまに変な出力もでてくるけど...

/usr/share/locale/ja/LC_MESSAGES/sharutils.mo
msgunfmt: 不正な複数バイトのシーケンス
msgunfmt: 不正な複数バイトのシーケンス
	

そうすると, いままでの翻訳で同じ語を違うように訳していた部分がfuzzyとして出てくる. すでに翻訳したことのある文章は置換する,というような仕組みがひろまっていれば こういう現象はおきないんだろうと思う. translator_creditsや""の訳語くらいは違ってもよいが,その他については 翻訳元の言葉に問題があるか,翻訳に問題があるかの二つなのではないか?

手もとのシステムでは,746のfuzzyが存在した.

すでに翻訳したことのある語を訳した状態でのテンプレートの作成というのは, 既存のツールでてきて,実は簡単なのかもしれない,と気づいた. msgunfmt, msgcat, msgmergeという基本ツールを利用すれば, 新規の翻訳の場合に,すでに翻訳されている言葉の対応は簡単にできるような気がする.

GNOME関連のコードだけはコピペだが翻訳はコピペできていない部分とか, aptからとってきたaptitudeのコードだとかが存在している点に気づく. あとは,doneの訳語が統一されていないこととか.

#, fuzzy
msgid "No error"
msgstr ""
"#-#-#-#-#  bfd.mo.po (bfd 2.11)  #-#-#-#-#\n"
"エラーはありません\n"
"#-#-#-#-#  gnome-vfs-2.0.mo.po (gnome-vfs HEAD)  #-#-#-#-#\n"
"エラーはありません\n"
"#-#-#-#-#  wget.mo.po (wget 1.9-b5)  #-#-#-#-#\n"
"エラーなし"

#, fuzzy
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr ""
"#-#-#-#-#  binutils.mo.po (binutils 2.11)  #-#-#-#-#\n"
"使い方: %s [オプション]... [ファイル]...\n"
"#-#-#-#-#  coreutils.mo.po (GNU textutils 2.0.22)  #-#-#-#-#\n"
"使用法: %s [オプション]... [ファイル]...\n"

#, fuzzy
msgid "directory"
msgstr ""
"#-#-#-#-#  binutils.mo.po (binutils 2.11)  #-#-#-#-#\n"
"ディレクトリ\n"
"#-#-#-#-#  coreutils.mo.po (GNU textutils 2.0.22)  #-#-#-#-#\n"
"ディレクトリ\n"
"#-#-#-#-#  diffutils.mo.po (GNU diffutils 2.7.10)  #-#-#-#-#\n"
"ディレクトリー"
  
#, fuzzy
msgid "Action"
msgstr ""
"#-#-#-#-#  aptitude.mo.po (aptitude 0.2.15.6-1)  #-#-#-#-#\n"
"動作\n"
"#-#-#-#-#  control-center-2.0.mo.po (control-center HEAD)  #-#-#-#-#\n"
"操作\n"
"#-#-#-#-#  gimp20-std-plug-ins.mo.po (gimp gimp-2-2)  #-#-#-#-#\n"
"動作\n"
"#-#-#-#-#  gimp20.mo.po (gimp-2-2)  #-#-#-#-#\n"
"操作\n"
"#-#-#-#-#  gnome-session-2.0.mo.po (gnome-session HEAD)  #-#-#-#-#\n"
"アクション\n"
"#-#-#-#-#  gtk20-properties.mo.po (gtk+-properties HEAD)  #-#-#-#-#\n"
"アクション\n"
"#-#-#-#-#  xchat.mo.po (2.0.2)  #-#-#-#-#\n"
"アクション"

#, fuzzy
msgid "Continue"
msgstr ""
"#-#-#-#-#  aptitude.mo.po (aptitude 0.2.15.6-1)  #-#-#-#-#\n"
"続行\n"
"#-#-#-#-#  gimp20.mo.po (gimp-2-2)  #-#-#-#-#\n"
"次へ\n"
"#-#-#-#-#  gqview.mo.po (gqview 1.4.2)  #-#-#-#-#\n"
"続行\n"
"#-#-#-#-#  libgtop-2.0.mo.po (libgtop HEAD)  #-#-#-#-#\n"
"コンティニュー\n"
"#-#-#-#-#  xine-ui.mo.po (xine 0.99.1-cvs)  #-#-#-#-#\n"
"継続"

#, fuzzy
msgid "Cancel"
msgstr ""
"#-#-#-#-#  aptitude.mo.po (aptitude 0.2.15.6-1)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gaim.mo.po (gaim 1.1.3cvs)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gimp20.mo.po (gimp-2-2)  #-#-#-#-#\n"
"取消\n"
"#-#-#-#-#  gnome-libs.mo.po (gnome-libs 1.2.12)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gnupg.mo.po (gnupg 1.3.92)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gqview.mo.po (gqview 1.4.2)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  gtk+.mo.po (gtk+ 1.2.7)  #-#-#-#-#\n"
"取消\n"
"#-#-#-#-#  gtkpod.mo.po (gtkpod 0.40)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  icewm.mo.po (icewm 1.0.6)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  newt.mo.po (newt 0.51.4)  #-#-#-#-#\n"
"取消\n"
"#-#-#-#-#  soundtracker.mo.po (SoundTracker 0.3.10)  #-#-#-#-#\n"
"取消\n"
"#-#-#-#-#  sylpheed.mo.po (sylpheed)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  xchat.mo.po (2.0.2)  #-#-#-#-#\n"
"キャンセル\n"
"#-#-#-#-#  xine-ui.mo.po (xine 0.99.1-cvs)  #-#-#-#-#\n"
"取り消し\n"
"#-#-#-#-#  xitk.mo.po (xine 0.99.1-cvs)  #-#-#-#-#\n"
"取り消し\n"
"#-#-#-#-#  xmms.mo.po (xmms 1.2.8)  #-#-#-#-#\n"
"取消"

#, fuzzy
msgid ""
"I wasn't able to locate a file for the %s package. This might mean you need "
"to manually fix this package. (due to missing arch)"
msgstr ""
"#-#-#-#-#  aptitude.mo.po (aptitude 0.2.15.6-1)  #-#-#-#-#\n"
"%s パッケージが見つかりませんでした。手動でパッケージを補う必要があるかもしれ"
"ません。(または適切なアーキテクチャが見つからない)\n"
"#-#-#-#-#  libapt-pkg3.3.mo.po (apt 0.5.24)  #-#-#-#-#\n"
"パッケージ %s のファイルの位置を特定できません。おそらくこのパッケージを手動"
"で修正する必要があります (存在しないアーキテクチャのため)。"

	

たとえば,msgcat --more-than 5 --add-location *.po とすると,5種類以上で定義されている言葉の一覧が出て来る. "^msgstr"で検索すると,語の種類が出て来るのだが,それを見ると, 125語ある.そのうち"#, fuzzy"になっている(訳語が統一されていない)ものは 70ある.

翻訳データを中央管理できれば, 新しい po ファイルを commit する際に,fuzzy の数が増えるようであれば reject するだとか, そういうチェック機構が実装できそうなのだが,どうだろうか. また,potファイルをあたらしく翻訳する場合は, 既存のテンプレートからがりがりと作成する, 特に多い語に関しては,辞書化してしまう,などの対処が考えられる.

あとは,emacsからmoファイルを辞書として利用できる翻訳ヘルパーアプリの 作成かな.

2005年5月1日 (日曜日)

05:56:05 # Life 新しい月が開始.素晴らしい.

06:41:49 # Life rubyでプログラムを書いてみて,stringをintegerに変える方法がわからずにしばらくはまった. to_i をつかえばよいということはあとでわかったのだが, なんというか,とりあえず他の言語をつかったことある立場から連想する,という手法でプログラムを書いてみても 到達できない領域. いや,まじめに普通に勉強したらそんなところでははまらないんだろうけどさぁ...

23:59:59 # Today's hack dpatch-elという,dpatchをemacsで活用するためのスクリプトを追記,修正した. 2年前くらいにかきはじめていたのだが, ずっと放置していたので,メンテナンス. dpatchを利用するためのemacsのlispを書いている人なんておそらく他には居ないと思うので, 需要はそれなりにあるんじゃないか? 実は, emacs ユーザは世界に少なくて,みんな vi を使っている気がしている今日この頃. 流行に遅れたか?...vi は流行とかではない気がする.


Junichi Uekawa

$Id: 200505.html.ja,v 1.30 2005/05/30 23:21:12 dancer Exp $