ruby
(注: 以下の内容は、RSpec ユーザの間で広まっていることでもなく、もちろん RSpec 開発チームの公式な見解でもなく、あくまでワシの個人的な見解です。) RSpec のすごいところは、コードに対してではなく仕様に対してテストを書くことを明確にしたことだと…
Rubyist Magazine 0030 号 Sapporo での自分の発表がサマリになって載ってたんだけど、なんというか、抜けはないのに多すぎるところもなく、まさに「過不足なし」という言葉がぴったりな、完璧なまとめだった。発表者から見て文句つけるところがない。これ書…
以前、Matz日記が更新されないのはまつもとさんがTwitterを始めたからと聞いて「matz twitter」でぐぐったときから「そうじゃないかなー」と思ってたけど、あるいはひがさんからありがたいお言葉を頂戴したときも「そうじゃないかなー」と思ったけど、やっぱ…
Ruby にも変数宣言があったほうがいいよね、という話。 Thor タスクを書いていて desc "load KVS_FILE", "load data from given KVS file" def load(kvs_file) case kvs_file when "shift" ksv_file = Dir.glob("kvs/requests/*").sort.first when "pop" ksv…
ワシは、cgi.rb なんかが標準添付になっている Ruby に PHP を dis る資格はないと思ってる (cgi.rbの元ネタである CGI.pm を擁する Perl も同じじゃないかな)。cgi.rb は、標準添付モジュールのくせにコードが汚いし遅いし、cgi[] の戻り値が String だった…
背景 いつも思うが、Rails の select() 系ヘルパーメソッドってわかりにくい。 初心者泣かせ。 具体例(1) 参考文献: マニュアルselect() の例: ### eRuby <%= select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, { :include_blank =>…
## usage: ruby -s invoke.rb [-n=1000] [command] require 'benchmark' n = ($n || 1000).to_i puts "*** n=#{n}" commands = ARGV.collect {|lib| "ruby -e nil -r #{lib}" } commands.unshift("ruby -e nil") Benchmark.bm(30) do |job| commands.each do…
Ruby の require が Windows では遅いという話。 このような現象が起こるのは一体なぜなのでしょうか?理由は、read_class_onefile_binmodeを見るとすぐに分かります。バイナリモードでは、Windowsの1.8.7と1.9.1は違いがないのです。バイナリモードとテキス…
(追記: Rubiniusとは、Ruby自身で書かれたRubyの処理系。Javaで書かれているJRubyとともに、期待を集めているRuby処理系のひとつ。) そもそもこのブログは Rubinius で遊んだ結果を紹介するために始めたようなものだったのに、せっかく Rubinius 1.0.0 がリ…
ひがさんから、ありがたいお言葉を頂戴しましたので紹介させていただきます。
なんか、はてなブックマークとか見てると残念なコメントが多いよなー。『こんな比較は意味ない』とか『できることがまったく異なるテンプレートを並べて比較されても』とかいうやつ、何なの?「言語の速度 != アプリの速度」という主張を示したベンチマーク…
まずは次の表をご覧あれ。これはプログラミング言語のベンチマークとして有名な Computer Language Benchmarks Game のベンチマーク結果。上にいくほど高速で、下に行くほど遅い言語になる。これを見れば、最速な言語は C/C++ であり、Java や Haskell や OC…
まえのエントリのコメント欄より: flat8 2010/04/27 10:19 確実にIntelはそこまで考えていると思います。で、ある程度SSDが普及したらSSD自体の製造からは手を引くでしょうけど。 やはりそうでしょうか。さすがIntel。 ところでIntelが『SSD自体の製造から…
いやー、おまいらがスクリプト言語大好きというのはよくわかった。よくわかったけど、信者はもっと落ち着いたほうがいい。 mikihoshi 「スクリプト言語の使いやすさ」のかなりの部分はスクリプト言語(動的言語)であることが担保してるんだから、「スクリプト…
大変たいへん興味深い記事。全プログラマーにとって。 HDDの代わりにSSDを利用したら、リレーショナルデータベースの性能はどれだけ向上するのでしょうか? オラクルと富士通が共同検証を行い、その結果をホワイトペーパーとして先週発表しました ...(snip).…
国内レンタルサーバで使われている PHP/Ruby/Python/Perl/MySQL/PostgreSQL のバージョンを調べてみた。レンタルサーバの選択基準は特にない。「レンタルサーバ」でぐぐって適当にピックアップした。最初にまとめとくと: PHP は 5.2.x が主力 Ruby は 1.8.2…
こんなん今の今まで知らんかったわ。 irb> true || true && false #=> true irb> true or true and false #=> false irb> true || false && false #=> true irb> true or false and false #=> falseまじですかー! 何やねん、これ。マニュアル見ると、and と …
RubyKaigi2010 のセッション応募が開始されてた。締め切りは4/28。 基本的に、1 発表 60 分くらいを目安に考えています http://rubykaigi.org/2010/ja/CallForPresentationProposals.html 60分かよ。応募したいけど、そんなに長く話せるネタはないなあ。 は…
「Ruby on Rails 3.0 Release Notes」を参考に、Rails 3 をインストールしてみる。なお現時点ではまだ正式リリース前 (beta2) であることに注意。
## ファイルの先頭1KBを読みこんで、"\r\n" があれば CR+NL と出力する $ ruby -e 'puts ARGF.read(1024)=~/\r\n/ ? "CR+NL" : "NL" ' file.txt CR+NLまあ最初の一行目で判定すればいいんじゃね?という意見もあるが、二行目以降だけがCR+NLというファイルを…
今日、この流れならいえる!
せっかくなので小ネタを。Python でのリスト内包表記は、for と if を同時に書ける。これはループを1回まわるだけで、選択 (select) と写像 (collect) を一度に行えることを意味する。 >>> L = ['foo', 'bar', 'baz'] >>> [ x.upper() for x in L if x.start…
PHPerがRubyを触り始めて最初に不機嫌になるのは、空文字列が偽ではないことだ。つまり、PHPなら「if ($var)」で済むのが、Rubyだと「if !var.empty?」と書かなければならない。これでPHPerは不機嫌になる (まあ気持ちは分かる)。 if ($var) ... # PHP if !v…
自作の拡張ライブラリを作ったのはいいけど、Windows 用バイナリを作ろうとして行き詰まる。Windows ではどうやってコンパイルすればいいのかわかんないし、そもそも Windows 用 Ruby からして種類がいくつかあって、どれをターゲットにしたらいいのかもわか…
SapporoRubyKaigi2009の感想としては世界最速のエントリに違いない!発表タイトル: ビュー層におけるキャッシュの問題点とその解決策http://www.slideshare.net/kwatch/ss-2623061全体の感想: sumim氏の話が聞けてよかった。「GUIのMVCとWebアプリのMVCの違…
RubyKaigi 2009 事務局の皆様、お疲れさまでした。それから低視聴率番組を見に来ていただいたみなさん、ありがとうございました。オリックスvs楽天の試合くらいガラガラになるかと思いましたが、そこまでひどくはなく、ホークスのホーム試合くらいは入ってい…
映画は予告編の出来しだいで興行成績が大きく変わるらしい(たとえそれが詐欺みたいな映像だとしても)。ドリフターズとひょうきん族を相手に戦わなきゃいけない教育テレビとしては、面白そうな予告編を流してみるぐらいの努力はすべきだろう(たとえそれが詐欺…
これもどこまでマジなのかよくわからんのだけど…… つ injectとだけ言わせていただく。 jijixi's diary - Re: Python での組み込み型をより自然な名前にする - kwatchの日記 , Re: 大量のハッシュデータを簡潔に作成する - kwatchの日記 inject()があればHash…
スクリプト言語では Hash や dict のリテラルが用意されているので、書きやすい。しかしテストデータなどで大量の記述が必要になると、さすがにちょっと面倒である。 data = [ {:name=>"Haruhi", :gender=>1, :role=>"Leader of SOS Brigade"}, {:name=>"Mik…
今回、RubyKaigiのセッションでは60分という長い時間を頂いた (謝謝!) ので、話を盛るぜ〜、超盛るぜ〜、とばかりに詰め込んだら、スライドが80枚を超えてしまった。高橋メソッドならどうということはない枚数だが、ふつうのプレゼン形式ならどう考えても60…