ruby

デザイナに eRuby を書かせるべきか否か

masayang氏に、わざわざ回答をいただいた。ありがとうございます。 eRubyでXHTMLの大枠を記述するのはRubyエンジニア そのeRubyの編集をデザイナにも解放せよ デザイナがeRuby構造を壊したとしても、テストで検知できるし、最悪リポジトリから戻せるではない…

デザイナに eRuby を書かせるのは、あくまで次善策

Ruby on Rails の開発元である 37signals では、デザイナが eRuby ファイルを編集するだけでなく、ヘルパーとかも書くらしい。 UI Design on Rails 37signalsにおけるデザイナとプログラマ連携の事例紹介 デザイナにも積極的にviewファイル(.erb/.rhtml)を触…

Matz loves Python

RubyFlowより。 Matz loves Pythonなんかスーパーマンの変身シーンみたい。 と思ったら、 ab5tract is waiting for someone to photoshop an S on Matz' chest. Matz loves Python? - RubyFlow というコメントが。つまり誰かPhotoshopでMatzの胸にスーパーマ…

Rails の黒魔術: 自己再定義メソッド

Ruby on Rails の意味不明な黒魔術を問題視するシリーズ。問題: 次のメソッド定義において、(*1) や (*2) や (*3) は何をしているんでしょう? module ActiveRecord module ConnectionAdapters class PostgreSQLColumn < Column private ... # Escapes binary…

Enumerable#index_by() が標準で欲しい

ActiveSupport で用意されている Enumerable#index_by() がRuby本体にとりこまれないかなー。 これ、ほんとよく使うわ。 module Enumerable def index_by() # 名前は to_hash のほうが好み hash = {} each do |item| key = yield(item) hash[key] = item end…

Ruby on Rails でデータベースの Sharding を実現する DataFabric プラグイン

RubyFlowより。 One of the lingering issues we’ve had to deal with over the last year in the Manage service is ActiveRecord’s reluctance to talk to more than one database. It’s really quite stubborn in that regard and while there are a few …

Ruby on Rails のドキュメントが検索できる rails-doc.org

RubyFlowより。 rails-doc.org は、Ruby on Rails のドキュメントを検索できるようにしたアプリケーション。 Ajaxによる検索が速いのと、PHPドキュメントのようにユーザがコメントをつけられるのが特徴。RailsAPI.orgもいいけど、最近はこっち使うようになっ…

exact GC と conservative GC

祝 Matz 日記復活。 exactなGCの方が性能的にやや有利だが、 一方、拡張ライブラリの書きやすさは 保守的GCの方がずっと楽である。たとえば、Rubiniusはexact GCを採用しているため yieldを呼ぶメソッドをCで記述できない Cメソッド実行中のオブジェクトは自…

Rubyバブルがよくわかる写真

RubyFlowより。Ruby and Rails books, two years later (photo)2年前: 今: いやあ、ほんとバブル。『Rubyは10年前のJava』っていうのは、こういうことを指すんだろうな。 いつ弾けることやら。

マスゴミ屋さんとJava屋さんの区別がつきません(もちろん部分集合)

すでに取り消し線が引かれているけど。 結論 アンチ Java の人が多い理由が分かった気がする。 何でかといえば そーゆーのって、個人に依存するのかなーとか思っていたのですが、界隈での共通の意見なんだね。何というか、一種の宗教性や強迫観念を感じた。…

Rubyの脆弱性について

なんか日本ではほとんど話題になってないみたいなんだけど、Rubyに脆弱性が発見されてる。 任意のコードが実行される脆弱性について しかし修正されたバージョンのRubyをインストールすると、一部のRailsアプリが動かなくなるらしい。 RubyFlowとか見てると…

RubyKaigi感想

Evanの話は、ちょっとマニアックすぎたような気がした。あまり日本の聴衆には響かなかったかも。ちょっともったいない。 SequelとDataMapperの話は、ちゃんと新しいバージョンの説明で行なわれており、役に立った。Sequelの新しいバージョンはかなりよさげだ…

RubyKaigiの発表が先行して聞ける「Rubyist九州会議2008」

DataMapper と Sequel で検索したら、こんなの見つけた。 6月14日、福岡で最先端の技術情報が得られるイベント「Rubyist九州会議 2008」を開催します。主催は福岡を拠点とするRubyのユーザーグループ「Rubyist九州」です。 Rubyist九州会議 2008は、6月に東…

ERB で Binding を使うとローカル変数が勝手に変更されるという問題

通常、ERB#result() には Binding を渡すけど、個人的にこれが大っ嫌い。なんでかというと、eRubyスクリプトを実行することで、メインプログラム内のローカル変数が勝手に変更されてしまうから。 つまりだな、 s = <<END <% for item in list %> <p><%= item %></p> <% end %> END list = ['AAA</end>…

ERB で Binding のかわりに Hash を使う

class ERB def result_hash(hash) b = binding hash.each {|k,v| eval "#{k} = %Q[#{v}]", b} result b end end puts ERB.new('<%= example %>').result_hash(:example => 'foo') ERB で引数の hash を展開して欲しい - #生存戦略 、それは - subtech これだ…

ActiveRecordの不満点

最近はDataMapperやSequelといった新興O/R Mapperに興味があるんだけど、それもこれも、自分の中でActiveRecordに対する不満点がだんだんと出てきたことが原因。個人的には、Railsのすごさの半分以上はActiveRecordのおかげと思っていて、そのくらいActiveRe…

Sequel 2.0 リリース

RubyFlowより。ActiveRecordのもうひとつの対抗馬、Sequel の 2.0 がリリースされた。ついこの前はDataMapperの0.9.0.1がリリースされたばかりだし。なんかRuby用O/R Mapperが熱い!Sequelの最大の特徴は、SQLを書くかわりにRubyの式を書くということ。Rubyの…

MVCビデオがバカすぎる

RailsConf2008で、キーノートスピーチの前にさんざん流されたらしいビデオが公開された。 MVC Videos M と V と C とを擬人化して、唄を歌いながら登場するおバカビデオ。英語だけど見てるだけで面白い。だれか翻訳してください。MVC Songも出したらしい。

eRubyを35行で実装してみる

以前のエントリで「eRubyは50行もあれば実装可能」と書いたけど、eRuby の実装は正規表現を使えば極めて簡単。Erubisには約50行で実装されたtiny.rbが含まれているけど、これをさらに小さくしてみたら、35行で実装できた。code golfみたいなことは一切せず、…

DataMapper 0.9.0.1 is Released

RubyFlowより。ActiveRecordの対抗馬として期待されるDataMapperの新しいバージョンがリリースされた。 DataMapper 0.9.0.1 is Released DataMapperは、ActiveRecordよりは、どちらかというとJavaのO/R Mapperに近いようにみえる。またこれによると、ActiveR…

Re: 典型的なRails屋はERBを使うことに何の疑問を持っていない

ひがやすを blog - 典型的なRails屋はERBを使うことに何の疑問を持っていない なんか消されてるけど、何で消したんだろう。もったいない。『典型的なRails屋はERBを使うことに何の疑問も持っていない』というのはほんとその通り。eRuby は大変シンプル(50行…

Gemstone 社が Smalltalk-VM をベースにした Ruby VM を開発中

RubyFlowより。OODB のベンダーとして知られる Gemstone 社が、Smalltalk VM をベースにした新しい VM を開発中だそうです。 InfoQ: MagLev: Gemstone builds Ruby runtime based on Smalltalk VM Rubinius の直接のライバルですな。この記事では、MagLev で…

最近の Ruby VM に関するニュースのまとめ

InfoQ: Ruby Implementations Roundup: Ruby Spec, New Design Meetings, Rubinius uses C++ MRI, YARV, JRuby, Rubinius などに関する、最近の話題のまとめ。 RubySpec を Ruby-1.8.7 で実行した結果というのがあった。かなりエラーが多いね。 よく見ると E…

Rails 2.0.1 と 2.0.2 で ERB まわりがけっこう変更されてた

Rails 2.0.1 と 2.0.2 で、ERB まわりがけっこう変更されてた。具体的には actionpack/lib/action_view/base.rb に書かれてある create_template_src() が完全に書き直されてた。 こりゃ Erubis が動かんはずやわ。

Google App Engine で次にサポートされる言語を予想する

きょうのお昼にでた話題なんだけど、Google App Engine (以下 GAE) ではまず Python がサポートされた。これはなぜかって話になって、たぶん Guido (Python の作者) が Google にいるからじゃね? と言っておいた。GAE で使っている Python はたぶん素の CPyt…

1 ライナーで書いた Web サーバ

RubyFlow より。なんと 1 ライナーで書いた Web サーバ。 # From: http://www.ntecs.de/blog/articles/2008/02/09/the-worlds-smallest-webserver # Author: Michael Neumann # ... point your browser to http://localhost:3125/etc/motd ruby -rsocket -e …

ブロックパラメータ代入は多重代入のルールが適用されます

ブロックパラメータ代入は多重代入のルールが適用されます。 a, (b, c) = [1, [2,3]] [a, b, c] # => [1, 2, 3] [ruby-list:44838]Re:計算するハッシュ なんと! 長年 Ruby を使ってきたけど全然知らんかった。 もしかして、今まで hash.inject('') {|s,t| …

PHP の関数から Ruby のメソッドを検索する

via RubyFlowPHP ユーザのための Rails サイト、その名も Rails for PHP Developrs が、PHP の関数名から Ruby のメソッドを調べることができるシステムを構築中。 たとえば PHP の fopen() に相当するメソッドが知りたければ、http://railsforphp.com/fopen…

RubyKaigi2008 サブセッションプログラム公開

RubyKaigi2008 サブセッションプログラム17 本応募してたと思ったけど、実際は 14 本でした。応募が少なかったのかな。 どんなのがあるのかなーと見てたら、 16:00 authorNari 『RubyGCをどけんかせんといかん』 に吹いた。GCに興味ないのに聞きたくなった。…

ERB では '' が '' になる

tdiary のテンプレートを erubis -z でチェックしたらエラーになった。しかし erb -x | ruby -wc ではエラーにならない。なんでや? と思ったら、'<%% %%>' が '<% %>' になるという ERB の独自機能を tdiary が思いっきり使っていたからだった。なんじゃこの…