2011-01-01から1年間の記事一覧

CentOS に gem kyotocabinet-ruby を入れる

導入した環境 $ cat /etc/redhat-release CentOS release 5.5 (Final) $ ruby -v ruby 1.8.6 (2010-02-05 patchlevel 399) [i686-linux] $ gem -v 1.3.7 新しめの gcc が必要 gcc 4.1 ではダメ $ gcc --version gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-50)…

C++ で Ruby 拡張ライブラリ ( Data_Wrap_Struct とか )

とりあえず以下ダラダラのアウトプットはこちら gist に置いといた https://gist.github.com/1437782 作りたいもの 僕は神になる。ヒト(クラス)を作ってみるぞ 人とは、名前と年齢を持っている存在である 人とは、名前と年齢を伝える為、ちゃんとご挨拶がで…

reliable-msg を Ruby 1.9 系でも動くようにする

やりたいこと タイトルの通り reliable-msg を Ruby 1.9 系でも動くようにしたい git でソースを作者様リポジトリから取ってくる [hamajyotan@host ~]$ git clone https://github.com/assaf/reliable-msg.git Cloning into reliable-msg... remote: Counting…

ReliableMsgAgent で Ap4r と同様のディスパッチを実行する

ReliableMsgAgent で「ap4r と同様のメッセージディスパッチ」をする ap4r の I/F を用いてメッセージを put する put したメッセージは、 ap4r にディスパッチさせずに reliable-msg-agent に自律的に取得させる。要するに pull 型アプローチをとる ap4r の…

Ruby の retry はどこからリトライしているのか ?(Ruby 1.8系)

ちなみに 下記は、Ruby 1.9系では構文エラーになる。 知ってちょっとびっくりした # # test.rb # class RetryTest def initialize @x = 0 puts "initialize!!" end def test x @x += 1 yield @x retry if x > @x end end puts RUBY_VERSION t = RetryTest.ne…

ReliableMsg からメッセージ拾って何か処理する ReliableMsgAgent

ReliableMsgAgent まだまだ改善の余地があるが書いてみました。 https://github.com/hamajyotan/reliable-msg-agent こんな実装 ReliableMsg に置いてあるメッセージを自律的に取得する メッセージに応じて何か処理をする 「何か処理」は自分で定義できる Re…

Ruby 製メッセージキュー reliable-msg

reliable-msg 俗に言うメッセージキュー。キューを保持しており、 Push, Pop が可能。 Push されたメッセージはファイルあるいはデータベースに永続化され、 キューに(意図せぬ)再起動などがあったとしてもメッセージがロストしない。 reliable-msg のインス…

Hash#map は Hash を返すと思っていた方 (自分含) へ

Hash#map は Enumerable モジュールから 以下引用 各要素に対してブロックを評価した結果を全て含む配列を返します。 試す h = {:one => 1, :two => 2, :three => 3} => {:one=>1, :two=>2, :three=>3} h.map { |k,v| [k, v*2] } => [[:one, 2], [:two, 4], …

Scala で後処理の省力化がしたい

Ruby の後処理省力化のイディオム 「openしたら必ずclose」するために・・・ openにブロックを渡す ブロックでは、対象リソースを引数に与える openは、ブロック評価後にensureでcloseをする 上記実装 irb(main):001:0> class Foo irb(main):002:1> def open…

redmine を apache, mysql, unicorn, rvm を用いて動かす

こんな感じで データベースは mysql ruby は rvm で導入する web サーバは apache + unicorn http://example.jp でバーチャルホスト redmine 専用ユーザで実行 以下の手順の前提条件 redmine の実行ユーザ名は redmine MySQL について root ユーザのパスワー…