« 2009年5月 | トップページ | 2009年7月 »

2009年6月30日 (火)

[Ruby] Ruby Best Practices


O'Reillyから出版されたRuby本(ruby-talk:340480)。
Ruby 1.9 対応。2010年の3月には、creative commons license で公開予定だとか。



入門書でもリファレンスでもないRuby中・上級者を目指す人のための Rubyプログラミングの
実践的なテクニックを解説した本。...なのかな。


| | コメント (0) | トラックバック (0)

[Ruby] BlueCloth


2.0.4が公開された(ruby-talk:340473)。



Markdownと呼ばれるテキストファイルをHTMLに変換するツールのRuby版。
いくつかのテストが追加された他、Discount 1.4.4 に対応。


| | コメント (0) | トラックバック (0)

[Ruby] RiCal


0.7.0が公開された(ruby-talk:340472)。



RFC2445のiCalendar を扱うためのライブラリ。
RFC2445に従って実装されているらしい。



OccurrenceEnumerator#occurrences に :overlapping オプションが追加された他、
いくつかのバグフィックスと改訂。


| | コメント (0) | トラックバック (0)

[Ruby] forkify


0.0.2 が公開された(ruby-talk:340446)。



配列のeachなどのブロックの中の処理を並行処理させて高速化するライブラリ。
RedHat Linux や CentOS でforkifyが配列を返すようにした他1点の改訂。


| | コメント (0) | トラックバック (0)

[Ruby] Amalgalite

0.10.0が公開された(ruby-talk:340381)。

SQLite データベースエンジンそのものををRubyの拡張ライブラリとして提供する。 SQLiteを別途インストールしなくても、SQLiteデータベースをRubyで扱うことができる。

SQLite 3.6.16に対応した他1点の改訂。

| | コメント (0) | トラックバック (0)

[Ruby] hitimes


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)

[Ruby] Ruby Installers

Windows 用の Ruby インストールパッケージ。 preview1 が公開された(ruby-talk:340362)。

| | コメント (0) | トラックバック (0)

[Ruby] readorder


1.0.0が公開された(ruby-talk:340334)。



ディスク I/O のスループットの速い順にファイル名をソートするツール。


| | コメント (0) | トラックバック (0)

[Ruby] heel

2.0.0が公開された(ruby-talk:340332)。

ディレクトリを閲覧してファイルをダウンロードするためのシンプルなWebサーバ。

| | コメント (0) | トラックバック (0)

[本] なんか似たような本を読んだことがあるかもと思ったら、それは「続」の方だった

中篇2作を収録。うち1作には、『日本殺人事件』の探偵サムが登場する。 シリーズ・ファンは2人の探偵の共演を楽しめばよい。

| | コメント (0) | トラックバック (0)

2009年6月28日 (日)

[本] ファンタジーノベル作家が書いた連作短編ミステリ

事件の謎解きのために伏線が使われるのではなくて、話のオチのために伏線が使われている点で、 ちょっと味わい深い印象を受ける連作短編ミステリ。 最初は、それぞれが単独の話かと思いきや、共通点があって、最後には、その共通点にスポットライトが当たり、 ラストは、なるほど、ファンタジーノベル大賞出身の作家らしい結末で、そこがまたいい味出しているなあと思ってしまった。

伏線の張り方が巧みで一番ミステリ色が強く、それでいて一番事件性の低い「裏土間」が良い。

| | コメント (0) | トラックバック (1)

2009年6月27日 (土)

[Ruby] nono


nono の git リポジトリを作ってみました。


| | コメント (0) | トラックバック (0)

[Ruby] Qwicky


0.0.7が公開された(ruby-talk:340247)。



Sinatra と DataMapper を使ったシンプルなWikiシステム。Qwickyは、1つのファイルで構成されているらしいです。



デモサイトが公開されています。


| | コメント (0) | トラックバック (0)

2009年6月26日 (金)

[Ruby] smtp_tls


1.0.2が公開された(ruby-talk:34024)。



Ruby 1.8.6 で SMTP STARTTLS に対応するためのライブラリ。1.8.7以降では、標準添付のnet/smtpに組み込まれています。



ふう。smtp_tls 1.0.1 とかバージョンが違っているものは飛ばしたけど、やっと追いついた。


| | コメント (0) | トラックバック (0)

[Ruby] minitest


1.4.2が公開された(ruby-talk:340149)。



siginfo がない環境でも info handler が動くようにしたらしいです。


| | コメント (0) | トラックバック (0)

[Ruby] hoe-seattlerb


1.2.0が公開された(ruby-talk:340132)。



seattle.rb で使われている minitest などのタスクを提供する Hoe のプラグイン。


| | コメント (0) | トラックバック (0)

[Ruby] hoe


2.3.1が公開された(ruby-talk:340130)。



rake や rubygems のヘルパーライブラリ。



使えるときは、Gem::PackageTaskを使うようにした他1つの改訂とバグフィックスが2つ。


| | コメント (0) | トラックバック (0)

[Ruby] Verify


0.3.1が公開された(ruby-talk:340112)。



シンプルなテスト用ライブラリ。



今回は機能の変更はなく大幅なリファクタリングと JRuby 1.9 でも動作するように改訂しているところだとか。


| | コメント (0) | トラックバック (0)

[Ruby] zenweb


2.18.0、2.18.1と立て続けに公開された(ruby-talk:339992)。



website を構築、編集するツールなのかな。


| | コメント (0) | トラックバック (0)

[Ruby] production_log_analyzer


1.5.1が公開された(ruby-talk:339987)。



SyslogLogger によって生成されるログを解析するツール。



1.9.1 と 1.8.7 の両方で動作するようになった。


| | コメント (0) | トラックバック (0)

[Ruby] change_class


1.0.1が公開された(ruby-talk:339979)。



文字通りオブジェクトのclassを変更する機能を提供するライブラリ。自己責任で使うようにとのことです。
rakefileの変更とテストが追加されただけのようで機能的には、1.0.0と同じだと思われます。
(試してないけど。)


| | コメント (0) | トラックバック (0)

[Ruby] un


1.0.1が公開された(ruby-talk:339978)。



Rubyで(プロトタイプベースのオブジェクト指向プログラミングをするときに)
unextend や uninclude ができるようにするためのライブラリ。


| | コメント (0) | トラックバック (0)

[Ruby] Png


1.2.0が公開された(ruby-talk:339977)。



PNG を扱うためのライブラリ。
PNG::load_file が追加された他25の改訂。


| | コメント (0) | トラックバック (0)

[Ruby] ImageScience


1.2.0が公開された(ruby-talk:339976)。



サムネイルを生成するためのライブラリ。



quick_thumb が bin/image_science_thumb に組み込まれた他6つの改訂と3つのバグフィックス。


| | コメント (0) | トラックバック (0)

[Ruby] wilson


1.1.1が公開された(ruby-talk:339974)。



Ruby版 x86アセンブラ。そしてRuby1.9.2devでは今回も敗北。


| | コメント (0) | トラックバック (0)

[Ruby] zenprofile


1.1.0が公開された(ruby-talk:339973)。



Ruby 標準添付の profile の高速版。



memory_profiler.rb の追加の他1つの改訂。Ruby 1.9.2dev で試してみたけど、今回も敗北。


| | コメント (0) | トラックバック (0)

[Ruby] ruby2c


1.0.0.6が公開された(ruby-talk:339972)。



Ruby のスクリプトをCに変換するツール。



1.9との互換性を保つためにParseTreeからruby_parseを使うように変更した他、43個(!)の改訂。
ベータ版とのことです。


| | コメント (0) | トラックバック (0)

[Ruby] forkify


0.0.1が公開された(ruby-talk:339969)。



ブロックの中の処理を複数プロセス(スレッド?)で処理させることにより、全体の処理を高速化するためのツール。
まだ思いっきりベータ版とのことです。



試してみた。



$ sudo gem install forkify
$ cat a.rb # forkify 付属の example/a.rb そのものです。
require 'forkify'
r = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].forkify(6) { |num|
puts num
sleep(1)
num * 2
}
puts "Results: #{r.inspect}"
$ cat a2.rb # forkify を使わない場合
require 'forkify'
r = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map { |num|
puts num
sleep(1)
num * 2
}
puts "Results: #{r.inspect}"
$ time ruby a.rb
1
6
2
4
5
3
8
7
9
10
11
12
Results: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]
 
real 0m2.128s
user 0m0.036s
sys 0m0.040s
$ time ruby a2.rb
1
2
3
4
5
6
7
8
9
10
11
12
Results: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]
 
real 0m12.144s
user 0m0.040s
sys 0m0.008s


確かに速い。1.9.2dev でも動作した。



もう少し実用的な例で試せば嬉しさがわかるかも知れないと思って nono と組み合わせてみたのだが、
組み合わせ方が悪いのか結果が芳しくなかった。



$ cat t.rb
require 'forkify'
require 'nono/loader'
require 'nono/plate'
require 'nono/version'
require 'nono/htmlout'
require 'nono/textout'
(['p1.txt', 'p2.txt']*5).map { |file|
#(['p1.txt','p2.txt']*5).forkify {|file|
loader = Nono::Loader.new(file)
plate = Nono::Plate.new(loader.xlines, loader.ylines)
plate.solve
}


forkify 使っても、map使っても結果はあまり変わらず。
むしろ forkify を使う方がちょっと遅い結果に。


| | コメント (0) | トラックバック (0)

[Ruby] gauntlet


1.1.0が公開された(ruby-talk:339968)。



ごめんなさい。何をするツールだかよくわかりません。誰か解説してください。



$ sudo gem install gauntlet
$ gauntlet -h
usage: gauntlet <project>
runs gauntlet_<project>.rb
$ gauntlet grep
$ gauntlet list
Gauntlet Data:
$ gauntlet flay
broken projects : 0
great projects : 0
bad projects : 0
average flay : NaN +/- NaN


とかいろいろやったけど、やっぱりピンとこないです。
なんか、自分のプロジェクトで使用している gem の最新版をダウンロードして、
ちゃんと動作するかどうかチェックしたりするときに使えるツールなのかと思ったけど、
そうなのかどうなのかさっぱりわかりません。


| | コメント (0) | トラックバック (0)

2009年6月25日 (木)

[Ruby] Vlad


1.4.0が公開された(ruby-talk:339967)。



Capistrano よりもシンプルで pragmatic なデプロイツール。
デフォルトのアプリケーションサーバを、passengerに変更した他11の改訂。
なんか、Capistranoに対して、ちょっと挑発的なサイトのように思うのは私だけ?


| | コメント (0) | トラックバック (0)

[Ruby] flay


1.3.0が公開された(ruby-talk:339966)。



Ruby スクリプトのコードが「同じ」かどうかを比較するツール。



文法エラーのあるスクリプトであっても停止せずに処理を継続するようにした他5つの改訂。



試してみた。



$ sudo gem install flay
$ cat sample1.rb
def times5
(1..5).each do |i|
puts i
end
end
times5
$ cat sample2.rb
def output5
puts 1
puts 2
puts 3
puts 4
puts 5
end
output5
$ cat sample3.rb
def puts5
puts 1
puts 2
puts 3
puts 4
puts 5
end
puts5
$ flay sample1.rb sample2.rb
Total score (lower is better) = 0
$ flay sample2.rb sample3.rb
Total score (lower is better) = 38
 
 
1) Similar code found in :defn (mass = 38)
sample2.rb:1
sample3.rb:1
$ flay
Total score (lower is better) = 38
 
 
1) Similar code found in :defn (mass = 38)
sample2.rb:1
sample3.rb:1


おお。なかなか動いているっぽい。
ここで、ちょっと不自然な sample4.rb を追加してみよう。



$ cat sample4.rb
def times5(arg)
(1..arg.values[0]).each do |i|
puts i
end
end
times5(a:5)
$ flay
parse error on value 5 (tINTEGER)
skipping ./sample4.rb
Total score (lower is better) = 38
 
 
1) Similar code found in :defn (mass = 38)
./sample2.rb:1
./sample3.rb:1


1.9系のスクリプトは parse error にはなるものの確かに最後まで動いているっぽい。では、1.8系でも
大丈夫なように変更してみる。



times5({:a => 5})


に変更すると



$ flay
Total score (lower is better) = 38
 
 
1) Similar code found in :defn (mass = 38)
sample2.rb:1
sample3.rb:1


うーん。sample1.rb と sample4.rb は違うと判断するのか。
でも、同じメソッドがあると見つけてくれるみたいだから、リファクタリングのツールとして使えそうである。


| | コメント (0) | トラックバック (0)

[Ruby] flog


2.1.1が公開された(ruby-talk:339965)。



Ruby のスクリプトのコードの複雑さを測定するツール。



ParseTreeから、ruby_parserに切り替えた他1つの改訂。
ruby_parserに切り替えたことによって、わずかに3倍ほど遅くなったとのこと。



試してみた。



$ sudo gem install flog
Successfully installed flog-2.1.2


あれっ。2.1.2だな。



$ cat sample1.rb
def times5
puts 1
puts 2
puts 3
puts 4
puts 5
end
times5
$ flog sample1.rb
flog-2.1.2/bin/flog:11:in `<top (required)>': undefined method \
`flog_files' for #<Flog:0x8c35bcc> (NoMethodError)


うーん。なんか駄目っぽい。この後、while 使ったりとか、Array#each 使ったりとかした times5 で比較しようと思ってたんだけどな。
1.9.2dev では動作しなかった。



残り23個。


| | コメント (2) | トラックバック (0)

[Ruby] heckle その2


コードを変更したときに、その変更がユニットテストで網羅されているかどうかを確認するためのツール
という解釈が正しいですか?
(Heckle より。)


| | コメント (0) | トラックバック (0)

[Ruby] heckle

1.4.3が公開された([ruby-talk:339964])。

ユニットテストを支援するためのツール。 コードを変更してすべてのテストが失敗することを確認するためのツールということであってますか?

Ruby 1.9dev で試してみたけどエラーになった。

$ heckle -v
heckle-1.4.3/lib/test_unit_heckler.rb:3:in `require': \
no such file to load -- test/unit/autorunner (LoadError)

test/unit/autorunner.rb は、test/unit が minitest ベースに移行した関係で 1.9.2dev にはない。

| | コメント (0) | トラックバック (0)

2009年6月24日 (水)

[Ruby] 限界


あと20個残っているんだけど、今日はもう限界。


| | コメント (0) | トラックバック (0)

[Ruby] event_hook


1.0.1が公開された([ruby-talk:339963])。



rb_add_event_hook をラップして set_trace_func よりも速く動作する ruby のイベントフックを
実現するライブラリ。
1.9系では、set_trace_func も速度が改善されているようなので、event_hookによるメリットがどの程度か不明。



二度目の挑戦だったけど、やっぱり、demo.rb は実行できない。うーむ。


| | コメント (0) | トラックバック (0)

[Ruby] ruby2ruby


1.2.3が公開された([ruby-talk:339962])。



ParseTree で生成されたS式からRubyのコードを生成するツール。



 * Removed last of ParseTree. Fully switched to RubyParser.


とあったので、ちょっと試してみた。



$ sudo gem install ruby2ruby
$ r2r_show
...ParseTree-3.0.4/lib/parse_tree.rb:3:in `<top (required)>': \
ParseTree doesn't work with ruby 1.9.2 (LoadError)


うーむ。駄目か。


| | コメント (0) | トラックバック (0)

[Ruby] ruby_parser


2.0.3が公開された([ruby-talk:339961])。



ParseTree と同様にRuby のクラスやメソッドをパーズして Ruby の配列、文字列、シンボル、整数を使ったS式を返すライブラリ。
ParseTree と違い Pure Ruby で書かれている。



ちょっと試してみた。



$ sudo gem install ruby_parser
$ cat sample.rb
def conditional1(arg1)
if arg1 == {:a => 2} then
return 1
end
return 0
end
conditional1({:a => 1})
$ ruby_parse sample.rb
# file = sample.rb loc = 7
s(:block,
s(:defn,
:conditional1,
s(:args, :arg1),
s(:scope,
s(:block,
s(:if,
s(:call,
s(:lvar, :arg1),
:==,
s(:arglist, s(:hash, s(:lit, :a), s(:lit, 2)))),
s(:return, s(:lit, 1)),
nil),
s(:return, s(:lit, 0))))),
s(:call, nil, :conditional1, s(:arglist, s(:hash, s(:lit, :a), s(:lit, 1)))))
done


ちゃんと1.9.2devでも動作した。それでは、sample.rbをちょっと変更して



$ cat sample.rb
def conditional1(arg1)
if arg1 == {a:2} then
return 1
end
return 0
end
conditional1({:a => 1})
$ ruby_parse.rb
... #<Racc::ParseError: parse error on value ":" (tSYMBEG)>


ふーむ。"a:2" は駄目らしい。1.9系のスクリプトを完全にパーズするのはまだできないみたい。


| | コメント (0) | トラックバック (0)

[Ruby] ParseTree


3.0.4が公開された([ruby-talk:339960])。



Ruby のクラスやメソッドをパーズして Ruby の配列、文字列、シンボル、整数を使ったS式を返す拡張ライブラリ。
4つのちょっとした改訂と2つのバグフィックス。大きな変更は無さそう。



ちょっと試してみた。



$ sudo gem install ParseTree
$ parse_tree_abc
....ParseTree-3.0.4/lib/parse_tree.rb:3:in `<top (required)>': \
ParseTree doesn't work with ruby 1.9.2 (LoadError)


と叱られた。


| | コメント (0) | トラックバック (0)

[Ruby] sexp_processor


3.0.2が公開された([ruby-talk:339959])。



同じ作者のParseTreeからS式のプロセッサの処理を抜き出して、
ライブラリとして利用できるようにしたもの(という解釈で合ってますか?)



unique.rb を ParseTree から、sexp_processor に移動した他1つの改訂。


| | コメント (0) | トラックバック (0)

[Ruby] RubyInline


3.8.2が公開された([ruby-talk:339957])。



Rubyスクリプトの中に、他の言語のコードを埋め込むことができるようにするライブラリ。
Ruby 1.9 の __FILE__ に関するバグフィックスが1つ。



試してみた。



$ sudo gem install RubyInline
$ cat sample.rb
require 'inline'
class MyTest
def factorial(n)
f = 1
n.downto(2) { |x| f *= x }
f
end
inline do |builder|
builder.c "
long factorial_c(int max) {
int i=max, result=1;
while (i >= 2) { result *= i--; }
return result;
}"
end
end
m = MyTest.new
puts m.factorial(10)
puts m.factorial_c(10)
$ ruby sample.rb
3628800
3628800


1.9.2dev でも動作した。


| | コメント (0) | トラックバック (0)

[Ruby] minitest_tu_shim


1.3.1が公開された([ruby-talk:339957])。



minitest と test/unitのギャップを埋めるためのツール。



minitest + minitest_tu_shim = test/unit


ということかな。


| | コメント (0) | トラックバック (0)

[Ruby] minitest


1.4.1が公開された([ruby-talk:339956])。



test/unit と同等の機能を提供する test/unit よりも小さくて軽いテストツール。



Ctrl+C による停止や他の致命的例外をハンドリングするようにした他1つの改訂と1つのバグフィックス。


| | コメント (0) | トラックバック (0)

[Ruby] hoe-seattlerb


1.1.1が公開された([ruby-talk:339954])。



バグフィックスが1つ。


| | コメント (0) | トラックバック (0)

[Ruby] Hoe


2.3.0が公開された([ruby-talk:339953])。



Plugin 側でPluginを有効化する必要がなくなる他8つの改訂と2つのバグフィックス。


| | コメント (0) | トラックバック (0)

[Ruby] Autorake


autorake-1.0.gemが公開された([ruby-talk:339943])。



Autoconf,extconf,mkmf などを置き替えるツール。
作者は、ドキュメントを整備したり、RAAに登録したりするなどの価値がこのツール(プロジェクト)に
あるかどうかのコメントを求めているとのことです。


| | コメント (0) | トラックバック (0)

[Ruby] hoe-git


1.1.0が公開された([ruby-talk:339939])。



git のための Hoe プラグイン。機能追加など4つの修正。


| | コメント (0) | トラックバック (0)

[Ruby] centralized rubygems rdocs site


ソフトの紹介じゃないですが、
rubygems の rdoc の情報を集めたサイトが公開された([ruby-talk:339896])。
Gembox

core docs


| | コメント (0) | トラックバック (0)

[Ruby] Qwicky


0.0.2が公開された([ruby-talk:339896])。



Sinatra と DataMapper(データベースは、SQLite3)を使ったシンプルなwiki。
Qwickyは、1つのファイルから構成されているらしい。



今日は30個以上あるので、全部は厳しいかも...。


| | コメント (0) | トラックバック (0)

2009年6月23日 (火)

[Ruby] hoe-git


1.0.0が公開された([ruby-talk:339883])。



git を扱うための Hoe のプラグイン。タグをつけたりできるそうです。



今日はリリースが多くて、いつもにも増して、駆け足になってしまった。


| | コメント (0) | トラックバック (0)

[Ruby] nokogiri


1.3.2が公開された([ruby-talk:339877])。



XML HTML のパーザ。



Nokogiri::XML::DTD#validate メソッドでドキュメントの validateができる他に
バグフィックスがいくつか。


| | コメント (0) | トラックバック (0)

[Ruby] Pastejour


1.2.0が公開された([ruby-talk:339876])。



Mac OS X 10.2 に組み込まれたらしいネットワーク技術 Bonjour を
使ったブロードキャストのツール。



コマンドラインツールの改善など複数の改訂がされています。


| | コメント (0) | トラックバック (0)

[Ruby] lather


1.4.0が公開された([ruby-talk:339875])。
ファイルが変更されたかを監視するツール、ライブラリ。
デフォルトでは1秒毎に監視するそうです。



試してみた。



$ sudo gem install lather
$ mkdir temp
$ cd temp
$ lather '*.txt'


としておいて、別のターミナルから



$ cd temp
$ echo "hoo" > a.txt # lather側のターミナルで "Changed: a.txt" と表示
$ echo "bar" > b.txt # lather側のターミナルで "Changed: b.txt" と表示
$ rm a.txt # 何も反応なし
$ echo "hoo" > a.txt # lather側のターミナルで "Changed: a.txt" と表示
$ touch a.txt # lather側のターミナルで "Changed: a.txt" と表示


どうやら、ファイルのタイムスタンプを監視している感じか?
それでは



$ touch -t 06230000 a.txt # 反応なし。
$ touch *.txt # lather側のターミナルで "Changed: a.txt b.txt" と表示


デフォルトでは、lather は画面に変更があったことを通知するだけだが -r オプションを使えば
コマンドを実行できる。



1.9.2dev でも動作した。


| | コメント (0) | トラックバック (0)

[Ruby] backpack-journal


1.1.0が公開された([ruby-talk:339874])。



37signals が提供する Backup サービスのクライアント。ということでいいのかな。
まだコードがちゃんと動くかどうかもわからない状態だとか。


| | コメント (0) | トラックバック (0)

[Ruby] RSpec, RSpec-rails


1.2.7が公開された([ruby-talk:339863]、[ruby-talk:339864])。



Ruby (Ruby on Rails) で Behaviour Driven Development をするためのライブラリ。


| | コメント (0) | トラックバック (0)

[Ruby] Gemini


1.0.0が公開された([ruby-talk:339858])。



Gemini は Java game engine である、Slick ベースのゲームを開発するためのライブラリ。
JRuby が必要です。


| | コメント (0) | トラックバック (0)

[Ruby] hoe-debugging


1.0.0が公開された([ruby-talk:339851])。



デバッグに役立つ Hoe のプラグイン。Hoe 2.1以降が必要です。後、gdb か valgrind が必要とのことです。
これが最初のリリース。


| | コメント (0) | トラックバック (0)

[Ruby] faye


0.1.0が公開された([ruby-talk:339833])。



Faye は Bayeux プロトコルの Ruby による実装だそうです。
Comet のようなサーバー側から push する機能を提供するプロトコルらしいです。


| | コメント (0) | トラックバック (0)

2009年6月21日 (日)

[本] シリーズ第一作もこんなにベタベタなハイテンション・ラブコメだったかなあと思いながら読み終えた本

図書館シリーズ第二作。

長編小説なんだけど、連作短編小説っぽい構成になっており、それぞれの章でそれぞれのラブコメが展開される。 もう記憶が薄れているので、間違っている可能性もあるんだけど、 前作、図書館戦争は、戦闘シーンもあって冒険小説的な雰囲気もあったと思った。 そのつもりで読んだら、全然、戦闘シーンはなくて、設定が前作と同じだけど、ハイテンションなラブコメ全開ストーリーだった。 もう少しハードな展開を期待していたんだけど、これはこれで楽しめた。

| | コメント (0) | トラックバック (0)

[Ruby] nono


0.1.8 を公開しました。


| | コメント (0) | トラックバック (0)

[Ruby] RMagick


2.10.0 が公開された([ruby-talk:339730])。



Ruby から ImageMagick を扱うためのライブラリ。



GC.start をコールしたり、Image#destroy! をコールしなくても RMagick オブジェクトが解放されるようになったそうです。
(実績があまりないためか、)デフォルトでは、この機能は無効となっており、
この機能を利用するには、RMagic を require する前に



RMAGICK_ENABLE_MANAGED_MEMORY = true


とする必要があります。



なお、この機能を利用するためには、ImageMagick 6.5.3-10 が必要で、この機能を実現するために、ImageMagic 側も改訂されているようです。


| | コメント (0) | トラックバック (0)

2009年6月20日 (土)

[本] 帰ってきたちょっと変わった意外とマニアックな女警部補

福家警部補の挨拶に続くシリーズ第二段。倒叙形式の本格連作短編ミステリ集。

何を考えているのかさっぱりわからない、飄々としたマニアックな福家警部補の本気なのか冗談なのかわからない台詞が面白い。 会話のやりとりのユーモラスなところが、泡坂妻夫の亜愛一郎シリーズを連想させる。 いい味が出ている。 まるで古畑かと思わせるような幕切れが鮮かな「失われた灯」がいい。

「本当に変わった人だ。」
「ええ。よく言われます。」

| | コメント (0) | トラックバック (0)

[Ruby] gamebox


0.0.1 が公開された([ruby-talk:339707])。



Rubygame を使ったゲームソフトのテンプレートを提供するライブラリ。
Rubygame 版 rails みたいなものだと思えばよいのかな。


| | コメント (0) | トラックバック (0)

[Ruby] win32-taskscheduler


0.2.0 がリリースされた([ruby-talk:339676])。



Ruby から Windows タスク を操作するためのライブラリ。



TaskScheduler#exists? メソッドが追加されたりするなどの改訂。
0.2.0 は、Windows Vista 以降の Windows OS は今のところサポートしていないとのことです。


| | コメント (0) | トラックバック (0)

[Ruby] oyster


0.9.2 がリリースされた([ruby-talk:339660])。



コマンドライン引数のパーザ。Optperse みたいなもの。



ヘルプの出力の幅の設定に (cursesが使える場合) curses を使うようにした他に1つの改訂。



試してみた。



$ sudo gem install oyster
$ cat sample.rb
require 'rubygems'
require 'oyster'
spec = Oyster.spec do
file :file
end
opts = spec.parse
puts opts[:file]
$ ruby sample.rb --file sample.rb
require 'rubygems'
require 'oyster'
spec = Oyster.spec do
file :file
end
opts = spec.parse
puts opts[:file]


動いた。
optparse と違ってファイルの中身を読んだりもできる。


| | コメント (0) | トラックバック (0)

2009年6月19日 (金)

[Ruby] enterprise


ふと思いたって、こんなことを試してみた。



$ cat hello.rb
# -*- encoding:utf-8 -*-
# UTF-8 なファイルだとどうなるかテスト
class Foo
def bar
a = "これは"
b = "テスト"
puts (a + b).encoding
puts (a + b).encode("EUCJP")
end
end
Foo.new.bar
$ ruby -v hello.rb
ruby 1.9.2dev (2009-06-15 trunk 23694) [i686-linux]
UTF-8
これはテスト
$ enterprise hello.rb
ruby_parser-2.0.2/lib/ruby_lexer.rb:638:in `scan': \
invalid byte sequence in EUC-JP (ArgumentError)


それでは、ruby の -E オプションを使ってみる。



$ ruby -Eutf-8 /usr/local/ruby-trunk/bin/enterprise hello.rb


xmlに変換できた。 enterprise_ruby を試そう。



$ enterprise_ruby hello.xml
enterprise/file_loader.rb:5:in `eval': "\xE3" to UTF-8 in conversion
from ASCII-8BIT to UTF-8 to EUC-JP (Encoding::UndefinedConversionError)


それじゃあと



$ ruby -Eutf-8 /usr/local/ruby-trunk/bin/enterprise_ruby hello.xml
enterprise/file_loader.rb:5:in `eval': "\xE3" to UTF-8 in conversion
from ASCII-8BIT to UTF-8 to EUC-JP (Encoding::UndefinedConversionError)
$ ruby -E:utf-8 /usr/local/ruby-trunk/bin/enterprise_ruby hello.xml
enterprise/file_loader.rb:5:in `eval': "\xE3" to UTF-8 in conversion
from ASCII-8BIT to UTF-8 to EUC-JP (Encoding::UndefinedConversionError)
$ ruby -Eutf-8:utf-8 /usr/local/ruby-trunk/bin/enterprise_ruby hello.xml
enterprise/file_loader.rb:5:in `eval': "\xE3" to UTF-8 in conversion
from ASCII-8BIT to UTF-8 to EUC-JP (Encoding::UndefinedConversionError)


うーむ。 ちなみに hello.xml の中には、



# -*- encoding:utf-8 -*-


に相当すると思われる記載は見当たらず。



US-ASCII 以外は、まだちゃんと扱えないかも。


| | コメント (0) | トラックバック (0)

[Ruby] Verify


0.3が公開された([ruby-talk:339618])。



シンプルなテストツール。
gems 化したとのことです。
試してみたところ、すんなりインストールできてスンナリ動作しました。


| | コメント (0) | トラックバック (0)

[Ruby] eventful

1.0.0が公開された([ruby-talk:339587])。

Ruby に標準で添付されている Observer を拡張するライブラリ。

| | コメント (0) | トラックバック (0)

2009年6月18日 (木)

[Ruby] minitest


1.4.0 が公開された([ruby-talk:339564])。



test/unit と同様の機能を提供する test/unit よりコンパクトなライブラリ。
5つの機能追加と3つのバグフィックスがされてます。


| | コメント (0) | トラックバック (0)

[Ruby] enterprise


1.0.0 が公開された([ruby-talk:339546])。



Ruby のスクリプトを XML に変換したり、XML を Ruby のコードとしてロードしたりするライブラリ。



早速試してみた。



$ sudo gem install enterprise
$ cat hello.rb
class Foo
def bar
puts "baz"
end
end
Foo.new.bar
$ enterprise hello.rb # hello.xml が生成される。
$ enterprise_ruby hello.xml # xml ファイルを Ruby のスクリプトとしてロード
baz


1.9.2dev でも動きました。


| | コメント (0) | トラックバック (0)

[Ruby] hoe-seattlerb


1.1.0 が公開された([ruby-talk:339539])。



Hoe のプラグイン。email のプラグイン他1つの機能が追加。


| | コメント (0) | トラックバック (0)

[Ruby] hoe


2.2.0 が公開された([ruby-talk:339538])。



rake/rubygems の Rakefile 用ヘルパーライブラリ。
機能追加が8つとバグフィックスが3つ。


| | コメント (0) | トラックバック (0)

2009年6月17日 (水)

[Ruby] soleb と Ruby 1.9.X

soleb 0.0.1a が 1.9.1 でも 1.9.2dev でも一応動いた。 確認した環境は、

ruby 1.9.1p154 (2009-05-22 revision 23541) [i386-cygwin] 
ruby 1.9.2dev (2009-06-17 trunk 23725) [i386-cygwin] 

の2つ。

なお、1.9.1 だと、

 Sun May 17 09:31:05 2009  Masaki Suketa
 
         * ext/win32ole/win32ole.c (foletypelib_name): should return
           encoded name corresponding to WIN32OLE.codepage.      

が適用されてないと文字化けします(ChangeLogから抜粋)。 実際のところは、soleb.rb を実行してみたら文字化けしたので、調べて上のコミットをしました。

また、soleb の実行には、swin と vruby が必要です。 swin は、09/02/07、vruby は、08/02/09 を使用して確認しています。 swin と vruby は、nyasu さんが開発されており、 VisualuRuby計画のダウンロードのページからダウンロードできます。

| | コメント (0) | トラックバック (0)

[Ruby] UPnP


1.2.0が公開された([ruby-talk:339463])。



UPnP(Universal Plug and Play) プロトコルをサポートするためのライブラリ。



Windows 環境で socket が消えてしまうのを回避するなど2つの機能拡張と4つのバグフィックスがされてます。


| | コメント (0) | トラックバック (0)

2009年6月16日 (火)

[Ruby] Unity


まだプロトタイプの段階のようですが、
Unity というWebアプリケーションのプロジェクトが紹介されています([ruby-talk:339352])。



Unity は、複数のバージョンの複数の実装の Ruby の中の、RubySpec を解析、検索するレポーティング・ツールです。
たとえば、Rubyのメソッドを指定したときに、RubySpecを解析して、
そのメソッドがどの RubySpec の example で使われているかをレポートしてくれる(ようになる)とのことです。
今年の7月15日までにはサイトを公開、8月15日までには1.0を公開する予定のようです。
現時点でのUnityのスナップショットが公開されています。


| | コメント (0) | トラックバック (0)

[Ruby] JRuby-OpenSSL


0.5.1 が公開([ruby-talk:339351])。



Ruby の OpenSSL の JRuby版。



Net::SSH が動作するようにいくつか修正されています。
機能を 100% 動作させるためには、JRuby 1.3.1 が必要だとのことです。
その他に修正が1つ。


| | コメント (0) | トラックバック (0)

[Ruby] JRuby


1.3.1 が公開([ruby-talk:339340])。



BigDecimalで見つかったセキュリティのバグを修正した他2点の修正。
JRuby を使っている方は、お早目にバージョンアップをどうぞ。


| | コメント (0) | トラックバック (0)

2009年6月15日 (月)

[Ruby] Rubytest.vim


0.9.6 が公開([ruby-talk:339303])。



RSpec の



example "this is an example" do


のような形式をサポートするようになったそうです。


| | コメント (0) | トラックバック (0)

[Ruby] hoe-seattlerb


最初のバージョン 1.0.0 が公開された([ruby-talk:339278])。



Hoe の プラグイン。


| | コメント (0) | トラックバック (0)

[Ruby] hoe


2.1.0 が公開された([ruby-talk:339277])。



rake や rubygems の Rakefile 用の ヘルパーライブラリ。



バグフィックスが1つとマイナーアップデートが6つ。


| | コメント (0) | トラックバック (0)

[Ruby] BlueCloth


2.0.3 が公開された([ruby-talk:339276])。



MarkDown というテキストファイルをHTMlに変換するツールの Ruby による実装版。



Ruby 1.9.1でのテストが失敗していたのを修正した他改訂が1つ。



Ruby 1.9.2dev でちょっと試してみたけど、日本語には対応していないっぽい。


| | コメント (0) | トラックバック (0)

[Ruby] RiCal


0.6.3 が公開された([ruby-talk:339275])。



RFC2445 に従った iCalendar を扱うためのライブラリ。



今回はバグフィックスが1つ。


| | コメント (0) | トラックバック (0)

2009年6月14日 (日)

[英語] Monk シリーズのファンにとっては見逃せない一冊

海外ドラマでもお馴染みの名探偵 Monk シリーズ。

Monk のカウンセリングの先生である Dr. Kroger が医師の研究集会のためにドイツへ行ってしまう。 週一回のカウンセリングが受けられないと知った Monk は Dr. Kroger をドイツまで追いかけることに。 Monk はドイツで、Dr. Kroger が意外な人物と一緒にいるところを目撃して衝撃を受けてしまう。

いつもは、カウンセリングとしてちょっとだけ登場する Dr. Kroger が、今回は重要な役割で登場。 もしかしたら、もしかするかも、と思わせるような怒濤の展開が終盤まで続いて、一息入れる暇もなく途中からは一気読みしてしまった。 シリーズ化によるマンネリに落ち入らないように手を変え品を変え工夫をしている作者の努力には頭が下がります。 Monk シリーズのファンにとっては見逃せない一冊。

| | コメント (0) | トラックバック (0)

2009年6月13日 (土)

[Ruby] コミッター一覧


Ruby 関連のソフトではないですが、Yugui さんが ruby-talk に Ruby の コミッターの一覧リストを投稿されてます
([ruby-talk:339195])。
素晴らしい。ruby-list でも紹介したらいいと思うんだけどなあ。


| | コメント (0) | トラックバック (0)

[Ruby] hitimes


1.0.0が公開された([ruby-talk:339192])。



パフォーマンスを測定、記録するための速くて高精度のタイマー・ライブラリ。



現時点では、POSIX の clock_gettime() が動作する環境、Mac OS X、Windows の環境をサポートするそうです。
試しにインストールしてみたけど、コンパイルエラーになってしまいました。


| | コメント (0) | トラックバック (0)

[Ruby] Pure Ruby Zlib Library


1.0.0が公開された([ruby-talk:339190])。



Ruby の標準の拡張ライブラリである zlib と互換性のある pure ruby な zlib ライブラリ。
rubygems のように zlib を必要とするけれども、zlib のインストールが難しい環境
(例えば、mswinな環境だと自前でzlibをコンパイルしようとすると、いろいろと面倒です。)
のために用意されたライブラリ。



さすがにインストール手順は



$ sudo gem install pr-zlib


ではありません。



今度、機会があったら試してみたいと思います。


| | コメント (0) | トラックバック (0)

[Ruby] markup_validity


最初のリリースである1.0が公開された。



nokogiri を利用してドキュメントがvalidであるかどうかをチェックするライブラリ。
早速試してみた。



$ sudo gem install markup_validity
$ cat sample.rb
require 'test/unit'
require 'rubygems'
require 'markup_validity'
class ValidHTML < Test::Unit::TestCase
def xhtml_document
str =<<STR
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head><title>test</title></head>
<body>
<p>
<p>
Hello XHTML
</p>
</p>
</body>
</html>
STR
end
def test_i_can_has_valid_xhtml
assert_xhtml_transitional xhtml_document
end
end
$ ruby sample.rb
1) Failure:
test_i_can_has_valid_xhtml(ValidHTML) [sample.rb:22]:
Error on line: 7:
Element 'p': This element is not expected. Expected is one of ( a, br, span, bdo, object, applet, img, map, iframe, tt ).
 
6: <p>
7: <p>
8: Hello XHTML
9: </p>
10: </p>


素晴しい。1.9.2devでも動作した。これは使えるかも。


| | コメント (0) | トラックバック (0)

[Ruby] Win32OLE と Ruby の型マップ情報


[ruby-talk:339117]からの一連のスレッドを読んでいてふと思ったのだが、
Ruby の型と Win32OLEの型の対応づけの情報を得られるメソッドがあると嬉しい場合ってどのくらいあるだろうか?
でもって、場合によっては動的にその対応づけを変更できるというのはどうだろうか?



例えば、Win32OLE の VT_DATE は、Ruby の String と対応づいているんだけど、
自己責任で、 Ruby の Time 型と対応づけを変更できるとか
Ruby の Bignum は、WIN32OLE の VT_R8 に対応づけているんだけど、
自己責任で、 Win32OLE の VT_I4 にできたり、Win32OLE の VT_I8 に対応づけられるとか。
もちろん、対応づけは、Win32OLE が変換方法をあらかじめわかっているものに限定されます。
対応づけがわからない場合は、ブロックで指定してもらうとか。



えーと、メソッド名は、



 (1) ole2ruby_mapping_info()
 現在設定されているWin32OLE から Ruby へのマッピングの情報をHASHで返す。
 Ex: {VT_DATE => String, VT_BSTR => String, ...}
  
 (2) ruby2ole_mapping_info()
 現在設定されているRuby から Win32OLE へのマッピングの情報がHASHで返す。
 Ex: {String => VT_BSTR, Time => VT_DATE, ...}
  
 (3) set_ole2ruby_mapping(otype, rtype)
 このメソッドが呼び出された後は、常に Win32OLE の otype を Ruby の
 rtype に変換する。
 ただし変換できるRubyの型は、Win32OLEが変換方法をあらかじめ知っている型に
 限定される。
 知らない型が指定された場合は、例外。
  
 (4) ole2ruby_available_mapping_info()
 Win32OLE があらかじめ知っているWin32OLEからRubyへのマッピングの情報をHASHで返す。
 Ex: {VT_DATE =>[String, Time], VT_BSTR => [String],...}
  
 (5) set_ruby2ole_mapping(rtype, otype)
 このメソッドが呼び出された後は、常に Ruby の rtype を Win32OLEの
 otypeに変換する。
 ただし変換できるものは、Win32OLEが変換方法をあらかじめ知っている型に
 限定される。
 知らない型が指定された場合は、例外。
  
 (6) ruby2ole_available_mapping_info()
 Win32OLE があらかじめ知っているRubyからWin32OLEへのマッピングの情報をHASHで返す。
 Ex: {Bignum => [VT_I8, VT_I4, VT_R8], String => [VT_BSTR], ...}


とか。



(3') set_ole2ruby_mapping(otype, rtype=nil){|robj| ...}
このメソッドが呼び出された後は、常に Win32OLE の otype を Ruby の
rtype に変換する。
ただし、rtype が nil のときは、ブロックで変換方法を指定する必要がある。
robj は、otype からデフォルトの動作で変換された Ruby のオブジェクト。
 
(5') set_ruby2ole_mapping(rtype, otype=nil){|robj| ...}
このメソッドが呼び出された後は、常に Ruby の rtype を Win32OLEの
otypeに変換する。
ただし、otype が nil のときは、ブロックで変換方法を指定する必要がある。


うーむ...。 (3') や (5') は、ちゃんと使えるような機能が提供できるのかどうか、
そこまでやる意味があるのかどうかもよくわからない...。(1) から (6) までは、
やったとしても (3') や (5') は保留かな。


| | コメント (0) | トラックバック (0)

[Ruby] ConfigToolkit


2.3.0がリリース([ruby-talk:339144])。



いわゆるConfigファイルを扱うためのライブラリ。



Configファイルをロードして configuration クラスのインスタンスを生成するそうです。
複数の config ファイルのフォーマットに対応しているそうです。



ほんのちょっとだけ試してみた。
なんか使い方が複雑というかややこしいというか xxxreader みたいなのが Java っぽいというか、まあ、そんな感じがするのは私だけでしょうか?
examples/config_toolkit_config_example.rb は 1.9.2dev でも動きました。


| | コメント (0) | トラックバック (0)

[Ruby] RiCal


0.6.2がリリース([ruby-talk:339046])。



RFC2445に従ったiCalendar を扱うためのライブラリ。



バグフィックスが1つ


| | コメント (0) | トラックバック (0)

2009年6月11日 (木)

[Ruby] Win32OLE と PROPERTY PUT


[ruby-talk:338999]の話。
あれっ?
なんかメソッドなかったっけ?
と思って調べたが、該当するメソッドが見つからない。
なかったのか...。うーむ...。



そういえば、olegen.rb はどうやっていたんだっけと調べてみたら、姑息な手段で取得していた。



本当はどうすればいいのかなあ。
ていうか、なんで、そもそも姑息(かつ不完全)な手段しか用意してないんだっけ?



自分で作っといてアレだが、まったく思い出せない...。


| | コメント (0) | トラックバック (0)

2009年6月10日 (水)

[Ruby] mall


0.0.1がリリース([ruby-talk:338861])。



Ruby から mallinfo と mallopt にアクセスするためのライブラリ。


| | コメント (0) | トラックバック (0)

2009年6月 9日 (火)

[Ruby] linkparser


1.0.4がリリース([ruby-talk:338793])。



link-grammar libraryの Ruby バインディング。



link-grammar library というのは、英語の文をパーズして、
それが英文として正しい単語の並びになっているかどうかがわかるような library っぽい。
(多分それ以外の機能もあるんだと思いますが、ちゃんと読んでません。)



例えば、link-grammar library を使うと



The fact that he smiled at me gives me hope


は正しくて



The event that he smiled at me gives me hope


は間違いという判定ができるらしい。



ところで、



Janet, who is an expert on dogs, helped me choose one.
The dog that we eventually bought was very expensive.


は正しくて、



Janet who is an expert on dogs helped me choose one.
The dog, that we eventually bought, was very expensive.


は間違いということらしい。



うっかり



Janet who is an expert on dogs helped me choose one.


と間違えて書いちゃう自信はあっても、



Janet, who is an expert on dogs, helped me choose one.


と書く自信は全くないです。



余談はここまでにしておいて、本題にちょっとだけ話を戻すと、
今回のバージョンアップで、link-grammar-4.5.6 対応となったそうです。


| | コメント (0) | トラックバック (0)

[Ruby] require_all


1.0.0がリリース([ruby-talk:338776])。



複数ファイルをまとめて require するためのライブラリ。
これが最初のリリースです。


| | コメント (0) | トラックバック (0)

[Ruby] WURFL


1.1.0がリリース([ruby-talk:338774])。



WURFL を扱うためのライブラリ。



rubygems に対応したそうです。



しばらく手を加えることがなかったそうなのですが、作者自身がWURFL
のデータを扱う必要があって手を加えて gem 化したそうです。


| | コメント (0) | トラックバック (0)

[Ruby] httpclient


2.1.5がリリース([ruby-talk:338761])。



文字通り、HTTP のクライアントライブラリ。
Perlの libwww-perl の Ruby版。



2.1.4 に含まれている CA 証明書ファイルの有効期限が2009年11月となっているので、
httpclientを使って https 接続している人は 2.1.5 にバージョンアップするようにとのことです。



早速試してみた。



$ sudo gem install httpclient --source http://dev.ctor.org/download/
$ cat sample.rb
require 'httpclient'
clnt = HTTPClient.new
str = clnt.get_content('http://www.ruby-lang.org/ja/')
puts str
puts str.encoding
$ ruby sample.rb
....
US-ASCII


うーん。それでは、



$ ruby -E utf-8:utf-8 sample.rb
...
US-ASCII


一応すんなり 1.9.2dev でも動いた。encoding はどうするのがいいんでしょうね。


| | コメント (0) | トラックバック (0)

[Ruby] RKelly


1.0.1がリリース([ruby-talk:338753])。



JavaScript をパーズしてパーズ木を返すライブラリ。



バグフィックスが1つ。



早速試してみた。



$ sudo gem install rkelly
$ cat sample.rb
require 'rkelly'
parser = RKelly::Parser.new
ast = parser.parse(
"for(var i = 0; i < 10; i++) { var x = 5 + 5; }"
)
ast.each do |node|
node.value = 'hello' if node.value == 'i'
node.name = 'hello' if node.respond_to?(:name) && node.name == 'i'
end
puts ast.to_ecma
$ ruby sample.rb
for(var hello = 0; hello < 10; hello++) {
var x = 5 + 5;
}


おお。すんなり 1.9.2dev でも動いた。素晴らしい。


| | コメント (0) | トラックバック (0)

2009年6月 8日 (月)

[Ruby] Operation Lambda


1.0 alphaがリリース([ruby-talk:338679])。



Operation Lambda というゲームの Ruby によるリメイク。


| | コメント (0) | トラックバック (0)

[Ruby] nokogiri

HTML, XML, SAX パーザ。

今回はバグフィックスのみっぽい。

| | コメント (0) | トラックバック (0)

[Ruby] Rexical

Rubyで書かれた lexical スキャナ、ジェネレータ。

rex というのがあるそうなので、Rexical に名前を変えたそうです。

ちょっと 1.9.2dev で試してみた。

$ sudo gem install rexical
$ rex --help
...(略)/rexical-1.0.3/lib/rexical/rexcmd.rb:66:in `initialize': undefined \
method `collect' for #<String:0x8213650> (NoMethodError)

String#collect は、1.9には存在しないので、動きません。

| | コメント (0) | トラックバック (0)

[Ruby] Oughtve

コマンドラインから使用するディレクトリー指向のメモツール。

どう発音するのかわかりませんが、コマンドラインでなんか作業しているときに コマンドラインからメモしておいて後から読めるようにするツールっぽい。 メモしたカレントディレクトリの情報も保持してくれそうな感じ。

1.9.2dev でちょっと試してみた。

$ sudo gem install dm-core
$ sudo gem install data_objects
$ sudo gem install do_sqlite3
$ oughtve --bootstrap
near "DEFAULT": syntax error
Query: INSERT INTO "oughtve_chapters" DEFAULT VALUES
Try oughtve --help

うーん。最初から駄目っぽい。という訳で使い勝手のよいツールなのかどうかさっぱりわからず。

| | コメント (0) | トラックバック (0)

[Ruby] RiCal

RFC2445 に忠実な実装の iCalendar を扱うためのライブラリ。

今回は、0.6.0 と機能は変化なしで、rake task のちょっとしたバグフィックスのみだそうです。

| | コメント (0) | トラックバック (0)

2009年6月 7日 (日)

[本] Pragmatic Bookshelf 初のフィクション

まだベータ版だし、読んでもいないし、買ってもいないんだけど。 初のフィクションということでリンク。 ファンタジーなのか?

| | コメント (0) | トラックバック (0)

2009年6月 6日 (土)

[本] あまりにもけれん味が無く伏線が地味過ぎて傑作に成り損ねたと思ってしまった佳作ミステリ

小学生のときに死んでしまった真乃の幼馴染の速人。 もう一人の幼馴染である享。そこに現れる速人に良くにた青年。

まあ、どこにでもありそうな設定だし、 読んでいるこちらが恥ずかしくなってくるような、王道な展開だなと思ったのだが、 そう考えた時点で、見事に作者の術中にはまってしまっていた。

事件の真相の後に明かされるエピソードは、あまりに唐突過ぎて反則で余計なものに思えてしまう。 ところがもう一度読み返してみると、これが、ちゃんと伏線もあるし、フェアな書き方もしているし、 結構、作者は計算して書いているんじゃないかと思う。 そのさりげなさすぎる伏線が逆に災いしているのか、一読した時点では、ミステリーの傑作だとは素直に思えなかった。 もう少し見せ方を工夫すれば、佳作に踏みとどまることなく、傑作と評価できたはずの実に惜しい作品だと思う。

| | コメント (0) | トラックバック (0)

[Ruby] Sup


0.8.0がリリース([ruby-talk:338502])。
コンソールベースのメールクライアント(MUA)。



Undo 機能の追加、utf8やWidecharacterのバグフィックスや
zsh補完機能のサポート(ってどういう機能だろう? 操作コマンドのzshライクな補完機能ってこと?)など
いくつかの機能追加とバグフィックスがされています。



1.9.2dev で試してみた。



$ sudo gem install sup
Building native extensions. This could take a while...
... (中略)
r_qparser.c: In function 'frt_get_fields':
r_qparser.c:56: error: 'struct RArray' has no member named 'len'
r_qparser.c:57: error: 'struct RArray' has no member named 'ptr'


うーん。残念。Sup が利用している ferret が 1.9に対応していないっぽいですね。


| | コメント (0) | トラックバック (0)

[Ruby] ri_cal


0.6.0がリリース([ruby-talk:338520])。
RFC2445 に忠実な実装をしたiCalendarライブラリ。



いくつかパフォーマンス関係の改善がされているようです。


| | コメント (0) | トラックバック (0)

[本] 現場のプロって意外と泥臭いこともやっているんだなということがわかる本

今更ながら、CSSをちょっとは勉強しようと思って買った本。

ブラウザ(のバージョン)による見栄えの違いを吸収するために1pxだけずらす処理をしていたりして、 時には、プロも泥臭い、ある意味涙ぐましいまでの細工をするんだなということがわかる。

タイトルは、『XHTML + CSS』となっているが、XHTMLの解説は50ページぐらいで、残りはすべてCSSについての解説。 CSSの基本的な考え方に始まって、ナビゲーションの作り方や段組みの作り方、 ブラウザの違いに対応するためのテクニック、 携帯用のCSSやトラブルシューティングの例など応用まで解説されている。

細かいところまで網羅的に解説した本ではなく、CSSを使う上で理解しておきたい基本的な考え方とCSSの使い方の実践例を解説した本である。

実際にCSSを使い込なすとなるとCSSを一通り網羅した本がちょっと欲しいかなと思ったりしている。

| | コメント (0) | トラックバック (0)

2009年6月 5日 (金)

[Ruby] Ramaze


ちょっと試してみた。



$ sudo gem install ramaze
$ cat start.rb
require 'rubygems'
require 'ramaze'
class Hello < Ramaze::Controller
def index
"Hello, World"
end
end
Ramaze.start
$ ruby start.rb


Webブラウザから、http://localhost:7000/ にアクセス。1.9.2dev でもちゃんと動いた。



更に試す。



$ ramaze create myapp
$ cd myapp
$ ramaze start


Webブラウザから http://localhost:7000/ にアクセス。1.9.2devでも Welcome to Ramaze! の文字が確認できた。
オールインワンな rails に比べると ramaze コマンドは軽快な感じ。
ORMやテンプレートエンジンを好きなものから選択できる分、ramaze 自身は身軽になっているようです。


| | コメント (0) | トラックバック (0)

[Ruby] Sequel

3.1.0 がリリース([ruby-talk:338387])。

ORMの機能も持っているデータベースアクセスのためのツール。

従来のSequelでもいくつかのメソッドを組み合わせて実現していた機能を単独のpluginとして提供するなど、 いくつか機能が追加されています。

| | コメント (0) | トラックバック (0)

[Ruby] JRuby


1.3.0 がリリース([ruby-talk:338313])。



何と言っても目玉は、GAE/J な環境の対応でしょう。


| | コメント (0) | トラックバック (0)

2009年6月 4日 (木)

[Ruby] ZenTest


4.1.1 がリリース([ruby-talk:338289])。



Multiruby.run をコールしたときにロギングされないことがあるバグがFixされています。


| | コメント (0) | トラックバック (0)

2009年6月 3日 (水)

[Ruby] ZenTest, autotest-rails


ZenTest 4.1.0
autotest-rails 4.1.0がリリース
([ruby-talk:338252]、
[ruby-talk:338253])。



autotest-rails が ZenTest から分離されたようです。


| | コメント (0) | トラックバック (0)

[Ruby] Hoe


2.0.0 がリリース([ruby-talk:338224])。



rubygems を生成するためのヘルパーライブラリ。


| | コメント (0) | トラックバック (0)

[Ruby] Localmemcache


0.4.1 がリリース([ruby-talk:338159])。



mmapベースの Ruby と C言語用の key-value ストア。



Ruby 1.9.1(以降)でコンパイルエラーになるバグに対応したそうです。



早速インストールしてみた。



$ sudo gem install localmemcache
Password:
Building native extensions. This could take a while...
Successfully installed localmemcache-0.4.1
1 gem installed


試してみた。



$ cat lmc.rb
require 'localmemcache'
$lm = LocalMemCache.new :namespace => "viewcounters"
$lm[:foo] = 1
$lm[:foo]
$lm.delete(:foo) # lmc.rb はここまで。
$ ruby lmc.rb
...(中略)
localmemcache.rb:42:in `_new': sem_open: Function not \
implemented (LocalMemCache::LockError)


うーん。


| | コメント (0) | トラックバック (0)

2009年6月 2日 (火)

[Ruby] Ramaze


2009.06 がリリース([ruby-talk:338154])。



Rackベースの Web フレームワーク。
ERB はじめ、様々なテンプレートエンジン、ActiveRecord はじめ、様々な ORM を利用可能。



モジュール化されていて使いたいところだけを使えばよいという自由さ、シンプルさがウリなのかな。


| | コメント (0) | トラックバック (0)

[Ruby] nfc


1.0.0 がリリース([ruby-talk:338135])。



RFID を読むためのライブラリ。
今のところISO1443Aのみサポートだそうです。。


| | コメント (0) | トラックバック (0)

[Ruby] MagicWand


0.1.0 がリリース([ruby-talk:338124])。



ImageMagic の Ruby バインディングの最初のベータ版だそうです。
インストールの手間は、RMagicと同じくらい。
RMagicのサポートは今後も続ける予定だそうです。



でもって、RMagicとの違いは、



MagickWand is to RMagick what Heath Ledger's Joker is to Jack Nicholson's Joker.


ということらしいのですが、私には、この喩えがさっぱりわかりません。
誰か解説してください。


| | コメント (0) | トラックバック (0)

[Ruby] Rich Units


0.5.0 がリリース([ruby-talk:338091])。



いわゆるユニットテストの類のツールかと思ったら、単位のUnitのことらしいです。



例えば、



2.hours # => 7200


とかになるそうな。これって Rails の ActiveSupport と競合しないのかな。



試してみた。



$ sudo gem install rich_units
Successfully installed rich_units-0.4.1


あれ。0.4.1がインストールされてしもうた。



$ ruby -rrich_units -e 'puts 2.hours'
0 seconds 0 minutes 2 hours 0 days
$ ruby -rrich_units -e 'p 2.hours.class'
RichUnits::Duration
$ ruby -rrich_units -e 'p (2.hours + 3.hours)'
0 seconds 0 minutes 0 hours 900 days


うん?なして?



$ ruby -rrich_units -e 'p 1.petabyte'
9007199254740992
$ ruby -rrich_units -e 'p 1.kilo'
1000
$ ruby -rrich_units -e 'p 1.kilobyte'
8192


ああ bit なのね。
ちょっと hours の扱いが怪しいものの 1.9.2dev でも動きました。


| | コメント (0) | トラックバック (0)

[Ruby] ri_cal


0.5.3 がリリース([ruby-talk:338055])。



RFC2445 iCalendar の Ruby 実装の一つ。



time zone の列挙の処理速度が改善されているなどの改訂がされています。


| | コメント (0) | トラックバック (0)

« 2009年5月 | トップページ | 2009年7月 »