トップ «前の日記(2008-06-27) 最新 次の日記(2008-06-29)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2008-06-28

_ アスタ(続)

とりあえず作ってみたstar.batが介入しているのは、StarRuby::FontとStarRuby::Textureだけなので、requireはだめなわけですが、どうせなら、requireにも介入するか。

というわけで、とりあえずお手元の、star.batに次のパッチを当ててみてください。

--- star.bat~	Fri Jun 27 21:34:47 2008
+++ star.bat	Sat Jun 28 02:00:50 2008
@@ -34,11 +34,11 @@
     end
     
     def self.to_local(uri, path)
-      [ '', '.TTF', '.png'].each do |ext|
+      [ '', '.TTF', '.png', '.rb' ].each do |ext|
         begin
           src = open(uri.to_s + ext, 'rb')
           FileUtils.mkdir_p File.dirname(path)
-          File.open(path, 'wb') do |f|
+          File.open(path + ext, 'wb') do |f|
             f.write src.read
           end
           src.close
@@ -62,9 +62,22 @@
       _load RemoteFile.get(path)
     end
   end
+
+
 end  
 
 include StarRuby
+
+alias _require require
+
+def require(path)
+  begin
+    _require path
+  rescue LoadError
+    StarRuby::RemoteFile.get(path)
+    _require path    
+  end
+end
 
 load RemoteFile.get(ARGV[0])

一応、動くのは確認したので、ASR 1.8.7.6も作るけど。

追記:requireで拡張子pngとかTTFは無駄過ぎるな……

_ ASR-1.8.7.6

ASR 1.8.7.6(MD5checksum: bbdaad881ab3761b263b5af1de227f95)

requireの場合は拡張子rbのみ検索するようにしたstar.batに更新しました。

あと、RubyGemsを1.2に更新。

star http://arton.no-ip.info/data/test/star/falling_blocks.rb

も実行できます。

_ Star Ruby

というか、知らない人にはなんだかさっぱりわからないよな。

Star Rubyは、SDLの上に星さんが作ったゲームツールキットというか、クラスライブラリ。

で、ASRに0.2.0バイナリ配布アーカイブからSDLを含むDLLを同梱したということです。約1.5MBの増量だけどまだまだOne Clickに比べればコンパクト。

あと、おまけにセキュリティについて一切考えていないスマートクライアント風な実行用バッチファイル(star.bat)を添付したと。Openクラスで良かった!

_ 目が覚めたら

こないだICCで買ってきたGainerで遊ぶ予定。

+GAINER―PHYSICAL COMPUTING WITH GAINER(GainerBook Labo/くるくる研究室)

_ YARV戦略

メモを整理してたら、

Rubinius: Cが少ないから互換性の問題がない

YARV: Rubyで書いたところが少ない

  →RubiniusがRubyで書いたコアクラスを取る

ってのが出てきた。反映させるかと一瞬考えたが、ちょっと目線が異なる内容なので、ここに書いて終わりにしとく。

追記:メモなので短い言葉を選んでるため、「取る」という、なんかタマとかクニとかを対象にする物騒な言葉を使っているけど、実装の仕組みからJRubyよりRubiniusのほうが協力しあえるというような意味です(で、その中には、Rubiniusで作成したコアライブラリを流用してVM以外はピュアRuby環境というのも試せるとか、そんな感じ)

_ ドワーフの歌

白雪姫 [DVD](ウォルト・ディズニー)

ヘイホー、ヘイホー、クロージャー

おれたちゃ関数 ヘイホー、ヘイホー、ヘイホー

(無限にエクステントする)

本日のツッコミ(全10件) [ツッコミを入れる]
_ 星一 (2008-06-29 00:19)

1.8.7.6 を入れてみたのですが、 require が変わっていないような。 1.8.7.5 を一旦消してから入れないとだめなのかな。<br>ところで star コマンドでゲームを実行する場合、 SAFE レベルを上げたほうがよろしいかと存じますが、いかがでしょうか。今のままだと、「あるディレクトリ以下のファイルを全部消す」とか平気で出来てしまいます。

_ 星一 (2008-06-29 00:30)

一旦 1.8.7.5 (6?) を消して入れなおしたら star.bat も更新されて falling_blocks 動きましたー。

_ arton (2008-06-29 00:40)

消してから入れる必要は謎です。VistaはOKだけどXPはだめとか何か条件があるみたいですが僕もわかりません(うまく上書きされるときもあるし、なんか残るときもあるので)。<br>一度、アンインストールして消してみていただけますか? (#p1のパッチを当てると、インストールしたファイルから変わるので、アンインストール時に削除しなくなるというのはあるかも知れませんが断言はできません)<br>$SAFEについては、2くらいに設定してもいいですけど、ファイルの削除はできないけど上書きはできるとか、ちょっといい加減なんですよねぇ。<br>ブラウザーからのリンクと異なり、気付かずにクリックとかメールから誘導みたいな操作がありえない、つまり、コマンドラインの引数でURIを指定することによって指定したファイルと、それが存在するディレクトリ以下のファイルのロードと実行に制限というので良いのではないでしょうか。<br>もちろん、サイトが書き変えられたら×とか、ドメイン乗っ取りとかを気にすればお話になりませんが、それを言い出すと、ASRをインストールするとか、StarRubyをインストールするとか、署名なしバイナリを扱うことがそもそもお話になっていないので、許容範囲かなとは思います。<br>が、infoseekへコピーするバージョンでは$SAFE=2は設定しておきましょう。

_ arton (2008-06-29 00:47)

悪意はなくともバグはあり得るから、やはり$SAFE=2くらいの設定は必要ですね。

_ arton (2008-06-29 00:50)

星一と一旦って遠目にはシメトリカルだなぁ。

_ 星一 (2008-06-29 01:12)

星一<br>一旦<br><br>ほんとだ

_ arton (2008-06-29 01:25)

で、試してみたら、ARGV[0].dup.untaintという書き方を覚えたのは良いとして、$SAFE=2ではDir.mkdirがエラーでした。$SAFE=1かなぁ。

_ arton (2008-06-29 01:28)

いや、$SAFE=1はプログラムを信用している前提だから設定する意味はないですね。

_ 星一 (2008-06-29 01:30)

あーそっか、 Texture.load とかのときに使うんですね。 > Dir.mkdir

_ arton (2008-06-29 01:58)

Dir.mkdirは解消方法を見つけたのですが、今度は、Windows Vista固有(だと思う)でのtempdirライブラリの問題を見つけてしまいました……奥が深い。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|

ジェズイットを見習え