2007-11-01から1ヶ月間の記事一覧
「関数を適用」は分かるけど、メソッドは状態があるからびみょー。
http://www.si-linux.co.jp/wiki/silinux/index.php?CoLinux%20TIPS#k3d0141e VirtualBoxの共有ディレクトリみたいな機能を探してたら、colinuxにもちゃんとあった。 これで、ローカルのeclipseのwarkspaceをマウントして、colinuxでmongrelを動かすというこ…
ユーザスレッドだから、基本的にマルチプロセスじゃないと性能でないっていう割り切りなのかしらん? mongrelはスレッド使ってるけど、性能はどうなんだろう?
マークする必要があるような…
http://storehouse.sakura.ne.jp/rua/beta/ Luaに渡されたRubyオブジェクトは全部、Ruaインスタンスが死なない限りはメモリを解放しないようにした。LuaのGCと同期するのがいいんだろうけど、うまいやり方が思いつかない…
irb(main):001:0> begin irb(main):002:1* 1 irb(main):003:1> ensure irb(main):004:1* 2 irb(main):005:1> end => 1
http://rua.rubyforge.org/ http://storehouse.sakura.ne.jp/rua/ 例外が投げられたら処理を中止するようにした。 require 'rua' rua = Rua.new(:all) #rua.abort_by_error = false rua.errfunc = lambda do raise 'xxxxx' end rua.eval(<<-EOS) errfunc() p…
http://www.bohyoh.com/CandCPP/FAQ/FAQ00058.html 知らなかった。 自動変数の配列と同じで関数を抜けると解放されるものかと思ってた。
http://rua.rubyforge.org/ なんかRubyForgeでミラーリングされていないようなので↓においときます。 http://storehouse.sakura.ne.jp/rua/ 変更点 例外ハンドラにデバッグ情報を渡すようにした 関数のデバッグ情報を取れるようにした require 'rua' require…
http://rua.rubyforge.org/ http://rubyforge.org/frs/?group_id=4845&release_id=16541 Luaからブロック付のメソッドを呼び出せるようにした。 酔っ払いながら実装したんでかなり危険かも。 require 'rubygems' require 'rua' rua = Rua.new(:all) rua.rang…
Ruaでエラーハンドラを設定するとこで、妙な違和感があって、少しだけもやもやしていたけど、原因が分かった。 Rua.new(lamda {|e| puts e }) Rua#newにブロックを渡さないで、lambdaでProcを渡しているから妙なごちゃごちゃ感があったんだ。 「じゃあ、まあ…
RuaFuncが生きているうちに、Ruaが回収されたら困るな…freeはRuaでやってるし。 どうすればいいだろう? RuaFuncの実体で、RuaをVALUEとして持っとけば、GCの対象から外れないかなー。
http://msdn2.microsoft.com/ja-jp/library/wb1s57t5(VS.80).aspx alloca便利そうだなーと思ったら、Windowsでも使えそう。
http://dev.rubyonrails.org/ticket/9155 Railsのスレッドまわりはもういやぁぁぁ… …というか、Railsでマルチスレッドやってるのが変なんだ。うん。 Railsを採用する前にマルチプロセスでどれだけスケールアウトできるか、よくよく考えたほうがいいと思う。…
LuaでCのクロージャを作るときに lua_pushlightuserdata(L, (void *) rbval); lua_pushlightuserdata(L, (void *) error_handler); lua_pushlightuserdata(L, (void *) secure); とかやってるけど、パラメータがふえたらヤなんで、error_handlerとかsecureを…
拡張ライブラリのRDoc書くのメンドクセとか思ってたら、Cのファイルも読み込んでくれた! 便利♪便利♪
http://www.microsoft.com/japan/msdn/vstudio/express/faq/#visualc # Express Edition を商用目的で使用することはできますか。 はい、Express Edition でプログラミングしたソフトウェアの販売については、特に制限はありません。とのことなので、問題な…
もう少してこずるかと思ったけど、案外サクッとビルドできた。 一応、メモ。 QDBMのビルド QDBM付属のVCmakefileを少し手直しして、Microsoft Platform SDKのコマンドプロンプトから、nmake。 --- VCmakefile.orig 2006-01-07 19:13:08.000000000 +0900 +++ …
http://d.hatena.ne.jp/winebarrel/20071115/p2 頭が冷えてきたので、少し書き直す。 実際の工数が見積もり越える原因は、2つしかないと思う。 見積もりの間違い 予定外の作業 予定外の作業について片手間でこなせる人もいるけど、僕には無理だ。 なので、…
http://rua.rubyforge.org/ http://rubyforge.org/frs/?group_id=4845&release_id=16436 RubyからLuaに渡したRubyオブジェクトを元に戻すようにした。 require 'rua' class Foo def bar p self end end foo = Foo.new foo.bar #=> #<Foo:0x293ff38> rua = Rua.new rua.foo =</foo:0x293ff38>…
Proxyの仕組みを調査 Nora+Tenjinの検証 QDBMまわりの調査 TCはwin32で使えない。。。 RubyでCursesを使ってみる
Luaのバインディングがわりとさくさく進んで楽しかったので、Ioのバインディングでもつくろうかなと考え中。 競合するライブラリは結構ありそうなんだけど、名前のせいか検索にヒットしない。。。 ホントにライブラリはないのかなぁ?
http://rubyforge.org/frs/?group_id=4845&release_id=16367 スタックがずれていたのを修正。 コルーチンの呼び出しに対応。 method_missingを実装。 require 'rua' error_handler = lambda do |e| p e end rua = Rua.new(error_handler) rua.openlibs(:all)…
クリティカルパスについて思うところがあったので、メモしておく。ただの妄想。 すべての作業がクリティカルパスだと考えている管理者がいる。いろいろなところにいる。彼らはすべての作業は遅れてはならない…というか、遅れたら取り戻されなければならない…
http://rubyforge.org/projects/rua/ とりあえずRubyForgeに登録。gemでインストールできるようになった。 エントリも更新。 unixでのコンパイルはコケるかも… ~$ gem install rua Select which gem to install for your platform (i386-mswin32) 1. rua 0.1…
OSとか環境とかはホスト側が提供しない限り、Luaから触れないからよいけど、ホストのオブジェクトをそのままポイッとわたして、メタプログラミングをされてしまうのは怖い。 「基本的に関数定義して、オブジェクトなんかそのまま渡すなよな」という姿勢でい…
Object#__id__は読まれても実害はない…と思うけど一応、禁止に。 破壊的な更新をするメソッドの変換抑制は開発者側にがんばってもらう。 Moduleとそのサブクラスの変換を回避・禁止する 以下のメソッドの変換を回避・禁止する __id__ __send__ class extend …
http://d.hatena.ne.jp/winebarrel/20071111/p1 とりあえず、実装した。
http://rua.rubyforge.org/ http://rubyforge.org/projects/rua/ http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/rua/rua.tar.gz?root=svn&view=tar extconf.rbでコンパイルが通って、動作確認もできたので正式公開。 近日中にRubyForgeに移す予定。 こ…
ここ読んでいたら、こんなんが載ってた。 <body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 </body>…