ひと晩おいても右膝の様子が芳しくないため、整形外科で見てもらう。
レントゲンの結果を見たところ、明らかに左膝と右膝の骨の位置が違う。どうもこれが原因らしい。両膝を並べてみると、明らかに右膝が腫れており、熱ももっているのがわかる。
とりあえずは湿布と薬で様子を見ることに。
メモリ内容が完全にクリアされて返ってきたので、まずは最低限の設定をしておく。
まずは、標準ROMをベースにするか、非標準のROMに入れ替えるかを決める。
非標準のROMにするのもいいが、最近、そこまで手をつけるガッツがないので、今のところ、標準ROMにアプリをインストールするに留めておく。
まずは、端末エミュレータがないと、何もはじまらない。そこで、qpe-embeddedkonsole-ja をもってくる。いろいろなバージョンが公開されているが、今回はUeno's wikiさんにて公開されているものを利用。
次にzsh。
最初、Private Packages for Sharp Zaurus SL-C seriesさんにて公開されているzsh-4.3.4-2をインストールしたのだが、なぜか補完がきかない。もちろん、.zshrcでcompinitは行っている。いろいろやってみても、どうもうまいこといかない。
zsh-4.3.4-2は諦めて、prudentialscatterbrainさんで公開されているzsh_4.3.2-1をインストールしたところ、無事補完が効いたので、これを利用。
.zshenvや.zshrcは、他の環境で使用しているもののサブセット版を作成。
Ctrlキーを用意するのと、"{"、"}"を入力できるようにするため、keyhelperを導入。
会社のサーバで ruby-1.8.2 + hiki-0.8.2 の組み合わせが動いているのだが、サーバのリプレース予定があり、リプレースついでに、ruby-1.8.6 + hiki-0.8.6 の組み合わせに置き換えることを検討。
HikiFarmが作る.cgiや.confを一斉に置換し、動かしたところ、問題なさげに動いた。ひとまず安心し、無意識のうちに「編集」をクリックしたところ、
wrong number of arguments (1 for 0) (ArgumentError) /var/www/apps/hiki/hiki/storage.rb:46:in `initialize' /var/www/apps/hiki/hiki/storage.rb:46:in `new' /var/www/apps/hiki/hiki/storage.rb:46:in `md5hex' /var/www/apps/hiki/hiki/command.rb:306:in `cmd_edit' /var/www/apps/hiki/hiki/command.rb:76:in `dispatch' /usr/lib/ruby/1.8/timeout.rb:56:in `timeout' /var/www/apps/hiki/hiki/command.rb:71:in `dispatch' /var/www/apps/hiki/hiki.cgi:32 /var/www/apps/hiki/hiki/storage.rb:14:in `open_db' /var/www/apps/hiki/hiki.cgi:30 /var/www/html/hikifarm/test/index.cgi:5:in `load' /var/www/html/hikifarm/test/index.cgi:5
とエラー発生。すんなりいかないようだ。
ソースを見たところ
Digest::MD5::new( s || '' ).hexdigest
とある。どうやら、ruby-1.8.6 では、これが気に入らないらしい。 hiki の CVS HEAD を見たところ、同じ部分は
Digest::MD5::hexdigest( s || '' )
となっていたので、書き換えたところ、無事動いた。
会社のサーバで ruby-1.8.2 + kagemai-0.8.6 の組み合わせが動いているのだが、サーバのリプレース予定があり、リプレースついでに、ruby-1.8.6 + kagemai-0.8.6 の組み合わせに置き換えることを検討。
各.cgiや.confを書き換え、動かしたところ、
Following errors occurred. Please contact administrator. Insecure: can't intern tainted string (SecurityError)
とエラー発生。いったいどこで…
どこでエラーが発生しているかは、cgiを直接起動すればわかるだろうと、シェル上から
echo '' | ruby ./guest.cgi
としたところ、果たして、
/var/www/var/kagemai/lib/kagemai/message_bundle.rb:69:in `intern': Insecure: can't intern tainted string (SecurityError)
とエラーメッセージが。message_bundle.rbの69行目は
@messages[key.intern] = message
とある。どうやら、key.internが気に入らない模様。taint 文字列の intern が SecurityError 例外が発生するように変更されたことが原因らしい。
message_bundle.rb の65行目
key = key.to_s.strip
に相当する部分が、影舞の stable-0_8 ブランチでは
key = key.to_s.strip.untaint
となっているので、このように書き換え、再度実行。
しかし、またまた同じエラーが。まだ、untaintが足りないらしい…
今度は
/var/www/var/kagemai/lib/kagemai/reporttype.rb:174:in `intern': Insecure: can't intern tainted string (SecurityError)
とあった。
reporttype.rbの174行目は
attr_u[key.intern.to_s.untaint] = value.dup.untaint
となっている。
attr_u[key.untaint.intern.to_s.untaint] = value.dup.untaint
に書き換えたところ
Following errors occurred. Please contact administrator. can't modify frozen object (TypeError)
となるので、
attr_u[key.dup.untaint.intern.to_s.untaint] = value.dup.untaint
と変更したところ、ようやく動いた。
install_ja.rb を使ってインストールしようとすると、hiki-0.8.6と同様、Digest::MD5::new() で引っかかる。同様に Digest::MD5::hexdigest() に書き換える必要がある。
まだ右膝の調子がよくないため、大雨の中、外科医へ。 あまり待たされることもなくひととおり診てもらうが、雨はやまず。
図書館まで本を返しに行かねばならぬのだが、雨が降ってる最中に本を持ち出すことは、できれば避けたい。そこで、屋根つきの駐車場がある某家電量販店で時間をつぶしていたところ、果たして、雨はからっと止んでいた。
修理に出していた自動車が、ようやく帰ってきた。しばらくはシンナー臭が抜けなさそうだが、そのうち抜けるであろう。
通勤鞄のファスナーが壊れてしまったため、新しい鞄を調達。ついでに、自宅内ケーブル(およびハブ)削減のため、USB接続の無線LAN子機も調達。
木製のCDラックがそろそろ物理的に危険な状態なので、現状のものよりも強度のあるものを物色。よさげなものをひとつ見つけたが、本日の時点では手を出さず。
昼間にたまたまテレビで大食い選手権の予選を見て、決勝がラーメンだった。うまそうに食っているのを見て、気分はラーメンになり、夕食は無鉄砲でラーメンにした。
夜の部の第一陣を狙って、17:30頃に到着するよう移動したのだが、途中で渋滞にはまり、到着したのは17:40頃。結果、ふた組手前までが第一陣だったが、カウンター席が若干余ったらしく、誰も出て来る前に中に入ることができた(実質的に、ぎりぎり第一陣)。
第一陣の最後ということで、もちろん、モノが出て来るのは最後。それまでの間、厨房を眺めていたら、隣の家からふらっと現われたのは大将。実際に見かけたのは、1年半ぶりぐらいのような気が。何はともあれ、テレビでたまたまラーメンを食っているシーンを見かけたことで大将と遭遇できたというのは、日頃の行いがいいからなのだろう、きっと。
帰宅時、おかみさんから、何やら、なかなか楽しみな話を聞かせていただいた。期待してます。
*Messages* の更新情報取得には、antenna.lirs もしくは index.rdfをご利用ください。 豪傑アンテナ の LIRSからも取得可能です。