さとやn Blog

試合はRuby,勝負はC#!

2009年07月

静岡の海

ここ数年は毎年海の日の連休を利用して仲間数人で静岡の海に行くのが恒例になっているのですが、今年も行ってきました。
天気が心配でしたが、さすがに自称晴れ男(私)のおかげで、快晴とまでは行きませんでしたが、雨も降らずにそこそこに楽しめました。

海、旅館、新鮮な魚の料理、そしてウナギすべて満足した2日間でした。
あ、海はちょっと冷たかったかな、、、、。
今年初参加の女子さんは全然海に入りませんでしたが、来年こそは海中逆立ちして犬神家を決めたいところです。
絶対やらないだろうけど、、、。
できれば2,3泊したいところですが、、、。

ちなみに今は山崎豊子の例のやつ読んでますよ〜。
1Q84誰か買って貸してください、、、。


gem install mysql

どうもRails2.2からはMysqlのドライバが標準から外されたらしく、gem install mysql を実行してね、的なエラーメッセージが表示されてしまうので、やってみたら、うまく入らない。
gem install mysql --with-mysql-lib=/usr/lib/mysql

ってやっても駄目、、、。
うう、パスはあってるはずなんだけどなぁ。
どうもオプションの頭に -- を入れる必要があるとかで、

gem
install mysql -- --with-mysql-lib=/usr/lib/mysql

でうまくいきました。

何か変、、、と思うのは私だけでしょうか、、、。

明日から一泊で海旅行!

晴れますように、、、、。



Rails

ずーっとRailsで作成したサイトの運用は、mongrel_clusterで複数のRailsインスタンスを起動して、それをapacheのproxy+バランサでリクエストを分散、てなことをやってきましたが、先日 passenger なるものの存在を知りました。
よくよく調べてみると、知れば知るほど使わない理由が見つからないため、早速導入しました。
結局これを使うと、mongrelを使う必要がなく、apacheのみで運用できるようになります。
Railsインスタンスの複数起動も設定ファイルで良きに計らってくれます。
Apacheのバーチャルホストの設定だけでいくつでも運用可能。
パフォーマンスはmongrelよりはちょっといい。
EnterpriseRubyなるものを使えばメモリも30%削減できるとか、、、。使ってないけど、、、。
Capistranoとの連携も問題なし! ていうかmongrelでやるより簡単。
私の中では実運用でmongrelなんてもういりません! てな感じです。
とにかくapache + mongrel_clusterでやるより全然楽です。。
もっと早く知っておけば良かった、、、、。

適当な日本語で読めるサイトが見つからなかったので、
Redmineのサイトを紹介


DNS

サーバーの数が増えてきてさすがにhostsファイルをいちいちいじるのが面倒になったので、DSNサーバーたてました。
外部サーバーも立ててるのでそのうち導入しようとは思っていたのですが、これ、全然楽で良いですね。

unboundとは?



品川エプソン

最近全然遊んでなかったので(飲みは週一くらいのペースであるのですが)、今日は水族館は品川エプソンに行ってきました。
アシカショーとイルカショーを見たのですが、アシカの芸にはただただ感心するばかりで、イルカの芸にはただたあ驚くばかりでした、、、。って、ただのあほみたいですが、、、。
正直そんな期待はしてなかったのですが、行って良かったです、、。いやー面白かった。。。

うっすら笑っている顔に見えます。。顔じゃないけど、、、。
ダウンタウンの浜ちゃんがよく描く絵そっくり、、、。



イルカの運動能力は圧巻でした、、、、。
トレーナーがイルカに指示する動きがやけにかっこよかった、、、、



Prototype getElementsByClassName

最近JavaScriptの話ばっかり、、、。
HTML5にdocument.getElementsByClassNameという文字通りの意味のメソッドが追加されると言うことで、最近登場したChromeやFirefoxの最新版はすでに対応しているようです。IE8は、、、そんなブラウザあったっけ?
しかしPrototypeは以前からdocumentにgetElementsByClassNameを独自実装していたのですが、正式に対応しているブラウザの場合とそうでない場合で戻り値の方が違います。ソースをのぞいてみると、対応している場合はそのまんまそっちを呼んで、未対応の場合のみ独自実装をしていました。

HTML5未対応のブラウザの場合: Array
HTML5対応のブラウザの場合: NodeList

なので下記のようなコードを書いていたのですが、突然動かなくなってしまったので、非常に焦ってしまいました。

var items = document.getElementsByClassName("hoge");
if ( items.find (.....)).....

これが突然NodeListにはfindなんてメソッドないですよーと怒られてしまいました。
ちなみにfindはPrototypeの配列(というか列挙可能型)に対する拡張メソッドです。
というわけで$Aで配列に変換してしまえば解決、、、。

var items = $A(document.getElementsByClassName("hoge"));

$Aが何かはPrototypeのドキュメントを読んでください。



checkbox[checked=true]

JavaScriptのお話ですが、Gmailのように複数のレコードをチェックボックスで選択して削除等の一括処理をさせる場合に、サーバーにリクエストする前にJavaScriptで選択されている件数を確認して1件も選択されていなければ「選択してくださ〜い」的なメッセージを出すようなことが多々あると思います。
先日そのような機能があるページのリファクタリングをしていたのですが、選択件数を数えるJavaScriptがあまりにもひどいものだったので、class名を付加してやってjQueryでCSSセレクタを使って実装しました。
こんな感じ

if(jQuery(".class_for_checkbox[checked=true]").length == 0) alert("なんか選択してください");

別にPrototypeで

if($$(".class_for_checkbox[checked=true]").length == 0) alert("なんか選択してください");



でも良かったのですが、当時はjQueryを導入した直後と言うこともありわざわざ使ってました。

しかし上のスクリプトはIE6では動きますがFirefox,Safari(もちろんChromeも)では動きません。常に0件です。
※checked属性なんだから機能したっていいと思うのですが、、、。知っている人いたら教えてください。

この場合は:checked CSS疑似クラスを使ってやるとうまくいくようです。

jQuery(".class_for_checkbox:checked").length

ただ、この疑似クラス、、、デザインで使おうとすると全然駄目っぽいです。
ちゃんとは確認していませんが、、、、。

疑似クラスってa:hoverとかその程度しか知らなかった。。。。
enabled, disabledとかemptyなんてのもあるんですね、、、。勉強になりました。




弁護側の証人 (集英社文庫)

何やら知る人ぞ知る名作だそうで、、、、。
確かに舞台背景がそんな昔だったとは思わせない描画でした。
東野圭吾の90年代初期の作品読んでても、なんかスゲー古いなーとか思ってしまうことを考えたら、凄いことかもしれない。
ただ、内容が「え? どういうこと?」てな感じ。。。。 でも確かに作品としてしっかりしていることは感じました。
でも、ミミイローイってなんだよ、って感じではありますが、、、、。

タイトル弁護側の証人 (集英社文庫)
著者/監督/Artist小泉 喜美子
価格, 出版¥ 580 集英社
評価★★★

2009-07-05

【「BOOK」データベースより】
ヌードダンサーのミミイ・ローイこと漣子は八島財閥の御曹司・杉彦と恋に落ち、玉の輿に乗った。しかし幸福な新婚生活は長くは続かなかった。義父である当主・龍之助が何者かに殺害されたのだ。真犯人は誰なのか?弁護側が召喚した証人をめぐって、生死を賭けた法廷での闘いが始まる。「弁護側の証人」とは果たして何者なのか?日本ミステリー史に燦然と輝く、伝説の名作がいま甦る。




携帯復活

やっとピンクの携帯から解放されました。。。。


やっぱ折りたたみよりストレートかスライドの方が良いですね。。。


織田信長への返句

「鳴かぬなら 殺してしまえ ホトトギス」に対する織田信長の末裔でフィギュアスケート選手ののぶなりさんの返句、
「鳴かぬなら それでいいじゃん ホトトギス」。。
笑ってしまいました、、、、。
本当に本人が考えたのかどうかは定かではありませんが、、、。
今風でいいですね。

プロフィール

さとやn

C#が好きだけど仕事はRubyばかりな開発者。
最近はDockerとか関数型言語とかAngularJSにハマっている。
武蔵小杉とか田町とか柏とかに出没。

QRコード
QRコード
  • ライブドアブログ