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をどうぞ。


2006年12月03日(Sun)

[wii] wii伝言板

wiiばんごうを登録してメッセージを送受信できるようになるまでは結構早かった(10分以内ぐらい)けど、メッセージが実際に届くまでにどのくらい時間がかかるのかよくわからなかった。

[wii] 似顔絵パレード

交流する設定にしているのに、全然変化がない。

本日のツッコミ(全1件) [ツッコミを入れる]

カレー男 [おれもおれも]


2006年12月04日(Mon)

[ubuntu] run-parts: /etc/cron.daily/beagle-crawl-system exited with return code 1

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をコメントアウトして解決した。


2006年12月13日(Wed)

[ruby] ruby の catch, throw は安心して利用できるのか? (GANAware)

IRC経由でこれをみて、そのときにIRCで出した案はSymbol.newで無名シンボルが作れれば解決かもという案。

本日のツッコミ(全1件) [ツッコミを入れる]

 [なんでSymbolなんだろ。Object(の#==か#===)でcatchできればいいのに。ってそれは例外?]


2006年12月16日(Sat)

[Ruby勉強会@関西] 第13回 Ruby勉強会@関西

ネットワークの申請を忘れていたので、PHSで接続していた。

[Ruby勉強会@関西] Ruby 初級者向けレッスン

演習問題の仕様が曖昧で困った。

[Ruby勉強会@関西] Ruby で書いたプログラムのデバグ技術

RSpecはshould_be_なんとかという仕組みがmethod_missingを使っている実装の場合にまずそうな気がした。後で確認しよう。

RushCheckは質問にあったようにエラーが出たときの状況を再現出来るようになると使いやすくなりそう。

[Ruby勉強会@関西] Rubyクイズ

String#[]=のsubstringやRegexpを使うのって便利そうだと思って覚えてはいるけど、滅多に使うことはない気がする。

String#%はRuby-GetText-Packageを使うとハッシュも使えて用途によっては便利。

[Ruby勉強会@関西] scim-rubyの紹介

Arrayを返したときは変換候補の選択になれば、ATOKの「あした」で変換すると「2006/12/17」「2006年12月17日」「平成18年12月17日(日)」という候補が出るのと同じようなことが出来ておもしろいかもしれないと思った。

[Ruby勉強会@関西] オープンソースは愛だ!

Python使いになるということで懇親会の時に、Pythonの勉強にはオライリーの「初めてのPython 第2版」がおすすめと伝えた。オライリーの本というだけでさけられてしまう傾向があるのが残念。

[Ruby勉強会@関西] 懇親会

Rubyと関係ない話をしていたkとおの方が多かった気がする。

マジック大全とかで楽しめた。


2006年12月18日(Mon)

[ruby] Configモジュール

第13回Ruby勉強会@関西のRuby初級者レッスンでConfigクラスというのを作っていたら、rubygemsで問題が出たとかいう話があったけど、Configモジュールというのはrbconfig.rbというruby本体と一緒にインストールされるファイルに入っている(ruby 1.8.4以前はRbConfigという名前だけだった)ので、トップレベルにConfigというのを作ろうとするのはまずそう。

2006-12-19追記: つっこみにあるように「1.8.4以前は Config という名前だけだった」でした。

本日のツッコミ(全1件) [ツッコミを入れる]

成瀬 [1.8.4以前は Config という名前だけだった、ではないでしょうか。[ruby-dev:28347] で Rb..]


2006年12月23日(Sat)

[ruby][rails] はじめよう Ruby on Rails

なぜか気が向いたので「はじめよう Ruby on Rails」をやってみることにした。

そのままやってもあんまりおもしろくないのでgettext_scaffoldで。

データベースはサーバを入れるのが面倒だったのでSQLite3。

[ruby][rails] migration

create_tableの時はtable.columnなのに、後から追加するときはadd_columnなのは覚えないといけないことが多くなって嫌な感じ。

[ruby][rails] gettext_scaffold

時々"\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によるテストが失敗した。

[ruby][rails] ファイルアップロードとconfirm

gettext_scaffoldで生成されたconfirm画面があるとファイルアップロードが出来なくて困った。解決方法を思いつかなかったので、とりあえずあきらめた。

[ruby][rails] confirmとpost

150ページのconfirmのところでpostがなくてちょっと悩んだ。Rails' Wiki - 「はじめよう Ruby on Rails」サポートページには既に載っていた。

[ruby][rails] script/console

rubyを--program-suffix=-1.8.5でインストールしていたので、「ruby-1.8.5 ./script/console --irb=irb-1.8.5」としてirbを指定しないとダメだった。

[ruby][rails] FILE_PATH

SchedulesController::FILE_PATHというのが何度も出てきて長いので、まとめたいような気がしたけど、とりあえずそのままにした。

どうにかするならSchdeuleモデルに添付されたファイルのパスを返すメソッドを定義すれば良さそう。

以上、Step 9まで。


2006年12月28日(Thu)

[ruby] drbでの84Eの謎

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

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