« 2009年8月 | トップページ | 2009年10月 »

2009年9月29日 (火)

[Ruby] RiCal


0.8.5が公開されました(ruby-talk:347345)。



RFC2445 に従って実装された iCalendar ライブラリ。



(0.8.4と比較して)バグフィックスが1つ。


| | コメント (0)

[Ruby] ASR

1.8.7.12(exp) が公開されました(ruby-list:46420)。

あくまでも実験版で、1.8 select 問題が解消された win32.c を使用して作成したパッケージだとのことです。

| | コメント (0)

2009年9月26日 (土)

[本] 40年ぶりのシリーズ第ニ作の翻訳

暗殺のジャムセッション (ロス・トーマス)

懐しいと思わず手にとってしまった冷戦交換ゲームに続くシリーズ第ニ作。

200ページ余りという短い作品だけど、内容はかなり濃密。 謀略と裏切りが渦巻き、人物は複雑に入り乱れ、プロットは錯綜している。 さすが、いかにもロス・トーマスといえる仕上がり具合。

| | コメント (0)

2009年9月25日 (金)

[英語] リンカーン・ライムシリーズからのスピン・オフ作品


The Sleeping Doll (Jeffery Deaver)



言葉を武器にして、相手の言葉使い、声の調子、表情、仕草などから嘘を見破る尋問の天才 Kathryn Dance が脱走した凶悪犯 Daiel Pell を追う。



同じJeffery Deaver のリンカーン・ライムシリーズ『Cold Moon』に登場した Kathryn Dance が主役として登場。



Cold Moon』と比べるとちょっと物足りなかった。
一見、事件が解決したように見えても、Jeffery Deaver の場合、
残りページからどんでん返しがまだあるなと簡単に想像できてしまう。
ここまでは、いい(というかJeffery Deaverにハンデがあると思う)のだが、
今回は、そのどんでん返しが予想できてしまい、その予想が当たっていたこと。
XX が YY することによってすっきりとした解決を期待していたのだけど、そうはならず、消化不良な感じの幕切れであったこと。
こういったところがマイナス要因となり、評価は辛くなってしまった。



時系列的には、『Cold Moon』の後のできごとで、
リンカーン・ライムとアメリア・サックスもちょっぴり登場します。



言葉に拘る Kathryn Dance が主役だからかどうかわからないけど、リンカーン・ライムシリーズより英語は難しく感じた。



翻訳は、『スリーピング・ドール』。



No weapons - except words, and her intuition.

| | コメント (0)

2009年9月18日 (金)

[日記] シルバーウィーク


シルバーウィーク突入のため1週間ほど更新を休みます。


| | コメント (0)

2009年9月17日 (木)

[Ruby] Ohm Object-Hash-Mapping library

0.0.19 が公開されました(ruby-talk:346573)。

key-value データベースRedisにRubyのオブジェクトを格納するライブラリ。

これが最初の公開かな?

| | コメント (0)

2009年9月15日 (火)

[Ruby] rubyforge


1.0.5 が公開されました(ruby-talk:346471)。



rubyforge の操作の一部を自動化するスクリプト。



リリース名称を使ってRubyforge のトラッカーを同期するスクリプト(テスト版)が追加された他3つの改訂。


| | コメント (0)

[Ruby] rspec と rspec-rails


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 の情報から無視したいパターンを管理できるようになった他いくつかの改訂がされている模様。


| | コメント (0)

2009年9月14日 (月)

[Ruby] rdoc_chm


2.4.1 が公開されました(ruby-talk:346389)。



RDoc ファイルから Microsoft HTML ヘルプファイルを生成するツール。



メソッドは、インデックスページから削除され、CHM TOC(って何?) にリストアップされるようになった他1点の改訂。


| | コメント (2)

[Ruby] tyrantmanager


1.2.0 が公開されました(ruby-talk:346369)。



Tokyo Tyrant のインスタンスを管理するコマンドラインツール。



(Tokyo Tyrant も tyrantmanager も全く知らないので内容はわかりませんが)
TyrantInstance が コネクションの代わりに TyrantTable か Tyrant を使うようになった(という解釈で合っている?)他2点の改訂。


| | コメント (0)

[Ruby] pr-win32ole その4


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 さんからいただいたコメント
を元に判断すると)
だと、そういうことをしてはいけないと思ってるんだけど...。


| | コメント (0)

2009年9月13日 (日)

[本] 第1作が翻訳されてから40年経ってようやく翻訳されたんだからこれはもう読むしかないと思って借りてきた本


暗殺のジャムセッション (ロス・トーマス)



今頃になって、ロス・トーマスのデビュー作『冷戦交換ゲーム』の続編の翻訳が出版されるとは思わなかった。



ちなみに冷戦交換ゲームは読んだことがあるはずですが、覚えていません。
他に読んだことがあるのは、『八番目の小人』、『モルディダ・マン』、
『女刑事の死』、『五百万ドルの迷宮』、『黄昏にマックの店で』ぐらい。
どれもストーリーは覚えていないのだけど『女刑事の死』のラストだけは鮮明に覚えています。
あれをラストに持ってくるとは、ロス・トーマスはなんて卑怯な作家なんだと思ってしまった記憶があります。



読む時間を取れるかな。


| | コメント (0)

[Ruby] Win32OLE の WIN32OLE_TYPELIB のバグ

先日見つけた WIN32OLE_TYPELIB のバグを修正できたのでコミット。 もうちょっとリファクタリングした方がいいかな。

| | コメント (0)

2009年9月12日 (土)

[Ruby] RiCal


0.8.2がリリースされました(ruby-talk:346239)。



RFC2445 に忠実な iCalendar ライブラリ。



バグフィックスが2つ。


| | コメント (0)

[Ruby] Win32OLE


この前の、WIN32OLE_EVENT.message_loop でクラッシュするという話、もう少し詳しい情報が欲しいと
お願いしたんだけど何の音沙汰もない。
VariantInit だけでも追加しておいた方がいいと思うので、後で追加しておこう。


| | コメント (1)

2009年9月11日 (金)

[Ruby] Win32OLE


1.9 の WIN32OLE_TYPELIB のバグを見つけてしまった。
問題はなんとなくわかっているのだけど、さて、どうやって修正したものか...。


| | コメント (0)

2009年9月10日 (木)

[Ruby] au3


最初のリリースが公開されました(ruby-talk:346076)。



Windows でマウスやキーボードの操作を自動化するライブラリ。


| | コメント (0)

[Ruby] Joker


最初のリリース?が公開されました(ruby-talk:346058)。



Regexpのようなライブラリ。
Regexpに馴染みのない人のためのワイルドカード検索ができるようにするためのライブラリ。



正規表現を知らない人には、正規表現を教えてあげる方がいいんじゃないだろうか?
Ruby以外でも役に立つし。


| | コメント (0)

[Ruby] Clogger


0.0.7が公開されました(ruby-talk:346056)。



HTTPリクエストをロギングするRack対応のミドルウェア。


| | コメント (0)

2009年9月 9日 (水)

[Ruby] Rabbit その2


ごめんなさい。ボケてました。
もっと新しいのがリリースされてました(ruby-list:46224)。


| | コメント (0)

[Ruby] ASR(ActiveScriptRuby)


1.8.7.11 が公開されました(ruby-list:46371)。



Ruby-1.8.7-p174 ベースになった他、ASRに同梱されている Exerb で enumerator の LoadError が出るバグがフィックスされています。


| | コメント (0)

[Ruby] Rabbit


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桁違うということに、今、初めて気づきました。


| | コメント (3)

[Ruby] Caty


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)

[Ruby] Clogger

0.0.6 が公開されました(ruby-talk:345951)。

HTTP リクエストをロギングするRack対応のミドルウェア。 ログフォーマットをカスタマイズすることができます。

clogger_ext が clogger gem にマージされた他、いくつかの改訂。

| | コメント (0)

2009年9月 7日 (月)

[Ruby] Inochi


1.1.0 が公開されました(ruby-talk:345867)。



gems 対応のアプリケーションのドキュメンテーション生成やタスクの自動化などに使用できるツール。



ユーザーマニュアルの改善、MicrosoftのWebブラウザのサポートの改善などがされているそうです。


| | コメント (0)

[Ruby] ERBook


7.1.1 が公開されました(ruby-talk:345856)。



eRuby テンプレートからドキュメントを生成する拡張可能なプロセッサツール。



XHTML フォーマットの MS, Opera, Webkit の Web ブラウザのサポートが改善されているそうです。


| | コメント (0)

2009年9月 6日 (日)

[日記] QC検定

QC検定 の4級と3級を受けてきた。 せめて、どっちか受かっているといいなあ。

3級受験に備えて買った電卓が、ルート計算のできない電卓だったことに後から気づいたけど、そのまま受験した。 ルート計算できないとちょっと厄介な問題が1問だけあったけど、適当にごまかしてきた。

それはさておき、試験会場に到着してから、どの建物が自分の受験場所かわからず、まごついた。 もうちょっと目立つ案内とか地図とかを出してくれてもいいんじゃないかと思った。 あと、廊下にも受験票と受験場所を記載した看板を出してたけど、確認するために大勢の人が立ち止まって、 通り抜けできなくなるので、あれはやめてほしかった。

| | コメント (0)

[Ruby] Ruby Q.E.D.


1.1.0が公開されました(ruby-talk:345814)。



Q.E.D. は Quality Enhanced Demos の略。
Ruby 開発者のための品質保証とドキュメントシステムとして使うことができるそうです。
Q.E.D. は、Test Unit と Cucumber の中間に位置するようなライブラリらしいです。


| | コメント (0)

2009年9月 5日 (土)

[Ruby] pr-win32ole その3

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 をどうやって入手すればいいんだろうか?

| | コメント (2)

[Ruby] pr-win32ole その2

期待してよいのはポインタの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)

[Ruby] unicorn


0.91.0が公開されました(ruby-talk:345748)。



Rackに対応した Unix 用の HTTPサーバ。



HttpParser#headers? メソッドが追加された他、いくつかのバグフィックスと改訂。
18年遅れになってしまいましたが、ようやく HTTP/0.9 がサポートされるようになったそうです!!!


| | コメント (0)

[Ruby] gmail_contacts


1.7 が公開されました(ruby-talk:345655)。



GDataを使ってGmailにアクセスするライブラリ。



404を返すURLが #fetch_photoに渡されたときには、GData::Client::UnknownError 例外が raise されるようになったそうです。


| | コメント (0)

2009年9月 3日 (木)

[Ruby] pr-win32ole


まだ公式にはリリースされていない 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 のメモリ確保をしてくれていることを期待してもいいんだよね?


| | コメント (2)

[Ruby] ruby-debug19


0.11.6 が公開されました(ruby-talk:345563)。



Ruby 1.9.x の拡張ライブラリとして実装されたデバッガ。
標準のデバッガ debug.rb よりも高速に動作するとのことです。



次に実行するステートメントを変更することができる jump コマンドが追加されました。


| | コメント (0)

[Ruby] Sequel


3.4.0 が公開されました(ruby-talk:345497)。



O/R マッパーを含んだ Ruby 用のデータベースツールキット。



ActiveRecord の Nested Attributes に相当する nested_attributes プラグインが追加された他、いくつかの機能が追加されました。
また、timestamp のデフォルトのフォーマットの日付と時刻の区切りが「T」から半角スペースに変わっているなど
いくつかの非互換な改訂も入っています。


| | コメント (0)

[Ruby] Clogger


0.0.5 が公開されました(ruby-talk:345566)。



HTTP リクエストをロギングする Rack に対応したミドルウェア。ログのフォーマットをカスタマイズすることができる。



$request_method、$content_length、$content_type 変数が提供されるようになって書き替えることができるようになった(のかな)。


| | コメント (0)

[日記] XP 10周年


XP 10周年 とメールに書いたら、Windows XP の10周年と勘違いされた。


| | コメント (0)

[英語] Google で調べて焦る


Linuxで英語のリスニング学習用のソフトがあるのかと思って



Linux 英語 リスニング


としたら、自分のブログが7番目にヒットした。
なんでやねん。


| | コメント (0)

2009年9月 2日 (水)

[Ruby] Clogger

0.0.4 が公開されました(ruby-talk:345437)。

HTTP リクエストをロギングする Rack に対応したミドルウェア。 ログのフォーマットをカスタマイズすることができる。

行儀の悪いRackアプリケーションに対してチェックをしてログ(500 errors)を残すようになったようです。 あと、私は、nginx を全く知らないため、"escapes with uppercase A-F characters" の意味がよくわからなかったのですが、 nginx のログ形式に合う出力ができるように修正されたみたいです。

| | コメント (0)

[Ruby] rvm その3

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で動作確認したいときには、これは便利そう。

| | コメント (0)

2009年9月 1日 (火)

[英語] リスニングに進歩がない

英語のリスニングがこのところ全く聴き取れないような感じである。 そこで、読んだことがある本の朗読を聴いてみることにした。 あらかじめ、ストーリーを知っている本の朗読なら、なんとかなるかも知れないと思ったのである。 選んだ題材は、読みたてホヤホヤの『Cold Moon』。 長いけど、Jeffery Deaver の英語は、比較的易し目の単語の割合が多いのでなんとかなるのではないかと考えた次第。

なんだけど、どうもうまく聴き取れてる気がしない。

自分の実力がダメダメなのは置いといて、 結局、通勤途中に聴こうとするから無理があるのかもと思うようになった。 通勤中だと、車とか周囲の音が大きいところだと音声そのものが聞こえない。 比較的周囲の音が少ないところを歩いているときには音声は聞こえるけど、途切れ途切れになってしまう。 これは、本を読むときに、2、3ページずつ飛ばしながら読んでいるようなもので、 さすがにそれじゃストーリーを知っていても厳しいかと考え込んでしまった。

かと言って、静かに家で聴くだけというのは時間が勿体ない気がする。 元々、自分は普段から、音楽を聴かないためか、 本を読むのは抵抗ない癖に、音声を聴くだけというのには馴染めない。

まだ『Cold Moon』を最後まで聴いてないので、とりあえず、一通り最後まで聴くつもりではいるんだけど、なんかよい方法はないもんかな。

| | コメント (2)

[Ruby] mms2r


2.3.0が公開されました(ruby-talk:345338)。



MMS message をデコードするためのライブラリ。



smartphone のステータスやタイプの情報を jpeg や tiff の exif データから取得できるようになった(という解釈であってるのか?)
他4つの改訂と4つのバグフィックス。


| | コメント (0)

« 2009年8月 | トップページ | 2009年10月 »