« 2009年4月 | トップページ | 2009年6月 »

2009年5月31日 (日)

[英語] なかなか Ambrose のことを受け入れられない名探偵

Beyond Earth という SFテレビシリーズのファンの集いの場で起きた殺人の捜査を手伝うことになるMonk

はたから見れば同じように細かいことに拘る人間なのに、 細かいことに拘る兄(弟?)の Ambrose のことをなかなか受け入れることができないMonk。 逃げなくちゃいけないときに、どうしても他のことが気になる Monk。 相変わらずいい味出してます。

いつもながらに本格テイスト溢れる謎が提供されるし、意外な犯人も用意されてはいるものの、ラストの謎解きが弱かったような気がする。

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

[Ruby] nokogiri


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



FFI を利用して、JRuby 1.3.0 をサポートしている他、いくつかの機能追加がされています。



1.3.0RC2じゃないんだ...。


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

[Ruby] Ruby2Java compiler

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

動的に定義されるRuby のクラスも普通のJavaのクラスに変換するライブラリ。 JRuby 1.3.0RC2 か、それ以降のバージョンが必要です。

ブログには書いてあったんだけど、公開し忘れてました。

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

[Ruby] Ruby XDG

0.5.2 がリリース([ruby-talk:337958]) 。

アプリケーションの config ファイルを XDG の標準ディレクトリ構成に従って配置するためのライブラリ(かな?)。

0.5.2となっていますが、APIはこれで固定で、今後、既存のAPIを変更する予定はないそうです。 いくつか機能を追加する予定はあるそうですが、既存のAPIを変更しない形での機能追加になるとのことです。

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

[Ruby] RubyGems


1.3.4 がリリース([ruby-talk:337922])



RubyGems 1.1 や 1.2 の場合、rubygems-update がインストールされていないとアップグレードできないそうです。


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

[Program] VC++ 2008 Express Edition SP1


今更、インストールしてみた。



Ruby trunkのコンパイル。



nmake -f enc.mk RUBY=".\miniruby.exe -I../../../../svn/ruby/trunk/lib "


MINIRUBY=".\miniruby.exe -I../../../../svn/ruby/trunk/lib " -l encs
compiling bigdecimal
makefile(242) : fatal error U1038: 内部エラー : レクサー
Stop.
NMAKE : fatal error U1077: '.\miniruby.exe' : リターン コード '0x1'
Stop.


うーん。ruby_1_9_1 ブランチをコンパイル。特にエラーもなくコンパイルできた。
VC++ 2008 のインストールそのものが失敗している訳ではないみたいだ。


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

2009年5月30日 (土)

[Program] IDE と Web開発


諸事情により、私は古いIDEを使うことがあります。
これはそんな私の戯言なのですが...



VS.Net 2003 で、ASP.NETのコードをいじったりしているのですが、
ASP.NETによって出力されるページを内容(HTML)と見てくれ(CSS)に分離しようとすると結構面倒です。
というかそういうことをサポートするつもりがないように感じられます。



VS.Net 2003を使って背景色とか指定すると最終的に生成されるページは
HTMLの中のタグのstyle要素で背景色が指定されたものになります。
(自動生成される、aspxファイルからして、style要素で背景色が指定されている。)



結局HTMLとCSSに分離しようと思ったら、VS.Net 2003では、背景色は指定しないで、cssclass属性だけ指定しておいて、
CSSファイルを直接エディタで編集していくやり方になってしまいます。
ある程度までならこれで可能なのですが、DataGridに関しては手を出せないでいます。
DataGridは、最終的に、HTMLの table になります。
table だと当然、罫線のスタイルとか色とかヘッダの背景色とか、
そういうのをまとめてCSSで指定してしまいたいところなのです。
ですが、DataGrid で cssclass属性をどこでどう指定してあげればよいのか、さっぱりわからない状態です。



で、VS.Net 2003を使えば使うほど、HTMLとCSSの分離とかには向かないツールだなとつくづく感じてしまう訳です。



2005は、2003ほど使ってないのですが、この辺はやっぱり駄目っぽい感じがしてます。
2008とか2010だと改善されているのでしょうか?
あと、Rails の IDE だとこの辺どんな感じなんでしょうね。


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

2009年5月29日 (金)

[Ruby] adsf


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



Rackベースのファイルサーバ。
adsf は、A Dead Simple Fileserver の略らしい。
機能として提供されるのはただ一つ。ファイルを提供することだけ。
試してみた。



$ sudo gem install adsf
$ sudo gem install rack
$ echo "test" > foo
$ echo "<html><body>this is test</body></html>" > foo.html
$ adsf


としておいて
Firefox から http://localhost:3000/foo や http://localhost:3000/foo.html にアクセス。
1.9.2dev でもちゃんと動いた。 http://localhost:3000/ だと



File not found: /


と叱られた。


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

[Ruby] Endless Ruby

0.0.2 がリリース([ruby-talk:337823])。

Python のようなインデントの Ruby スクリプト(end のいらないRubyスクリプト)を 処理するプリプロセッサ

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

[Ruby] Unicorn

0.8.1 がリリース([ruby-talk:337790])。

Rack対応のHTTPサーバの1つ?

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

[Ruby] Anise


0.4.0 がリリース([ruby-talk:337765])。



コメントベースでも、マクロベースでもないアノテーションを提供する Ruby のライブラリ。



次のスクリプトで試してみたところ、1.9.1でも普通に動いた。



require 'anise'
class X
include Anise
ann :grape, :class=>String
annotator :doc
doc "This is an entry."
def bar
puts "this is bar"
end
attr_accessor :baz, Integer, :max => 10
end
X.new.baz = "foobarbaz" # non exception raised :-)
p X.ann(:grape)
p X.ann(:bar)
p X.ann(:baz)

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

2009年5月28日 (木)

[Ruby] JRuby


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



RC2 は、JRuby が GAE/J の環境でも動作するためのいくつかの修正がされているとのことです。


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

[Ruby] ShinyCocos


pre-release のアナウンス([ruby-talk:337590])。



ShinyCocos は cocos2D for iphone game framework の Ruby バインディングだそうです。
ruby-talk で概要を紹介するだけの段階まで進んだと考えて今回のアナウンスに至ったとのことです。


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

2009年5月27日 (水)

[Ruby] ri_cal


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



RFC2445 に忠実な iCalendar を扱うためのライブラリ。
繰り返しのイベントの列挙などもできるみたいです。


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

2009年5月26日 (火)

[Ruby] monkeypatch


0.1.2 がリリース([ruby-talk:337429])。



Ruby のライブラリを自分で修正したい場合のAPIを提供するライブラリ。



まだアルファバージョンだとのことで、フィードバックが欲しいそうです。



ちょっと興味があったので、0.1.2 をダウンロードして



$ rake test


してみたら



13 tests, 0 assertions, 0 failures, 13 errors, 0 skips


となってしまった。うーん...。


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

2009年5月24日 (日)

[Ruby] ri_cal


ri_cal がリリース([ruby-talk:337278])。



iCalendar を扱うためのライブラリ。
iCalendar のタイム・ゾーンを理解するなど既存 iCalendarを扱うライブラリにはない機能を提供している。



rubyforgeにも置く予定のようですが、その前に ri_cal のユーザーから意見やバグリポートなどを募集したいということで ruby-talk
でのアナウンスに至ったみたいです。


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

2009年5月23日 (土)

[Ruby] Ruby-GetText-Package


2.0.4 がリリース([ruby-talk:337251])。



プレースホルダがないときに String#% が nil を返していたのを修正。
Ruby 1.9.x で使用したときの warning メッセージの対応など。


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

[Ruby] Ruby-Locale, Ruby-Locale for Ruby on Rails


2.0.4 がリリース([ruby-talk:337250])。



Ruby-Locale は、Win32, JRuby の対応。
Ruby-Locale for Ruby on Rails の方は localized views が正しく動作しなかった点を修正したそうです。


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

[Ruby] EventMachine


0.12.8 がリリース([ruby-talk:337247])。



Ruby で他のプロセスと通信を行うアプリケーションを簡単に開発するためのフレームワーク。



Linux では 1.9 でも動作するそうですが、Windows では次のバージョンで正式な1.9対応のバイナリを提供する予定だとか。



という訳で早速試してみた。



$ sudo gem install eventmachine


Introduction のページにある Usage example をそのままコピー



$ ruby -v sample.rb


いくつかワーニングが出力されるものの動作している模様。
で別の端末から、telnetで試す



$ telnet localhost 8081
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
aaa
>>>you sent: aaa
bbb
>>>you sent: bbb
quit
Connection closed by foreign host.


おお。普通に動いた。



では、ファイルの監視もできるみたいなので、ちょっと試してみる。



$ cat fmon.rb
require 'eventmachine'
module FooMon
def file_deleted
STDERR.puts "#{path} deleted"
end
end
EventMachine::run {
EventMachine::watch_file("/tmp/foo", FooMon)
}
$ ruby fmon.rb
eventmachine.rb:1315:in `watch_file': undefined method `watch_filename' \
for EventMachine:Module (NoMethodError)


うーん。なんでエラー?


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

[Ruby] Ruby2Java compiler


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



動的に定義されるRuby のクラスも普通のJavaのクラスに変換するライブラリ。
JRuby 1.3.0RC2 か、それ以降のバージョンが必要です。...
とホームページに書いてあるが、JRuby 1.3.0RC2 ってもう公開されているのか?


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

[Ruby] RubyMacros


0.1.4 がリリース([ruby-talk:337218])。



Ruby で lisp ライクなマクロを書けるようにするためのライブラリ。
でも、RubyLexerに依存しているはずだから、1.9ではこれも動作しないか...。


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

[Ruby] RedParse


0.8.2 がリリース([ruby-talk:337217])。



Pure Ruby で書かれた Ruby の Parser ライブラリ。
1.9のシンタックスのサポートを開始したみたいです。
でも、RubyLexerに依存しているはずだから、1.9ではこれも動作しないか...。


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

[Ruby] RubyLexer


0.7.4 がリリース([ruby-talk:337211])。



Ruby で書かれた Ruby のための Lexer ライブラリ。



今回のバージョンアップにより Ruby 1.9 への対応の準備、UTF-8で書かれたスクリプトへの対応が進んだ模様。



ということで試してみる。



 $ sudo gem install rubylexer
 Successfully installed rubylexer-0.7.4
 1 gem installed
 Installing ri documentation for rubylexer-0.7.4...
 
 RDoc failure in lib/rubylexer/test/stanzas.rb at or around line 174 column
 8
 
 Before reporting this, could you check that the file you're documenting
 compiles cleanly--RDoc is not a full Ruby parser, and gets confused easily if
 fed invalid programs.
 
 The internal error was:
 
 ERROR: While executing gem ... (NoMethodError)
  undefined method `name' for #<RDoc::RubyToken::TkLPAREN:0x8ccbc00>


なんかRDocのエラーが出るなあ。



$ gem list
...(中略)
rubylexer (0.7.4, 0.7.3)


インストールはできたみたい。



$ ruby -v -rrubylexer -e 0
ruby 1.9.1p154 (2009-05-22 revision 23541) [i686-linux]
rubylexer.rb:387: syntax error, unexpected ':', expecting \
keyword_then or ',' or ';' or '\n' (SyntaxError)


うーん。まだ駄目か。


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

2009年5月21日 (木)

[Ruby] snailgun


1.0.2 がリリース([ruby-talk:337094])。



たくさんのライブラリをrequireするRubyアプリケーションの起動を速くするためのツール。
例えば、Rails アプリで TDD をやるときにテストスクリプトの起動時間を短縮できるそうです。
残念ながら、Linux/BSD でしか動かないとのこと。


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

2009年5月20日 (水)

[英語] w/o


without ってことだったのか。


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

[Ruby] zenprofile


1.0.2 がリリース([ruby-talk:336966])。



Ruby 標準ライブラリの profile の高速版。
残念ながら、こちらも event_hook と同じ理由で 1.9.2dev では動作しなかった
(多分、1.9.1でも動作しないと思います)。


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

[Ruby] event_hook


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



Ruby の C API である rb_add_event_hook() をラップするライブラリ。
Cのコードを書かなくても、rb_add_event_hook と同様のことができるようになるらしい。



1.9.2dev で試してみたがエラー。 多分、1.9.1でもエラーになると思います。



$ sudo gem install event_hook


でインストール。インストールは成功。



$ ruby demo.rb


としてみたところ、残念ながらエラー。



event_hook は、RubyInline に依存していると思われるのだけど、コンパイル時に "node.h" が見つからないとエラーになった。



試した Ruby のバージョンは、



$ ruby -v
ruby 1.9.2dev (2009-05-16 trunk 23438) [i686-linux]


なんだけど、1.9系 では、node.h はインストールされない。



以下、Ruby の ChangeLog からの引用。



  * include/ruby/node.h, node.h: move node.h from include path.
  This change stop to install node.h because of saving ABI
  (node.h will be changed. Extensions should not depends on
  this file).

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

[Ruby] orca_card


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



ORCA カードの情報を出力するためのライブラリ。
ORCA カードって何?


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

2009年5月19日 (火)

[Ruby] imap_processor


1.1 がリリース([ruby-talk:336869])。



IMAP サーバーのメッセージをRubyから扱うためのライブラリ。
今回はマイナーバージョンアップ。IMAPProcessor#each_message メソッドが変更されてます。


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

[Ruby] Ruby Science


いろんな科学関連のライブラリを集めちゃおうというプロジェクトが紹介されてますruby-talk:336850


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

2009年5月18日 (月)

[Ruby] ruby-oci8

1.0.6 と 2.0.2 がリリース([ruby-talk:336759])。

1.0.6 は stable バージョンですが、ruby 1.9 では動作しないそうです。 2.0.2 は、unstable バージョンですが、ruby 1.9 に対応しているそうです。 Active record oracle adapter は 2.0.2 だと動作しないので、2.0.2 を試すときは、 Active record oracle_enhanced adapter を使用するようにとのことです。

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

2009年5月17日 (日)

[Ruby] WIN32OLE_TYPELIB#name


どうもこれだけ、encoding の配慮が欠けていたみたい。
他と合わせて、WIN32OLE.codepage に合わせた encoding で返すようにした。


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

2009年5月16日 (土)

[Ruby] WIN32OLE_TYPELIB などのエンコーディング


WIN32OLE_TYPELIB などのメソッドは



$ ruby -v -rwin32ole -e 'p WIN32OLE_TYPELIB.typelibs[0].name.encoding'
ruby 1.9.1p129 (2009-05-12 revision 23411) [i386-cygwin]
#<Encoding:ASCII-8BIT>


うーん。本来はどうすべきだろうか?




  1. 現状のままASCII-8BIT



  2. Encoding.default_external nil じゃなかったら Encoding.default_external に encode する。
    nil の場合は、ASCII-8BIT のまま。



  3. Windows API の GetACP() から得られる情報を元に Encoding を設定する。
    更に、Encoding.default_external が nil じゃなかったら、
    Encoding.default_external に encode(force_encodingじゃなくて) する。




1. は、WIN32OLE_TYPE を使う側が適切な Encoding を指定(force_encoding)しなくてはならない訳で、使う方はかなり面倒。
2. は、WIN32OLE_TYPE を使う側に常に Encoding.default_external(Encoding.default_internal) を
意識しろと強制している訳でそれはそれでアリな気もする。
でも、使う方にとってはちょっと面倒。
やっぱり、Encoding.default_external を意識している人には、そのように設定してあげて、
意識していない人のために、GetACP()のencodingに変換してあげる 3. が妥当な気もする。


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

[Ruby] rSquery


0.1.1がリリース([ruby-talk:336667])。



jQuery を使っている Web アプリケーションで cucumber がインストールされた環境で selenium を使ったテストを簡単に記述するためのテストツール。
rSquery の r は、RSpec の R。S は Selenium の S。query は jQuery。



えーと。さも知った風に書いてますが、cucumber は初めて知ったし、Selenium はどっかで聞いた名前だなあとうっすらと記憶はあったもののすぐには何か思い出せませんでした。



いろいろインストールが必要そうだけど、Rails アプリ で jQuery を使っていたら、テスト時に試す価値があるかも。
でも、Rails で jQuery 使っている人は多いのかな。


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

[Ruby] imap_to_rss


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



IMAPサーバのメッセージから RSS エントリを生成するライブラリ。


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

2009年5月15日 (金)

[Ruby] RMagic

2.9.2がリリース([ruby-talk:336611])。

Magick::TypeMetric#to_s のスタックバッファオーバーフローのバグがfixされているそうです。

RMagic 2.0.0 から 2.9.2 までは Ruby 1.8.2 以降で、 ImageMagick 6.3.0 以降に対応してますが、 次のリリースからは、Ruby 1.8.5以降、ImageMagick 6.3.5 以降の対応になるそうです。

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

[Ruby] maven_gem


0.0.2がリリース([ruby-talk:336626])。



Maven に対応したJavaのライブラリをあたかも gems パッケージであるかのように扱うことができる gem のプラグイン。
JRubyで使うと便利?


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

[Ruby] bluecloth


2.0.2がリリース([ruby-talk:336623])。



テキストファイルを XHTML(HTML) に変換するツールである Markdown の Ruby 版。


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

[Ruby] bitescript


0.0.2がリリース([ruby-talk:336625])。



Java バイトコードを生成するためのDSL。


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

[Ruby] enumerable-extra


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



Array#map、Enumerable#map を拡張して



ary.map{|e| e.capitalize}


の代わりに



ary.map(:capitalize)


と書けるようになるそうです。



Ruby 1.8.x 専用だそうです。


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

2009年5月13日 (水)

[Ruby] Rubytest.vim


0.9.5がリリース。



Vim の quickfix をサポートしたそうです。



rails で作ったアプリのテストを test フォルダでテストスクリプトを編集してテストを実行するときに便利。
逆にrailsと同様の規則に従ってテストを作成していないと実行してくれない。
例えば、FooTest クラスは、foo_test.rb に書いておく必要がある。



前はテストが



test "this is test" do
...
end


みたいな rails のテストのような書き方でないと駄目だったように思うが、
今回のバージョンでは、普通に



def test_foo
...
end


みたいなものもちゃんと動くことを確認できた。


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

[Ruby] imap_processor


1.0がリリース。



Ruby 用の IMAP サーバーに接続してメールの操作などをするクライアントのライブラリ。


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

2009年5月12日 (火)

[Ruby] Ruby


ということで、ruby_1_9_1 の branch から更新してみた。



$ ruby -v
ruby 1.9.1p129 (2009-05-12 revision 23411) [i686-linux]


今まで、1.9.1p0 だったけど、ちゃんと 1.9.1p129 と表示されてます。


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

[Ruby] Ruby


1.9.1-p129 がリリース([ruby-talk:336353][ruby-talk:336354])。



セキュリティの脆弱性の対応がされているので、1.9.1利用ユーザーはアップグレードするようにとのことです。



ANNってついてなかったから見落とすとこだった。


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

2009年5月11日 (月)

[Ruby] 初心者から中、上級者までカバーしている Rails 本

一応、最後までざっくりと読んでみた。以下、感想というか、思いついたことなどを箇条書き。

  • 初心者だけをターゲットにした入門書とは一味違って、幅広く深く、中、上級者向けの内容までカバー。

  • Railsの開発で著者たちが経験したノウハウが、この本に活かされている。

  • Railsを仕事の開発で使うには、どうすべきかというところまで、意識している。

  • Deploymentの章を読んで、Phusion Passenger を初めて知った。

  • ActiveResourceの例は、Ruby 1.9.1 + Rails 2.3.2 ではパッチを適用しないと動かなかった。(この一連のスレッドの中でパッチが公開されている)。

  • PaginateがRails 2.0 では標準で入っていないと解説していながら、Ajaxの例でPaginateと思われるものが使われているコードが出てきて、ちょっとちぐはぐな印象を受けた。

いずれにせよ、Railsの今を知ることのできる良書であることは間違いない。

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

[Ruby] Rumai


3.0.0 がリリース([ruby-talk:336295])。



wmii という ウィンドウマネージャを Ruby から操作するためのライブラリ。



いくつかのメソッドの名前が変更されているので、注意。


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

2009年5月10日 (日)

[本] 不意打ちの技が見事に決まる倒叙ミステリ


容疑者Xの献身 (東野圭吾)



探偵ガリレオシリーズの長編。
犯人は最初から明らかにされる倒叙ミステリ。
まさか、単純だけど効果的な、たった一つのトリックが仕掛けられているとは思わなかった。


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

[Ruby] Ruby-Locale, Ruby-Locale for Ruby on Rails


2.0.3 がリリース。([ruby-talk:336213])



バージョンアップデートのみ。
Ruby-GetText-Packageに合わせているみたい。


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

[Ruby] Ruby-GetText-Package


2.0.3 がリリース。



依存関係のバグフィックスのみ。


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

2009年5月 9日 (土)

[本] 上下巻の長編になった小市民シリーズ第3段

  • 秋季限定栗きんとん事件   ()   ()

春期限定』 『夏期限定』 と続いた小市民シリーズ第3段。

登場人物が限定されている分、解決までに一年近くもかかる連続放火事件の真犯人と真相については、 ミステリとしてはよくあるパターンでわりとすぐに予想がついてしまった。 むしろ上巻の日常の謎の謎解きや、堂島の新聞部部長としての采配や、 真相の後日談である小左内さんの企みとその動機の方が面白かった。

主役二人より堂島の方がキャラクターがたっているのは、二人が小市民を目指しているせいか。

夏期限定以後の主役二人の行方が気になる人は必読。 冬季限定もあるかなあ。

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

[Ruby] Rumai


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



ウィンドウマネージャ wmii を Ruby から操作するためのライブラリ。



ratpoisonは以前インストールして試したことがあるけど、wmiiは使ったことがないです。
基本的にキーボード操作の方が好きなのですが、何でもかんでもキーボードというと私にはしんどいかなあ。


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

[Ruby] faster_rubygems


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



require 'rubygems'


の代わりに



require 'rubygems_fast'


とすることで時間を短縮して、スクリプトの起動を速くするツール。



Ruby 1.9 の gem_prelude と同じように動作するということみたいなのだが、そうすると 1.9 だと不要?



1.9.1 で試す場合、多分、複数バージョンの gems 化されたパッケージがインストールされてないと意味がないんだよな。



$ gem list
*** LOCAL GEMS ***
dfect (0.1.0)
highline (1.5.1)
hoe (1.12.2)
rake (0.8.4)
rdoc (2.2.2)
rubyforge (1.0.3)
rubylexer (0.7.3)
sequel (3.0.0)
sequence (0.2.0)
sqlite3-ruby (1.2.4)
wilson (1.1.0, 1.0.1)
yoda (1.0.0)


wilson だけか。



$ ruby -rwilson -e 0
(...)/gems/wilson-1.1.0/lib/wilson.rb:1129:in `<module:Ruby>': uninitialized \
constant DL::Importable (NameError)
from (...)/gems/wilson-1.1.0/lib/wilson.rb:1128:in `<top (required)>'
from ruby:0:in `require'


えーと、1.9.1 では、wilson の require すら失敗するので、wilson で試しても意味ないかな。



試しに git で入手。



$ git clone git://github.com/rogerdpack/faster_rubygems.git
$ cd faster_rubygems/examples
$ cat require_fast_start.rb
require File.dirname(__FILE__) + '/../rubygems_fast'
require 'fastercsv' # load a gem
puts 'done'


fastercsvって何? とりあえずインストールしてみよう。



$ gem install fastercsv


では実験。



$ ruby require_fast_start.rb
(...)/gems/fastercsv-1.4.0/lib/fastercsv.rb:10:in `require': \
(...)/gems/1.9.1/gems/fastercsv-1.4.0/lib/faster_csv.rb:1570: syntax error, \
unexpected keyword_nil, expecting keyword_end (SyntaxError)
from (...)/gems/1.9.1/gems/fastercsv-1.4.0/lib/fastercsv.rb:10:in `<top (required)>'
from require_fast_start.rb:2:in `require'
from require_fast_start.rb:2:in `<main>'


実験は諦めた。


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

[Ruby] wilson

  • 1.1.0 がリリースされた。

Object#asm という 100% Pure Ruby で書かれたインライン・アセンブリのメソッドが追加されました。

試してみましたが、相変わらず、Linux の Ruby 1.9.1 では、動作しませんでした。

でエラーを回避させてちょっとソースコードをいじって先へ進めてみましたが、 残念ながら、

wilson.rb:1186:in `defasm':undefined method `to_ptr' for "...(省略)":String

とエラーになったところで諦めました。

ソースコードに

dlload "libruby.dylib"

とあるので、作者は、Mac OS X を使っているのでしょうか。

私の環境は、Linuxなので

dlload "libruby.so"

としましたが、その先で上にあるエラーが出てしまいました。

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

2009年5月 8日 (金)

[英語] 意外と本格ミステリ好きのツボを突く伏線の張り方をしているミステリ

なんとあのMonkが飛行機に乗ってハワイに行ってしまう。 そして、ハワイでも相変わらず大小さまざまな事件を次々と解決してしまうMonk。

見え見えの展開もあるのだが、意外な出来事が意外な事件の伏線になっていたりする。 最後に犯人を追い詰めるために、 Monk が取った手段は予想がつきやすいのだが、 その裏に隠された幕切れの真相が何とも心憎い。

この作者、なかなかどうして、本格ミステリ好きのツボを突くのが巧い。

英語は、わりとわかり易い。

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

[Ruby] HighLine

  • 1.5.1がリリース。

標準入出力の処理をより賢くするためのコマンドラインインターフェースを提供するライブラリ。

1.9.1でも動作するようになったそうです。

試してみた。

 $ cat input.rb
 require 'rubygems'
 require 'highline'
 hl = HighLine.new
 # 2、3、4のいずれかの入力だけ受けつける。
 answer = hl.ask("Input:", Integer) {|q|
    q.below = 5
    q.above = 1
 }
 HighLine.new.say("Input is #{answer}")
 $ ruby input.rb
 Input:
 1
 Your answer isn't within the expected range (above 1 and below 5).
 ?  5
 Your answer isn't within the expected range (above 1 and below 5).
 ?  a
 You must enter a valid Integer.
 ?  2
 Input is 2

動いた。

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

2009年5月 7日 (木)

[Ruby] nokogiri

HTML, XML, SAXのparser。JRuby 1.3.0RC1 でも動作するようになったそうです。 その他にもいくつかの新機能の追加とバグフィックスがされているようです。

ところで、次は、JRubyに合わせて、1.3.0になるんだろうか。

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

[Ruby] Ruby-Locale, Ruby-Locale for Ruby on Rails

  • 2.0.2がリリース。

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

[Ruby] Localmemcache

  • 0.4.0がリリース。

Rubyまたは、C言語用の mmap()ベースの key-value ストア。

0.4.0、は下位互換性が無くなっているようです。

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

[Ruby] Ruby-GetText-Package

  • 2.0.2がリリース。

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

[Ruby] Relisp

  • 1.0.0がリリース。

Ruby の中で Emacs lisp のコードを実行できたり、Emacs lisp の中で、Rubyのコードを実行したりできる。

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

[Ruby] RubyGems

  • 1.3.3がリリース。

gem spec で

gem spec rake authors

と1つの項目を検索することができるようになったりするなど、いくつかの改訂と バグフィックスがされています。

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

[Ruby] webgen

  • 0.5.8がリリース。

コンテンツファイルとテンプレートファイルから静的な webサイトを生成するツール。

webgen の一部の機能が利用している library が Ruby 1.9.1 で動作しないため、 まだ一部、1.9.1では動作しない部分があるみたい。

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

[Ruby] Inochi

  • 1.0.0がリリースされた。

RubyGems対応のソフトウェアの管理作業を楽にしてくれるためのツールかな。

1.0.0からは、管理するソフトがInochiに依存しなくても済むようになったそうです。

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

[Ruby] ERBook

  • 7.0.0がリリースされた。

eRuby をベースにいろんなドキュメントを生成させるためのプロセッサなのかな。

Valid な XHTMLを出力するようになったそうです。

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

[Ruby] Dfect

  • 1.0.0がリリースされた。

D、F、E、C、T の5つのメソッドから構成されるテストツール。

Test::Unit 、Minitest、RSpecをエミュレートできるようになったらしい。

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

[Ruby] Ember

  • 0.0.0がリリースされた

erb と同様に、eRuby の処理系の1つ。

インデントを揃えることで、<% end %> を省略できたりとか

<% < "eRuby_file.erb" %>

として外部ファイルをeRubyのファイルとして読み込んで処理したりとかできるそうだ。

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

[Ruby] Sequel

  • 3.0.0がリリースされた。

Ruby 用の軽量データベースアクセスツールキット。ORマッパ。 ActiveRecordなんかと競合するのかな。

3.0.0から多くの機能がプラグインとか拡張機能として提供されるように変わったそうです。 2.12.0で重なっていた機能やメソッドを統一したそうなので、 3.0.0にバージョンアップする前に、2.12.0にバージョンアップして、Sequelを使っている スクリプトのワーニングを全て削除してから、3.0.0にバージョンアップするようにとのことです。

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

2009年5月 4日 (月)

[Ruby] Ruby 1.9.1 と Rails 2.3.2 と mysql


rails 3ed の内容を試していてつまずいたところを、Googleで調べてみた。
私は、sqlite3で試していたんだけど、



mysql encoding with rails 2.3.2 and ruby 1.9.1 という似たような議論を見つけた。



ActiveRecordで ASCII-8BIT を設定しているのが問題だみたいな意見があったんだけど、
なんとなく、ActiveRecord (DB) が絡まなくても、つまずくことがあるんじゃないかと思って、
ちょっとしたテストをやってみた訳ですな。



で、以下、Rails 初心者の私の意見ですが...。



Ruby 1.9.1 と Rails 2.3.2 を組み合わせて開発するときには開発者側でもEncodingを意識しなくちゃいけないとは思うものの、
Rails 側でも ASCII-8BIT じゃなくて、デフォルトで force_encoding('UTF-8') するみたいな
オプションがあると助かるんじゃないかと思います。


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

[Ruby] Ruby 1.9.1 と Ruby on Rails 2.3.2 を使ったちょっとしたテスト


最初に断わっておきます。
私は Rails 初心者なので、テストが適切でないかも知れません。



$ ruby -v
ruby 1.9.1p0 (2009-04-19 revision 23233) [i686-linux]
$ rails -v
Rails 2.3.2
$ rails utf8test
$ cd utf8test
$ ruby script/generate controller utf8test index


ここで、app/views/utf8test/index.html.erb を編集する。



<h1>Utf8test#index</h1>
<% form_tag '/utf8test' do -%>
INPUT:<%= text_field_tag 'name' %>
<br />
OUTPUT:<%= params[:name].encoding if params[:name]%>
<br />
<%= submit_tag "OK" -%>
<% end %>


テスト開始。



$ ruby script/server


「abc」と入力して【OK】ボタンを押すと US-ASCII と表示される。
「あいう」と入力して【OK】ボタンを押すと ASCII-8BIT と表示される。



で、OUTPUTのところを



OUTPUT:<%= params[:name].reverse if params[:name]%>


と変更して「あいう」を入力して【OK】ボタンを押すと



invalid byte sequence in UTF-8


とエラーになる。


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

2009年5月 3日 (日)

[Ruby] 更に Rails 3e の続き


この前の



class Person < ActiveRecord::Base
def name
super.force_encoding('UTF-8')
end
end


は、



class Person < ActiveRecord::Base
def name
read_attribute("name").force_encoding('UTF-8')
end
end


とするのが行儀のよい書き方だと思われる。



根本的には、もっと賢いやり方があると思っている(が、わからない)。



ここまでの感想(というかわかったこと、とかまだよくわかってないこととか)。




  • ActiveRecord のリレーション絡みはいろいろあってややこしくて頭に入ってこない。



  • 楽観的ロックは意識しなくても、 Rails が勝手にやってくれる。



  • 悲観的ロックもできる。 (ActiveRecord::Base.find のオプションで :lock がある)



  • 親子関係のあるデータの保存は意識しなくても、1トランザクションで Rails が勝手にやってくれる。



  • 2-フェーズ・コミットはサポートしていない。



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

2009年5月 2日 (土)

[Ruby] Rails 3e の続き

Ruby 1.9.1 + Rails 2.3.2 の組み合わせで試しながら読んでいたら 16.9 Unicode Support のところでつまずく。 String#chars は、Enumerator で length というメソッドも reverse というメソッドも持ってない。

普通にindex.html.erbの中で

<td><%= person.name.reverse %></td>

とかやってみたら

invalid byte sequence in UTF-8

とか言われた。

試しに、

<td><%= person.name.encoding %></td>

としたら、ASCII-8BIT と表示した。

そこで、

<td><%= person.name.encode('UTF-8') %></td>

としたら 

"\xE3" from ASCII-8BIT to UTF-8 

とエラー(ちなみに、person.name は、テストのために「あ」にしている)。

そこで、

<td><%= person.name.force_encoding('UTF-8') %></td>

としてみたら

incompatible character encodings: ASCII-8BIT and UTF-8

とエラーになった。

しばらく悩んでいたのだが、原因がわかった。 Person#nameを参照するところで全てforce_encoding('UTF-8')すれば、よさそうである。

ということで Person.rb は

class Person < ActiveRecord::Base
  def name
    super.force_encoding('UTF-8')
  end
end

と逃げて、更に駄目駄目だけど、よくわかんなかったので、index.html.erb は

<table border="1">
  <tr>
    <th>Name</th><th>Length</th><th>Bytesize</th><th>Reverse</th>
  </tr>
  <% for person in @people %>
    <tr>
      <td><%=h person.name %></td>
      <td><%= person.name.length %></td>
      <td><%= person.name.bytesize %></td>
      <td><%=h person.name.reverse %></td>
    </tr>
  <% end %>
</table>
<% form_for :person do |form| %>
  New name: <%= form.text_field :name, value:"" %>
  <%= submit_tag "Add" %>
<% end %>

と逃げた。

きっともっと賢い方法があるに違いないけど今の私にはこれが限界。

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

[日記] 気分悪い


お昼に食べた天丼のせいなのか、それとも暑さにやられたのか、ちょっと気分が悪い。
頭もちょっと痛い。


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

[Ruby] gmail_contacts


1.1がリリースされた。
(でいいのかな。1.0.1 てなってるけど...。)



Ruby から、GData経由でGmailにアクセスするためのライブラリ(という解釈で合ってますか?)



今日はリリースが多いなあ。


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

[Ruby] JRuby


1.3.0RC1がリリースされた。



ご存知、RubyをJavaで実装したもの。1.9対応も着々と進んでいるみたい。
GAE/JでJRubyが使うための対応がいくつかされているようで、GAE/Jのためにリリースも速めたみたい。


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

[Ruby] RubyMacros


0.1.2がリリースされた。



Rubyで lisp ライクなマクロが書けるようにするためのソフト。



作者は、RubyLexer、RedParseの作者でもある。
RubyMacrosは、RedParse が必要なので、1.9.1だと厳しいかも。


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

[Ruby] RedParse


0.8.1がリリースされた。



Rubyで書かれたRuby用のparser。



作者は、RubyLexerの作者でもあり、予想できると思うが
RedParseを使うには、RubyLexerが必要。
なので、1.9.1では厳しそう。


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

[Ruby] rubylexer


0.7.3がリリースされた。



Rubyで書かれたRuby用のlexer。
ちょっとだけ試してみたけど、1.9.1だとSyntax Error になってしまう。
README.txt にも



RubyLexer can correctly lex all legal Ruby 1.8 that I've been able to
find on my Debian system.


って書いてあるから、1.9.1はまだかも。


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

[Ruby] ruby_backtracer


新しいバージョンがリリースされた。
例外発生時のバックトレースの出力を拡張するライブラリ。
一部のオプションは、ruby-debug に依存しているとのこと。


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

[Ruby] Rails 3e の途中までの感想


Agile Web Development with Rails 3e
のPDF版を途中まで読んだ。
ただいま Building an Application の Task T: Testing の章の途中。



ここまでの感想。




  • Ruby 1.9.1 + Rails 2.3 を使って試しながら読んでいるけど、特に戸惑うところは今のところない。
    (脚注で2.3についてフォローしてくれている箇所もあります。)



  • Railsに限ったことではないのだが、やっぱりサクサク開発するためには慣れが必要だと思う。
    とは言っても何を開発すればいいんだか...。



  • RailsでのAjaxについても解説している。



  • I18n にも1つの章を割いている。日本語対応の解説じゃないのがちょっと残念。



  • テストをどうやるかについても1章を割いている。
    本来の開発スタイルであれば、テストやりつつ、コード書きつつみたいな感じなんだと思うけど、
    テストの章と他の章が分かれるのは、本を読んだときのわかりやすさを優先するためには
    仕方のないことかも知れない。



  • 普段のWebの開発だと見栄えは全く気にしないのだが、もうちょっと気にした方がいいかもなとちょっと反省した。
    CSSの解説書をちゃんと読んだ方がいいかも知れないとちょっと思った。




1st edition(の日本語訳)しか読んだことがない私には、Railsの今を知る上で十分価値のある本だと思う。


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

2009年5月 1日 (金)

[Ruby] RSpec, Rspec-rails


1.2.6がリリースされた。



新機能はなくて、今回はバグフィックスのみ。


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

« 2009年4月 | トップページ | 2009年6月 »