この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。
xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法やインストールメモやXREA + tDiary + Namazuをどうぞ。
Edgyにあげたらrun-parts: /etc/cron.daily/beagle-crawl-system exited with return code 1というのが来るようになっていたので、ググってみるとBug #63416 in beagle (Ubuntu): “Problem with /etc/cron.daily/beagle-crawl-system”がみつかったので、/etc/cron.daily/beagle-crawl-systemの最初の方のset -eをコメントアウトして解決した。
IRC経由でこれをみて、そのときにIRCで出した案はSymbol.newで無名シンボルが作れれば解決かもという案。
ネットワークの申請を忘れていたので、PHSで接続していた。
演習問題の仕様が曖昧で困った。
RSpecはshould_be_なんとかという仕組みがmethod_missingを使っている実装の場合にまずそうな気がした。後で確認しよう。
RushCheckは質問にあったようにエラーが出たときの状況を再現出来るようになると使いやすくなりそう。
String#[]=のsubstringやRegexpを使うのって便利そうだと思って覚えてはいるけど、滅多に使うことはない気がする。
String#%はRuby-GetText-Packageを使うとハッシュも使えて用途によっては便利。
Arrayを返したときは変換候補の選択になれば、ATOKの「あした」で変換すると「2006/12/17」「2006年12月17日」「平成18年12月17日(日)」という候補が出るのと同じようなことが出来ておもしろいかもしれないと思った。
Python使いになるということで懇親会の時に、Pythonの勉強にはオライリーの「初めてのPython 第2版」がおすすめと伝えた。オライリーの本というだけでさけられてしまう傾向があるのが残念。
なぜか気が向いたので「はじめよう Ruby on Rails」をやってみることにした。
そのままやってもあんまりおもしろくないのでgettext_scaffoldで。
データベースはサーバを入れるのが面倒だったのでSQLite3。
create_tableの時はtable.columnなのに、後から追加するときはadd_columnなのは覚えないといけないことが多くなって嫌な感じ。
時々"\r"が混ざっているのが気になる。
3つのconfirmのrhtmlとshow.rhtmlで表示部分が重複しているので、_list.rhtmlとしてくくりだした。
datetime_selectの「datetime_select 'schedule', 'datetime' , {:use_month_numbers=>true, :order=>[:year, "/ ", :month, "/ ", :day, " ", :hour, ": ", :minute]}」のorderというのは知らなかった。ここも翻訳対象に出来れば日と時がくっついてるように見えるのを何とか出来そう。
fixturesが生成されたままだとdatetime型のcolumnのto_s(:long)がnilに対して呼ばれてrakeによるテストが失敗した。
gettext_scaffoldで生成されたconfirm画面があるとファイルアップロードが出来なくて困った。解決方法を思いつかなかったので、とりあえずあきらめた。
150ページのconfirmのところでpostがなくてちょっと悩んだ。Rails' Wiki - 「はじめよう Ruby on Rails」サポートページには既に載っていた。
Linuxでiptablesなどでホスト名に対応するIPアドレスのloでの通信を制限しているとdrbのテストで84個のErrorになる。TCP関係はしかたないとして、UNIXSocketを使っているはずのテストまでErrorになるのがなぜなのか、気になっていたので調べてみた。
結論としては、drbunix:のテストでもdruby:を使っていたから。
~/build/ruby-1.8.5-p12/test/drb$ /opt/ruby-1.8.5/bin/ruby-1.8.5 -vd test_drbunix.rb ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux] Exception `LoadError' at /opt/ruby-1.8.5/lib/ruby/1.8/tmpdir.rb:12 - no such file to load -- Win32API Exception `DRb::DRbBadScheme' at /opt/ruby-1.8.5/lib/ruby/1.8/drb/drb.rb:814 - drbunix: Loaded suite test_drbunix Started sh: line 1: /opt/ruby-1.8.5/bin/ruby-1.8.5 -d: No such file or directory
✑ -dを付けるとなぜか失敗。
子プロセスの引数が見たかったので、strace -f -e trace=processで調査すると、execveの第一引数がおかしい。それはおいといて、druby:のURIが見えるので、これが原因と判明。
$ strace -f -e trace=process /opt/ruby-1.8.5/bin/ruby-1.8.5 -vd test_drbunix.rb
execve("/opt/ruby-1.8.5/bin/ruby-1.8.5", ["/opt/ruby-1.8.5/bin/ruby-1.8.5", "-vd", "test_drbunix.rb"], [/* 15 vars */]) = 0
ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux]
Exception `LoadError' at /opt/ruby-1.8.5/lib/ruby/1.8/tmpdir.rb:12 - no such file to load -- Win32API
Exception `DRb::DRbBadScheme' at /opt/ruby-1.8.5/lib/ruby/1.8/drb/drb.rb:814 - drbunix:
--- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
--- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
Loaded suite test_drbunix
Started
--- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
clone(Process 13190 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x401a60c8) = 13190
[pid 13189] waitpid(13190, 0xbfff9af8, WNOHANG) = 0
[pid 13190] execve("/bin/sh", ["sh", "-c", "\"/opt/ruby-1.8.5/bin/ruby-1.8.5 "...], [/* 15 vars */]) = 0
[pid 13190] clone(Process 13191 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x40060968) = 13191
[pid 13190] exit_group(0) = ?
Process 13190 detached
[pid 13189] --- SIGCHLD (Child exited) @ 0 (0) ---
[pid 13191] execve("/opt/ruby-1.8.5/bin/ruby-1.8.5 -d", ["/opt/ruby-1.8.5/bin/ruby-1.8.5 -"..., "/home/nisiyama/build/ruby-1.8.5-"..., "druby://penguin.example.net:420"..., "ut_array_drbunix.rb"], [/* 14 vars */]) = -1 ENOENT (No such file or directory)
sh: line 1: /opt/ruby-1.8.5/bin/ruby-1.8.5 -d: No such file or directory
[pid 13191] exit_group(127) = ?
Process 13191 detached
waitpid(13190, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG) = 13190
✑ カレー男 [おれもおれも]