なんとなく日記

Everyday studying...

GPG 鍵を 4096 bit に更新した

http://lists.debian.or.jp/debian-users/200909/msg00008.htmlに参加するために,参考サイトを参考に更新.fingerprint は下記の通りです. pub 4096R/94B70E36 2009-09-07 指紋 = C64E 9826 8A75 723E DE54 70A8 F623 220C 94B7 0E36 uid Shin-ichiro OGAWA (Rust Stnard) <rust@stnard.jp> sub 4096R/79874CAE 2009-09-07 ##参考 http://d.hatena.ne.jp/sasakyh/20090903/p1 http://ekaia.org/blog/2009/05/10/creating-new-gpgkey/ http://lists.debian.or.jp/debian-users/200909/msg00008.html

Ubuntu 8.04.2 の Ruby で capistrano が動かない場合の対処

p368 で Net::SSH が刺さるという問題 https://capistrano.lighthouseapp.com/projects/8716/tickets/79-capistrano-hangs-on-shell-command-for-many-computers-on-ruby-186-p368 があって,それは Ruby 側で解決 http://redmine.ruby-lang.org/issues/show/1848 されたのですが,どうも Net::SSH 側でもなにかしら変更があったようで 2.0.14 が リリース されました. とここまではいいのですが,Ubuntu 8.04.2 の Ruby は 1.8.6-p111 で,これだと刺さる現象が再現してしまいます.何が問題かはわかりませんが,2.0.13 だと刺さらないことから,下記の部分じゃないかと想像できます. module Net; module SSH # This class contains miscellaneous patches and workarounds # for different ruby implementations. class Compat # A workaround for an IO#select threading bug in MRI 1.8. # See: http://net-ssh.lighthouseapp.com/projects/36253/tickets/1-ioselect-threading-bug-in-ruby-18 # Also: http://redmine.ruby-lang.org/issues/show/1993 if RUBY_VERSION >= '1.9' || RUBY_PLATFORM == 'java' def self.io_select(*params) IO.

Lenny on amd64 に Firefox 3.5 を入れる方法

ここを参考に作業を進める ##準備 ###コンパイル環境 # apt-get install build-essential libidl-dev autoconf2.13 # apt-get build-dep iceweasel ###ソースのダウンロード # apt-get install mercurial % cd ~/tmp % hg clone http://hg.mozilla.org/releases/mozilla-1.9.1 mozilla-1.9.1 % cd mozilla-1.9.1 % hg checkout -r FIREFOX_3_5_2_RELEASE ##コンパイル % vim ~/.mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-firefox ac_add_options --prefix=/opt/firefox ac_add_options --enable-application=browser ac_add_options --with-system-zlib ac_add_options --with-system-jpeg ac_add_options --enable-optimize ac_add_options --enable-official-branding ac_add_options --enable-canvas ac_add_options --enable-strip ac_add_options --disable-tests ac_add_options --disable-installer ac_add_options --disable-accessibility ac_add_options --enable-xinerama ac_add_options --with-default-mozilla-five-home=/usr/lib/firefox-3.5 % make -f client.

Mitaka.rb#04 に行ってきた!

移籍先である おいしい Mitaka.rb に参加してきました. ##参加者顔ぶれ Mitaka.rb クラスタ pgcafe クラスタ 万葉クラスタ Tokyu.rb クラスタ (各部に重複あり) と言うか見たことあるメンツが過半数という,ある意味いつも通りの Rubyist の集いですね. ##料理 カジュアルフレンチなんですが,非常に美味しかった.特に Tokyu.rb 的には肉がよかった. ##LT 夫婦漫才 by 大場夫妻 みんなで会議 by Ruby on Excel の人 いつでもるりま by 関西人M 図書館活用と大場夫妻接待 by シャンピエール代表 CHANGE THE WORLD by 主催者 ##まとめ 美味しかったよ! でも席移動しづらかったのが難点か. 大場夫妻デート席があった. RubyKaigiStaff席もあった.

hatena-mode の調整

##調整中 ##hatena-mode で はてダ編集 これでログなどは直接メモれるな

Tokyu.rb#10に行ってきた((傍観モード))

##肉.rb なんだかんだと Ruby の話はあまりしてなかった気がする. 平和に肉を食えました.主催者の人ありがとう. ##二次会 一部では三次会 Railsの話で盛り上がりました. 確認画面勉強会の開催が決まりました. 場所は万葉さん提供のはず.参加したい人はいつか立つ ATND か d を飛ばすといいみたいですよ. ##三次会 翌日の SICP に備えて帰りました. ##まとめ 11⁄29 に LT 大会あるらしいので,是非とも行ってみるといいよ!

amd64 環境下で i386 環境を chroot で構築する

http://kmuto.jp/open.cgi?debian-amd64を参考に作業. # mkdir -p /var/chroot/ia32/ # aptitude install debootstrap # debootstrap --arch i386 lenny /var/chrot/ia32 # chroot /var/chroot/ia32 /bin/bash # vim /etc/passwd # vim /etc/group # passwd user # vim /etc/apt/source.list # aptitude update # aptitude install sudo zsh vim # aptitude safe-upgrade # exit # vim /etc/fstab /home /var/chroot/ia32/home none bind 0 0 /tmp /var/chroot/ia32/tmp none bind 0 0 proc /var/chroot/ia32/proc proc defaults 0 0 # mount /var/chroot/ia32/home # mount /var/chroot/ia32/tmp # mount /var/chroot/ia32/proc # vim /etc/ld.

バッドノウハウ:Railsで他のアプリケーションとセッションを共有するために

Rails ではセッションにモデルのインスタンスをぶち込んだりできるのですが,例えば複数のアプリケーションでログイン情報を共有するためにセッションを使ったりすると,モデルのクラス定義が存在しないとエラーになってしまいます. アプリA -> User, Blog, Entry アプリB -> User, Friend, Photo in アプリA: session[:new_entry] = Entry.new to アプリB: Session contains objects whose class definition isn't available. Remember to require the classes for all objects kept in the session. (Original exception: ERRORMESSAGE [Entry])\n 本来はこれは正しい動作なのですが,古いアプリなどで仕方なく連携する場合など困る場面もあります1.そこで仕方なく,例外を発生させずに空のクラスを定義することで回避します. module ActionController module Session class AbstractStore class SessionHash < Hash private def stale_session_check! yield rescue ArgumentError => argument_error if argument_error.message =~ %r{undefined class/module ([\w:]*\w)} begin # Note that the regexp does not allow $1 to end with a ':' $1.

GREE オープンソース勉強会 第18回 MySQLハッキングの手引きに行ってきた

すごい雨の中,GREE Labs さん主催による http://labs.gree.jp/Top/Study/20090807.html に参加してきました.以下,そのログなど. ###まとめと感想 すごい雨降ってました それにしては人多い気がする 日本MySQLユーザ会 松信さん ust ありません 来て良かった トラックバックまでが勉強会メソッド ちょっと寒かった ソースコード読むの楽しそう! いろいろ奥が深そう プラグインレベルなら何とか作れそうな感じがした EXPLAIN じゃない実行計画をしっかり知りたいなと思った.それを理解しないと MySQL を使いこなせない印象. ##MySQLハッキングの手引き MySQl のアーキテクチャ ビルド方法 デバッグ方法 プラグイン開発の方法 本体拡張の方法 本家へのコントリビュートの方法 自己紹介 MySQLコンサルタント 執筆 現場で使える MySQL Linux-DB に関する本(2009⁄09 予定) DBマガジンで10月から連載? ###MySQL とは C/C++/アセンブラ 現在は MySQL 5.4 beta, MySQL 5.1⁄5.0 stable ###アーキテクチャ 固定部分 リスナー(認証) -> パーサ -> オプティマイザ -> テーブルアクセス/ジョイン 全文検索インデックス レプリケーション プラグイン部分