Ruby

MatzRubyとJRubyは混ぜるなキケン

私の環境ではMatzRubyとJRubyが両方インストールしてるんですが、前々から一つ問題が有りました。 それは、gemコマンドを指定した場合MatzRuby(以下CRuby)のgemでなく、JRubyのgem*1が起動することです>< まあJRubyをメインで使っていたので、たいして困っ…

Operational transformationについて、その1

鉄は熱いうちに打てってことで、 GoogleWaveでの並行編集処理の基本アルゴリズムであるOperational transformationの復習。 よく解らないモノは、書き出してみると良いってことで 以下、Operational transformation - WikipediaのBasics,OT Functionsを参考…

ruby->clojure[.contrib]?.set

rubyでやる*1class Set (Ruby 1.8.7) union,intersection,difference require 'set' a = Set[1,2,3,4,5] b = Set[3,4,5,6,7] p a + b #=> #<Set: {5, 6, 1, 7, 2, 3, 4}> p a & b #=> #<Set: {5, 3, 4}> p a - b #=> #<Set: {1, 2}> #p a.union b #p a.intersection b #p a.difference b select 実装するとしたら、こん</set:></set:></set:>…

ruby->clojure.contrib.str-utils

rubyでやってみると、こんな感じ>< re-split 文字列のパターンによる分割 "a, b, c, d, e, f, ".split ' ' #=>["a,", "b,", "c,", "d,", "e,", "f,"] "a, b, c, d, e, f, ".split ',' #=>["a", " b", " c", " d", " e", " f", " "] "1,2,3,4,5".split("," …

rubyで拡張子の変更

なんか最近Rubyで...(以下同文)w; 拡張子の変更を行うスクリプト。 Dir.glob("*").each{|file| if file =~ /^foobarbaz/ unless file =~ /\.log$/ p file p File.rename(file,file.sub('.txt','')+'.log') end end }

rubyで順序文字列のソート

なんか最近Rubyでプログラムしてないので、Ruby力が落ちてるようなw; まあ、ちょっとヤボ用で n行がセット、n×m行の文字列をソートするスクリプト 書いたいので貼っつけておく*1。 str =<

「第40回 Ruby/Rails勉強会@関西」の発表資料的なもの

結構日にちが立ちましたが、日本Rubyの会 公式Wiki - 第40回 Ruby/Rails勉強会@関西での 発表資料的なものを記載しておこうと思います。 って言うか、会場にいらっしゃった方は分かると思いますが、コードは有っても、資料は無しw;

OpenSolarisにRuby on Railsインストール

OpenSolaris200906にRailsインストールした記録。 rubyのインストール、gemの更新方法等はメンドクサイので、その辺は省略します。ググってください。 20100502 省略したせいで、自分自身が、ググり直してしまいましたよw; ので、メモッておく。 $ gem -v …

HelloPhysicsWorld->vecmath-ruby->chapter5.1

ごめんなさい、前回のchapter5で、嘘ついていました>< http://d.hatena.ne.jp/paella/20070204/1170596857 http://d.hatena.ne.jp/paella/20070205/1170686957 rubyには値渡ししかなく引き数として与えられた変数の値を変えても元の式の値は変わりません.…

HelloPhysicsWorld->vecmath-ruby->chapter7

で、overload。こっちは静的と動的言語の差異で、なかなか上手く実装できませんでした。 javaのポリモーフィズム(多態性)を、rubyでどう実装する*1かって事ですけど。方法としては、 型をチェックす rubyのkind_of?メソッド 識別メソッドを設定 関数名の置…

HelloPhysicsWorld->vecmath-ruby->chapter6

rubyのoverrideとoverloadとについて rubyにjavaのvecmathライブラリを移植するときにoverloadの実装で困ったのでメモ。

HelloPhysicsWorld->vecmath-ruby->chapter5

そういえば、Rubyは参照渡しできないんだね。使おうと思ったこともなかったので気づかなかったw;rubyx.vecmath.Matrix3クラスのget_rowメソッドを仕方なく、以下で実装した>< class Matrix3 def get_row row raise "" unless row < 3 vec = Vector3.new …

HelloPhysicsWorld->vecmath-ruby->chapter4

なんかメンドクサイので、Vecmath.Matrixはmatrix.rbに委譲したい*1けど、ムリかなw; module作ってみたけど、やっぱり黒魔術覚えて使わった方が。 テトリスっぽくて書いてるときは、楽しかったんですけど、改めて見るとねw; module Mat3 attr_accessor :…

alias_methodの別名メソッド定義の有効範囲は解決です

昨日に「class内でalias_methodで定義した別名は参照できない?」なんて悩んでましたけど、改めてよく見れば解決しました。 るりまに確りと書いていますね>< alias_method(new, original) -> self メソッドの別名を定義します。 とw; class Test attr_ac…

alias_methodの別名メソッド定義の有効範囲

一寸悩んだのでメモ。 class内でalias_methodで定義した別名は参照できない? るりまとか見てみたけど特にその辺について記載がない。 rubiniusの実装みてみたけど、こちらはalias_methodがModuleクラスに無かったw; class Test attr_accessor :n alias_me…

HelloPhysicsWorld->vecmath-ruby->chapter3

Tuple2,Tuple3,Tuple4の検討案。 module入れ子にしていって、差分だけ記載するようにしたが、ん〜。 寝て頭リセットしたけど微妙かな。 eval系*1使った方が簡潔にかけるかな? でも速度的なもの考えるとevalってのも。 まあ一番問題なのはPoint4がPoint2,Poi…

HelloPhysicsWorld->vecmath-ruby->chapter2

で、実装中^^

続き物の記事まとめ

OpenSolaris等の記事ruby-processing等の記事 P.S. 21120903先頭配置用w;だったんですがRSSに反映されなくなっているようなので、普通の日付に戻しますw;

ruby-processingOpenGL描画構文、めも

Processingは、sizeでP3Dオプションを指定してやることによって、簡単に3Dを扱えます。 が、P3Dはソフトウェアレンダリングなので描画速度が遅いです*1。 まあruby-processingは速度を気にしない人が使うでしょうから、あまり問題でないんですけど、 どうし…

ruby-processingでopenclass

openclassを利用しようとしたとき、詰まったのでメモ。 --bareオプションで作成した場合、Processing::Appクラスに含まれる形になるので 普通にFixnumにメソッドを追加ができません。

「ruby-processing基礎操作」の訂正

ruby-processing基礎操作 - 会者定離で以降の訂正です。

環境の更新

やる気が起きないので一先ず泳いできた。が、やっぱやる気起きないね。 やる気無いので寝るか。ってわけにもいかないので機械的にやれることをやって置く。って、いつの間にかhttp://jruby.org/に1.4が、 The Scala Programming Languageも2.7.7が出てるやん…

HelloPhysicsWorld->vecmath-ruby->chapter1

vecmath懐かしい。Java3Dのシーングラフって言葉にあこがれた時代が私にも有りました( -_-)- vecmath package(日)rubyで実装するか、javaxから引っ張ってるかだけど、まあ実装します。暇じゃないけど。 int,fload,doubleはrubyで区別無いので纏めるとして、…

HelloPhysicsWorld->SourceOfInformation2

参考が一杯、たいへんw;Spaghetti Source - 各種アルゴリズムの C++ による実装ACM/ICPC国内予選突破の手引き

ruby-processing-geometry発表終了

終わった。眠い。

ruby-processing-geometry

線と円の幾何計算をGUIに表示できた\(^o^)/ *1 ので、神戸に出発。 *1:想定通りだけど、使ってみるとイマイチでした

幾何計算ライブラリで幾何の復習中

線形やベクトルを、忘れてる、忘れてる*A* で、一先ず必要最小限の幾何計算ライブラリ*1が出来たぞぉ〜(*゜∀゜*)−! って、ruby-processingへの表示*2をどうしよう...orz 風呂の後考えようw; *1:2D計算の一部 *2:GUIに表示しないと交点などの計算して…

HelloPhysicsWorld->2D->BouncingEllipse->chapter1

最初は、円が弾むシミュレーションを実装してみる。 で、以下は円を表示するだけのrp5sketch class Ellipse attr_accessor :x,:y,:w,:h def initialize x,y,width,height @x,@y,@w,@h = x,y,width,height end def draw ellipse_mode CENTER ellipse @x,@y,@w…

HelloPhysicsWorld->SourceOfInformation

暇じゃないけど、物理シミュレーションをいろいろとやってみる。 で、出力にruby-processing使って、物理ライブラリは自前で実装してみる。 processing Language Reference (API) \ Processing 3+ physics TRAER.PHYSICS 3.0 JBullet - Java port of Bullet …

初めて、触[:sinatra]ってみた感想

うわ、簡単^^; http://jugyo.org/blog/3388 Standards: LiveCoding#6 was Successfully Hosted by Me sinatra本家サイト この辺り参考。 GAEとWeb,DB周りに慣れるにはちょうど良いですね。って感じで触ってて*1、xyzzy-ruby-modeを作らないとなと再確認*2…