zt日記

書いているのは Kazuhiro NISHIYAMA a.k.a. ZnZです。
2001|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|
2012|04|05|06|09|

この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。

xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法インストールメモXREA + tDiary + Namazuをどうぞ。


2010年03月01日(Mon)

毎日更新は無理があるようなので、今月からは最低限週1回更新することに目標を変更。

停電後

サーバの起動のため、早めに行ってサーバの電源を入れた。


2010年03月05日(Fri)

uuuu

undefineduniversityuponustream の日だった。 メールを誤読していて、10日かと勘違いしていたが、今日だった。

今回は YouTube の再生環境として、 live-helper で作成した netboot の lenny を使用した。

live-helper での作成方法として、 2010-01-19 の sid で「lh config --mirror-bootstrap "http://apt.example.jp:9999/debian" --mirror-chroot "http://apt.example.jp:9999/debian" --mirror-binary "http://apt.example.jp:9999/debian" --mirror-chroot-security "http://apt.example.jp:9999/security" --mirror-binary-security "http://apt.example.jp:9999/security" -a i386 --binary-images net -d lenny --hostname debian-live-nfs -l ja --archive-areas "main" --net-root-path "/srv/nfs/debian-live" --net-root-server 192.168.0.46 --bootappend-live "locale=ja_JP.UTF-8 keyb=jp kmodel=jp106 timezone=Asia/Tokyo utc=no" -k 686 -p lxde --packages "lv ttf-vlgothic epdfview curl uim uim-anthy bash-completion"」という感じのオプションを指定してビルドした。 lenny の live-helper と違って squeeze に入る予定の live-helper では、コマンドが lh_config などから lh に統合されている。

できたファイルを /var/lib/tftpboot/debian-live/i386/ 以下と /srv/nfs/debian-live に置いた。 flash player はライセンスの問題がありそうなので、起動後にインストールするためのシェルスクリプトを用意しておくことにした。

% ls /var/lib/tftpboot/debian-live/i386
boot-screens/                 memtest                    vmlinuz-2.6.26-2-486
initrd.img-2.6.24-26-generic  pxelinux.0*                vmlinuz-2.6.26-2-686
initrd.img-2.6.26-2-486       pxelinux.cfg/
initrd.img-2.6.26-2-686       vmlinuz-2.6.24-26-generic
% ls /srv/nfs/debian-live
doc/  install-libflashplayer.sh*  live/  md5sum.txt
% cat /srv/nfs/debian-live/install-libflashplayer.sh
#!/bin/sh
wget -N http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz
mkdir -p $HOME/.mozilla/plugins
tar xf install_flash_player_10_linux.tar.gz
mv libflashplayer.so $HOME/.mozilla/plugins
%

dhcpd.conf では以下のような感じで設定した。

host mebius {
    hardware ethernet 08:00:1f:XX:XX:XX;
    fixed-address 192.168.0.110;
    next-server 192.168.0.4;
}

/etc/exports では以下のように設定した。

/srv/nfs/debian-live    *(ro,sync,no_subtree_check,no_root_squash)

後からまとめたので抜けがあるかもしれないが、以上のような感じで起動した環境を使った。


2010年03月11日(Thu)

[ruby] OpenSolaris 2009.06 で ruby の trunk をビルド

signbit の問題があって、単純に ./configure を実行しただけではビルドできなかったが、「cflags=-std=c99」をつけるとビルドできると IRC で教えてもらって試したら出来た。


2010年03月15日(Mon)

termtter

http://redmine.ruby-lang.org/issues/show/2965 をみて試そうと思って「ruby-trunk bin/termtter」としてみたら、「Could not find RubyGem rubytter (>= 0.11.0) (Gem::LoadError)」と出たのであきらめた。rubytter の gem を入れればいいんだろうけど、ruby-trunk の環境は出来るだけ gem を入れていないので。 何か設定ファイルを用意しないとこけるかと思ったらそれ以前の問題だったという話でした。

concov が止まっていた

原因を調べてみるとgcov.logに「.../amalgalite-0.12.0/lib/amalgalite/statement.rb:303:in `next_row': Amalgalite::SQLite3::Error: SQLITE ERROR 5 (BUSY) : database is locked (Sequel::DatabaseError)」と出ていた。

何かプロセスが残っているのではないかと言われて調べてみると「git --git-dir /home/chkbuild/concov-data/source.db/git --work-t ree /home/chkbuild/concov-data/source.db/work rm -r --cached .」が標準エラー出力への出力の write システムコールで止まっていて、その親プロセスの「.../ruby-1.9.1-p378/bin/ruby /home/concov/concov/bin/concov -c /home/concov/concov/concov.conf register -d 20100313 /home/chkbuild/build/ruby-trunk-coverage/20100313T000000」が止まっていて、git を kill すると処理が進んでこの日のデータは登録が出来たように見える。 数日分抜けるけど、仕方がないのであきらめることに。

concov の update.rb

http://d.hatena.ne.jp/ku-ma-me/20090729/p1 のupdate.rb は reopen した $stdout と $stderr を戻していないという問題があるのがわかったので、その周りを以下のように修正して、update.rb も ruby 1.9.1 で動かすようにした。

# build ディレクトリで gcov を走らせ、.gcov ファイルを生成する
pwd = File.join(build_dir, "ruby")
open(File.join(pwd, "gcov.log"), "w") do |log|
  Dir.chdir(pwd)
  Dir.glob("**/*.gcda") do |path|
    dir, path = path[/\Aenc/] ? [".", path] : File.split(path)
    Dir.chdir(File.join(pwd, dir))
    pid = Process.spawn("gcov", "-l", "-p", "-o", File.dirname(path), path, :out => log, :err => log)
    Process.waitpid(pid)
  end
end

2010年03月16日(Tue)

rvm 難しい

update.rb を動かすのに ~/.rvm/bin/ruby-1.9.1-p378 を使っていたら、中身が bash スクリプトで PATH に ~/.rvm/rubies/ruby-1.9.1-p378/bin も足されてしまっていて、concov 用パッチをあてた chkbuild も ruby 1.9.1 で動いていて、途中で止まってしまっていた。 勝手に環境変数を設定している rvm もひどいけど、concov 用パッチをあてた chkbuild が ruby 1.9 で動かないのも問題がありそう。

結局 ~/.rvm/bin/ruby-1.9.1-p378 ではなく ~/.rvm/rubies/ruby-1.9.1-p378/bin/ruby で update.rb を動かせば問題なく動いた。


2010年03月17日(Wed)

Rubyist Magazine 0029 号

Rubyist Magazine 0029 号 がリリースされました。 公開されてから ruby-list にアナウンスが流れるまでに時間がかかっていたので、正式にリリースされる前に見えてしまっていましたが、 ruby-list にリリースアナウンスが流れた時点で正式リリースと言うことになっているようです。

今号は久しぶりに標準添付ライブラリ紹介を書きました。 tmpdir, tempfile についてです。 1.8.7 で Dir.mktmpdir が増えていたり Tempfile の方は拡張子を指定できるようになっていたりなど便利になっているので、すでに使っている人も新しい機能をチェックしてみると良いのではないでしょうか。

使用例では 1.8 でも動く (代わりに fork がない環境で使えない) fork と exec を使っていますが、ruby 1.9 以降のみなら concov の update.rb のように Process.spawn と組み合わせる方がよさそうです。


2010年03月18日(Thu)

空文字列の http_proxy 問題

以下の環境の組み合わせでファイルがダウンロードできなくてパッケージのインストールに失敗するという現象が起きた。

  • sid の live-helper (2.0~a9-1)
  • config/chroot_local-hooks/ であるパッケージをインストール
  • そのパッケージの postinst で ruby の open-uri を使ってファイルをダウンロードしている
  • 「Non-HTTP proxy URI:」というエラーが「/usr/lib/ruby/1.8/open-uri.rb:203:in `open_http'」で発生

config/chroot_local-hooks/ のシェルスクリプトに env を入れて確認してみると以下のように空文字列の http_proxy が設定されているのが原因とわかった。

HOME=/root
http_proxy=
TERM=screen
DEBIAN_PRIORITY=critical
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
ftp_proxy=
DEBIAN_FRONTEND=noninteractive
PWD=/
DEBCONF_NOWARNINGS=yes
XORG_CONFIG=custom

空文字列の http_proxy 環境で他のものはどうなるかいくつかのプログラムで試してみたところ、以下のように試した範囲ではすべて無視されていた。

  • env http_proxy= wget --spider URL : 無視されて普通にダウンロードできる
  • env http_proxy= w3m URL : 無視されて普通に表示できる
  • env http_proxy= curl URL : 無視されて普通にダウンロードできる

2010年03月20日(Sat)

第41回 Ruby/Rails勉強会@関西

久しぶりに参加したかもしれない。 spawnの使用例とか、ActiveScaffold の使用例は参考になったし、WebCam の発表に間に合わなかった AR のデバッグは見ていておもしろかった。 Ruby 初級者向けレッスンの時間はがんばってるりまの更新をしてみようとしたが、NetWalker しか持って行っていなかったこともあって、多少更新は出来たけど、最後のコミットまで出来なくて、後からコミットした。


2010年03月30日(Tue)

torne

ヨドバシ梅田で17時に入荷と書いてあったので、その少し後ぐらいに行ってみたら余裕で買えた。

トルミルを有効にするには torne の方に行く前にいちいちサインインしておかないといけないとか、 http://www.jp.playstation.com/support/torne/ のソフトウェア解説書の29ページにある「カーソルを移動する(1日単位)」がワイヤレスコントローラとPSPにしかなくて、BDリモコンだと出来ないとか、いくつかはまりどころはあったけど、見て消すだけの使い方なら便利そうな感じ。

他のHDDレコーダとかで録画したときには出せない字幕も残ってるのがいいかもしれない。


copyright © 2001-2013 ZnZ
Key fingerprint = 6E14 2C9C DBD7 874D 8B3C CAA8 9B58 5538 ED7E 1B73