[Ruby] nanoc
| 固定リンク | コメント (0) | トラックバック (0)
Runtime Library 3.0 と Gestalt Items 1.1が 公開されましたruby-talk:349783。
Tcl/Tk のデフォルトのウィジェットを拡張するライブラリ群とRuby-Tk ベースのラッパ。
Runtime Library ってあまりにも一般的過ぎる名前だと思う。
| 固定リンク | コメント (0) | トラックバック (0)
最初のリリースである0.1.5 が公開されました(ruby-talk:349740)。
RailsやSinatraなどで作成されたWebアプリケーションのインストール、実行を行うソフト。 インストールされているWebアプリケーションのポート番号を気にしなくてもよくなるらしい。
ローカル環境にインストールされている各Webアプリケーションのフロントエンドというかポータルサイトみたいなものになるのかな。
| 固定リンク | コメント (0) | トラックバック (0)
0.5.0 が公開されました(ruby-talk:349729)。
Unicorn をベースにした 低速なネットワーク環境などで動作する Rack 対応のアプリケーションのための HTTP サーバ。
Unicorn をベースとしているため、FreeBSD 対応が(Unicornの成果を取り入れて)進んだ他 いくつかの改訂がされています。
| 固定リンク | コメント (0) | トラックバック (0)
0.94.0 が公開されました(ruby-talk:349727)。
Rack 対応のアプリケーションのための HTTP サーバ。
FreeBSD 対応が進んだ(FreeBSD 7.2 上ですべてのテストケースにパスするようになったそうです)他、 いくつかの改訂がされています。
| 固定リンク | コメント (0) | トラックバック (0)
0.3.6 が公開されました(ruby-talk:349629)。
Rake ベース のテキストテンプレート、ドキュメンテーションシステム。
Rake 0.8.0 以降で発生していたバグがフィックスされました。
Rote 0.3x ユーザーで Rake 0.8.0以降を使用しているユーザーは今すぐアップグレードしましょう。
| 固定リンク | コメント (0) | トラックバック (0)
1.5 が公開されました(ruby-list:46510)。
Windows で Access や Excel ファイルを処理するためのライブラリ。
Access 2007 ファイル *.accdb を扱えるようになった他いくつか改訂されているそうです。 Access、Excel がインストールされていない環境でも動作するそうです (ただし、Win32OLE 経由で ADO、ADOXを使っているので、Windows環境以外では動作しません)。
| 固定リンク | コメント (0) | トラックバック (0)
9.1.0 が公開されました(ruby-talk:349568)。
eRubyから各種形式のドキュメントを生成する拡張可能なドキュメントプロセッサ。
XHTML フォーマット出力に JavaScript ベースの検索機能が追加されました。
| 固定リンク | コメント (0) | トラックバック (0)
3.6.0 が公開されました(ruby-talk:349558)。
Ruby 用のデータベースアクセスツールキット。
Dataset#filter (とその関連メソッド)が名前つきプレースホルダをサポートするようになりました。 プレースホルダの値は、Hash オブジェクトを使って指定します。
JOIN USING をサポートしていないデータベースでも、 Sequelが JOIN ON を使ってエミュレートすることにより JOIN USING が使えるようになったそうです。
| 固定リンク | コメント (0) | トラックバック (0)
0.2.5 が公開されました(ruby-talk:349506)。
Windows 上で複数の Ruby を切り替えることができるツール。
pik_runner.exe を圧縮するために、upx を使うようになった他いくつかの修正がされています。
| 固定リンク | コメント (0) | トラックバック (0)
1.4.0 が公開されました(ruby-talk:349357)。
HTML, XML のパーザ。
最初のリリースから1年経過したそうです。 おめでとうございます。
1周年記念に、ruby-list では、これまでと違って アーロンさん自らがリリースのアナウンスをしています(ruby-list:46499)。
| 固定リンク | コメント (0) | トラックバック (0)
0.12.0 が公開されました(ruby-talk:349265)。
SQLite データベースエンジンを埋め込んだRuby拡張ライブラリ。 SQLite のインストールは不要です。
データベースエンジンが SQLite 3.6.19 にアップデートされました。
| 固定リンク | コメント (0) | トラックバック (0)
2.3 が公開されました(ruby-talk:349080)。
Python, Ruby, Lua, Tcl, Perl などのための IDE。
| 固定リンク | コメント (0) | トラックバック (0)
0.0.4 が公開されました(ruby-talk:349005)。
Java バイトコード を生成するための DSL。
Duby をサポートするためにインターフェースや throws がサポートされるなどいくつかの改訂がされています。
| 固定リンク | コメント (0) | トラックバック (0)
0.4.0 が公開されました(ruby-talk:348960)。
Unicorn ベースの HTTP サーバ。低速なネットワーク環境などで動作するRackアプリケーション用のHTTPサーバ。
EventMachine に対応したそうです。 Revactor と EventMachine 共にサポートしていく予定だそうです。
| 固定リンク | コメント (0) | トラックバック (0)
1.4.0 が公開されました(ruby-talk:349509)。
Java で実装されたRuby。
Ruby 1.8.7 patchlevel 174 互換だそうです。 Ruby 1.9 対応もかなり進んでいるようです。(JRuby は、--1.9 オプションで 1.9 互換で動作します。)
| 固定リンク | コメント (0) | トラックバック (0)
最初のリリース0.0.1 が公開されました(ruby-talk:349004)。
Ruby のシンタックスに影響を受けた静的型付き言語処理系。 JVMバイトコードかまたはJavaソースファイルに変換するための コンパイラが同梱されているとのことです。
| 固定リンク | コメント (0) | トラックバック (0)
0.93.5 が公開されました(ruby-talk:348959、ruby-talk:349234)。
Rack に対応したWebアプリケーションのためのHTTPサーバ。
0.93.4 は、FreeBSD と Mac OS X 上でのBSD stdio に関連する修正がされているとのことです。 Ruby 1.8 ユーザーにのみ関係する修正で、Ruby 1.9 ユーザーには関係ないとのことです。
0.93.5 は、タイムアウトしたワーカープロセスがハングしたときに、そのプロセスが停止できなくなることに対する対応がされている(という解釈でよい?)とのことです。
| 固定リンク | コメント (0) | トラックバック (0)
1.1.0 が公開されました(ruby-talk:348953)。
ユニットテストの assertion の機能を提供するシンプルなライブラリ
ステータスメッセージを実行結果のレポートに追加するためのDfect::S()メソッドが追加されたとのことです。
| 固定リンク | コメント (0) | トラックバック (0)
0.1.5 が公開されました(ruby-talk:348952)。
Ruby 1.9 に Erlang のような並行プログラミングの機能を提供するライブラリ。 ライブラリは、Ruby 1.9 の Fiber を使って実現されているとのことです。
低速Webアプリ向けHTTPサーバ Rainbows! でも使われているらしいです。
| 固定リンク | コメント (0) | トラックバック (0)
frubygems が公開されました(ruby-talk:348940)。
Ruby 1.8 のための、rubygems の高速化版。 Ruby 1.9 でいうところの gem_prelude。
require 'rubygems'
の代わりに
require 'frubygems'
と書くことにより、速く動作するそうです。
| 固定リンク | コメント (0) | トラックバック (0)
1.2.0が公開されました(ruby-talk:348933)。
Ruby の C API の C++ インターフェース。C++ で Ruby の拡張ライブラリを書くときに利用できます。
SWIG_Director と同様に、C++ と Ruby の間のシームレスなポリモーフィズムを提供する Rice::Directorが追加されるなどの改訂といくつかのバグフィックスがされています。
| 固定リンク | コメント (0) | トラックバック (0)
0.9が公開されました(ruby-talk:348932)。
C++ のライブラリを ラッピングして Ruby の拡張ライブラリを簡単に作成するためのツール。 SWIG-Ruby に代わるライブラリ。
rbgccxml は、1.9 でも動作するそうですが、rb++ は、1.9では動作しないようです。 また、rb++ は、Windowsでも動作しないようです。
rb++ は、 C++ ライブラリからRubyの拡張ライブラリを生成するためのツール。
rbgccxml は、C または、C++ のコードをパーズするためのツール。
| 固定リンク | コメント (0) | トラックバック (0)
0.1が公開されました(ruby-talk:348922)。
最近傍探索を行うための kd 木 を提供するライブラリ。 2d kdtree ということは、2次元ということかな。
これが最初のリリース。
| 固定リンク | コメント (0) | トラックバック (0)
0.2.3が公開されました(ruby-talk:348882)。
Windows 環境で、複数のバージョンの Ruby を切り替えて使えるようにするためのツール。
install コマンドが改善された他、いくつかの改訂とバグフィックスがされています。
また、Windows 環境での競合をできるだけ避けるため、pik.exe を pik_runner.exe に名前を変更したそうです。
| 固定リンク | コメント (0) | トラックバック (0)
0.12.10が公開されました(ruby-talk:348868)。
他のプロセスとネットワーク通信するRubyプログラムを実装するための速くてライトウェイトなフレームワーク。
0.12.8から、130個以上のパッチが適用されているとのことです。
| 固定リンク | コメント (0) | トラックバック (0)
Rubygame 2.6、Ruby-SDL-FFI 0.1、Nice-FFI 0.2 が公開されました(ruby-talk:348858)。
Rubygame 2.6 は、SDLやその他の必要なライブラリをロードするのにFFIを使うようになったとのことで、 JRuby でも、MatzRuby でも使用できるようになったそうです。
Ruby-SDL-FFI 0.1 は、SDL への FFI インターフェースを提供するライブラリ。 ただし、Ruby/SDL と同様の機能を提供しますが、Ruby/SDL の置き換えとなるライブラリではないとのことです。 Ruby-SDL-FFI の方が低レベルでのサポートをしているとのことです。
Nice-FFI は FFIを使ったライブラリを簡単に作成できるようにするライブラリ。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.0が公開されました(ruby-talk:348825)。
青木さんから TMail のメンテナンスを引き継いだ方が新たに作成した mail ライブラリ。 作者さん曰く TMail に新しい機能を追加することが難しかったとのことです。 シンプルさに拘りながら mail ライブラリは作成したようです。 1.8.6、1.8.7、1.9.1 のいずれでも動作するとのことです。
| 固定リンク | コメント (0) | トラックバック (0)
Tiamatが公開されました(ruby-talk:348774)。
Pureのプラグインで複数のマシンで並行処理させるためのライブラリ。
| 固定リンク | コメント (0) | トラックバック (0)
1.3.0 が公開されました。
ディレクトリのファイルが変更されたかを定期的に監視して変更を通知してくれるライブラリ。
Rev ベースの通知機能と EventMachine ベースの通知機能が追加されました。
| 固定リンク | コメント (0) | トラックバック (0)
2.0.3 と 1.0.7が公開されました(ruby-talk:348692)。
2.0.3 では、Integer にも Float にも合わないOracleの数値型は BigDecimalに変換されるようになりました (以前は、OraNumber型に変換されていました)。 このため、以前のバージョンとは互換性がなくなっているので注意が必要です。
1.0.7 はメンテナンスリリースとのことです。
| 固定リンク | コメント (0) | トラックバック (0)
4.0.0が公開されました(ruby-talk:348663)。
コマンドラインプログラムを素早く作成するための DSL ライブラリ。
Main.push_ios! と Main.pop_ios! が追加されました。
| 固定リンク | コメント (0) | トラックバック (0)
0.2.1が公開されました(ruby-talk:348575)。
Windows 環境で複数のバージョンの Ruby を使い分けるためのツール。
'pik add' で ruby がどこにインストールされているかを登録して 'pik switch' で ruby を切り替えることができるそうです。 'pik install' でインストールもできるそうです。
以前、Linux で動作する同様のソフトをこのブログで取り上げましたが、それのWindows版ですね。
pik は、exerb を使った実行プログラムになった(0.2.0)他いくつかの改訂と スペースが含まれる PATH に対応した(0.2.1)他いくつかのバグがフィックスされています。
9.0.0が公開されました(ruby-talk:348506)。
eRuby から ドキュメントを生成するプロセッサ。
XHTML に新しいノードを追加され、生成されるXHTMLドキュメントのサイズが小さくなりました。
メンテナンス・リリースである1.0.1が公開されました(ruby-talk:348498)。
HTTP のリクエストとレスポンスをラッピングすることにより、 Webアプリケーション、HTTPサーバをシンプルにするためのライブラリ。
1.9対応のための修正の他、いくつかのバグがフィックスされました。
3.0.1が公開されました(ruby-talk:348156)。
コマンドラインのプログラムを素早く生成するためのclass factory でありDSLであるライブラリ (OptionParser と一部競合するライブラリだと思われます)。
subclass ではなくて module/extend によるリファクタリングをしたそうです。
後方互換性がなくなっているかも知れない (←気持ちはよくわかるけど、互換性の無い動作をするとしたら、リファクタリングの定義に反していると思う)とのことですが、 今のところ、そのような問題は見つかっていない(ので今のところはリファクタリングで正しい)そうです。 (という風に理解したのだが英語を読み違えているか?)
2.0.0が公開されました(ruby-talk:348154)。
初期値が設定できる attr である fattr を提供するライブラリ。
class/module の継承されたときの attribute(attr) をサポートするようになったそうです。
1.1.0が公開されました(ruby-talk:348153)。
Enumerable なオブジェクトの要素に対するブロックの処理を子プロセスでフォークさせて処理するためのライブラリ。
1つのタスクだけ時間がかかっている場合にも、もう1つのプロセスの方で他のタスクを処理させて全体の処理が 短時間で処理されるように改善した(という理解で合ってますか?)みたいです。
8.0.0が公開されました(ruby-talk:348124)。
eRubyからドキュメントを生成するプロセッサ。
HTMLと同じようなTABLEを生成するための Table nodes が追加された他、いくつかの改訂とバグフィックスがされています。
0.1.0が公開されました(ruby-talk:348080)。
Windows 環境でマウスやキーボードの操作をエミュレートすることにより各種の操作を自動化するライブラリ。
C で書かれていた拡張ライブラリの部分を、win32-api で書き替えることにより、100% pure Ruby な ライブラリとなったそうです。 Cコンパイラがなくてもインストールするだけで使えるということです。
100% pure Ruby にする au3 もすごいけど、100% pure Ruby にできるぐらい充実している win32-api もすごいな。
7.3.0が公開されました(ruby-talk:348074)。
eRuby から各種ドキュメントを生成するツール。
XHTMLフォーマットの "printer friendly" モードの機能が更新されました。
0.93.3が公開されました(ruby-talk:348053)。
Rack に対応したアプリケーションのための HTTP サーバ。
OpenBSD 上での互換性に関するバグフィックスがされています。
1.0.1が公開されました(ruby-talk:348015)。
シンプルな Ruby の(ユニット)テストのためのライブラリ。
Test::Unit エミュレーションのバグフィックスとユーザーマニュアルの修正がされています。
7.2.0が公開されました(ruby-talk:348012)。
eRuby テンプレートからドキュメントを生成する拡張可能なプロセッサ。
Ruby 1.9 対応を進めた、依存するgemを減らした他いくつかの改訂。
0.93.2 が公開されました(ruby-talk:347886)。
Rack 対応の HTTP サーバ。
Content-Length が与えられたときに巨大なPOST データであっても Content-Length だけちゃんと 読むようにした他、いくつかの(ドキュメントの)改訂。
0.3.0 が公開されました(ruby-talk:347867)。
HTMLのサニタイジングをするライブラリ。
ActiveRecordを拡張する xss_foliate が追加された他、いくつかの機能改訂。
0.1.0 が公開されました(ruby-talk:347833)。
HTTP リクエストをロギングする Rack 対応のミドルウェア。
可能であれば、Hash でないオブジェクトを #to_hash するようになった他、いくつかの改訂。
0.5.0 が公開されました(ruby-talk:347832)。
ダイナミック・ライブラリをロードしてライブラリの関数を Ruby からコールできるようにするライブラリ。
class 関数が追加された他いくつかの改訂。
1.2.9 が公開されました(ruby-talk:347769)。
Ruby 用 BDD フレームワーク。
backtrace-ignore パターンを Spec::Runner.configure で管理できるようになった他いくつかの改訂と バグフィックスがされています。
1.2.9 が公開されました(ruby-talk:347767)。
Ruby on Rails 用の BDD フレームワーク
routo_to と be_routable メソッドが追加された他 3つの改訂と3つのバグフィックス。
0.1.1 が公開されました(ruby-talk:347766)。
リクエスト/レスポンスに時間がかかる RackベースのWebアプリに対応した HTTPサーバ。 Unicorn をベースとして開発されています。
Ruby 1.8 に対応したそうです。
0.1.0 が公開されました(ruby-talk:347706)。
Unicorn をベースにした Rack対応のアプリケーションのための HTTPサーバ。 Unicorn と違って、request/response の処理に時間がかかるようなアプリケーションを扱えるように設計されているそうです。
これが最初のバージョンで実験レベルのものだそうです。
1.3.0 が公開されました(ruby-talk:347691)。
Tokyo Tyrant のインスタンスを管理するコマンドラインツール。
Ruby 1.9 互換で動作するようになった他1つの改訂。
2.12.0 が公開されました(ruby-talk:347680)。
Image クラス に function_channel メソッドが追加された他いくつか改訂されています。
また、作者は、RMagick のメンテナンスを引き継いでくれる人、 MagickWand for Ruby のメンテナンスを引き継いでくれる人を募集しているとのことです。 作者自身は、2009年12月31日でサポートを終了するそうです(ruby-talk:347685)。
$ ruby -Eutf-8 /usr/local/trunk/bin/rabbit --theme=lightning-simple pre.rd
だと、それなりに表示される。
が、 -f オプションをつけると
$ ruby -Eutf-8 /usr/(...)/bin/rabbit --theme=lightning-simple -f pre.rd
画面が一瞬大きくなってディスプレイ全体に広がった直後にいきなり終了してしまった。 うーん。
cairoをインストールしたあと、再度 ruby-gnome2をコンパイルし直してみて試す。
$ ruby -Eutf-8 /usr/(...)/bin/rabbit rabbit.rd
画面の左上に文字が小さく表示された。
うーん。-f オプションをつけないといけないのか。
$ ruby -Eutf-8 /usr/(...)/bin/rabbit -f rabbit.rd
画面が一瞬大きくなってディスプレイ全体に広がった直後にいきなり終了してしまった。
最初のワーニングで
[WARNING] LoadError: can't find theme: rabbit-images.
と表示されるのだが、これが関係しているのだろうか?
よくよく調べてみたら、ruby-gnome2(ruby-gtk2)はインストールしてました。
$ ruby -rgtk2 -e 'puts sprintf("%d.%d.%d", *Gtk::BINDING_VERSION)'
0.19.0
ということは、rcairo がインストールされていないからか
$ sudo gem install cairo
試してみた。
$ rabbit rabbit.rd
動作しない。変化なし。encoding を指定してみた。
$ ruby -Eutf-8:utf-8 /usr/(...)/bin/rabbit rabbit.rd
おおっ。画面が出てきた。 が、真っ白な画面が表示されるだけで文字が一切表示されない...。
ruby-gnome2が古いせいかと思って最新版にしてみた。
$ ruby -rgtk2 -e 'puts sprintf("%d.%d.%d", *Gtk::BINDING_VERSION)'
0.19.3
再度挑戦したけどやっぱり白いまま。
$ ruby -Eutf-8:utf-8 /usr/(...)/bin/rabbit rabbit-en.rd
も試してみたけど白いまま。
邪な心をもつ人間には文字が見えないモードとか、ショッカー軍団の団員としての貢献度が低いと文字を表示しないとか、間違って古いバージョンのrabbitの話題を取り上げたりする人間には文字を表示しないとか、そんな機能は Rabbit にはない...はず。多分。
0.6.2 が公開されました。
Ruby で実装されたプレゼンテーションツール。
システムのDPIによってスライドの文字の大きさが変わるという現象が解消されている(はず)とのことです。
実験的に、RubyGems のサポートを開始したそうです。ただしRuby/GTK2は、別途インストールする必要があるのだとか。
試してみた。
$ ruby -v
ruby 1.9.2dev (2009-10-04 trunk 25221) [i686-linux]
$ sudo gem install rabbit
Successfully installed hikidoc-0.0.4
Successfully installed rabbit-0.6.2
2 gems installed
Installing ri documentation for hikidoc-0.0.4...
ERROR: While executing gem ... (ArgumentError)
unknown encoding name - utf-8;
rabbit 自体はインストールされるみたい。
$ rabbit -v
0.6.2
$ cd /usr/(...)/rabbit-0.6.2/sample
$ rabbit rabbit.rd
/usr/(...)/rabbit-0.6.2/lib/rabbit/canvas.rb:3:in `require': \
no such file to load -- rd/rdfmt (LoadError)
from /usr/(...)/rabbit-0.6.2/lib/rabbit/canvas.rb:3:in `<top (required)>'
from /usr/(...)/rabbit-0.6.2/bin/rabbit:745:in `require'
from /usr/(...)/rabbit-0.6.2/bin/rabbit:745:in `main'
from /usr/(...)/rabbit-0.6.2/bin/rabbit:759:in `<top (required)>'
from /usr/(...)/bin/rabbit:19:in `load'
from /usr/(...)/bin/rabbit:19:in `<main>'
rdtool をインストールしてないからか。 rdtool をインストールしてから試す。
$ rabbit rabbit.rd
/usr/(...)/rabbit-0.6.2/lib/rabbit/parser/wiki.rb:16:in `match': \
invalid byte sequence in EUC-JP (ArgumentError)
from /usr/(...)/rabbit-0.6.2/lib/rabbit/parser/wiki.rb:16:in `match?'
from /usr/(...)/rabbit-0.6.2/lib/rabbit/utils.rb:441:in `block in find_loader'
うーん。駄目か。
$ rabbit rabbit.hiki
も結果は同じ。Ruby/Gtk2 とかはインストールしてないから、そもそも動かないだろうけど、それ以前にエンコーディング関係でエラーになっているっぽいです。 そういえば、Ruby/Gtk2 が、1.9で動かない(機能がある)から rabbit も1.9では動作しないという話を須藤さんがされていたような気がする。
0.0.1 が公開されました(ruby-talk:347660)。
eRuby テンプレートのデバッグができる eRuby プロセッサ。
Ruby 1.9 で、ネストされたテンプレートで親のbindingにアクセスできなかったのを修正された他いくつかのバグフィックスと改訂。
1.1.1 が公開されました(ruby-talk:347655)。
RubyGems ベースのアプリケーションの一般的なタスクの自動化、ドキュメントの作成などを支援するためのインフラ。
Ruby 1.9 対応が進んだ他いくつかのバグフィックス。
3.1.0 が公開されました(ruby-talk:347635)。
ウィンドウマネージャ wmii の Ruby インターフェース
Client#float メソッドが追加された他2つの機能追加とバグフィックスが2つ。
2.7 が公開されました(ruby-talk:347632)。
次世代 XML パーザ。
XPath 2.0 メソッド abs()、ends-with()、upper-case()、lower-case() が追加された他3つの改訂と2つのバグフィックス。
0.93.1 が公開されました(ruby-talk:347630)。 Rack対応のWebアプリケーションのためのHTTPサーバー。
ファイルのパーミッションを変更しただけで、他は、0.93と全く同じとのことです。
| 固定リンク
1.4.0RC1が公開されました(ruby-talk:347626)。
Java で実装された Ruby。
Ruby 1.8.7 patchlevel 174 互換になったそうです。 Ruby 1.9 対応も進んでいます(JRuby は、--1.9 オプションで、1.9互換で動作するようになってます。)が、 まだ対応中とのことで、1.9対応のRubyスクリプトを試して、レポートしてほしいとのことです。
0.93.0が公開されました(ruby-talk:347624)。
Rack 対応のアプリケーションのためのHTTPサーバ。
Rails 2.3.x 以降で config ファイルの中で、RAILS_RELATIVE_URL_ROOT を設定しているユーザーのためのバグフィックスがされています。
0.4.3が公開されました(ruby-talk:347623)。
mmap() ベースのkey-valueデータベース。
each_pair が大幅に速くなった他いくつかのバグフィックスがされています。
each_pairは、400k elements で 14倍も速くなったそうです。
最初のリリースである1.0が公開されました(ruby-talk:347621)。
rake コマンド一発で Rails のデータベースの設定を切り替えられるようにするツール。
作者は、Railsで使用していますが、config/database.yml を使っているフレームワークであれば動作するはずとのことです。
0.9が公開されました(ruby-talk:347554)。
コンソールベースのメールクライアントソフト。
実験的にサーチエンジンのバックエンドを Ferret から Xapian に変更した他、いくつかの改訂がされています。
3.5.0が公開されました(ruby-talk:347536)。
O/Rマッパなどの機能もある Ruby 用のデータベースアクセスツールキット。
多数の機能追加がされています。
中でも、Modelのインスタンスで使用する文字列のエンコーディングを強制的に指定できる force_encoding プラグインが追加されました。 Ruby 1.9 で日本語を扱う場合には、この force_encoding plugin は便利な機能かも知れませんね。
1.15が公開されました(ruby-talk:347454)。
コマンドラインオプションをパーズするライブラリ。
引数が足りないときに例外を raise しないようになった(という解釈でよい?)みたいです。
1.8.7.12(exp) が公開されました(ruby-list:46420)。
あくまでも実験版で、1.8 select 問題が解消された win32.c を使用して作成したパッケージだとのことです。
1.0.5 が公開されました(ruby-talk:346471)。
rubyforge の操作の一部を自動化するスクリプト。
リリース名称を使ってRubyforge のトラッカーを同期するスクリプト(テスト版)が追加された他3つの改訂。
1.2.9.rc1 が公開されました(ruby-talk:346436)。
Ruby や Rails で BDD するためのライブラリ。
1.2.9.rc1 をインストールする前に、rubygems を 1.3.5 にバージョンアップすることを推奨しています。 rubygems-1.3.5にしておくことで、1.2.9.rc1 は、1.2.8より新しく1.2.9より古いバージョンとして扱うことができるそうです。 1.2.9.rc1 をインストールするには、gem コマンドで --prerelease オプションを指定すればよいようです。
Spec::Runner.configure を使って backtrace の情報から無視したいパターンを管理できるようになった他いくつかの改訂がされている模様。
2.4.1 が公開されました(ruby-talk:346389)。
RDoc ファイルから Microsoft HTML ヘルプファイルを生成するツール。
メソッドは、インデックスページから削除され、CHM TOC(って何?) にリストアップされるようになった他1点の改訂。
1.2.0 が公開されました(ruby-talk:346369)。
Tokyo Tyrant のインスタンスを管理するコマンドラインツール。
(Tokyo Tyrant も tyrantmanager も全く知らないので内容はわかりませんが) TyrantInstance が コネクションの代わりに TyrantTable か Tyrant を使うようになった(という解釈で合っている?)他2点の改訂。
ruby-talk:346323 で、pr-win32ole を改訂したとのメール。
pr-win32ole の最新版を入手してソースを眺めてみた。
if pvarResult varResult = 0.chr * 16 WIN32OLE.ole_val2variant(result, varResult) memcpy(pvarResult, varResult, 16) end
うーん。これって C で書くと
if (pvarResult) {
Variant varResult;
WIN32OLE.ole_val2variant(result, &varResult);
pvarResult = &varResult;
}
みたいなこと?
そうだとすると、 OLEサーバ側(呼出し元)で確保したメモリ領域を指しているpvarResultを Win32OLE側(呼出し先)で確保したメモリ領域を指すように変更している ように見えるんだけど、まずくないかな。
私の認識 (と この前 arton さんからいただいたコメント を元に判断すると) だと、そういうことをしてはいけないと思ってるんだけど...。
先日見つけた WIN32OLE_TYPELIB のバグを修正できたのでコミット。 もうちょっとリファクタリングした方がいいかな。
この前の、WIN32OLE_EVENT.message_loop でクラッシュするという話、もう少し詳しい情報が欲しいと お願いしたんだけど何の音沙汰もない。 VariantInit だけでも追加しておいた方がいいと思うので、後で追加しておこう。
最初のリリース?が公開されました(ruby-talk:346058)。
Regexpのようなライブラリ。 Regexpに馴染みのない人のためのワイルドカード検索ができるようにするためのライブラリ。
正規表現を知らない人には、正規表現を教えてあげる方がいいんじゃないだろうか? Ruby以外でも役に立つし。
1.8.7.11 が公開されました(ruby-list:46371)。
Ruby-1.8.7-p174 ベースになった他、ASRに同梱されている Exerb で enumerator の LoadError が出るバグがフィックスされています。
0.5.9 が公開されてました(ruby-list:45863)。
Rabbit をコマンドラインから制御するrabbit-commandが追加された他、いくつかの改訂。 残念ながら、Ruby-GNOME2 が 1.9.1未対応のため、Ruby-GNOME2 に依存している Rabbit は1.9.1には未対応だそうです。
ruby-talk のメールの数と ruby-list のメールの数は1桁違うということに、今、初めて気づきました。
0.0.1 が公開されました(ruby-talk:345972)。
コマンドラインオプションをインスタンスメソッドにダイレクトにマッピングするコマンドラインパーザ。 optparse.rb なんかと競合するライブラリ。
試してみた。
$ sudo gem install caty
$ cat catyt.rb
require 'caty'
class Foo < Caty
def cmd1
puts "this is cmd1"
end
def cmd2
puts "this is cmd2"
end
end
Foo.start!
$ ruby catyt.rb cmd1
There is no task named `cmd1'
うーん。期待通りに 1.9.2dev では動作しませんでした。 本当は、Foo#cmd1 が実行されるはずなんだけど...。
0.0.6 が公開されました(ruby-talk:345951)。
HTTP リクエストをロギングするRack対応のミドルウェア。 ログフォーマットをカスタマイズすることができます。
clogger_ext が clogger gem にマージされた他、いくつかの改訂。
1.1.0 が公開されました(ruby-talk:345867)。
gems 対応のアプリケーションのドキュメンテーション生成やタスクの自動化などに使用できるツール。
ユーザーマニュアルの改善、MicrosoftのWebブラウザのサポートの改善などがされているそうです。
7.1.1 が公開されました(ruby-talk:345856)。
eRuby テンプレートからドキュメントを生成する拡張可能なプロセッサツール。
XHTML フォーマットの MS, Opera, Webkit の Web ブラウザのサポートが改善されているそうです。
1.1.0が公開されました(ruby-talk:345814)。
Q.E.D. は Quality Enhanced Demos の略。 Ruby 開発者のための品質保証とドキュメントシステムとして使うことができるそうです。 Q.E.D. は、Test Unit と Cucumber の中間に位置するようなライブラリらしいです。
arton さんから更にコメントをいただいた。 いろいろありがとうございます。
ということで、私がさほど勘違いをしていないことがわかりました。 安心しました。
pr-win32ole はこんな感じにするのが正しそう。
if pvarResult
VariantInit(pvarResult)
WIN32OLE.ole_val2variant(result,pvarResult)
end
なんだけど、現状だと
if pvarResult
WIN32OLE.ole_val2variant(result,pvarResult)
end
となっているので
VariantInit(pvarResult)
を追加するのがいいのだろうけど、 その前に、やっぱり、どんなOLEサーバーでどんなイベントを起こしてクラッシュしているのかそれが知りたい。
ということで、相手から回答のメールがruby-talkに投稿されるのを待つことにします。
なるほど。 こういうとき、Win32OLEよりも、pr-win32ole の方が Cコンパイラを持ってない人にも、手軽にいろいろ試してもらえるので便利だな。
ところで、前から気になっているのだが、新たにRuby界にやってきた人が、 mswin32 版の開発に参加したいと思った場合 VC++ 6.0 をどうやって入手すればいいんだろうか?
期待してよいのはポインタの4バイトだけと artonさんからコメントをいただいた。
ということは、私は完璧にずっと勘違いしていたということになります。 で、「困ったときのPerl」の格言(←嘘)に従い、Perlはどうしているんだろうなと思って OLE.xs を調べたら、 pVarResult に対しては全く何もしてなかった。
ということは、私が勝手に勘違いして、勝手にpVarResultの処理を独自に追加したんだろうな。きっと。 pVarResult は、[out] なので、Win32OLE 側(呼び出し先)でメモリーを確保して返してあげればいいのか。 メモリーの解放は、OLEサーバ側(呼び出し元)でやってくれるので、気にすることはないのか。
念のため、pVarResultに値を設定しないことにしたら動きがどうなるか質問してみた(ruby-talk:345711)ら、 エラーは消えたけど、エラーメッセージも何も表示せずにクラッシュするようになったらしい(ruby-talk:345759)。
ということは、OLE.xs みたいに何もしないという訳にもいかんのか。
OLEサーバは、pVarResultにNULL以外を指定してWin32OLEを呼び出していて、 呼び出した後、OLEサーバは、何か値が設定されているだろうと期待して、pVarResultを参照したところクラッシュしたということか。
結局、どんなイベントを起こすとそうなるか知りたかったので、もう少しイベントの情報を教えてくれとお願いしてみた。
pr-win32ole はこんな感じにすれば動くのかな。
if pvarResult
v = 0.chr * 16
VariantInit(v)
WIN32OLE.ole_val2variant(result,v)
return VariantCopyInd(pvarResult, v)
end
| 固定リンク | コメント (4) | トラックバック (0)
0.91.0が公開されました(ruby-talk:345748)。
Rackに対応した Unix 用の HTTPサーバ。
HttpParser#headers? メソッドが追加された他、いくつかのバグフィックスと改訂。 18年遅れになってしまいましたが、ようやく HTTP/0.9 がサポートされるようになったそうです!!!
1.7 が公開されました(ruby-talk:345655)。
GDataを使ってGmailにアクセスするライブラリ。
404を返すURLが #fetch_photoに渡されたときには、GData::Client::UnknownError 例外が raise されるようになったそうです。
まだ公式にはリリースされていない pure Ruby で書かれた Win32OLE ライブラリ(ruby-talk:345507, <URL:http://pure.rubyforge.org/svn/pr-win32ole>)。
すごいなあ。私には書けそうにない。
今のWin32OLEのコードは、難しくてメンテナンスしづらいので、 pure Ruby バージョンの Win32OLE によって、もっと Win32OLE をよりわかりやすく メンテナンスしやすくしようというのが目的だそうです。
おっしゃる通りです。反論できません。
で、一連のスレッドの話だけど、Win32OLE のバグなのかなあ。
推測すると
OLEサーバ側が Win32OLE 側の EVENTSINK_Invoke(イベントハンドラ) を呼び出す。 Win32OLE側は、EVENTSINK_Invoke の引数 pvarResult が NULL でないからイベントハンドラの 実行結果(戻り値)を pvarResult に設定して OLEサーバ側に返そうとする。 で、pvarResult に値を設定しようとしているところでハングアップしている。
っぽい。
pvarResult が指すメモリは、EVENTSINK_Invoke を呼び出すOLEサーバ側が確保してくれ(て、後始末もOLEサーバ側でやってくれ)るものと Win32OLEは期待している。 もし、OLEサーバ側でpvarResultが指すメモリを確保してなくてしかも NULL でない pvarResult が渡されてくるとしたらクラッシュしそう。
で、Win32OLEは、OLEサーバが あらかじめ pvarResult のメモリ確保をしてくれていることを期待してもいいんだよね?
0.11.6 が公開されました(ruby-talk:345563)。
Ruby 1.9.x の拡張ライブラリとして実装されたデバッガ。 標準のデバッガ debug.rb よりも高速に動作するとのことです。
次に実行するステートメントを変更することができる jump コマンドが追加されました。
3.4.0 が公開されました(ruby-talk:345497)。
O/R マッパーを含んだ Ruby 用のデータベースツールキット。
ActiveRecord の Nested Attributes に相当する nested_attributes プラグインが追加された他、いくつかの機能が追加されました。 また、timestamp のデフォルトのフォーマットの日付と時刻の区切りが「T」から半角スペースに変わっているなど いくつかの非互換な改訂も入っています。
0.0.5 が公開されました(ruby-talk:345566)。
HTTP リクエストをロギングする Rack に対応したミドルウェア。ログのフォーマットをカスタマイズすることができる。
$request_method、$content_length、$content_type 変数が提供されるようになって書き替えることができるようになった(のかな)。
0.0.4 が公開されました(ruby-talk:345437)。
HTTP リクエストをロギングする Rack に対応したミドルウェア。 ログのフォーマットをカスタマイズすることができる。
行儀の悪いRackアプリケーションに対してチェックをしてログ(500 errors)を残すようになったようです。 あと、私は、nginx を全く知らないため、"escapes with uppercase A-F characters" の意味がよくわからなかったのですが、 nginx のログ形式に合う出力ができるように修正されたみたいです。
noplansさんからコメントをいただいたので 試すことにした。
ていうかいつの間に、0.0.28になったんだ?
$ sudo gem install rvm
$ rvm-install
$ rvm list
ruby:
jruby:
ree:
system:
- (ruby 1.9.1p281 (2009-08-09 revision 24476) [i686-linux])
おおっ。なんか動くっぽいですよ。
$ rvm info
ruby:
interpreter: "ruby"
version: "1.9.2dev"
date: "2009-08-22"
platform: "i686-linux"
patchlevel: "2009-08-22 trunk 24625"
full_version: "ruby 1.9.2dev (2009-08-22 trunk 24625) [i686-linux]"
homes:
gem: "not set"
ruby: "not set"
binaries:
ruby: "/usr/local/trunk/bin/ruby"
irb: "/usr/local/trunk/bin/irb"
gem: "/usr/local/trunk/bin/gem"
$ rvm -v
rvm 0.0.24 (2009.08.25) [http://rvm.beginrescueend.com/]
うん? 0.0.24なのか?
$ gem list
...
rvm (0.0.28, 0.0.24)
では試しに
$ rvm use ruby 1.8.7
おおっ。Ruby のソースをダウンロードして configure して、compile し始めました。
....
Switching to ruby 1.8.7 ...
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]
おおっ。すげえ。
$ rvm -v
rvm 0.0.28 (2009.09.01) [http://rvm.beginrescueend.com/]
あれっ? いつの間に? もしかしてバージョンアップの手順をなんか間違えたかな?
$ rvm system
$ ruby -v
ruby 1.9.1p281 (2009-08-09 revision 24476) [i686-linux]
うん? 1.9.2dev じゃない? ...そうか。一時的に
export PATH=/usr/local/trunk/bin:$PATH
しても、rvm system はデフォルトで PATH が通っているところの Ruby に切り替えるのね。
$ rvm reset
$ rvm use ruby trunk
Unrecognized command line argument(s): 'trunk ' ( see: rvm usage )
さすがに trunk なんて無理か...。
でも、複数のバージョンのRubyで動作確認したいときには、これは便利そう。
2.3.0が公開されました(ruby-talk:345338)。
MMS message をデコードするためのライブラリ。
smartphone のステータスやタイプの情報を jpeg や tiff の exif データから取得できるようになった(という解釈であってるのか?) 他4つの改訂と4つのバグフィックス。
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 フォーマットはあらかじめ用意されているそうです。
なんか悔しいので 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 ドライバが速度改善されたとのことです。
1.5が公開されました(ruby-talk:344376)。
GData を使って Gmail にアクセスするためのライブラリ。 fetch_photo が URL を受け付けるようになりました。
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つ。
1.2.0が公開されました(ruby-talk:344055)。
Ruby 標準の Date/DateTimeクラスを置き変えるライブラリ。 標準のものより高速に動作してメモリ使用量も低いそうです。
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`
としてみたら、普通に起動できました。
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 化されたようです。
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 ということみたい。
1.2.1が公開されました。(ruby-talk:343450)。
minitest などを含む seattle.rb で使われているタスクの Hoe のプラグイン。 1つの改訂。
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点のバグフィックス。
ruby-debug for Ruby 1.9が公開された(ruby-talk:342939)。
ruby-debug の Ruby 1.9 への移植版。
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 への対応がされているようです。
1.2.0が公開された(ruby-talk:342803)。
omnifocus_new が追加されたことによりシェルからタスクを作成できるようになった他2つの改訂。
1.1.2が公開された(ruby-talk:342779)。
SpiderMonkey を使って、RubyからJavaScript を評価して実行するための拡張ライブラリ。 SpiderMonkey が含まれているので別途 SpiderMonkey は不要な感じっぽい。
gemに対応したそうです。
1.9.2dev で試してみましたが残念ながら、拡張ライブラリのコンパイルのところで ruby_errinfo の定義が見つからないとエラーになりました。 多分、ruby_errinfo を rb_errinfo() 関数に置き変えればいけるはず。
1.3.3がリリースされた(ruby-talk:342730)。 HTMLやXMLのパーザ。
全てのNodeの子を返すNodeSet#children が追加された他7つのバグフィックス。
1.4.0では、Hpricotとの互換性(Hpricotと同様の動作ってことかな?)は無くなるとのことです。
1.0.0が公開された(ruby-talk:342653)。 omnifocus とgithubのバグトラッキングシステムを同期するためのomnifocusのプラグイン。
これが最初のリリース。
1.1.0が公開された(ruby-talk:342652)。 omnifocus とrubyforgeのバグトラッキングシステムを同期するためのomnifocusのプラグイン。
omnifocus の bts_id のフォーマットが変わったことへの対応
1.1.0が公開された(ruby-talk:342651)。 omnifocus とバグトラッキングシステムを同期するためのツール。
bts_id が /SYSTEM(-project)?#id/ にマッチするようにした他2つの改訂と1つのバグフィックス。
0.9.4が公開された(ruby-talk:342571)。
作者自身が自分のために作った Web サイトを作成、更新するためのツール。 UserLand Frontier の Ruby版。 TextMateを使っているそうです。
0.16.1が公開された(ruby-talk:342542)。
Ruby から動的に C言語のライブラリを動的にロードして実行するためのフレームワーク。 ほぼ8年くらい使われているとのことです。
今回のバージョンアップでgem化されました。
Ruby 1.9.2dev で試してみましたが、コンパイルでエラーになりました。 仕組みとしては、Rubyのスクリプトから、Cのソースコードを生成して、Cコンパイラでコンパイルして実行するという仕組みのようです。
1.0.0が公開された(ruby-talk:342540)。
rubyforge のバグトラッキングシステムと同期するための omnifocus のプラグイン。 これが最初のリリース。
0.0.1 が公開された(ruby-talk:342518)。
キロバイト、ギガバイトなどのファイルのサイズを換算したり、加減などの計算をするためのライブラリ。
もしかして、Rich Units の機能と重なる部分があったりする?
0.5.9 が公開された(ruby-talk:342516)。
テンプレートファイルと組み合わせて静的なWebサイトを生成するためのツール。
今回のリリースには、機能追加はあまりないようですが、 ブログ機能やイメージギャラリーのような今後予定されている機能のためのステップという位置付けのようです。
0.6.0が公開された(ruby-talk:342486)。
C言語で書かれたRubyの拡張ライブラリを gem 化するときに使うツール。
1.8と1.9用の拡張ライブラリを同時にパッケージングできるようになった他4つの改訂。
1.2.5が公開された(ruby-talk:342484)。
とあるんだけど、
sudo gem install sqlite3-ruby
としても、sqlite3-ruby-1.2.4 しかインストールされない。うーむ...。
Database.open と Database.new が block をオプションで受け取れるようになったそうです。 Windowsユーザーはコンパイラがなくても、インストールできるようになったとのことです。
0.5が公開された(ruby-talk:342466)。
8-ビットゲームのコンソールをエミュレートするライブラリ。
実際の画面出力は、Ruby/SDLを使っているとのことですが、将来的には他のライブラリにも対応する予定だそうです。
2009.07が公開された(ruby-talk:342447)。
バグフィックスがほとんどですが、LRU キャッシュなど機能追加もされています。
Windowsで試してくれるボランティアを募集しているとのことです。 興味のある方は、modular-bin ブランチを check out してください。 バグは、bug tracker か IRC で報告してほしいとのことです。
| 固定リンク | コメント (0) | トラックバック (0)
Ruby や Ruby on Rails 開発者のための情報を集めたサイト H4DEV.com が 公開された(ruby-talk:342460)。
情報はデータベース化されていて検索できるようになっています。 ユーザーインターフェースに関するフィードバックが欲しいとのことです。また、質問も大歓迎だとのことです。
| 固定リンク | コメント (0) | トラックバック (0)
最初のリリースが公開された(ruby-talk:342256)。 irb の標準の補完機能をさらに強化するライブラリ。
試してみた。
$ sudo gem install bond
~/.irbrc に
require 'bond' require 'bond/completion'
を追加。irbを起動すればよい。
$ irb
irb(main):001:0> Bond.complete(:method=>"File.read", :search=>false) {|input|
irb(main):002:1* Readline::FILENAME_COMPLETION_PROC.call(input) || [] }
$ File.read '[TAB]
で、ファイル名の補完が働く。Ruby 1.9.2dev でも動作した。
| 固定リンク | コメント (0) | トラックバック (0)
0.7.0が公開された(ruby-talk:342231)。 Ruby と Tcl/Tk で作られた軽量IDE。
project drawer という新しい拡張機能が追加されました。
| 固定リンク | コメント (0) | トラックバック (0)
ruby側に渡される Vim のバッファの文字列は encoding で指定されているエンコード文字列が設定されているっぽい。 termencoding や fileencoding は関係無さそう。 なので、ruby 側にVimのバッファから渡される文字列を生成するときには encoding に合わせて、force_encoding してあげれば良さそうなのだけど、 Vim の encoding と Ruby の encoding の対応づけが面倒そう。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.4 が公開された(ruby-talk:342112)。
RubyForge のサブセットの機能を提供するライブラリ。5つの改訂。
| 固定リンク | コメント (0) | トラックバック (0)
0.1.1 が公開された(ruby-talk:342111)。
Ruby に Lispのようなマクロ機能を追加するライブラリ。
XMLをS式に変換したり、S式をXMLに変換するユーティリティが追加された。
gem 化の方法がわからないので、誰かがやってくださると嬉しいとのことです。
| 固定リンク | コメント (0) | トラックバック (0)
0.7.4 が公開された(ruby-talk:342048)。
RFC2445に忠実なiCalendarライブラリ。 バグフィックスが2つ。
| 固定リンク | コメント (0) | トラックバック (0)
0.9 が公開された(ruby-talk:342034)。
Solrを使って、永続的なRubyオブジェクト (シリアライズ化(Marshal.dump)されたってこと?) を検索するためのライブラリ。
キーワードの検索に、Dismax パーザを使うようにした他、多数の改訂。
| 固定リンク | コメント (0) | トラックバック (0)
Ruby 1.9.2-preview1 で Time オブジェクトの最大値、最小値の制約が無くなりました。 なので、Win32OLEのVT_DATE(日付)はTimeに変換するように、今日、trunkを修正しました。 ということで、多分、1.9.2 と、それより前のバージョンで、スクリプトに互換性がなくなります。
1.9.2-preview1まで: OLEの日付(時刻)オブジェクト → "YYYY/mm/dd HH:MM:SS" 形式のStringオブジェクト 多分、1.9.2-preview2 以降: OLEの日付(時刻)オブジェクト → Time オブジェクト
| 固定リンク | コメント (0) | トラックバック (0)
高橋さんの基調講演を聴いて自分はどうだったかなあと思って調べてみた。
Rubyを最初に知った時期。 1.0がリリースされるより前であることは確かなんだけど、いつ頃か正確な時期が全く思い出せない。 Nifty フォーラムの FGALTS あたりで、確か、わたなべさんの発言を読んだのが最初。 (1995年〜1996年の間のいつか。他の個人的な自分の記録とかいろいろ突き合わせれば、もう少し絞り込めるかも。) Rubyを使い始めたのもその頃。
Ruby界へのデビュー(Rubyを使っている人達と初めての関わり)。 ruby-listの初めての投稿がそれにあたると思う。これは多分(ruby-list:3836)のはず。1997/08/27。
Win32OLEを初めて世に出した時期。1998/11/16(ruby-list:10856)。
コミッターになった時期。Win32OLEがRuby本体にマージされたときだとすると、2002/06/01。 (その前からコミット権限だけはもらっていたような気がするけど...。)
| 固定リンク | コメント (0) | トラックバック (0)
0.8.3と0.9.2がリリースされた(ruby-talk:341813)。
Rack対応のHTTPサーバっぽいんですが、今のところ私の環境で動作したことがなく、 実際に何をするものなのか私はわかっていません。 Ruby 1.9.2-preview1 対応だそうです。
| 固定リンク | コメント (0) | トラックバック (0)
1.1.0がリリースされた(ruby-talk:341764)。
複数ファイルをまとめてrequireしてくれるライブラリ。
依存関係を調べながらまとめて指定されたディレクトリ配下のファイルをrequireしてくれるrequire_rel が 追加された他にバグフィックスが1つ。
| 固定リンク | コメント (0) | トラックバック (0)
2.0.3がリリースされた(ruby-talk:341760)。
Ruby 1.8 では標準添付されていた、Test::Unit ライブラリ。 ちなみに、Ruby 1.9 標準に添付されているのは、minitest です。
assert_predicate, assert_not_predicate が追加された他、8つの改訂と、1つのバグフィックス。
| 固定リンク | コメント (0) | トラックバック (0)
0.0.4がリリースされた(ruby-talk:341756)。
eval されたコードをデバッグできるようにするためのライブラリ。
| 固定リンク | コメント (0) | トラックバック (0)
公開された(ruby-talk:341726)。
1.9.2-preview1 では、Socket API が変更されたり、Time に最大値、最小値の制限が無くなりました。
追従できていないのですが、Win32OLEも追従して、VT_DATE は Time型に変換するようにする予定です(下位互換性が無くなります。)
| 固定リンク | コメント (0) | トラックバック (0)
1.0.0 がリリースされた(ruby-talk:341652)。
Rutema の Web用フロントエンド。
rutemaweb から rutema_web に gem の名前が変わったので注意。 一旦、rutemawebをアンインストールしてから rutema_web をインストールするのがよいでしょう。
ActiveRecord 2.3.2を使うようにしたり、Ramaze から Sinatraに変更されたりした他、5つの改訂。
| 固定リンク | コメント (0) | トラックバック (0)
0.1.4 がリリースされた(ruby-talk:341654)。
Rutema パーザに機能を簡単に追加できるようにするためのライブラリ。
vsdbcmd でコマンドラインで、接続文字列を指定できるようになった(?)。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.5 がリリースされた(ruby-talk:341653)。
異なる複数の環境でのテストを実行できるようにするためのテスト実行ツール。
Activerecord 2.3.2を使用するようになった他、5つの改訂。
| 固定リンク | コメント (0) | トラックバック (0)
1.2.8 がリリースされた(ruby-talk:341625)。
should should_not がオプションのメッセージを引数として取るようにした他5つの改訂と2つのバグフィックス。
| 固定リンク | コメント (0) | トラックバック (0)
最終日。メモを一切取ってなくて記憶を頼りに書くので、内容に誤りがあるかも知れません。 記載漏れは山ほどあります。多分。
朝、ちょっとだけ遅刻。 ささださんと遭遇。名札に名前を書いてくださいと注意される。 裏返しになってただけだと引っくり返してみせたら、裏にもちゃんと名前を書けと更に叱られる。 去年までは葉書だったのに...。
Edo Cabinet の話を聴く。 メトロー ジョンさんは日本語で話してくれているので助かる。 key-value ストアって、単にkeyとvalueだけをストアする単純なものかと思っていたら、そんなことはないのだと初めて知った。 更に、RDBのSQLみたいに、where 条件による検索条件指定とか order by による並べ替えみたいなことができるらしい。 巧いことやれば、Sequel あたりから利用できるようになったりするかもと思ったりした。
keyには文字列しか指定できないと説明されていたので、key に Symbol を指定できるようにする予定があるかと質問してみた。 今のところ予定はないみたいな回答だったと思うんだけど、その直後に別の人から、うっかりSymbol指定したらSEGVするので、 是非とも対応して欲しいと要望が出たら、頑張って対応するという話だった。
全く実装を見てないので、どうかわからないですが...。 Symbolをダイレクトにキーとして扱うのは厳しいと思いますが、 引数がSymbolだったらStringに変換してから後続の処理をするようにすれば、そんなに難しい話ではないと思うんだけどな。 (名前つき引数をハッシュで対応する部分で、Win32OLEでもSymbolからStringへの変換をしてる経験から語ってます。)
Checking Interactively Developed Codeってのは、irb でRubyのスクリプトを型チェックできるようにする話。 1回、1回、irb にコピーするのは面倒だと思うんだけどな。 学生さんで、まだ論文を仕上げていないので、オープンソースで公開することは難しいかもとのこと。 英語は速いけど、昨日よりは、ほんのちょっぴり聴き取れたような気がする。
To the Edge of Web Performance and Beyond は、W3Cの規格の話、だったのかなあ。 こうやるとうまくいったという話ではなかったような気がする...。
早く終わったので、中会議場へ行った後、特別会議室へ行ってみる。 もう既に質疑応答の時間になっていた。 ドイツでは、Rubyの情報が入ってこなくて、 たまに svn up するとソースがいっぱい更新されてびっくりするけど、日本だと情報が入る分、事情が違うんじゃないかというような話があって、 かずひこさんが、「For Japanese, it's same.」(若干違っていたかも) と伝えていた。 ちなみにWin32OLE以外については私も同じです。
昼休み。 名刺交換したら、本業の方でわりとつながりのある人が、Ruby のコミッターの一人だと判明した。
午後もまた英語枠。 How Lazy Americans Monitor Servers。 どうやってRubyを使ってサーバーを監視するかみたいな話だと思ったけど、睡魔に襲われて、ちゃんと聴いてませんでした。
最後の英語枠。 日本語交じりである。 スライドに書かれている日本語をストレートに訳したわかりやすい英語で喋ってくれている。 そのおかげで私でも、それなりに聴き取れて楽しめました。 ちなみに、enterprise は、 このサイトでも取り上げていて、 更に日本語がどう扱われるのかもちょっとだけ試してます。
RubyKaigi 2009 で、(Lightning Talksを除けば)私にとって最初の日本語枠、角谷さんの話を聴く。 私自身、ちょっと思うところはあるのですが、それは、また別の機会に書くかも知れないし書かないかも知れない。
基調講演。 多分、会長よりもRuby歴はちょっとだけ長いよなあと思いながら話を聴く。 全然、Rubyとは関係ないことで、思うことはあるのですが、ここには書きません。
CLOSINGの後、最後の最後のreject会議。 永井さんの話のときに、ドラを叩こうと待ち構えていたドラ娘がドラを叩けなくてがっかりしているリアクションが面白かった。
ということで、参加された皆様、お疲れ様でした。 スタッフの皆様、スポンサーの皆様、ありがとうございました。
| 固定リンク | コメント (4) | トラックバック (0)
1日目は参加できなかったので、2日目が最初。 メモを一切取ってなくて記憶を頼りに書くので、内容に誤りがあるかも知れません。
去年に続いてCOMMITERとして参加させていただきました。
朝、早目に会場に到着。 私が名乗る前にスタッフの方が顔と名前を識別してくださり、関係者受付の方に案内していただく。
ショッカー軍団の団長、じゃなくてRubyKaigi2009のスポンサーになってくださったクリアコード代表取締役の須藤さんと会う。 英語の講演を聴くつもりだと私が話すといろいろと突っ込まれる。
artonさんと会う。 Win32OLEがいろいろ変わっているよねと言われてちょっと戸惑う。 最近、手を加えた記憶がなかったので、1.8との違いってことかと納得する。 それはともかく、記憶があやふやになってしまって申し訳ないのですが、arton さんが欲しい機能ってこんな感じのことですか?
#-*- encoding:utf-8 -*-
require 'win32ole'
a = WIN32OLE_VARIANT.new('あいうえおかきくけこ') # UTF-8 の String から VARIANT を生成。
WIN32OLE.codepage = 932
s1 = a.value # s1 は Windows-31J の String
WIN32OLE.codepage = WIN32OLE::CP_UTF8
s2 = a.value # s2 は UTF-8 の String
2F中会議場で Sequel、Sinatra、Ramaze の順で話を聴く。タイムテーブルとは順番が違ってしまったけど、この順番の方がかえって良かったんじゃないかと思う。怪我の巧妙。
Sequelの話。全く英語がわからなくて、自分の英語力の無さにへこむ。 わからないなりに、SequelのSQLの扱い方は、.NET の LINQ と似ているなと思ったりする。 ちなみに最後の方で最近の話題として取り上げていた CTE は、ちゃんとこのサイトでもトピックとして扱ってます。
Sinatraの話。やっぱり英語がわからなくてさらにへこむ。 トップレベルに get とか定義するんじゃなくて、class の中で、get とか書けるようになったらしい。 Sinatra は、ほんのちょっとだけ試したけど vegasは知らなかった。 Vegasを使えば、既存アプリを簡単にWebブラウザからアクセスできるようにインターフェースを変えられるらしい。 でもWebブラウザからのアクセスって便利かなあ。 Vegasの応用である、gemboxはこのサイトでも取り上げたことがあります。
Ramazeの話。もちろん日本語の部分は理解できたが、英語が速くてやっぱり聴き取れなくてへこむ。 3人の中では一番わかりやすい英語だと思ったけどスピードが速くてついていけない。 コーディングを見ていて、REST 対応が簡単そうだと思った。 ちなみに、Ramazeもほんのちょっぴり試してました。
昼休み。 Ruby256本極道編の第2刷の現物を初めて見た。
Ruby 1.9 での Rails の運用は、まだまだ実績がないらしい。 てっきりtaiyakingが1.9で開発しているのかと勘違いしていた。
OLEの話を聞かれる。 OLEみたいなもので、OpenOffice に UNO というのがあるので、Ruby バインディング作りませんか、OLEと同じくらい苦労しますよ、 と変な勧められ方をする。 調べてみたら、やっている人がいました。
コミュニティアピールは遅刻して聴き損ねました。ごめんなさい。
まつもとさんの基調講演。ブロックのローカル変数のスコープが変わるのは、一見、便利そうだけど、やっぱり気持ち悪いと思う。
Lightning Talks。RomanticRuby!の左端が欠けていたのが計算だとするとすごいと思った。 計算でなくても偶然を逆手に取ったプレゼンは面白かった。 仕事柄、個人的には、「Rubyでの(力技)でのネットワーク運用」というのが印象に残った。
スポンサー枠を聴く。 睡魔に襲われる。 意外だったのは、CakePHP よりも Ruby on Rails の方がパフォーマンスが良かったという結果。 結局、最後にボトルネックとなるのは、データベースなのか。 Rails関連の話が多いなか、一般向けの内容だけど、コアな須藤さんの話は異彩を放っていた。さすが。 全体的に、もう少し、Railsのコアな話とか聴けると期待していたんだけどな。
Beer bust。 須藤さんのパシリ、じゃなくて、須藤さんがブースを離れられないとのことなので、 コンビニで自分の分と須藤さんの分を適当に買ってくる。
この時間になって初めてささださんと遭遇し挨拶する。
うささんから ruby-core のメールもフォローしてWin32OLEの対応してくれているので何も文句はないとお褒めの言葉を頂戴する。 実際のところ、OLEをフォローする程度のことしか私にはできないのです。
前田さんにVim の Ruby バインディングのメンテナンスはしてないのかと聞いてみたら、してないと言われる。 Encodingのところまで実装しようとすると面倒ですよねと言われる。 その辺を実装してくれているんじゃないかと期待して前田さんに質問したんだけど、逆に先手を打たれてしまった。
| 固定リンク | コメント (4) | トラックバック (0)
0.8.5 が公開された(ruby-talk:341560)。
SSH経由でシェルコマンドを実行するライブラリ。rushにインスパイアされたとのこと。
セーフモードでないときは、該当メソッドがないときは、そのメソッドをシェルコマンドと見なして実行するようにした他2つの改訂。
| 固定リンク | コメント (0) | トラックバック (0)
2.0.5 が公開された(ruby-talk:341553)。
テキストをHTMLに変換するコンバータMarkdown の Ruby 版。
| 固定リンク | コメント (0) | トラックバック (0)
0.1.3 が公開された(ruby-talk:341550)。
IP パケットのようなバイナリデータの構造体を扱うときに重宝するライブラリ。 このバージョンで gem 化したそうです。
| 固定リンク | コメント (0) | トラックバック (0)
次のパッチで、Vim7.2 と Ruby 1.9.1p239 の組み合わせで ruby のオムニ補完が使えるようになりました。Windowsでは試してません。ruby は static link を前提にしてます。
| 固定リンク | コメント (0) | トラックバック (0)
もうすっかり情けないというか何というか。恥ずかしいです。
ボケてました。
私のポカミスでした。
Vim7.2 と Ruby 1.9.2 dev の組合せで例外が発生しても落ちなくなりました。
ちなみにrubyのバージョンは
ruby 1.9.2dev (2009-07-15 trunk 24117) [i686-linux]
です。
なお、Windowsでは試してません。あと、Rubyは static link を想定してます。
| 固定リンク | コメント (0) | トラックバック (0)
Vimにうまく組み込めないので、超簡易Ruby組み込みプログラムを作って試してみた。
$ cat myrubyapp.c
#include <stdio.h>
#include <ruby.h>
int main(int argc, char ** argv) {
int state = 0;
VALUE err;
VALUE msg;
RUBY_INIT_STACK;
ruby_init();
ruby_init_loadpath();
if (argc > 1) {
rb_eval_string_protect(argv[1], &state);
if (state) {
err = rb_errinfo();
msg = rb_obj_as_string(err);
fprintf(stderr, "%s\n", StringValuePtr(msg));
}
}
fprintf(stderr, "%s finished.\n", argv[0]);
return 0;
}
コンパイルした後実行してみる。
$ ./myrubyapp 'puts RUBY_DESCRIPTION' ruby 1.9.2dev (2009-07-11 trunk 24029) [i686-linux] ./myrubyapp finished.
では、例外を発生させてみる。
$ ./myrubyapp 'a = a + 1' undefined method `+' for nil:NilClass ./myrubyapp finished.
うーん。ちゃんと動いてしまうではないか。SEGVしてくれることを期待していたのに。 Vim の Ruby の組み込みってもしかして、メインスレッドじゃないところで動いているのかな。
| 固定リンク | コメント (0) | トラックバック (0)
3.0.0 が公開された(ruby-talk:341159)。
REST ライクな Webサービス API を簡単に実装できるようにするためのライブラリ。
REXMLの代わりにNokogiriを使うようにしたそうです。
| 固定リンク | コメント (0) | トラックバック (0)
Hijack が公開された(ruby-talk:341077)。
実行中のRubyアプリケーションのプロセスにアクセスするライブラリ。 ただし、Rubyアプリケーション側にもあらかじめ、Hijackを組み込んでおく必要がある。
| 固定リンク | コメント (0) | トラックバック (0)
ruby-versions.net が公開された(ruby-talk:341178)。
ssh経由で様々なrubyのバージョンをコマンドラインで実行できるサービスを提供するサイト。
Ruby 1.0 には、puts が無かったのか。
| 固定リンク | コメント (0) | トラックバック (0)
0.8.2 が公開された(ruby-talk:341024)。
Rackに対応したHTTPサーバー。 Socketの扱いに関するバグフィックス。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.3 が公開された(ruby-talk:341008)。
Ruby 1.8.6 用の STARTTlSをサポートした smtp ライブラリ。 1.8.7以降は標準添付で、STARTTLSをサポートしている。
mail_smtp_tlsが追加された他2つの変更。
| 固定リンク | コメント (0) | トラックバック (0)
0.0.3 が公開された(ruby-talk:340946)。
Ruby スクリプトの整形ツール。indent の Ruby版。
| 固定リンク | コメント (0) | トラックバック (0)
0.2.2.1 が公開された(ruby-talk:340938)。
TCP 越しの irb を提供するライブラリ。
Windowsでも動作するようになった他 2つの改訂。 いずれ、オリジナルに取り込まれるのかな。
ちょっと試してみた。
$ gem sources -a http://gems.github.com $ sudo gem install rogerdpack-live_console
あれっ?
bin/udscat
しかインストールされないんだけど、どうすればいいんだろう?
| 固定リンク | コメント (0) | トラックバック (0)
1.2 が公開された(ruby-talk:340938)。
IMAP server のメッセージを処理するクライアントソフト。
古いメールをアーカイブする imap_archiveが追加された他5つの改訂と1つのバグフィックス。
| 固定リンク | コメント (0) | トラックバック (0)
最初リリース が公開された(ruby-talk:340920)。
Ruby の alias を扱うためのライブラリ。
| 固定リンク | コメント (0) | トラックバック (0)
0.7.6 が公開された(ruby-talk:340889)。
5つのバグフィックスと3つの Ruby 1.9 の文法のサポート。 試してみたけど、1.9.2devでは動作しませんでした。
$ cat sample.rb
require 'rubylexer'
lexer=RubyLexer.new("dummy", "a = 1")
until EoiToken===(token=lexer.get1token)
p token
end
$ ruby sample.rb
.../rubylexer-0.7.6/lib/rubylexer.rb:2169: warning: else without rescue is useless
sample.rb:1:in `require': .../rubylexer-0.7.6/lib/rubylexer.rb:392: syntax error, \
unexpected ':', expecting keyword_then or ',' or ';' or '\n' (SyntaxError)
when NewlineToken: allow_eol or break
| 固定リンク | コメント (0) | トラックバック (0)
0.2.1 が公開された(ruby-talk:340888)。
String, Array, File, IO などのデータに対して同じインターフェースでアクセスできるようにするライブラリ。 改訂が1つとバグフィックスが1つ。
| 固定リンク | コメント (0) | トラックバック (0)
0.5.2 が公開された(ruby-talk:340887)。
Rubyのオブジェクトに対して git のようなハッシュと履歴の仕組みを持たせるようにするライブラリ。 あるオブジェクト a に対する変更を a.gibber_revert! で無かったことにできたりする。
なんかちょっといろいろ面白そうなことができそうなライブラリですね。
| 固定リンク | コメント (0) | トラックバック (0)
0.2.0 が公開された(ruby-talk:340869)。
Ruby用の JSON と JSONQuery インタプリタ。JSON を解釈して Ruby のオブジェクトに変換してくれる。
このバージョンで、JSONQueryの実装をほぼ完了したとのことです。
今日はリリースが多いので、最後まで行き着けるだろうか。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.0 が公開された(ruby-talk:340856)。
JavaScript のソースから、JavaScriptのパッケージを生成するコマンドラインツール。
Erubisが使用できるときには、ERBの代わりにErubisを使用するようにした他、 4つの改訂。
試してみた。
$ sudo gem install jake
$ cat foo.js
/*
* build at <%= Time.now.to_s %> by jake
*/
function sum(param1, param2) {
var sum_result;
sum_result = param1 + param2;
return sum_result;
}
$ cat jake.yml
source_directory: .
build_directory: .
layout: together
build:
src:
packer: false
min:
shrink_vars: true
private: true
packages:
foo_dist: foo
$ jake
.../methodphitamine-1.0.0/lib/methodphitamine/it_class.rb:14: warning: \
undefining `object_id' may cause serious problems
.../methodphitamine-1.0.0/lib/methodphitamine/it_class.rb:14: warning: \
undefining `__send__' may cause serious problems
foo_dist src /./foo_dist-src.js UP-TO-DATE
foo_dist min /./foo_dist-min.js UP-TO-DATE
$ cat foo_dist-src.js
/*
* build at 2009-07-07 22:21:10 +0900 by jake
*/
function sum(param1, param2) {
var sum_result;
sum_result = param1 + param2;
return sum_result;
}
$ cat foo_dist-min.js
/*
* build at 2009-07-07 22:21:10 +0900 by jake
*/
function sum(param1, param2) {
var sum_result;
sum_result = param1 + param2;
return sum_result;
}
Warningが出るけど、一応 1.9.2dev でも動きました。うーむ。 JavaScript の圧縮はよく知らないのだが、こういうものなのかな?
| 固定リンク | コメント (0) | トラックバック (0)
重要なお知らせ。
オムニ補完が動作しているのは、以下の組合せです。
Vim 7.2 と ruby 1.9.2dev (2009-07-05 trunk 23959) [i686-linux]
Vim 7.2.222 と ruby 1.9.2dev (2009-07-05 trunk 23959) [i686-linux]
以下の組合せだとSEGVしました。
Vim 7.2 と ruby 1.9.1p203 (2009-06-25 revision 23845) [i686-linux]
Vim 7.2.222 と ruby 1.9.1p203 (2009-06-25 revision 23845) [i686-linux]
念のため断わっておきますが、1.9.2dev だと動作して、1.9.1だと SEGVするというのは、記載ミスではありません。
本当にたまたま運良く動いているだけかも知れません。 公開したパッチは自己責任でご利用ください。
2009/07/16追記:SEGVしなくなったパッチ。
| 固定リンク | コメント (0) | トラックバック (0)
0.0.1 が公開されたruby-talk:340788。
あるオブジェクトで定義されているメソッドを定義されているクラス、モジュール別に表示するライブラリ。 最初のリリース。 試してみた。
$ sudo gem install looksee
$ cat sample.rb
require 'looksee/shortcuts'
class Foo
def foo
end
end
module Baz
def baz
end
end
class Bar < Foo
include Baz
def bar
end
end
bar = Bar.new
p(lp bar)
def bar.barbar; end
p(lp bar)
$ ruby sample.rb
Bar
bar
Baz
baz
Foo
foo
Object
dump_lookup_path lookup_path
Kernel
!~ hash public_method
=== inspect public_methods
=~ instance_of? public_send
... (中略)
BasicObject
! != == __send__ equal? instance_eval instance_exec
[#<Bar:0x82080c0>]
barbar
Bar
bar
Baz
baz
Foo
foo
Object
dump_lookup_path lookup_path
Kernel
!~ hash public_method
=== inspect public_methods
=~ instance_of? public_send
... (以下略)
動きました。
README.rdocには、~/.irbrc に
require 'looksee/shortcuts'
と書いておいて
$ irb irb(main):001:0> lp "hello"
みたいな感じで使うように書いてます。
| 固定リンク | コメント (0) | トラックバック (0)
Vim で Ruby 1.9 を使って --enable-rubyinterp したのは、vim-ruby と
autocomplpop.vim を利用してオムニ補完を実現したかったからなのでした。相変わらず、例外処理は解決できないのですが、十分には試していないもののオムニ補完が動きました。 ちゃんと、Stringオブジェクトの場合は、候補として、encoding とか each_byte とか表示されてます。今、まともに動いているvimを上書きするのはちょっと怖いので、別ディレクトリにインストールするようにして様子を見るか。ちなみに画像は、Ruby 1.9.2dev と組み合わせています。昨日のパッチだけだと駄目で、if_ruby.c の STR2CSTR を StringValuePtr に変更する必要があります。
| 固定リンク | コメント (0) | トラックバック (0)
Rubyとgemのrdocのサイトと Gembox が公開された(ruby-talk:340729)。
gemsのドキュメントは上のサイトを参照するようにすれば、 ローカルな環境にインストールしなくてよいので、gemsのインストールの時間が短縮できるよ ということのようです。
| 固定リンク | コメント (0) | トラックバック (0)
Vim の --enable-rubyinterp を Ruby 1.9.1 でも有効にしたいと思ってちょっと調べてみた。
試行錯誤して途中までできたのが、パッチ(vim72-ruby191.patch)です。
駄目なところ
確認したのは
ruby<<EOF
h={a:10}
VIM::message(h[:a])
EOF
というのが動いたことだけです。
やった後でよくよく探してみたらPatch for ruby1.9 works with vimというのが見つかったけど、見る限りでは、やってることは同じっぽいので、やっぱり、Rubyの例外でSEGVしそうな気がする
初期化の処理が他に不足しているのか?
ちなみにバックトレースはbacktrace.txtな感じです。
追記:SEGVしなくなったパッチ。
| 固定リンク | コメント (0) | トラックバック (0)
Unicornの使い方がさっぱりわからないのだが、Googleで調べていたら こんなの に遭遇した。
という訳で、まず、Sinatraを試すことにした。
$ sudo gem install sinatra
$ cat sinatra_example.rb
require 'sinatra'
get('/') { "hello world" }
$ ruby sinatra_example.rb
.../gems/sinatra-0.9.2/lib/sinatra/base.rb:930:in `detect_rack_handler': \
Server handler (thin,mongrel,webrick) not found. (RuntimeError)
えーと。少くとも Webrick は使えるはず。 で、探してみたら、本家で、"Server handler (thin, mongrel, webrick) not found" というのが見つかった。 あと日本語だと「Sinatraを0.9.2にupdateするとWEBrickで動作しなくなった という日記の記事が見つかった。
ここでは、日本語の記事に従って
$ cat sinatra_example.rb
require 'sinatra'
Rack::Handler.register 'Webrick', 'Rack::Handler::WEBrick'
get('/') { "hello world" }
$ ruby sinatra_example.rb
ちゃんと動いたみたいなので、ブラウザから http://localhost:4567/ にアクセス。 ちゃんと hello world と表示された。 ということで、Sinatra は、1.9.2dev でも動作しました。
で、肝心の unicorn なんだけど、やっぱり動かない...。
それにしても、Ruby unicorn で Google で検索したら、ここのサイトが一番最初に表示される。 なんでやねん。
| 固定リンク | コメント (0) | トラックバック (0)
3.2.0 が公開された(ruby-talk:340657)。
データベースツールキット。
再帰的 Query で使われる Common Table Expressions (CTE) をサポートした他、30個の改訂。
| 固定リンク | コメント (0) | トラックバック (0)
0.9.0 が公開された(ruby-talk:340616)。
Unix 用の Rack に対応した HTTP サーバー(なのかな)。 Ruby 1.8 と Ruby 1.9 の両方に対応。 HTTP パーザの部分だけC言語で書かれているが、それ意外は、Rubyで書かれているそうです。 100% pure Ruby 版も予定されているそうです。
今回のバージョンアップの本番環境への適用は推奨していないとのことです。
ちょっと試そうしたけど、使い方がわからない。 使えるようになるまでに時間がかかりそう。
| 固定リンク | コメント (0) | トラックバック (0)
1.2.0 が公開された(ruby-talk:340631)。
Gitを扱うための、Hoeのプラグイン。
git:tag と git:changelog 用の git-svn のサポート機能が追加されました。
| 固定リンク | コメント (0) | トラックバック (0)
~/.irbrc に
require 'hirb' Hirb.enable
と書いておくと便利かも知れない。
| 固定リンク | コメント (0) | トラックバック (0)
2.3.2が公開された(ruby-talk:340547)。
rake/rubygems の Rakeファイル用のヘルパーライブラリ。
1つの改訂と3つのバグフィックスが含まれています。
えーと、[ruby-talk:340547] の
splat all gems on release.(luis lavena)
の splat って split の typo? それとも splat に何か別の意味があるのかな?
あと、
Force read_utf to open file ascii-8bit. UGH. ruby 1.9 encoding is a PITA.
の最後の文の意味(PITAの意味)がわからないのですが、 多分、コレ、ruby 1.9 の encoding のことを褒めてないんですよねえ。きっと。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.4が公開された(ruby-talk:340545)。
Ruby で書かれた lexical ジェネレータ。 バグフィックスが1つ。
1.0.3のときと同様、1.9.2devでは動作せず。
$ sudo gem install rexical $ rex --version ...gems/rexical-1.0.4/lib/rexical/rexcmd.rb:66:in `initialize': \ undefined method `collect' for #<String:0x82ea6c8> (NoMethodError)
| 固定リンク | コメント (0) | トラックバック (0)
0.7.0が公開された(ruby-talk:340544)。
Windows のサービスを扱うためのライブラリ。
Service.create と Service.configure が Hashの引数を1つ取るように変わった他、バグフィックスが1つ。
| 固定リンク | コメント (0) | トラックバック (0)
0.2.2が公開された(ruby-talk:340525)。
irb に less や more のような Pagerの機能を付加したり、選択メニュー機能を付加したりするライブラリ。
irb の出力が1ページを越えるときだけ、Pagerを起動するようにした他4つの改訂。
less コマンドと同様に / による検索とか b で1ページ前に戻ったりとかできます。 1.9.2dev でも普通に使えました。これは結構便利。
| 固定リンク | コメント (0) | トラックバック (0)
0.5.0が公開された(ruby-talk:340522)。
デーモンプログラムやプロセスを扱うときに利用できるライブラリ。 1.8でも1.9でも、Ruby でも JRuby でも動作するそうです。
Child クラスのテストの追加他1つの修正。
適当に試してみた。かなりいい加減であまりよい例ではありません。
$ sudo gem install servolux
$ cat sample.rb
require 'servolux'
require 'logger'
$pwd = Dir.pwd
server = Servolux::Server.new('TimeStamp', :interval => 5, :logger=>Logger.new(STDOUT), :pid_file => $pwd + '/pid.txt')
class << server
def run()
open($pwd + "/timestamp.txt", "a+") {|ofs|
ofs.puts Time.now
ofs.flush
}
end
end
daemon = Servolux::Daemon.new(:server => server, :log_file => $pwd + '/sample.log')
daemon.startup
$ ruby sample.rb
D, [2009-07-01T21:35:37.012867 #4323] DEBUG -- : About to fork ...
D, [2009-07-01T21:35:37.022970 #4323] DEBUG -- : Waiting for "TimeStamp" to startup.
(しばらくすると)
...gems/servolux-0.5.0/lib/servolux/daemon.rb:367:in `wait_for_startup': \
"TimeStamp" failed to startup in a timely fashion. The timeout is set at \
30 seconds. (Servolux::Daemon::Timeout)
でも、デーモンとして動作しているので、別のターミナルで
$ tail -f timestamp.txt
2009-07-01 21:31:47 +0900
2009-07-01 21:31:52 +0900
2009-07-01 21:31:57 +0900
2009-07-01 21:32:02 +0900
....
でもって更に別のターミナルで
$ cat pid.txt
4332
$ ps -f -p 4332
UID PID PPID C STIME TTY TIME CMD
suke 4332 1 0 21:35 ? 00:00:00 ruby sample.rb
$ kill -9 4332
という訳で一応 Ruby 1.9.2dev でも動作するみたいですね。
| 固定リンク | コメント (0) | トラックバック (0)
json-1.1.7が公開された(ruby-talk:340519)。
JSON::Pure::Parser のセキュリティの脆弱性対応なので、バージョンアップしましょう。
| 固定リンク | コメント (0) | トラックバック (0)
O'Reillyから出版されたRuby本(ruby-talk:340480)。 Ruby 1.9 対応。2010年の3月には、creative commons license で公開予定だとか。
入門書でもリファレンスでもないRuby中・上級者を目指す人のための Rubyプログラミングの 実践的なテクニックを解説した本。...なのかな。
| 固定リンク | コメント (0) | トラックバック (0)
2.0.4が公開された(ruby-talk:340473)。
Markdownと呼ばれるテキストファイルをHTMLに変換するツールのRuby版。 いくつかのテストが追加された他、Discount 1.4.4 に対応。
| 固定リンク | コメント (0) | トラックバック (0)
0.7.0が公開された(ruby-talk:340472)。
RFC2445のiCalendar を扱うためのライブラリ。 RFC2445に従って実装されているらしい。
OccurrenceEnumerator#occurrences に :overlapping オプションが追加された他、 いくつかのバグフィックスと改訂。
| 固定リンク | コメント (0) | トラックバック (0)
0.0.2 が公開された(ruby-talk:340446)。
配列のeachなどのブロックの中の処理を並行処理させて高速化するライブラリ。 RedHat Linux や CentOS でforkifyが配列を返すようにした他1点の改訂。
| 固定リンク | コメント (0) | トラックバック (0)
0.10.0が公開された(ruby-talk:340381)。
SQLite データベースエンジンそのものををRubyの拡張ライブラリとして提供する。 SQLiteを別途インストールしなくても、SQLiteデータベースをRubyで扱うことができる。
SQLite 3.6.16に対応した他1点の改訂。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.3が公開された(ruby-talk:340374)。
Time.new よりも高性能で速いスクリプトの処理速度を測定するためのライブラリ。 一瞬、HitIMEs(ヒット、アイエムイーズ)と読み間違えた。 試してみた。
$ sudo gem install hitimes
$ cat sample.rb
require 'hitimes'
duration = Hitimes::Interval.measure do
a = 0
1000.times do |i|
a += i
end
end
puts duration
$ ruby sample.rb
0.000174
$ ruby -v
ruby 1.9.2dev (2009-06-25 trunk 23854) [i686-linux]
というわけで Linux 上のRuby 1.9.2dev では動作しました。
| 固定リンク | コメント (0) | トラックバック (0)
Windows 用の Ruby インストールパッケージ。 preview1 が公開された(ruby-talk:340362)。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.0が公開された(ruby-talk:340334)。
ディスク I/O のスループットの速い順にファイル名をソートするツール。
| 固定リンク | コメント (0) | トラックバック (0)
2.0.0が公開された(ruby-talk:340332)。
ディレクトリを閲覧してファイルをダウンロードするためのシンプルなWebサーバ。
| 固定リンク | コメント (0) | トラックバック (0)
0.0.7が公開された(ruby-talk:340247)。
Sinatra と DataMapper を使ったシンプルなWikiシステム。Qwickyは、1つのファイルで構成されているらしいです。
デモサイトが公開されています。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.2が公開された(ruby-talk:34024)。
Ruby 1.8.6 で SMTP STARTTLS に対応するためのライブラリ。1.8.7以降では、標準添付のnet/smtpに組み込まれています。
ふう。smtp_tls 1.0.1 とかバージョンが違っているものは飛ばしたけど、やっと追いついた。
| 固定リンク | コメント (0) | トラックバック (0)
1.4.2が公開された(ruby-talk:340149)。
siginfo がない環境でも info handler が動くようにしたらしいです。
| 固定リンク | コメント (0) | トラックバック (0)
1.2.0が公開された(ruby-talk:340132)。
seattle.rb で使われている minitest などのタスクを提供する Hoe のプラグイン。
| 固定リンク | コメント (0) | トラックバック (0)
2.3.1が公開された(ruby-talk:340130)。
rake や rubygems のヘルパーライブラリ。
使えるときは、Gem::PackageTaskを使うようにした他1つの改訂とバグフィックスが2つ。
| 固定リンク | コメント (0) | トラックバック (0)
0.3.1が公開された(ruby-talk:340112)。
シンプルなテスト用ライブラリ。
今回は機能の変更はなく大幅なリファクタリングと JRuby 1.9 でも動作するように改訂しているところだとか。
| 固定リンク | コメント (0) | トラックバック (0)
2.18.0、2.18.1と立て続けに公開された(ruby-talk:339992)。
website を構築、編集するツールなのかな。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.1が公開された(ruby-talk:339979)。
文字通りオブジェクトのclassを変更する機能を提供するライブラリ。自己責任で使うようにとのことです。 rakefileの変更とテストが追加されただけのようで機能的には、1.0.0と同じだと思われます。 (試してないけど。)
| 固定リンク | コメント (0) | トラックバック (0)
1.0.1が公開された(ruby-talk:339978)。
Rubyで(プロトタイプベースのオブジェクト指向プログラミングをするときに) unextend や uninclude ができるようにするためのライブラリ。
| 固定リンク | コメント (0) | トラックバック (0)
1.2.0が公開された(ruby-talk:339977)。
PNG を扱うためのライブラリ。 PNG::load_file が追加された他25の改訂。
| 固定リンク | コメント (0) | トラックバック (0)
1.2.0が公開された(ruby-talk:339976)。
サムネイルを生成するためのライブラリ。
quick_thumb が bin/image_science_thumb に組み込まれた他6つの改訂と3つのバグフィックス。
| 固定リンク | コメント (0) | トラックバック (0)
1.1.1が公開された(ruby-talk:339974)。
Ruby版 x86アセンブラ。そしてRuby1.9.2devでは今回も敗北。
| 固定リンク | コメント (0) | トラックバック (0)
1.1.0が公開された(ruby-talk:339973)。
Ruby 標準添付の profile の高速版。
memory_profiler.rb の追加の他1つの改訂。Ruby 1.9.2dev で試してみたけど、今回も敗北。
| 固定リンク | コメント (0) | トラックバック (0)
1.0.0.6が公開された(ruby-talk:339972)。
Ruby のスクリプトをCに変換するツール。
1.9との互換性を保つためにParseTreeからruby_parseを使うように変更した他、43個(!)の改訂。 ベータ版とのことです。
| 固定リンク | コメント (0) | トラックバック (0)