2007-01-01から1年間の記事一覧

Webでプログラミング!

・・・できるものを作ってみた。 http://storehouse.quickvps.net/firter/ Luaでサーブレットっぽいものを作れる。Operaには(CodePressが)未対応。 future changes パーソナライズ ライブラリの追加 NKFで外部リソースの文字コードの自動変換 外部リソースの…

ShallowTree(作りかけ)

shallow_tree.js shallow_tree.css Example JavaScriptのTreeViewライブラリを探したけど、よさげなのがないので、自作中。

オーバーライドされた元のメソッドを呼ぶ

もう少しスマートなやり方があるような気が。 class Foo def initialize @val = 'foo val' end def func @val end end class Bar < Foo def initialize @val = 'bar val' end def func 'Bar#func' end end foo = Foo.new bar = Bar.new puts bar.func puts F…

gemパッケージの「-60」

gemを0.9.5にしたらプラットフォームごとのファイル名の命名規則が変わったらしく、「rua-0.3.7-x86-mswin32-60.gem」というファイル名になってしまった。 x86はともかく、末尾の「60」がよくわからないのでplatform.rbを覗く。 ## # A pure-ruby gem that m…

1.9.0

http://www.ruby-lang.org/ja/news/2007/12/25/ruby-1-9-0-release/ リリースされたなー。とりあえずWindows版待ち。

Rua: 0.3.6-b1

http://storehouse.sakura.ne.jp/rua/beta/0.3.6-b1/ 末尾に「=」がつくメソッドがある場合、「hoge=」→「set_hoge」というエイリアスを作るようにしてみた。 メタテーブルを使えば、もう少しましな動作になると思うけど、とりあえず後回し。 require 'rua' …

Merb

マルチスレッドを強くアピールしてたと思ったんだけど、あんまり話題になっていないような。(Merbの話題自体少ないけど) だれかスループット計ってくんないかな?

Rua: 0.3.6-b2

http://storehouse.sakura.ne.jp/rua/beta/0.3.6-b2/ エイリアスを作るのはやめ。newindexイベントつかって、ふつーの代入っぽくSetterを呼べるようにした。 require 'rua' rua = Rua.new(:all) class Foo def bar=(v) @bar = v end def bar @bar end end ru…

cygwinでscreenでdetach

http://home.tiscali.de/emilio.lopes/screen/screen-4.0.2_cygwin.patch ↑のパッチを充てて、bashを起動する前に環境変数CYGWINに'tty'をセットしたら、とりあえず使えるようになった。

Shooting Starを3.2.5にした

http://rubyforge.org/projects/shooting-star/ とりあえず。 やっぱりIEカチカチ Flashのバージョンをあげるというのもなんなので、いろいろ調査。 どうも、IEの場合、onloadが呼び出されない場合があるっぽい。 http://support.microsoft.com/kb/239638/ja…

QDBM + Ruby + WindowsでSEGV

VC8でビルドしたQDBMとRubyバインディングを使ってたら、SEGVで落ちまくるんで調査。 結論としては、dllでmallocしたメモリをexeでfreeするとだめっぽい。 dllとexeでシームレスにmallocする方法がわかんないので、とりあえずqdbmをstaticリンクするようにし…

今日の戦果

「ちろちゃん」は「まとちゃん2」でもいいような。

ルールを作るよりツールを作れ

DEV

ルールや手順書作るより、それらが不要になるようなスクリプトを書こうよ、と思う。

Resizable

http://storehouse.sakura.ne.jp/resizable/resizable.htm これ見て「すごいなー」と思ったので、prototype.jsで実装してみた。 Operaだとイマイチな動作。 <html> <head> <script src="prototype.js" type="text/javascript"></script> <script type="text/javascript"> var Resizable = Class.create(); Resizable.prototype = { initialize: function(element…</head></html>

CodePress: Lua用syntax highlighting

LUA

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/codepress_lua/?root=svn JavaScript用をベースにして作ってみた。バージョンは5.1。 /* * CodePress regular expressions for Lua syntax highlighting */ // Lua Language.syntax = [ { input : /\"(.*?…

Hiki Luaプラグイン

Ruaを作っていたのは、こーゆーことをやりたかったわけで。 プログラミングできるWikiって、よさげじゃないですかね? require 'rubygems' require 'rua' require 'stringio' def lua_eval(src) rua = Rua.new rua.stdout = StringIO.new rua.eval(src) rua.…

Rua 0.3.5

http://rua.rubyforge.org/ 外部の文字コードを指定すると、ホストから渡された文字列は内部的にUTF-8に変換して処理するようにした。 rua = Rua.new(:all) rua.external_charset = Rua::SJIS # 外部の文字コードはSJIS rua.str = 'あいうえお' # SJIS→UTF-8…

非同期I/O 概説

http://lab.klab.org/files/alm/20070806/aio.pdf AIO便利そうだなー。

mod_ruby for Windows + Apache 2.2

コーディングをしようと思ったけど酒飲んでるので無理! かわりにmod_rubyをWindows + Apache 2.2でビルドした。 ビルド環境 mod_ruby-1.2.6 Visual C++ 2005 Express Edition Microsoft Platform SDK Apache_2.2.3-Openssl_0.9.8d-Win32 ActiveScriptRuby 1…

Ruaで簡単なフィルタを作る

もはや、何言語だか。 $stdoutは渡して大丈夫かな? require "cgi" require 'open-uri' require 'rua' cgi = CGI.new print cgi.header("text/html") rua = Rua.new(:base, :string) rua.stdout = $stdout rua.open = OpenURI.method(:open_uri) rua.eval(<

iconvとライセンス

Ruaの文字コードまわりがやばそうなので、入力された文字コードを自動的にUTF-8に変換する機能を追加しようと思って、iconvまわりを調査。 mswin32版のiconv.dllはMeadowのものっぽいけど、GNU版なのかなぁ?LGPLだから静的リンクしない限り、CPLで問題ない…

Rua 0.3.4-b2

http://storehouse.sakura.ne.jp/rua/beta/ 内部的にUTF8に変換することで、SJISの問題になんちゃって対応してみた。 require 'rua' rua = Rua.new(:string) rua.external_charset = Rua::SJIS rua.repl = '寿限無' puts rua.eval(<<EOS) #=> "寿限無寿限無" s, n = s</eos)>…

メソッドを適用?

「関数を適用」は分かるけど、メソッドは状態があるからびみょー。

cofsかわいいよcofs

DEV

http://www.si-linux.co.jp/wiki/silinux/index.php?CoLinux%20TIPS#k3d0141e VirtualBoxの共有ディレクトリみたいな機能を探してたら、colinuxにもちゃんとあった。 これで、ローカルのeclipseのwarkspaceをマウントして、colinuxでmongrelを動かすというこ…

ぶつぶつ…

ユーザスレッドだから、基本的にマルチプロセスじゃないと性能でないっていう割り切りなのかしらん? mongrelはスレッド使ってるけど、性能はどうなんだろう?

Luaに渡したユーザデータ

マークする必要があるような…

Rua 0.3.2-b4

http://storehouse.sakura.ne.jp/rua/beta/ Luaに渡されたRubyオブジェクトは全部、Ruaインスタンスが死なない限りはメモリを解放しないようにした。LuaのGCと同期するのがいいんだろうけど、うまいやり方が思いつかない…

ensure節は戻り値にならない

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

Rua 0.3.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…

文字列リテラルはstatic

C

http://www.bohyoh.com/CandCPP/FAQ/FAQ00058.html 知らなかった。 自動変数の配列と同じで関数を抜けると解放されるものかと思ってた。