Ruby

Ruby で web にアクセスするなら simplehttp も良いと思います?

Rubyでwebにアクセスするならhttpclientが手軽 - http://rubikitch.com/に移転しましたというわけで、httpclient はとっても便利そうですね。これまで httpclient の存在を知らなかったので、とっても勉強になりました(るびきちさんはRubyのとっても便利な…

Rubyのセキュリティ問題窓口に報告するための雛形を作成してみました

セーフレベル4にまつわる問題は報告者はその程度の判断をせずにRubyセキュリティ問題窓口に報告してね!ということのようです。そこで、その指針に従い、先日からそうしたパッチを送らせて頂いております。セーフレベル4に関連する問題点は、その程度を問わ…

Mixin 好きの人には RubyWaves がオススメです

今日も良く眠れないのでなんとなく Ramaze さんの ML を見てたら次のような投稿をみつけました。Google Groups詳しくはメールの本文を見てもらうとして、概要はコントローラーを継承ベースで作るのはあんまり好きじゃないからMixinでどう?というものです(…

Ruby 1.8.6-p230 と Rails の相性が悪くて困っている人は Ruby Enterprise Edition 使ったらいいと思います

Ruby 1.8.6-p230 と Rails の相性が悪くて困っている方をちらほらと見かけるので、一応紹介しておきます。そういう場合は Ruby Enterprise Edtion (以下REEと省略)を使うと良いですよ。http://blog.phusion.nl/2008/06/23/ruby-186-p230187-broke-your-app-r…

眠れないのでRubyKaigiのビデオを観ました!

早送りとかしつつざっと観ました。とても面白かったです!発表者の皆様やビデオ撮ったり配信したりアップロードしたりして方々ありがとうございました。わざわざ行かなくてもしかも時間を選ばず観れるってすごいなぁと思いました。人気の「rubykaigi2008」動…

Rubyのセーフレベル4環境とその使い方

昨日、Ruby 1.8.5-p231, 1.8.6-p230, 1.8.7-p22, 1.9.0-2 がリリースされましたね - ¬¬日常日記 に書いた通り、Rubyのセーフレベル4環境に関する情報は案外少ないのですが、ぐだぐだ言っても仕方ないので自分でまとめておくことにします。記憶力がほとんどな…

Ruby 1.8.5-p231, 1.8.6-p230, 1.8.7-p22, 1.9.0-2 がリリースされましたね

Ruby 1.8.5-p231, 1.8.6-p230, 1.8.7-p22, 1.9.0-2 がリリースされたようです。リリース作業はとっても大変だと思うので感謝の気持ちでいっぱいです。ありがとうございます。でも随分いっぱい同時に出たなぁと思ったらなんか大変そうな脆弱性ですね。任意の…

Ruby 1.9 における日本語処理のポイントをまとめてみました

私はとっても文系なので日本語処理をしたくてしたくて仕方ないのは当然のことです。しかし日本語の処理ということを考えますと、文系の一般的な感覚としましてはこれまでやはり実績とノウハウの蓄積から、Perlが用いられることが多かったのではないでしょう…

オレオレかん字しゅう合(KY100)を作ってみました

じょう用かん字の見直しで、「おれ」のかん字は追加する?しない?みたいなはなしになっているようですが、私はみんなすきに自分でかん字しゅう合を作ればいいんじゃないのかな、と思います。でもきっとかん字しゅう合を作るのだって大変ですよ。だからまず…

Ruby Enterprise Edition の利点と難点を考えてみました

http://www.rubyenterpriseedition.com/先日パッチを送りました Ruby Enterprise Edition(長いからREEと略しちゃいます) ですが、前に書いた時には利点がよく分かっていなかったので、なんとなくここでまとめておくことにします。だって"Enterprise"とか言う…

Ruby Enterprise Edition の人にパッチを送りました

http://www.rubyenterpriseedition.com/Ruby Enterprise Edition は素晴しい試みだと思います。特にGCに関する改善は、Railsでメモリで死にそうになっているVPSな貧乏な人にとっては、嬉しいのではないでしょうか(ただし私は試してないので何がどう改善され…

Ramazeさんで"HTTP Cache Poisoning via Host Header Injection"をやってみました

15KB Of Fame: HTTP Cache Poisoning via Host Header Injection という記事を読みました。これは、HTTP GET を発行する時に HOST を好きに指定することで、サーバ側のレンダリング結果のキャッシュを汚染しちゃって色々できちゃわない?というものです。HTT…

「Rubyで特定URLの画像パス一覧を表示する」をちゃんとしてみました

「Rubyでどう書く?:Rubyで特定URLの画像パス一覧を表示する - builder by ZDNet Japan」という記事を読みました。「どう書く?」と問うているだけに、はてなブックマークの方にezookojoさんがそのものずばりなものを回答されておりますが、どう書くかはと…

abort_on_exception が true である時に注意すべきこと

Thread.abort_on_exception や Thread#abort_on_exception が true の時、スレッドが例外を起こして終了した場合にはインタプリタ全体が停止します。ただし Thread#join した時には、例外が再びカレントスレッドに投げられます。でも、ruby1.8 と 1.9 ではそ…

Safe level 4 環境と -d オプションの喧嘩

Ruby の Safe level 4 環境に関するバッドノウハウ!例えば以下のようなスクリプト(test.rb)を考えます。 thread = Thread.new do $SAFE = 4 @aaa end thread.join puts "finished" これを実行します。 % ruby test.rb finished無事に終了しました。ところが…

Safe level 4 からの脱出

Rubyでは、一度セーフレベル4に設定してしまうと、そこからセーフレベルを0などに変更することは出来ません。しかし場合によってはどうしてもセーフレベル4環境から一時的に脱出したい場合もあるかと思います。こんな時には Proc を使いましょう。Proc は定…

セーフレベル 4 環境と Erubis, Tenjin

Ruby のセーフレベル4($SAFE=4)って、やっぱり、大事だと思います。果たしてセーフレベル 4 環境をどの程度信用して良いのかは確証が持てないところですが、とにかく丸腰で挑むよりはよっぽどマシだろう、という弱腰の姿勢で取り組んで行く次第です。さて、…

Gemifyにgemspecを生成する機能を追加しました

Gemifyにgemspecを生成する機能を追加しました。http://github.com/keita/gemify/tree/gemspecGemifyはgemspecを直接書かなくても良い便利ツールだというのに、どうしてgemspecを生成しなきゃならないの!と疑問に思う方もいらっしゃるかと思いますが、これ…

新しいRubyGemレポジトリの GitHub RubyGems が登場しました

GitHub RubyGems: http://gems.github.com/新しい RubyGem レポジトリとして GitHub RubyGems が登場しました。これまで RubyGem を広く配布する簡単な方法は RubyForge を利用することでしたが、今後は GitHub も有力な手段になりそうです。GitHub RubyGems…

通貨コード(ISO 4217)なライブラリruby-iso4217をリリースしました

Xurrency の通貨コードって ISO 4217 のなのですが、さすがにコードばかりを覚えているわけにはいかないので(でもjpy,cny,usdくらいは覚えました!)通貨コードから通貨名への変換を可能にするために ruby-iso4217というライブラリを作成しました。 RubyForge…

通貨換算サーバ Currayon を作成しました

先日作った ruby-xurrency を利用して、通貨換算サーバ Currayon を作成しました。現在のところ換算リクエストは Jabber(XMPP), Twitter を通して受け付けます。 GitHub: http://github.com/keita/currayon/tree/master 興味のある方は直接レポジトリをご覧…

RTask version 007 をリリースしました

とっても簡単にRubyのgemをリリースできちゃうRTaskの第7版をリリースしました。もちろんRTaskもRTaskを使ってリリースしてますよ! RubyForge: http://rubyforge.org/projects/rtask/ GitHub: http://github.com/keita/rtask/tree/master gemのリリースをと…

ruby-xurrency をリリースしました

以前「API Xurrency : 各国通貨の為替レートを教えてくれます」に書いたように、xurrency.com さんは各国通貨の為替レートを取得できるとってもすごいサイトです。この API xurrency をRubyでとっても簡単に使えるツール及びライブラリの ruby-xurrency をリ…

Gemify の curses.rb ベースのUIを作成しました

「Gemify はとってもとっても素晴らしいと思います!」に書いたように、私はとてもGemifyが気に入っています。しかし従来のGemifyのUIは素朴過ぎるほど素朴でした。これではさすがに、と思ったので、curses.rb ベースで新しいUIを作成致しました。やったこと…

Gruffでベンチマークをグラフ化するBenchmarkXをリリースしました

BenchmarkX というRubyのライブラリを作成しました。これは通常のBenchmarkモジュール(benchmark.rb)を拡張して、その結果をGruff を用いた美しいグラフとして出力します。 GitHub: http://github.com/keita/benchmarkx/wikis/home RubyForge: http://rubyfo…

gemのリリースをとっても簡単にする RTask を作りました

Gemifyがあまりに素晴らしいので、こんなに簡単にgemを作れるのならば、gemのリリースだって簡単でなければならないだろう、と思いました。そこでRubyForgeへのリリースをとってもとっても簡単に行なうための RTask というライブラリ/ツールを作成しました。…

Gemify はとってもとっても素晴らしいと思います!

Gemify のあまりの素晴らしさに感動しました。これはRubyのgemパッケージをとってもとっても信じられないくらい簡単に作れちゃうツールです。NewGemもHoeももう忘れちゃいたい!と思える簡単さでgemを作成できます。http://dojo.rubyforge.org/gemify/gem作…

とっても優しい github の使い方

最近ホントにRubyの人々の間でgit流行ってますよね。私はdarcsっこなのですが、これだけ周囲で流行られるとさすがに危機感を感じます。しかも最近はgithubやらgitouriousやらのやたらと便利なサイトが出現し、ましてRubyForgeまでもがgitを採用とのことです…

Amrita2を理解するための一歩

やっぱり私のAmrita2に関する知識はあまりに貧弱であるため、勝手な思い込みや期待、また誤解が多過ぎます。そこできちんとAmrita2を理解しようと思い、コードを読むことにしました。しかしAmrita2はなかなか複雑ですからすぐには理解できません。とりあえず…

Amrita2の am:for の使い方が良く分かりません

今、Ramazeさんのテンプレートエンジンのきちんとした比較を行なうために、各テンプレート用ベンチマークスクリプトの点検をしています。それで困ってしまうのが私のAmrita2に対する理解の不十分さです。Amrita2は何せ情報が少ないので頑張ってはみるのです…