08:14:35 # Life git版のカーネルがなんとなくビルドできたので,インストールしてみる. 二子山親方死去のニュースが見れるみたいなので,bttvドライバもきっちりうごいているようだ.
Linux atoron 2.6.12-rc5 #1 Tue May 31 08:09:51 JST 2005 i686 GNU/Linux
11:57:08 # Life おくじさんのブログを読んでいて, bramcohenのブログは凄いと書いてあった. たしかに見てみると, なんというかマニアックな話題に対してもコメントが10とか20とかついているみたいに見える. これは従来のメーリングリストの使い方と同じような勢いでブログを使っている,という 流れになってきているように思えますね.どちらがよいんだろう.
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'
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のソースを晒しておきますかね.
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
07:33:31 # dupload binfmtcのパッケージを作成したので,おいておく. こっちの頁からたどれます.
binfmtc (0.2-0.1) UNRELEASED; urgency=low . * New upstream release
09:27:32 # Life 第4回東京エリアDebian勉強会報告. 昨日もDebian勉強会を開催しました.
部屋の都合で途中で移動させられてしまいましたが,混乱させて申し訳ありませんでした.
今回の会計
科目 | 出費 | 入金 |
資料コピー8人分 | 2080 | |
---|---|---|
会場代 | 1500 | |
勉強会費 | 4000 | |
宴会 | 25092 | 22000 |
合計 | 2670 |
06:44:35 # Life Joeyのblogで知ったが,CodingMarathonという企画があるらしい. LinuxTagで, 会場にて4時間で問題をといてもらう,という形式になるみたい. マシンを貸与してそれで作業してもらうらしい.
08:26:43 # Life ecasoundのプレゼンがドイツであったそうな. (theora形式の動画)ライブで説明するなら音声とかだして編集とかしてみせるのがおもしろそうだなぁ..
09:30:24 # Life fontforgeというのがなんとなく気になる. なんとなく今朝見た頁... おぉ.しかも,CodeFestに来られるらしい. どきどき.
07:56:02 # Life まとめて気合いをいれる場合に,何をしたいかを考える. そして,それが人がたくさんいると何が嬉しいのかを考える.
08:50:49 # Life f-spotをインストールしてみる. binfmt-supportやmonoがインストールされてちょっとびびる. 最初に起動しようとしておそいぞーと 途中でctrl-cで停止してしまうと二度と起動しなくなった. どうやら/home/dancer/.gnome2/f-spot/photos.db が中途半端な状態になっていたようなので,削除して復旧. ここらへんは改善の余地ありだな.
EXIF情報がないファイルは日付がimportした時点の時間になるらしい. これは困った.
09:06:42 # Life CodeFestJapan2005でできることってなんだろう. とりあえずDebian Conferenceまでにはlibpkg-guideのアップデートをしたいので,その作業かなぁ... あと,man大好きなので,man pageをいくつか翻訳したいのと作成したい.
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でどれくらい頑張れるか,ですね.
07:46:31 # Life 今回のハック旅行のテーマは結論からいうと, 「繰り返してすることはなんらかのハックをほどこす.怠けるためにコードを書く.」 これは,某Makeに関しての文書をウェブに書かれていた方への, 僕なりの Homage. 今回の成果,けっこう少ない気がする.
dancer-diaryについて好きな点としては,データをそのまま直接いじっている感触があるからだろうか. それは一般にはうけいれることのできない内容だろう. ただ,いろいろいじるためには,データの構造を把握していることは大切. デバッグの際も,データの形式がわかっているほうがよい.
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権限で実行する,というのが現在考えている一番安易な解決方法.
23:29:39 # Life flashをいじろうかなぁ,とみていたら,libmingがDebianから削除されていることに気づいた. flashってもうはやっていないんですか? 最近の流行に遅れすぎているようで萎える.
05:56:42 # Today's hack gimp 用のschemeスクリプトをここにおいておきます. select-to-file. gimp 本体にこのままの形ではなくても, これに似ているものが入っているとよいかもしれませんね. gimp 向けのschemeスクリプトを活発に開発しているグループとかはあるのかな?
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で保存するのがきめうちになっていたり, いつもつかっているサイズにリサイズしてくれたり, デフォルトのパスがいつも使っているパスだったりと,いろいろと自分仕様になっている. これは便利...なのか? 一旦作ってしまえばそれまでなのだが.
23:33:03 # Life 昔ソケットの勉強用に書いた,upacchoといううさんくさい(ウェブ?)サーバがあるので, それをいじって遊ぶ. httpを喋る100行くらいのCのコード. 今日の方針としては,mozillaとw3mと会話できればそれでよしとして, Cのアプリケーションを開発する際のウェブインタフェースを作るためのツールとして利用できないか,と 思っている. 2時間くらいいじってみて,それっぽくelservみたいな動作ができそうな雰囲気がしてきた. マルチスレッドにしたほうがよいのだろうか. 現在はシングルプロセス,シングルスレッドで回るようにしている. 昔はスレッド大好きで,リクエストが来るたびにスレッドをたちあげればよい,と思っていたのだが, 今の考えとしては,DoSでサーバが死ぬより,クライアントの反応がわるいほうがよい,と思う. コードの書き方も,スレッドのロックをかけまる必要があるコードよりも,そうでないコードのほうがはやいと思う. なんとなく,だけれども.
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用のスクリプトを作成しているみたいなので,問題無いか.
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 $
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ファイルを辞書として利用できる翻訳ヘルパーアプリの 作成かな.
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 は流行とかではない気がする.
$Id: 200505.html.ja,v 1.30 2005/05/30 23:21:12 dancer Exp $