ナノチューブと言うのは丈夫な素材で、強いうえに溶剤にも溶けない。 が、意外なものに溶ける、という話。
あらゆる溶媒を受け付けないナノチューブを溶かしてしまう「魔法の液体」は、実はコンビニで150円も出せば容易に入手できます。その液体の名はなんとサントリーの緑茶「伊右衛門 濃いめ」です。
どうやら学生が溶けないことを実証するため、いろいろやっているうちに 意外にも溶けたということのようだ。 世の中、分からないことの方が多いということを実感させる。
Seasarのひがさんのエントリから派生した会長のお言葉。
まあ、多少は仕方ないんじゃないでしょうか。そもそも「たのしさ」なんて訳の分からない物差しを持ち出して喜んでいながら冷静な評価を期待するのは虫がよすぎるでしょうし。
幸せになるユーザが増えるのを歓迎し、不幸になるユーザが増えるのを防ぎつつ、ハードランディングに備えて。
ていうか、Ruby自体はバブルにはならなさそうな。良くも悪くも。
そうかなあ。Railsほど前面に立ってないけれども、 バブルは確実にあると思う。バブルの大きさは小さいのかもしれないけど。
でなきゃ、私のところにこんなに講演の依頼が来たり、 NaClに分不相応な仕事が舞い込んだりしないと思うし。
で、現状が中身のない(あるいは薄い)風船であることを自覚した上で 中身を詰める努力を継続していった方がよいと考えている。 それを思ってのRubyアソシエーションだったり、 NaClといろんな会社との提携だったりするわけだし。
たぶん、バブルが崩壊しても、私にはあまりダメージはなさそうなんだけど。 もともと「お金」とは距離を置いてるし。
でも、最近上向いてきた収入が下がることは避けられないかなぁ。
「<---」とか「++-」とか、元々Rubyには存在しない演算子を作り出すライブラリ。
「パーザーを書き換えるのか、しかし、Yaccのパーザーは簡単じゃないよな」と思ったのだが、 実際には演算子の組み合わせで実現するようだ。
つまり、
foo ++- bar
は、もともと
foo.+(bar.-@().+@())
と解釈されるので、この組み合わせで指定したメソッドが起動するように それぞれの演算子を再定義してやるということ。
なるほど。思いつきもしなかった。脱帽。
ブロックからSQLを生成するライブラリAmbitionについて。
User.detect { |u| u.name == 'Jericho' && u.age == 22 }
のようなコードからSQLを生成できる。
Mockオブジェクトを使って、式からSQLを生成するようなライブラリは Squirrelのような ものが以前からあったが、どうしても以下のような制限があった。
一方、AmbitionはRubyを使って条件指定すると、それがそのままSQLになる というもの。たとえば、
User.first "SELECT * FROM users LIMIT 1" User.select { |m| m.name != 'macgyver' } "SELECT * FROM users WHERE users.`name` <> 'macgyver'" User.select { |u| u.email =~ /chris/ }.first "SELECT * FROM users WHERE (users.`email` REGEXP 'chris') LIMIT 1" User.select { |u| u.karma > 20 }.sort_by(&:karma).first(5) "SELECT * FROM users WHERE (users.`karma` > 20) ORDER BY users.karma LIMIT 5" User.select { |u| u.email =~ 'ch%' }.size "SELECT count(*) AS count_all FROM users WHERE (users.`email` LIKE 'ch%')" User.sort_by { |u| [ u.email, -u.created_at ] } "SELECT * FROM users ORDER BY users.email, users.created_at DESC" User.detect { |u| u.email =~ 'chris%' && u.profile.blog == 'Err' } "SELECT users.`id` AS t0_r0 ... FROM users LEFT OUTER JOIN profiles ON profiles.user_id = users.id WHERE ((users.`email` LIKE 'chris%' AND profiles.blog = 'Err')) LIMIT 1"
これはすごいぞ。で、これをどうやって実現しているかというと ParseTreeを使って 構文木を解析して、そこからSQLクエリを生成しているのだった。
頭いい。
でも、YARVで構文木って手に入るんだっけか。
EMMAって初めて聞いたけど「Europe」、「Middle East」、「Africa」の略らしい。 なんか広すぎて(世界の半分はカバーしてる)共通項がありそうな気がしないんだけど。
ま、いずれにせよ、Ruby on RailsとC#(ってフレームワークと言語を並べるのは不適切なような)が 人気が出ているという調査結果には、素直に喜んでおこう。