[Ruby] omnifocus
1.2.0が公開された(ruby-talk:342803)。
omnifocus_new が追加されたことによりシェルからタスクを作成できるようになった他2つの改訂。
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() 関数に置き変えればいけるはず。
件のエラーメッセージは、クラス名とか定数とかの補完で発生するとのこと。
メールからだと、なんかすぐに再現できそうな勝手な印象を受けたので
ちょっと適当に
File::
とか入力して定数補完させてみたんだけど、再現しなかった。
試しに、Ruby 1.9.1p129 を組み込んでみて同じことをやってみても再現しなかった。
まともな Ruby スクリプト書かないと駄目なのか?
Ruby 標準添付ライブラリを片っ端から開いて補完させてやれば再現するだろうか?
1.3.3がリリースされた(ruby-talk:342730)。
HTMLやXMLのパーザ。
全てのNodeの子を返すNodeSet#children が追加された他7つのバグフィックス。
1.4.0では、Hpricotとの互換性(Hpricotと同様の動作ってことかな?)は無くなるとのことです。
vim-dev に投げたパッチを実際に試してくれた人からのフィードバックがあった。
フィードバックがあるのは嬉しいことです。
だいたい動くけどたまに、
Error detected while processing function rubycomplete#Complete:
line 22:
ArgumentError: comparison of Hash with Hash failed
Press ENTER or type command to continue
がでるらしいです。
が、どこでエラーが起こっているのかわからないです。
vim-ruby初心者だし。
Ruby のスクリプト書いてないし。
今日なんか1行も書いてない。
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 のプラグイン。 これが最初のリリース。
ちょっとだけ、encoding にも配慮してみました。 Vim で適切に encoding されていて、かつ Ruby 1.9 で、encoding が理解できる場合に限り それなりに動きます。 例えば、Vim の encoding が euc-jp のとき
あいうえお
と入力してから
:rubydo $_.reverse!
とすれば
おえういあ
と変換されます。
ちなみに、普段、Vim で Ruby の組み込みの機能を全く使わないので、(特に encoding 関係が) これで良いのかどうかさっぱりわかりません。
パッチは、vim-dev に 投稿してみたので、そちらから入手してください。
ちゃんとテストした環境を書いておくんだった。
0.0.1 が公開された(ruby-talk:342518)。
キロバイト、ギガバイトなどのファイルのサイズを換算したり、加減などの計算をするためのライブラリ。
もしかして、Rich Units の機能と重なる部分があったりする?
0.5.9 が公開された(ruby-talk:342516)。
テンプレートファイルと組み合わせて静的なWebサイトを生成するためのツール。
今回のリリースには、機能追加はあまりないようですが、 ブログ機能やイメージギャラリーのような今後予定されている機能のためのステップという位置付けのようです。
パラドックス実践 (門井慶喜)
雄弁学園という一風変わった学園を舞台にその学園ならではの謎を解くミステリ。 犯罪が起こる訳でもなく、だからと言って日常の謎派とも言いがたいちょっと変わった内容である。 SFミステリとも違うのだけど、雄弁学園ならではの世界があり、その世界のルールの中で謎を解くミステリである。
謎解きは強引な論理展開が多かった気がするし、なんか、この学園自体にも魅力が感じられず好きになれなかった。
日本推理作家協会賞短編部門ノミネート作の表題作よりも、なるほどと思わせるインパクトが強かった「弁論大会始末」の方が好み。 「弁論大会始末」の謎解きは日常の謎派に近いと思うので、結局、私は、普通の日常の謎派の方が好きなのかも知れない。
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)
メモ。get_option_value を使えばできるみたい。
int isnum;
long lval;
char_u *sval;
isnum = get_option_value((char_u *)"enc", &lval, &sval, 0);
if (isnum == 0) {
EMSG(_(sval));
vim_free(sval);
}
これで取れたVimのエンコーディングの情報を元にRubyの対応するエンコーディングを見つけて設定すれば、 Vim の(バッファの)文字列から ASCII-8BIT でない String を Vim の ruby バインディングに渡して処理できるはず。
| 固定リンク
| コメント (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)
ruby側に渡される Vim のバッファの文字列は encoding で指定されているエンコード文字列が設定されているっぽい。
termencoding や fileencoding は関係無さそう。
なので、ruby 側にVimのバッファから渡される文字列を生成するときには encoding に合わせて、force_encoding してあげれば良さそうなのだけど、
Vim の encoding と Ruby の encoding の対応づけが面倒そう。
| 固定リンク
| コメント (0)
| トラックバック (0)
0.1.1 が公開された(ruby-talk:342111)。
Ruby に Lispのようなマクロ機能を追加するライブラリ。
XMLをS式に変換したり、S式をXMLに変換するユーティリティが追加された。
gem 化の方法がわからないので、誰かがやってくださると嬉しいとのことです。
| 固定リンク
| コメント (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)
公開された(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)
最終日。メモを一切取ってなくて記憶を頼りに書くので、内容に誤りがあるかも知れません。 記載漏れは山ほどあります。多分。
朝、ちょっとだけ遅刻。 ささださんと遭遇。名札に名前を書いてくださいと注意される。 裏返しになってただけだと引っくり返してみせたら、裏にもちゃんと名前を書けと更に叱られる。 去年までは葉書だったのに...。
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)
次のパッチで、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)
数学的帰納の殺人 (草上仁)
女性フォト・ジャーナリストと数学者が失踪した宗教組織の謎を追う。
序盤ちょっと読みづらいなと感じるところがあったのだが、序盤を過ぎてからは続きが気になって一気に読み進めてしまった。 数学についても衒学趣味というほどではなくさほど構える必要なくすんなりと読めた。
本格論理ミステリと謳われているが、本格ミステリとしては評価が難しい作品。 狂人の論理に支えられる謎解きよりも、公安がちょっと絡んできて謀略小説風味なストーリーが面白かった。 作者の作品をほとんど読んだことがないので、この作者らしい結末かどうかはわからないが、 ラストのエピローグは、SF作品を手掛ける作者が書いた結末らしいなと思った。
「これはミステリ小説じゃないのよね。要は、何が起こったか知りたい んだから、後ろから読んじゃってもいいんじゃない?」
| 固定リンク
| コメント (0)
| トラックバック (0)
Sequel が CTE をサポートしたそうなのだが、CTE をそもそも私は知らない。
どうも、仕事で使い道がありそうだということもあり、時間がちょっと取れたので、SQLServer 2005 で試してみた。
実行できるSQL文の作成までは進んだが、検索結果の件数のわりには処理に時間がかかってしまった。
私のSQLの作り方が悪いのか、CTEを使った再帰SQLはそもそも遅いのかどっちだろうと思ったところで今日はおしまいにした。
| 固定リンク
| コメント (0)
| トラックバック (0)
狐火の家 (貴志祐介)
どれも密室を扱った短編集。
グロテスクな描写のある「黒い牙」は苦手。 ちょっとホラーっぽい描写のある表題作は、良い出来だと思うけど、好きにはなれない。 ふざけているとしか思えないラストの「犬のみぞ知る」は好きになれない。 この作者としては平凡だけど、ストレートな構成の「盤端の迷宮」の謎解きシーンが 犯人と探偵との心理戦が垣間見えて緊迫感があって良かった。
| 固定リンク
| コメント (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)
1.0.3 が公開された(ruby-talk:341008)。
Ruby 1.8.6 用の STARTTlSをサポートした smtp ライブラリ。
1.8.7以降は標準添付で、STARTTLSをサポートしている。
mail_smtp_tlsが追加された他2つの変更。
| 固定リンク
| コメント (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)
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)
カラスの親指 (道尾秀介)
ふとしたことがきっかけで、一つ屋根の下で暮すことになった詐欺師二人と姉妹と姉の恋人の5人が 詐欺を目論む。 果たして詐欺は成功するのかそれとも...。
この手のコン・ゲーム小説だと読者は、登場人物たちが目論んでいるのはどんな詐欺なのか、その手口が明かされる謎解きと 計画した作戦は成功するのか否かというサスペンス性が読みどころなんだけど、どちらも申し分ない出来。 ラストで明かされるネガとポジがひっくり返される真相は、お見事。 すっかりこちらも騙されました。 それにしても相変わらず伏線のばらまき方と回収の仕方が巧い。 序盤こそ嫌な感じの話が続くけれど、その序盤があるからこそ、切なくてそれでいて希望を持たせるような結末で読後感もよかった。 コン・ゲーム小説の代表作の一つに数えられる作品。
| 固定リンク
| コメント (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)
腕時計が止まった。今度こそ駄目かと思ったけど、時計店で電池を交換してもらったら、また動き始めた。 防水というのは、ずーっと防水という訳じゃないから、水に濡らさないようにと店の人に言われた。 ずーっと使い続けているので、もう防水じゃないだろうなと思いながら、気をつけますと返事をした。
| 固定リンク
| コメント (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)
最近のコメント