[Ruby] Loofah
0.2.2が公開されました(ruby-talk:345260)。
HTMLをサニタイズするライブラリ。
Rails アプリケーションの中でロードされた場合には、ActiveRecord::Base に自動的には html_fragment と html_document が追加されるようになった他改訂が1つとバグ修正がいくつかされているようです。
0.2.2が公開されました(ruby-talk:345260)。
HTMLをサニタイズするライブラリ。
Rails アプリケーションの中でロードされた場合には、ActiveRecord::Base に自動的には html_fragment と html_document が追加されるようになった他改訂が1つとバグ修正がいくつかされているようです。
7.1.0が公開されました(ruby-talk:345259)。
eRuby ベースのドキュメントプロセッサ。
XHTMLフォーマットで出力できるそうです。LaTeX(PDF)やUnix のman ページなどは開発(予定)中だそうです。
いくつかのバグフィックスと改訂が1つ。
0.2.0、0.2.1が続けて公開されました(ruby-talk:345227,ruby-talk:345228)。
Ruby のメソッドがどの Module(またはClass)で定義されているのかを表示するライブラリ。
0.2.0で、Looksee.help メソッド が追加され、0.2.1では、History.txt が更新された模様です。
0.3.0が続けて公開されました(ruby-talk:345178)。
libev ライブラリを使った、ネットワークのモニター、タイマー、ファイルシステムの監視をするイベントハンドラの機能を提供する拡張ライブラリ。
0.3.0からファイルやディレクトリの監視ができるようになったそうです。
0.0.1、0.0.2が続けて公開されました(ruby-talk:345175,ruby-talk:345211)。
HTTPリクエストをロギングする Rack のミドルウェア。
ログの書式、ログの対象にする項目を指定することができるそうです。
Apache Common Log フォーマット, Apache Combined Log フォーマット, Rack::CommonLogger フォーマットはあらかじめ用意されているそうです。
矢上教授の午後(森谷明子)
70歳に近いと思われる風貌のミステリ好きの万年講師「矢上教授」が
大学で起こった殺人事件の謎を解くために奔走する『消えた玩具屋』のエドモンド・クリスピンを思わせるようなコージー・ミステリ。
エドモンド・クリスピンでピンとこない人には、若竹七海のコージー・ミステリを思わせるような作品と言えばわかるだろうか。
舞台が偶然にも閉鎖空間となってしまった大学。
(この閉鎖空間の登場のさせ方もユニーク。)
探偵役として張り切って奔走するミステリ好きの矢上教授。
殺人事件が起こっているのに殺伐とせずユーモラスに交わされる登場人物たちの蘊蓄話。
解決間近の後半に配されるお約束とも言えるドタバタ追跡劇。
これぞ、コージー・ミステリの王道と言える作品になっている。
「むろん、この状況を歓迎しているわけではないのだが。だがね、一度
こんな場面に行きあってみたいと思っておったのは確かだろうな」
「今時、交通手段も通信手段も絶たれた集団なぞ、小説の中にしか成立
しないと思っていたのだ」
修道女フィデルマの叡知(ピーター・トレメイン)
法廷弁護士にして裁判官の資格を持つ修道女フィデルマが事件の謎を解く本格ミステリ短編集。
探偵役が修道女という設定のためか、時代設定が七世紀のためなのか、時代が現代の作品と比べてとっつきにくい印象がある。
そのとっつきにくいところをほんのちょっと我慢してつきあってみれば、
「聖餐式の毒杯」は丁寧な本格ミステリになっているし、二重三重に仕掛けられた「ホロフェルネスの幕舎」の謎解きとか、
シャーロック・ホームズのような古典ミステリを連想してしまう「旅籠の幽霊」など趣向を凝らした作品がラインナップされていることがわかる。
派手さはないけど、意外と侮れない作品集。
ちょっと前に Vine Linux 5.0 がリリースされたのだけど、
バージョンアップしようか、いっそのこと別のディストリビューションにしようか迷っていたりする。
Vine Linux 4.2 は 今年一杯サポートされるみたいなので、まあ、年内に決めて移行を済ませばいいということだ。
Windows7も10月に発売されることだし、その前にPCを新しくする方が先かな。
ちなみに今使っている PC は、ThinkPad X31。
そういえば、Vista はスルーしてしまったので、一度も使うことなく終わるかも知れない。
なんか大きな不満もなく割と快適に使えている(気がする)ので、バージョンアップの必要性をあまり感じていないところが問題だな。
なんか悔しいので 0.0.24をアンインストールして ruby-talk でアナウンスされていた 0.0.21 を試してみることにした。
$ sudo gem uninstall rvm
$ sudo gem install rvm 0.0.21
Successfully installed rvm-0.0.24
ERROR: could not find gem 0.0.21 locally or in a repository
1 gem installed
Installing ri documentation for rvm-0.0.24...
Updating ri class cache with 4574 classes...
Installing RDoc documentation for rvm-0.0.24...
ううっ。駄目か...。
0.0.21が公開されました(ruby-talk:344964)。
複数のRubyがインストールされている環境で、簡単にRubyを切り替えながら実行することができるツール。
ちなみに実行したいバージョンのRubyがインストールされていない場合にはインストールしてくれるようです。
実行するRuby関連のファイルは全て ~/.rvm 配下にインストールされるみたいです。
試してみた。
$ sudo gem install rvm
Successfully installed rvm-0.0.24
タイム・ラグがあったせいか 0.0.24 になってます。
$ rvm-install
$ export PATH=~/.rvm/bin:$PATH
$ rvm -v
$ rvm list
$ rvm use ruby 1.8.7 -l 160
$ rvm info
$
うーん。ruby 1.9.2dev (2009-08-22 trunk 24625) [i686-linux] で試してみたけど何のメッセージも表示されない...。
試しに、ruby 1.9.1p281 (2009-08-09 revision 24476) [i686-linux] でもやってみたけど、やっぱり何のメッセージも表示されませんでした。
七つ星の首斬人 (藤岡真)
藤岡真の作品としては、割と真っ当な犯人当て小説。
「直球」と言いながら、プロローグでいきなり、手拭いで火鉢を割るという怪しさ満載の殺人剣の技が登場する。 かと思えば、第一章では、日常の謎派を思わせるようなミステリが登場して話が完結してしまう。 これは、連作短編ミステリ形式なのかと思いきや、第二章に入ると剣の達人の仕業としか思えないような連続殺人事件が発生して、 がっつりと長編ミステリの形式で話が進んでいく。 中盤以降、一見、何の関係もないかと思われた第一章のエピソードがしっかりと絡んできて、重要な伏線として活きてくる。 どことなく話がうさん臭いことこの上ないのでリアリティが無いのも仕方がないかとさらっと読み流してしまったところが、 実は犯人特定の重要な鍵になっていて油断も隙もない。
という感じのミステリである。 謎解きの一箇所だけひっかかりを感じて無理があるような気がするのだが、その点を除けば、割としっかりとした本格ミステリ。...のような気がする作品。
「千丈の堤が螻蟻の穴を以て潰えるように、一見とるにたらないような事象が
大事件を一気に解決してしまう醍醐味を味わいたいがために、わたしはこんな
ことをしているのだ」
0.11.0 が公開されました(ruby-talk:344640)。
SQLite データベースエンジンそのものを Ruby の拡張ライブラリとして組み込んでしまったライブラリ。
amalgalite をインストールすれば、SQLite を別途インストールする必要はありません。
SQLiteデータベースエンジンを3.6.17にバージョンアップした他2つのバグフィックス。
名前の由来は何だろう?
英語の amalgam だろうか?
ライブラリの機能が連想しづらい名前だと思ってしまう。
でも Nokogiri ぐらい有名になっちゃえば別に問題ないのか。
てゆーか、Lite とつく分だけ Nokogiri よりもわかりやすいと言えるのか。
最初のバージョン が公開されました(ruby-talk:344596)。
Linux の X で動作するキーボードやマウスの動作をシミュレートするコマンドラインツールxdotoolを利用した Ruby の自動化ライブラリ。
Rubyを使ってマウスやキーボードの操作を自動化することができる(多分)。
1.5.0 が公開されました(ruby-talk:344437)。
IBM Data Servers 用の Rails アダプタ / Ruby ドライバ。
Ruby 1.9 上の Ruby ドライバが速度改善されたとのことです。
0.1.0が公開されました(ruby-talk:344331)。
Ruby のオブジェクトのメソッドがどのクラス(またはモジュール)で定義されているか表示してくれるツール。
Module#undef_method で指定されたメソッドを青色の文字で表示するようしたそうです。
手元の Ruby 1.9.2dev(ruby 1.9.2dev (2009-08-19 trunk 24581) [i686-linux]) で試したところアボートしてしまいました。
1.0が公開されました(ruby-talk:344297)。
gem をインストールするとき、またはインストールされたgem が Ruby 1.9 でも動作するかどうかを
isitruby19.comの情報を元に調べてくれるツール。
これが最初のリリース。
2.0.0が公開されました(ruby-talk:344179)。
Capistrano の 10 倍シンプルなデプロイツール。
アプリケーションサーバのデフォルトが passenger に変わった他11個の改訂とバグフィックスが2つ。
0.2.0が公開されました(ruby-talk:344156)。
ImageMagick の Ruby バインディング。 作者のRubyの経験、ImageMagickの経験、RMagick の経験を生かして、RMagicを再生したものが MagickWand のようです。 作者曰く "RMagick rebooted." だとか。
RMagick の RMagic::Draw に相当する MagickWand::Drawing クラスが追加されました。
最初のバージョンが公開されました(ruby-talk:344118)。
irb や デバッガの実行中から ri の実行結果の情報を表示してくれる便利なライブラリ。
都合により、ruby 1.9.1 で試してみました。
インストールには、ruby2ruby 1.1.9 が必要です。 ruby2ruby は、1.2.4 がリリースされていますが、 desc_method は、ruby2ruby 1.1.9 がインストールされていないとインストールできません。
$ sudo gem install ruby2ruby -v 1.1.9
$ sudo gem install rogerdpack-desc_method --source http://gems.github.com
irb から試してみました。
$ irb
irb(main):001:0> require 'desc_method'
irb(main):002:0> String.desc_method :size
#<UnboundMethod: String#size> arity: 0
ri for String#size
------------------------------------------------------------ String#size
str.length => integer
str.size => integer
From Ruby 1.9.1
------------------------------------------------------------------------
Returns the character length of _str_.
(end ri)
appears to be a c method
irb(main):003:0> require 'date'
irb(main):004:0> Date.desc_method :parse
#<Method: Date.parse> arity: -1
ri for Date.parse
------------------------------------------------------------ Date::parse
Date::parse(str='-4712-01-01', comp=true, sg=ITALY)
From Ruby 1.9.1
------------------------------------------------------------------------
Create a new Date object by parsing from a String, without
specifying the format.
...(中略)
(end ri)
...(中略)
at /usr/local/ruby191/lib/ruby/1.9.1/date.rb:1064
def self.parse(str='-4712-01-01', comp=true, sg=ITALY)
elem = _parse(str, comp)
new_by_frags(elem, sg)
end
=> #<Method: Date.parse>
require 'desc_method' で desc_method というのが追加されて、irb の中から
String.desc_method :size
と実行すれば、ri String#size を実行したのと同じ結果が得られたり、
Ruby で書かれたライブラリの場合は、指定したメソッドが定義されているファイルとメソッドの中身を表示してくれます。
これはなかなか便利そう。
2.0.4が公開されました(ruby-talk:344077)。
Pure Ruby で書かれた Ruby のパーザ。Ruby の Array と String や Numeric などの基本的なクラスを組み合わせた S式を生成するそうです。
1つの改訂とバグフィックスが4つ。
Windows でも動作する Ruby で書かれた which コマンドが公開されました(ruby-talk:344045)。
バッチファイル(bat) や実行ファイル(exe) を探してリストアップしてくれるようです。
Ruby のライブラリがどこにあるのか探してくれる ruby-whichもあるそうです。
2.0.13 が公開されました(ruby-talk:344042)。
Pure Ruby で実装された SSH (プロトコロル2) ライブラリ。
arcfour128, arcfour256, arcfour512 をサポートした他2つの改訂。
0.90.0 が公開されました(ruby-talk:344004)。
Rackに対応したHTTPサーバ。
0.9.xシリーズに比べてCPU使用率の点で改善されていて安定版に近いレベルになっているみたいです。
今まで、1.9.2dev で動かないとこのサイトで書いてきましたが、1.9.1と1.9.2devの $LOAD_PATH ($:) の違いが原因だったみたい。
1.9.2dev だと
$ ruby -v -e 'p $:.include?(".")'
ruby 1.9.2dev (2009-08-14 trunk 24537) [i686-linux]
false
で、1.9.1だと
$ ruby -v -e 'p $:.include?(".")'
ruby 1.9.1p281 (2009-08-09 revision 24476) [i686-linux]
true
となります。
ということで、unicorn_rails を起動するときに、1.9.2dev でも
$ ruby -I. `which unicorn_rails`
としてみたら、普通に起動できました。
The Cold Moon (Jeffery Deaver)
どんでん返しの1つのアイディアは、ディーヴァーの別の作品を思い浮かべてしまったけど、その鮮かさは見事。
どんでん返しの数で圧倒されるようなところがあったディーヴァーだけど、
今回は、数はさほど多くないけど鮮かさでは一、二を争う。
また、伏線の張り方と回収の仕方も丁寧な感じ。
どんでん返しの数で圧倒されてしまう力技よりも、数が少なくてもピタリと決まる丁寧な仕事ぶりに好感が持てる。
オススメ。
邦題は『ウォッチメイカー』。
1.2.0が公開されました(ruby-talk:343903)。
Ruby 標準の profile の高速化バージョン。
改訂が1つ。
試してみたけど、1.9.2dev では動作しなかった。 node.h が見つからないというコンパイルエラーがでる。
3.0が公開されました(ruby-talk:343942)。
小規模から中規模の静的な Web サイト生成ツール。
nanoc 2.0 とは互換性がないため注意しましょう。
nanoc 2.0 と nanoc 3.0 は共存が可能だそうです。
1.4.0が公開されました(ruby-talk:343901)。
コードの構造が同じかどうかを判定するツール。
一部のメソッド名の変更など4つの改訂。
試してみた。
$ sudo gem install flay
$ cat fuga.rb
def hoge(i)
(1..i).to_a.each do |k|
puts k
end
end
def fuga(i)
(1..i).to_a.each do |k|
puts k
end
end
hoge(5)
fuga(5)
$ flay fuga.rb
flay.rb:171:in `block in process_sexp': undefined method `<' for nil:NilClass
ということで ruby 1.9.2dev (2009-08-14 trunk 24537) [i686-linux] ではエラーになってしまった。
ちなみに、flay 1.3.0 だとこうなります。
$ flay fuga.rb
Total score (lower is better) = 32
1) Similar code found in :defn (mass = 32)
fuga.rb:1
fuga.rb:7
つまり、hoge と fuga は同じ構造のメソッドだということですね。
2.2.0が公開されました(ruby-talk:343900)。
スクリプトの複雑さを測定するツール。
bin/flog が flog_files を使っているために動作しなかったバグが修正された他1つの改訂と4つのバグフィックス。
試してみた。
$ cat sample1.rb
puts 1
puts 2
puts 3
puts 4
puts 5
$ cat sample2.rb
(1..5).each do |i|
puts i
end
$ flog sample1.rb
7.1: flog total
7.1: flog/method average
7.1: main#none
$ flog sample2.rb
2.6: flog total
2.6: flog/method average
2.6: main#none
ということで、sample1.rb の方が複雑ということになります。
ちなみに
$ cat sample3.rb
puts (1..5).to_a
$ flog sample3.rb
2.2: flog total
2.2: flog/method average
2.2: main#none
という結果になりました。
1.0.0が公開されました(ruby-talk:343804)。
緯度と経度から距離を計算したり、ある地点から指定された距離だけ離れた位置の緯度と経度を計算するライブラリ。
JavaScriptから移植されたライブラリのようです。
1.2が公開されました(ruby-talk:343794)。
Ruby 用 DNS Service Discovery API。
DNSSD::Serviceがインスタンスを生成するようになった他7つの改訂と4つのバグフィックス。
Ruby 1.8.6 p383 が公開されました(ruby-talk:343845)。
いくつか修正されていますが、GC周りの処理に修正が入っています。
Ruby 1.8.6 p369 を使っていて、Segmentation Faults に遭遇したことがある人は試してみてくださいとのことです。
0.2.0が公開された(ruby-talk:343623)。
HTMLのサニタイジングをするライブラリ。
インストールには、Nokogiri 1.3.3 (以降のバージョン)が必要です。
Ruby 1.8、1.9どちらにも対応しているようです。
ActiveRecord 拡張が追加された他5つの改訂。
1.1.0が公開された(ruby-talk:343618)。
Tokyo Tyrant のインスタンスを管理するためのコマンドラインツール。
status コマンドが process-status コマンドに名前が代わりました。
replication-status コマンドが追加されました。
1.1.0が公開された(ruby-talk:343602)。
DNS Service Discovery を利用するための機能を提供するライブラリ。
(英語の意味がよくわからないのだけど)必要なファイルを全部パッケージングするように改訂した(?)他2つの改訂とバグフィックスが1つ。
0.4.2が公開された(ruby-talk:343579)。
Localmemcache.new メソッドの引数(のハッシュのキー)に :min_alloc_size が追加されました。
hashの値が大きくなるようなコードの場合に遅くなることがあるそうで、
そういう場合に、:min_alloc_size を指定することにより速度が改善されるそうです。
2.4.0が公開された(ruby-talk:343539)。
RDocから Microsoft Compiled HTML Help ファイルを生成するツール。
RDoc 2.4.x に対応した他、いくつかの改訂。
また、あらかじめ、Microsoft's HTML Help Workshopをインストールしておく必要があります。なので、当然と言えば当然ですが、Windows環境でないと動作しません。
0.6.3が公開された(ruby-talk:343516)。
Ruby/Tk を使って入力されてくるデータをアニメーションで表示するツール。
デモのアニメーションGifが公開されている。
このバージョンから gem 化されたようです。
神国崩壊 (獅子宮敏彦)
華王朝の宮城で皇帝の側近の一人が殺される。事件の鍵を握っているのは、ある「禁書」らしい。
側近が殺されたミステリの謎を解く鍵を握る禁書が4つ作中作として登場する。
この禁書は華王朝ができる前の歴史を記したもので、ミステリにもなっている。
側近が殺されたミステリの謎は、それらの短編ミステリの中にヒントが隠されているという凝った趣向のミステリ。
グロテスクな描写はないんだけど、凄惨なシーンがあって、私はちょっと苦手なのだが、
短編としての「神国崩壊」が第10回創元推理短編賞受賞作であることをはじめ、
三国志の世界を思わせるような舞台設定を見事に生かした本格ミステリの逸品であることは間違いない。
図書館危機 (有川浩)
前作ほどではないけれど、短編連作形式っぽい構成の図書館シリーズ第3段。
戦闘シーンもあり、前作よりもハードな内容になっている。
「床屋」に対する玄田の奇策とか稲嶺指令の勇退の裏工作とか謀略小説風味なところもあって、
締まるところは締まっている感じがして、
第2段よりもこちらの方が、私の好み。
2.0.0が公開されました。(ruby-talk:343470)。
Near Field Communication library の Ruby ラッパ。
libnfc 1.2.x 依存になった他1つの変更。
3.8.3が公開されました。(ruby-talk:343455)。
Ruby スクリプトに他の言語を埋め込むためのライブラリ。
Cレベルの static 変数を定義するためのメソッド Inline::C#add_static が追加されました。
Inline::C#add_static を試してみた。
$ sudo gem install RubyInline
$ cat hello.rb
require 'inline'
class Hello
inline do |builder|
builder.add_static("HStr", 'rb_str_new2("hello world")');
# ->
# static VALUE HStr;
# HStr = rb_str_new2("hello world");
builder.c 'VALUE hello() {return HStr;}'
end
end
puts Hello.new.hello
$ ruby hello.rb
hello world
ということで、1.9.2dev でも使えました。
4.1.4が公開されました。(ruby-talk:343453)。
ユニットテストの作業を支援するツール、ライブラリ群。
2つの機能拡張と2つのバグフィックス。
辞書で探してみ見つからなかった prepend って「前につける」という意味の造語らしい。
pre + append ということみたい。
2.3.3が公開されました。(ruby-talk:343448)。
Rakefile のための、rake/rubygems のヘルパーライブラリ。
バージョンチェックのタスクが package タスクから、prerelease タスクに移動された他5つの改訂。
0.8.4が公開されました。(ruby-talk:343377)。
Unix 用の Rack 対応の HTTP サーバー(だと思います、多分)。
Rack::Utils::HTTP_STATUS_CODESでサポートされていない status にも対応したそうです。
いずれ、Rack側に取り込まれる予定だとか。
0.9.x(テスト版)には、この改訂は取り込まれないとのことです。
今まで一度も動いた試しがないのですが、Ruby 1.9.2dev + unicorn 0.9.x ばかり試していたので、今回は、次の環境で試してみます。
ruby 1.9.1p243 (2009-07-16 revision 24174) [i686-linux]
Rails 2.3.2
では、インストールから。バージョン指定しないと、0.9.2がインストールされるので、
$ sudo gem install -v 0.8.4 unicorn
$ rails myapp
$ cd myapp
$ script/server
# ここで、ブラウザから http://localhost:3000/ にアクセス。
# デフォルトのページが表示されることを確認。
# Ctrl + C で script/server を停止。
$ unicorn_rails
I, [2009-08-08T09:59:56.558856 #30305] INFO -- : listening on addr=0.0.0.0:8080 fd=5
I, [2009-08-08T09:59:56.613583 #30305] INFO -- : worker=0 spawning...
I, [2009-08-08T09:59:56.679696 #30305] INFO -- : master process ready
I, [2009-08-08T09:59:56.727900 #30310] INFO -- : worker=0 spawned pid=30310
worker=0 ready
# ここで、ブラウザからアクセス。
# ポートが 3000 から 8080 に代わっていることに注意。
# http://localhost:8080/ にアクセス。
初めて動きました。確かに WEBrick よりブラウザの表示が速いように感じます。
試しに ps で確認するとこんな感じでした。
$ ps -ef | grep unicorn
suke 30387 4273 4 10:06 pts/4 00:00:00 unicorn_rails master
suke 30388 30387 0 10:06 pts/4 00:00:00 unicorn_rails master
suke 30392 30387 54 10:06 pts/4 00:00:03 unicorn_rails worker[0]
suke 30393 30392 0 10:06 pts/4 00:00:00 unicorn_rails worker[0]
suke 30394 30388 0 10:06 pts/4 00:00:00 unicorn_rails master
suke 30396 30393 0 10:06 pts/4 00:00:00 unicorn_rails worker[0]
suke 30401 4266 0 10:06 pts/3 00:00:00 grep unicorn
0.9.2も試してみたところ普通に動作しました。
今まで動かないと思っていたのは、何か勘違いしていたせいでしょうか?
ということで、Ruby 1.9.1でも動作しました。
unicorn_rails コマンドを使えば、何の問題もなく rails アプリケーションを起動できるようです。
Unix限定ではありますが、結構手軽に使えそうだし、
WEBrickよりは速いと感じるので、興味のある方は、まずは、rails アプリの開発環境で試してみてはいかがでしょう。
1.1.0が公開されました。(ruby-talk:343382)。
XHTML を 検証するための test/unit, rspec 用のヘルパーライブラリ。
XHTMLが Valid でないことをチェックしてくれるだけでなく、どう修正すべきかも教えてくれるそうです。
RDFa を含む XHTML も検証できるようになったそうです。
0.7.7が公開されました。(ruby-talk:343375)。
バージョンの違いを除けば、0.7.6と同じとのことです。(0.7.6 の gem を github で公開するのに失敗したためらしいです。)
Ruby 1.9 の M17N に関する解説つきのテストスクリプトというかテストスクリプトつきの解説が公開されました。(ruby-talk:343320)。
解説は、string19.rb にコメントで書かれてあります。
string19.rb は、Test::Unit を使ったRuby1.9のM17Nの挙動をテストするテストスクリプトになっていて、そのまま実行できるようになっています。
string19.rb は実行するだけでは、あまり意味はありません。
ちゃんと string19.rb の中身を読むことに意味があります
(と書いている私はまだ読んでませんが...)。
エラーになる理由がわからなくて30分ぐらい悩んだ今日のスクリプト。
記憶を頼りに書くとこんな感じ。
require 'win32ole'
ex = WIN32OLE.new('Excel.Application')
ex.visible = true
book = ex.workbooks.add
sheet = book.worksheets(1)
r = 1, c = 1
sheet.cells[r, c] = 1
irb で確認。
irb(main):001:0> r = 1, c = 1
irb(main):002:0> r
irb(main):003:0> c
irb(main):004:0> r = 1; c = 1
irb(main):005:0> r
irb(main):006:0> c
irb(main):007:0>
そうか、
r = 1, c = 1
じゃなくて
r = 1; c = 1
と書くべきだったのか。
Ruby 1.9 からは、
sheet.cells[r, c] = 1
って書けるように Win32OLE を修正したはずなのに、一瞬、Win32OLE のバグなのかと疑ってしまった。
1.3が公開された(ruby-talk:343228)。
IMAPサーバーのメッセージを処理するクライアントライブラリ。
Ruby trunk で定義されている Net::IMAP#idle相当のメソッドが追加されました。
なお、ソースを見る限りでは、既にNet::IMAP#idleが定義されている場合(Ruby trunkの場合)には、
定義されているNet::IMAP#idle(Ruby trunkのNet::IMAP#idle)を優先するようになっています。
3.3.0が公開された(ruby-talk:343086)。
Ruby 用軽量データベース・アクセス・ツールキット。
SQLServer のサポートが PostgreSQL, MySQL, SQLite などに近いレベルの充実度になった他、改訂多数。
聴いてみた。ri の高速版 FastRIのデモ。
英語はゆっくりはっきりと喋ってくれているのか聴き取り易いです。
長さも短いので、RubyKaigi英語対策初級入門サイトとしても今後期待できるかも。
非実体主義殺人事件 (ジュリアン・シモンズ)
非実体主義を称する奇妙な芸術家集団の展示会で死体が彫刻の中から発見された。
犯人は誰か?
彫刻の中に死体を隠すような手間のかかることをしたのはなぜか?
ジュリアン・シモンズの長編ミステリ第一作。
語り手が章毎に代わったり、過去の名探偵に言及したり、趣向を凝らしたユーモア本格ミステリ。
一種のアリバイ・ミステリに分類できる作品だとは思うのだけど、
私は、かなり苦手(というかじっくり考えながら読むのが苦手)なため、結局、良くわからなかった。
それでも、謎解きは二転三転するので途中だれることはなかったし、
名探偵ならぬ迷探偵が登場するし(私はパロディが好き)、
彫刻の中に死体が隠された理由は自然だったし、最後の最後の逆転劇は凝っていたし、その後のエピローグにはニヤリとさせられた。
そもそも探偵たる者は人に記録されるものであり、その功績はむかしから三人称
もしくは、(不幸なめぐり合わせか、書き手の無鉄砲な独創性のためか)愚者の一
人称で語られることになっている。
0.10.1が公開された(ruby-talk:343002)。
SQLite を埋め込んだ Ruby の拡張ライブラリ。別途SQLiteをインストールしなくてもSQLiteが利用できる。
x86-mingw32プラットフォームに対応した他3つの改訂。
1.0.4が公開された(ruby-talk:343021)。
スクリプトのパフォーマンスを測定するときに利用できる高速、高性能のタイマーライブラリ。
Time.new を使用するよりも高速。
Ruby mingw32版に対応した他、1つの改訂。
0.0.2が公開された(ruby-talk:342969)。
メソッドがどのクラス(モジュール)で定義されているのか表示するライブラリ。
メソッドをフィルタリングするためのgrep メソッドが追加された他2点のバグフィックス。
0.3.0が公開された(ruby-talk:342913)。
Ruby で書かれたSchemeインタプリタ。
R5RSに準拠(しようと)しているそうです。
Vectors がサポートされた他4つの改訂。
ちょっとだけ試してみた。定番の階乗の計算です。
$ sudo gem install heist
$ heist
Heist Scheme interpreter v. 0.3.0
Evaluation mode: EAGER
Continuations enabled? NO
Macros: HYGIENIC ; ←ここまではheistが勝手に表示して入力待ちになります。
(define (fact n)
(if (= n 1)
1
(* n (fact (- n 1)))))
; => #<procedure:fact>
(fact 5)
; => 120
(exit)
おお。1.9.2devでも普通に動いた。起動はちょっと重くて、メッセージが表示されて入力待ちの状態になるまでに時間が少しかかります。
これで、Rubyさえあれば、Scheme好きなあなたも安心。
Ruby スクリプトへの埋め込みも簡単そうだったのでちょっと試してみた。
$ cat embed.rb
require 'heist'
heist = Heist::Runtime.new
puts heist.info
fact=<<FACT
(define (fact n)
(if (= n 1)
1
(* n (fact (- n 1)))))
FACT
heist.eval(fact)
x = heist.eval("(fact 5)")
puts x
$ ruby embed.rb
Heist Scheme interpreter v. 0.3.0
Evaluation mode: EAGER
Continuations enabled? NO
Macros: HYGIENIC
120
おお。普通に、Rubyスクリプトから使えました。もうこれで、Scheme 好きなのに Ruby の仕事しかないあなたも安心。
0.7.1、0.7.2、0.7.3と立て続けに公開された(ruby-talk:342953)
文字列をエスケープするCで書かれた拡張ライブラリ。
Railsでは、このライブラリがバンドルされていれば、自動的に、String#to_xs の代わりにこのライブラリの String#fast_xs を使うそうです。
バグフィックスがいくつかと、Mongrel::HttpRequest への対応がされているようです。
最近のコメント