2014-03-01から1ヶ月間の記事一覧

プリセット画像というアイデア

これは昔書いたかもしれんし、Twitterでつぶやいたかもしれんけど、DXRubyにプリセット画像を用意するという発想はずっと前から持っている。水視さんが手伝ってくれてた頃に思いついてたら迷わずお願いしてたはずなのだが、それが無いということはまあ、るび…

RubyInstallerのRuby2.0でRubyInlineとOcraを使ってexe化する

Rubyのコード内にCのコードを埋め込んで、その部分だけCコンパイラでコンパイルして拡張ライブラリ化し、呼び出す。これがRubyInlineの仕掛けである。Windowsでうまく動かないとか、Ocraでexe化するのがうまくいかないとか、色々あったが、最近のんは改善さ…

Spriteの実装と設計判断

高尾さん(@takaokouji)から「Spriteはなぜインスタンス変数に値を持たないのか」という質問を受けた。その回答はシンプルに「遅いから」であった。 Spriteの描画時など、参照するパラメータは10を軽く超える。これらをすべてCのAPIでインスタンス変数から取…

松江Ruby会議05に参加してきた(3)

昨日の最初に書いた「普段置かれている環境への疑問」てのは職場のことであって、Twitterとかで関わってる人たちのことではない。ここを誤解されると致命傷になりかねんので一応念のため。さて、今回は松江Ruby会議05ちょー個人的感想の最終回で、DXRubyに関…

松江Ruby会議05に参加してきた(2)

前回は講演の超主観的な感想であった。全体的にレベルが高いのは松江だからなのか、それともどこに行ってもこんな感じなのか。 自分が普段置かれている環境に若干の疑問を持ちつつ。次いってみよー。 松江、島根の取り組み Ruby合宿、中学生Ruby教室、Ruby.J…

松江Ruby会議05に参加してきた

2014/3/15(土)、島根県松江市にてMatsue.rb主催の松江Ruby会議05が行われた。それのゲスト講演をしてきた。 島根県がやっているRuby合宿でDXRubyが使われているという繋がりでDXRubyに関する講演の依頼が来たので、ちょっと喋りに行ったという経緯である。 …

DXRuby1.4.1リリース

1.4.0が2012年8月だったので随分久しぶりのリリースとなった。 開発版の1.5devを2013年5月に開始してから、いろいろと修正を入れているうちの、確定していない微妙な機能を省いたバージョンとなっている。ソースは1.5devと共通で、マクロでコードを削除した…

ソース隠蔽手法

昨日の続き。隠蔽といってもアセンブラレベルでは見れてしまうので頑張れば解析可能なわけだが。Rubyのアセンブラは高レベルなので読みやすいというのが難点か。 ともあれ、このようなファイルを作る。名前はiseqloader.rbとしよう。 require 'fiddle' class…

バイトコードのローディング

ちょいとメモ。 require 'fiddle' class RubyVM class InstructionSequence addr = Fiddle.dlopen(nil)['rb_iseq_load'] fn = Fiddle::Function.new( addr, [Fiddle::TYPE_VOIDP] * 3, Fiddle::TYPE_VOIDP) define_singleton_method(:load) do |dat, par=nil…