Ruby
今日はコード書いて無かったので何となくクイックソートを。
実装したことが無かったなぁ、とふと思ったので、ちょっと書いてみた
http://rikunabi-next.yahoo.co.jp/company/cmi0089954001/nx1_rq0008861224/ 「相手の思考を推理する」過程をプログラムで表現する問題です。 開発言語は問いませんので、慣れ親しんだ開発環境をご用意ください。 A, B, C の3人が 1〜5の5枚のカードを使っ…
最近、ほとんどRailsに触っていないことに気がつき、なおかつRails3に触ってなかったことにも気がついたので、感触をつかむ第一歩として前に作っていたRails2のコードをRails3に移植している最中、表題のエラーがでたので対応した際のメモを残しておこうかと…
マルコフ連鎖って実際に使ったことが無かったので試してみた。 三階のマルコフ連鎖(でいいのかな?) 四階にしてみたらほとんど原文のままで面白くなかった.
最近、あまりRuby触って無かったのでリハビリがてら...
タイトルの後半は尾ひれです。RubyのNet::HTTP#propfind経由でWebDAVのPROPFINDメソッドを呼べば良いのですが、Web上に個別の情報(WebDAVとRuby)があるもののつながった情報が見つからなかったのでメモ.Webサーバーに依存するかもしれないけれど、とりあえず…
ヒープ領域中にあるオブジェクトのダンプ - komamitsu.log で作ったRubyのヒープ領域ダンプ用パッチを手直ししました。何とか使えるようになってきたかも。具体的には以下の対応です。 Railsで動かすとSegfaultる Nodeオブジェクトがウザいのでやっぱり消し…
OOPのメッセージ送信をTCP上で - komamitsu.logのマルチプロセス版をgithubにポコンと。http://github.com/komamitsu/message_passing まぁ、そうするとクラス変数が共有されなくなっちゃうんですけれども…そもそも、マルチスレッド版のコードではクラス変数…
Rubyはオブジェクト指向言語なので、オブジェクトのメソッド呼び出しは「オブジェクトに対してメッセージを送る」と考えることもできるそうな(アラン・ケイが発祥?)。であれば実際にオブジェクトに対してメッセージをTCPとかで送受信したくなるのが人情と…
ってできないかねぇ?と先日同僚に聞かれたのですが、業務中は面接したり打ち合わせしたり技術調査をしたりで時間がなさそうなのと「これは何だか趣味の領域だなぁ」と思ったので、自宅で深夜こしょこしょとruby処理系へのpatchを書いていたのでした。で、そ…
最近、Railsのメモリリーク絡みで困ることがあったので、何か簡単に(拡張ライブラリを書かずに)GCの状況を把握できないものかと思い、それらしいのを作ってgemにしてみました。http://github.com/komamitsu/gc_monitorまぁ、簡単に言うとCGされずに残ってい…
http://arika.org/diary/2009/07/31/ruby-1-8-7-pxx-vs-capistrano-2-5-x ちょうど同じところで半日悩んでいましたよ…Net::SSH::Transport::PacketStream.available_for_read?の def available_for_read? result = IO.select([self], nil, nil, 0) result &&…
1.8.7の話。1.9は変わっているかも。あと、Rubyはソースコードから-gつきでコンパイルしているもの限定(狭いなぁ)。 gdbでattach rubyのglobal変数である ruby_sourcefile, ruby_sourceline をprint わかる detachして何事もなかったのごとくquit $ gdb (g…
これまた列挙 Debian lennyのaptでrubygemsを入れると1.2 Rails2.2のアプリを動かそうとしたら, 「gemは1.3.1以上じゃないといけないよ」エラー 前に使っていた手段であるgem --system updateを試みると、「on Debianでは--systemは駄目よ」エラー gemのruby…
ふとD言語の仕様を眺めていたら、契約プログラミングがサポートされているらしい(http://www.kmonos.net/alang/wnd/whats.ja.html#dbc)ので、かなり心惹かれた。 あと、コンパイルがとても楽そうなのも素晴らしい。良い意味で節操がなさげなのもまぁ良いの…
今月号のWeb+DB Pressを読んでいたら文字列間の差異の程度を表す編集距離の求め方が載っていた。ちょっと面白かったので再帰呼び出しでもっと綺麗に書いてみようかなと思ったら、ごちゃごちゃしそうだったので挫折。単なる Perl -> Ruby の移植になってしま…
Rubyのテストを書く際、RSpecとTest::Unitを行ったり来たりしているのだけど、最近はTest::Unitのターン。で、jijixi's diary - 実は Rails で Test::Unit を使ってテストを書いているのは少数派なのではないか、という想像 , Mac OSX 10.5.2でFirewireのス…
なぜこんなことを調べているのかの発端はhttp://d.hatena.ne.jp/komamitsu/20090422/1240413644.http://www.ruby-lang.org/ja/man/html/trap_IO.htmlとかをみると、IOクラスではGC時にファイルをクローズしてくれているらしい(まぁGCまかせはイクナイと思う…
/usr/lib/ruby/gems/1.8/gems/memcache-client-1.7.2/lib/memcache.rbで「:vimgrep /^\s*\(class\|module\)\s/ % | cw」と打ってやると… 1 memcache.rb|31 col 1| class MemCache 2 memcache.rb|920 col 1| class Server 3 memcache.rb|1073 col 1| class Me…
http://d.hatena.ne.jp/komamitsu/20090422/1240413644でコードの違いからするとガベコレのタイミングでTCP close()しているようにも思えるけど、Rubyではデストラクタがないからなぁ… どうやってるんだろう?って書いたのだけど、そこ「ガベコレのタイミン…
こんなコードを書いて接続数を増やそうとすると40接続あたりで一気に全ての接続が切れてしまう。 require 'rubygems' require 'memcache' 1.upto(100) do c = MemCache.new 'localhost:11211' c.stats sleep 0.3 end sleep 200 tcpdumpで眺めていたらmemcach…
ふと気がついたら、Rubyのinstance_evalとmodule_evalの違いや、defとdefine_methodの違いとかを忘れていてショックだったので、気合を入れ直そうとRubyの拡張ライブラリを書いてみることに。せっかくCなので、RBasic構造体のflagsにアクセスしてみようと思…
以下を組み合わせてゴニョゴニョしてJSONPを試してみたメモ。 jQuery で JSONP 2通り - てっく煮ブログ WEBrickをつかってActiveResourceのダミーサーバを作る - moroの日記 Webサーバー側はこんな感じ。 require 'rubygems' require 'activesupport' requi…
恒例のフィボナッチベンチで V8 と Smalltalk、Ruby、Python、Scheme とを戦わせてみる - Smalltalkのtは小文字ですを見て、お手軽なのでなじみの言語で試してみることに。スペックがしょぼしょぼなので軽めで。 Ruby def fib(n) n < 2 ? n : fib(n - 1) + f…
を見ていたら、 「あーそうなんだ、でもうちの Rails のサービスじゃ REXML でパースする処理なんて書いてないから別にいいや」とか思っている方、大変危険です。 おれのことですね。わかります。 ということで、いい機会なのでhttpclientをgem installして…
先日、帰省からの帰りの新幹線で読む用に、以前から気になっていた以下の二冊を購入。初めてのRuby作者: Yugui出版社/メーカー: オライリージャパン発売日: 2008/06/26メディア: 大型本購入: 27人 クリック: 644回この商品を含むブログ (251件) を見る[24時…
ついでに、define_methodも練習してみる。というのも、上の練習の際、メソッド内でdefine_methodを使おうとしたら、ちょっとはまったので。 class Hoge def a def inner; puts "aaaa"; end inner end for_b = "i am b." define_method(:b) { puts "bbbb [#{f…
先日、久しぶりにRubyをいじったら何だか手間取ったので、リハビリ開始。Integer#timesみたいなメソッドを書いてみようかと思ったのですが、驚いたことにループっぽい処理に対する拒否反応が!OCamlの影響だろうか… まぁ、再帰でいいじゃないかと。末尾最適…
gcalapiを使うと簡単らしいので試してみた。 #!/usr/bin/ruby -Ku require "rubygems" require "googlecalendar/calendar" GCAL_ACCOUNT = "someone" GCAL_PASSWORD = "hogehoge" GCAL_FEED = "http://www.google.com/calendar/feeds/someone@gmail.com/priv…