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


2008年06月05日(Thu)

[rails] modrailsをRailsEnv developmentで使うとSomeModel#idでSystemStackErrorになることがある

報告したhttp://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/336-missing-somemodel-id-after-reset_subclasses

原因はSomeModel#idはActiveRecord::Base#idの中で定義されたメソッドで置き換えられるはずなのに、ActiveRecord::Base.reset_subclassesでundef_methodされているためにActiveRecord::Base#idの中で定義されているSomeModel#idが消えるだけではなく、ActiveRecord::Base#idも見えなくなるからだった。


2008年06月06日(Fri)

[ruby][rails] ruby 1.8.7 と rails 2.0.2

対応していない組み合わせで使うのが間違いという気もしますが、MLではdelegate.rbで引っかかったという話が出ていますが、それ以外の場所でこんな感じでひっかかっていました。

NoMethodError: undefined method `[]' for #<Enumerable::Enumerator:0xaff62908>
    /home/kazu/opt/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/string/access.rb:43:in `first'
    /home/kazu/opt/ruby18/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/assertions/response_assertions.rb:92:in `assert_redirected_to'
    /home/kazu/opt/ruby18/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/assertions/response_assertions.rb:62:in `each'
    /home/kazu/opt/ruby18/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/assertions/response_assertions.rb:62:in `assert_redirected_to'
    /home/kazu/opt/ruby18/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/assertions.rb:54:in `clean_backtrace'
    /home/kazu/opt/ruby18/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/assertions/response_assertions.rb:54:in `assert_redirected_to'

とりあえずこんなのをconfig/environment.rbのRAILS_GEM_VERSIONの設定とbootのrequireの間に入れて回避してしまいましたが。

if RAILS_GEM_VERSION == '2.0.2' && RUBY_VERSION >= '1.8.7'
  class String
    remove_method :chars
  end
end

2008年06月07日(Sat)

qocowo

qocowoと書かれた旗を見かけた。 docomoの旗の裏側だったというだけ。


2008年06月08日(Sun)

[ruby] RUBY_PATCHLEVEL

Ruby diffには「::RUBY_PATCHLEVEL」が1.8.5だと「x」になっているけど、1.8.5系でも1.8.5-p1以降なら存在する。


2008年06月10日(Tue)

[linux] apparmorの読み方

この前ちょっと探してみたがわからなかった。

[zsh] rubyneko - zshで使うgitのファイル名補完

etchだと同じくgit rmは出来なくてgit-rmだと出来たけど、hardyだとどっちでも補完できた。

rubyneko - runghcは拡張子を見ている

etchにはman runghcがなかったけど、hardyにはあった。 「SYNOPSIS」に「runghc [runghc|flags] [GHC|flags] module [program|flags]...」とあって「runghc --help」の「runghc: syntax: runghc [-f GHC-PATH | --] [GHC-ARGS] [--] FILE ARG...」と書いてることが違う。


2008年06月11日(Wed)

[linux] GNU screenの中の画面の内容をエディタで開く

「screen -X eval hardcopy "screen $EDITOR hardcopy.$WINDOW"」とか「screen -X eval "hardcopy -h $HARDCOPYFILE" "screen $EDITOR $HARDCOPYFILE"」とか。 「$HARDCOPYFILE」は適当なファイル名。 ファイル名を固定する方法なら~/.screenrcでbind出来そう。


2008年06月12日(Thu)

XREAの無料サービスで表示される広告内にウィルス

Windowsの人は気をつけてください。


2008年06月13日(Fri)

[linux] デスクトップの場所

最近のディストリビューションでは「xdg-user-dirs-gtk-update」などでデスクトップの場所が「~/Desktop」以外になっていることがある。 そういうときは「xdg-user-dir DESKTOP」で調べられる。


2008年06月17日(Tue)

[linux] Encodingのコンテントネゴシエーション

chkbuildのlast.html,last.html.gz,last.txtのような状態で、lastにアクセスしたときに「Content-Location: last.html.gz」になるように応答してほしいのに、「Content-Location: last.html」にしかならなくて悩んでいたが、「AddEncoding x-gzip .gz」だけではだめで「RemoveType .gz」で「AddType application/x-gzip .gz」を無効にしないといけなかったらしい。

% cat .htaccess
AddDefaultCharset utf-8
#Options +MultiViews
RemoveType .gz
AddEncoding x-gzip .gz
%

2008年06月18日(Wed)


2008年06月20日(Fri)

[rubykaigi2008] 0th day

主に会場で出題されたgolfの問題をやっていた。cygwinでのビルドやテストも繰り返していた気がする。 ruby 1.8.5のテストではforkがきかなくてちゃんと出来ないのが解決できなかった。(rebaseallもだめだった。)

% ruby-1.8.5 -r Win32API -ve 'fork{}'
ruby 1.8.5 (2008-06-20 patchlevel 230) [i386-cygwin]
      3 [main] ruby-1.8.5 5680 C:\cygwin\home\kazu\opt\ruby-1.8.5\bin\ruby-1.8.5.exe: *** fatal error - unable to remap C:\cygwin\home\kazu\opt\ruby-1.8.5\lib\ruby\1.8\i386-cygwin\Win32API.so to same address as parent(0x390000) != 0x3A0000
      4 [main] ruby-1.8.5 3252 fork: child 5680 - died waiting for dll loading,
errno 11
-e:1:in `fork': Resource temporarily unavailable - fork(2) (Errno::EAGAIN)
        from -e:1

無線LANが11b/gと11a/nの2種類あって、使っている人が少なそうな11a/nの方につないでいたらRubyKaigi2008の間1回しか切れることがなくて快適だった。

[rubykaigi2008] golf結果

プロの基準をオーナーにきいてみたかったけど、結局きけず。

とりあえずゴルフの賞品か参加賞かよくわからないものとして、選択肢にあった(買おうと思っていた)本のうち一番値段が高そうだった詳説 正規表現 第3版をもらった。


2008年06月21日(Sat)

[rubykaigi2008] 1日目

事前受付を済ませていたのですんなり入れた。 せっかくなのでメインセッションの方にずっといた。発表者とか用の一番前の席で電源も楽に確保出来た。

JRubyはちょっとだけ試したことがあったけど、Rubiniusもおもしろそうだったので、試してみようと思った。

m17nの話で、質疑応答の時にRegexp#source.encodingの話を出したけど、その後確認したらascii_onlyの時は特別扱いされてencodingが違ってても特に問題が起きなさそうだったので、以前に調べたときは今のascii_onlyが特別扱いされるようになる前だったというだけかもしれない。 それはそれとしてRegexp#source.encodingがどういうときにどうなるのかまとまっているとうれしいのではないかとは思う。

しばらく多目的ホールの方に行ってみたりなど付箋紙の掲示板を見たりうろうろとしていた。 発表者やコミッターは発表者用の赤いTシャツをもらえるときいたので、たださんのところに行ってもらってきた。 (スタッフは黒Tシャツ。)

Yuguiさんの話あたりで大ホールに戻った。

[rubykaigi2008] LT

発表の順番待ちで最初のLTはほとんど頭に入らず。

2番目に発表だった。

スライドを少なめにしていたので、最初の方(IRCのログによると1分ぐらいだったらしい)で写真を撮るなどしていても時間内に終わることが出来た。(発表者側から写真を撮った理由は昔のLLのときのたださんとか午前中にも写真を撮ってた人がいたとかがうらやましかったから。) 最初に結論とか、やろうと思っていたことがちゃんと出来たけど、IRCによるとustream側ではデモのときの端末のフォントが小さくて見えなかったらしい。そこは油断してしまっていたので、次は気をつけようと思った。

ちなみに切り替えに手間取るのは内蔵の方の解像度が1400x1050で、プロジェクタ側をセカンダリモニタにしないと不幸が起きる可能性が高いから。

後のLTはじっくり見られて良かった。アフォーダンスは驚き最小の代わりに流行るかと思ったけど、あんまり流行っていないかも。

[rubykaigi2008] 懇親会

ほぼ同時期にコミッターになれた遠藤さんと話が出来たり、mputさんとpgp/gpgキーサイン用の身分証明書確認をしてみたり。

体調が悪かったので食事は軽めに済ませた。


2008年06月22日(Sun)

[rubykaigi2008] 2日目

午前中は大ホールにいて、午後は多目的ホールにいた。

GCの視覚化は非常に興味深かった。誰かWindows以外にも移植しないかな。

「matzを説得する方法」で出てきたmsecの話は元は「20080604180336.687」のような文字列(ファイル名にしたい)を生成するのに

currentTime = Time.now
msec = sprintf("%03d", currentTime.usec / 1000)
puts currentTime.strftime("%Y%m%d%H%M%S.#{msec}")

というようにするしかないのかという話だった。

リファレンスマニュアルのライセンスについてのメールはまだ?

MacRubyは文法の拡張(parserの変更)はせずにHashの順番が保存されるとかそのあたりまで使ってメソッド名を変換してるのかなあ、とか、Hashでやっているのなら同じキーになるものが複数あったらどうなるんだろうとかが気になった。

[rubykaigi2008] 2日目午後

Rails関連の話も気になったけど、飲食が可能な多目的ホールに昼食以降ずっといた。

発表を聴いただけではStarRubyとRuby/SDLとの関係とかはいまいちよくわからなかった。

net-ircは使おうとしたけど、常駐させる設定がまだ出来ていない。

RejectKaigiとRejectRejectKaigi

最初の方はRejectRejectKaigiの方の声の大きさにRejectKaigiの方が負けていた。

[rubykaigi2008] 舞波の名刺?

他のblogとかを見ていると2枚もらったという話があるけど、0日目はずっと席にいてほとんど移動していなかったので会えなくて、後でRails勉強会@東京のブースで3枚もらったんだけど、この差はいったい?

続きはあっち(どこ)

LTで撮った写真とかをあげるのに容量の都合があるので、はてなダイアリーの方で。


2008年06月28日(Sat)

[ruby] 第27回 Ruby/Rails勉強会@関西

かずひこさんの話をききにいくために参加した。

Tシャツとかコミッター名札とかRubyKaigi2008関連のものは忘れまくってしまっていた。

Ruby初級者向けレッスンは演習問題をruby 1.9でやってみていた。

[ruby] アンケート

cookieを許可していないと「The change you wanted was rejected (422)」となって答えられなかった。

そういうチェックはsubmitする時じゃなくてフォームを表示する前にしてほしいと思った。

The change you wanted was rejected.

Maybe you tried to change something you didn't have access to.
本日のツッコミ(全1件) [ツッコミを入れる]

okkez [すみません。 Rails2.0.2 のデフォルトのままなのですが。。。 調べときます。]


2008年06月29日(Sun)

[debian] 第14回 関西 Debian 勉強会

関西 Debian 勉強会は最初の頃に数回参加しただけだった気がするので、久しぶりの参加。

pbuilderはpdebuildだけ使っていて、~/.pbuilderrcで以下のようにBUILDRESULTを設定していたから、debパッケージなどがpdebuildを実行したディレクトリの下のresultディレクトリに入っていたのだと気づいた。

% cat ~/.pbuilderrc
#MIRRORSITE=http://cdn.debian.or.jp/debian
MIRRORSITE=http://apt-proxy.example.jp:9999/debian
#DEBSECSERVER=http://security.debian.org/
DEBSECSERVER=http://apt-proxy.example.jp:9999/security
#DISTRIBUTION=sarge
DISTRIBUTION=etch
OTHERMIRROR="deb $DEBSECSERVER $DISTRIBUTION/updates main"
BUILDSOURCEROOTCMD="fakeroot"
PBUILDERROOTCMD="sudo"

BUILDRESULT=$(pwd)/result
# make sure the directory exists:
DUMMY=$(mkdir -p $BUILDRESULT)
echo The result will be in ${BUILDRESULT}...

if [[ -n $SUDO_USER ]]; then
  BUILDRESULTUID=$SUDO_UID
  BUILDRESULTGID=$SUDO_GID
fi
%

cowとかumlとの組み合わせも気になったので、試せそうなら試してみたいと思った。

SSLの話はCRLの扱いが非常に難しいと感じた。 無線LANの認証でSSLを使う場合などのように認証前にCRLを入手できない場合もあるし。 それからGTE CyberTrust Rootのルート証明書の期限が切れているという話も気になった。 クライアント側でルート証明書の期限切れはどう扱っているんだろう? 更新するなら、WindowsならWindows Updateとか、Debianならrがあがるときとかにの更新に入ってそうな気がする。

HotPlugの話は非常に興味深かった。udevとかdbusのあたりはなかなかとっかかりがなくて調べ始めるのも大変なので、

sudo udevmonitor --kernel
sudo udevmonitor --kernel --env
dbus-monitor --sytem
hal-device

などの調べ方がわかったのも良かった。 netlinkというソケットタイプも初めて知った。 udevからHALにnetstatで「@/org/freedesktop/hal/udev_event」と見えるソケット経由で通知をしているのはdbusとは関係なさそうな気がした。


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