日記帳

日記です。

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

プログラミング言語 BeanShell

http://d.hatena.ne.jp/sa-y/20060718 の続き.実行速度は遅いですが BeanShell の言語自体は結構気に入りました. http://www.beanshell.org/manual/bshmanual.html ECMAScript 3rd Edition からプロトタイプ継承と標準ライブラリ(ArrayとかRegExpとか)をな…

TestSprite.bsh

なんか恒例のやつ.BeanShell では任意の Java オブジェクトが扱えます.gcj でコンパイルしてあるので sdl4gcj*1を使えば当然 SDL も扱えるわけです.そういうわけで SDL の testsprite.c の BeanShell 版. #!/usr/bin/bsh-Interpreter import sdl4gcj.*; …

BeanShell を gcj でコンパイル

BeanShell*1 は Java で書かれた組み込み可能なスクリプト言語です.BeanShell を含めた Java ベースのスクリプト言語全般に言えることですが,インタープリタ単体で起動するとその度に JVM を起動することになって,起動に非常に時間がかかります.*2そのた…

テレビチューナー付き液晶ディスプレイ

PC

http://d.hatena.ne.jp/sa-y/20060531#1149054499 のディスプレイの話.D端子入力時でドットbyドット非対応らしい. http://www.watch.impress.co.jp/av/docs/20060531/iodata.htm 以下引用. D端子入力時にはドットbyドット非対応となりました。なお、D3/4…

swt-3.1.2 を MinGW 環境の gcj で使えるようにビルド

java プログラマからは Sun の java 完全互換じゃないから嫌われて,C++ プログラマからは java だからって理由で嫌われる.そんな薄幸の gcj を使ってみる話です.MinGW の gcj にはまだ awt が実装されていないので GUI アプリケーションが作れません.と…

MinGW で SDL をビルド

ビルドした記録. http://cefiro.homelinux.org/topics/SDL/setup-win32-mingw-20060601.html 変更点とか. 各種ライブラリのバージョンアップに追従 SDL-1.2.10 SDL_image-1.2.5 SDL_mixer-1.2.7 SDL_net-1.2.6 SDL-ttf-2.0.8 libogg-1.1.3 libvorbis-1.1.2…

wikifiled

Yahoo UI Library*1 の勉強ついでに WikiParser.js *2を使ったなにかを HTA *3として作ってみよう企画.当然実用性はないです…とりあえず弄るのに飽きたから公開. http://cefiro.homelinux.org/memo/2006-06-01/wikifiled-0.0.1.zip - ファイル http://cefi…

究極の疑問の答え

glibc*1に含まれている memfrob(3)*2 には「生命、宇宙、そして万物についての究極の疑問の答え*3」が含まれていることを学んだ…学んだからといって memfrob(3) を使う機会は増えないだろうけど… *1:GNU C Library http://www.gnu.org/software/libc/ *2:バ…

テレビチューナー付き液晶ディスプレイ

PC

うちにはテレビがなくてテレビ番組はPCにテレビチューナー付きキャプチャボード付けてみています.それはそれでいいのですが困るのはコンシューマーゲーム機のゲームがまともに遊べないことです*1.だからといって普通のテレビを買っても部屋が狭くて置く場…

WikiParser.js について

なんか http://d.hatena.ne.jp/sa-y/20060509 がたくさん参照されてるみたいですがみんなこういうのが好きなんでしょうか?ちょっと探してみると同じようにWikiライクなテキストのパーザは他にもあるみたいです. http://dev.ishinao.net/WikiParser/javascr…

WikiParser.js

ECMAScript で Wiki っぽいテキストをパーズして HTML DOM ツリーにするパーザです. http://cefiro.homelinux.org/memo/2006-05-10/WikiParser.js ソース http://cefiro.homelinux.org/memo/2006-05-10/test_wiki_parser.html デモ 久しぶりに使ったのでち…

TestSprite.js (2)

http://d.hatena.ne.jp/sa-y/20060425#1145974636 で書いた TestSprite.js は不当に(?)遅い物だったと気が付いたのでもう少し最適化してみました。別に testsprite.booが C の 55% も出るらしいのに Rhino の ECMAScript で 30% 程度の性能しか出なかったの…

Date_format.js

ECMAScript の Date オブジェクトに strftime(3) っぽいメソッドを追加するスクリプトです.すっっごく昔に作った物ですが,それを久しぶりに使ったのでちょっと整理. http://cefiro.homelinux.org/memo/2006-04-27/

TestSprite.js

Rhino では JavaScript から任意の Java オブジェクトが扱えます. gcj でコンパイルしてあるので sdl4gcj を使えば当然 SDL も扱えるわけです.新しくバインディングを書かなくても SDL が使える言語が増えるのって楽でいいですねぇ♪ってことで SDL の test…

Rhino 1.6R2 を gcj でコンパイル

Rhino 1.6R2 を gcj でコンパイルできるようにしてみました. http://cefiro.homelinux.org/memo/2006-04-25/ JRE で実行すると起動が遅くてやる気がなくなる Rhino ですが gcj でネイティブコードにコンパイルしてしまえば快適に動きます.

libgcj システムクラスローダ拡張機能

クラスローダの拡張機能っていうのは,クラスを事前に共有ライブラリにコンパイルしておくと,そのクラスが必要になったときに自動的に共有ライブラリをロードしてその中のクラスを利用してくれるという機能です.具体的には gnu.pkg.SomeClass クラスが必要…

sdl4gcj と gl4gcj を更新

sdl4gcj とgl4gcj を以下のように更新しました. sdl4gcj-0.2.0 -> sdl4gcj-0.3.0 gl4gcj-0.0.8 -> gl4gcj-0.1.0 変更内容は以下の通り. 共有ライブラリを作成するように変更. ライブラリ名を変更. libsdl4gcj -> lib-sdl4gcj libsdl4gcj-mixer -> lib-sd…

libtool のおべんきお

参考資料 http://www.geocities.jp/fut_nis/html/libtool-ja/ - マニュアル*1の日本語訳.最も重要. http://www.nslabs.jp/libtool.rhtml libtool の簡単な使い方と Makefiel の例.automake を使ってない例は稀少かもしれず. 学んだこと Win32 環境で DLL…

割と Asynchronous な Ajax Web チャット

http://d.hatena.ne.jp/shinichiro_h/20060409#1144563467 の話.これは昔(といっても1年以内でしょうけど)私が見た Web ページにこの技術(comet?)の解説があってその応用として Web チャットとかあるよねという話を飲み屋か喫茶店で話をしたのが元ネタだと…

委譲(2)

委譲*1の続き.少しだけ変更してみました. Object.prototype.delegator = function(accessor, methodName, aliasName) { if(!aliasName) aliasName = methodName; if (typeof accessor == "string") { this[aliasName] = function(){ this[accessor][method…

しかし手を抜きすぎではないのか?

委譲

ECMAScript のプロトタイプチェインでの継承は基本的に単一継承なので割とよく委譲を使うことになると思います.もちろんプロトタイプチェインによる継承それ自体も委譲なわけですけど…委譲といえば Ruby の Forwardable.rb*1 が便利なのでとりあえず ECMASc…

Web ブラウザでの Global オブジェクト

Global オブジェクトがどんなオブジェクトになるのかは処理系依存のようですが Web ブラウザ上で JavaScript を実行する場合の Global オブジェクトは Window オブジェクトらしいです. alert(this === window); // => true alert(this.window === this); //…

ECMAScript の Global オブジェクト

Global オブジェクトと this について以下のサイトが参考になりました. http://malt.seesaa.net/article/7429410.html 以下メモ書き.要約すると Global オブジェクトが現われるのは以下の場合のようです. Global スコープの this 関数を関数形式(メソッド…

Ruby で C がスパゲッティ

戯れに注文したスパゲッティが本当に出来てきました… http://d.hatena.ne.jp/shinichiro_h/20060323#1143054071 これが本場イタリア仕込みのスパゲッティらしいですよ!全然 SDL じゃないけどとりあえず気にしない方向で… main 関数だけに展開 変数名は全部1…

アクセサメソッド定義メソッド(3)

http://d.hatena.ne.jp/sa-y/20060320#1142855348 の続きです.attr_reader() でデフォルト値を指定できるようにしてみます. Object.prototype.attr = function(name, initialValue) { this.attr_reader(name, initialValue); this.attr_writer(name); } Ob…

アクセサメソッド定義メソッド(2)

attr() *1 でアクセサメソッドを定義してもプロパティを直接読み書きできてしまします. Object.prototype.attr_reader = function(name) { var capitalizedName = name.charAt(0).toUpperCase() + name.substring(1) var readerName = "get" + capitalizedN…

最近全然脳を使ってない気がする…

private なプロパティ

ECMAScript 3rd Edition では private なプロパティを実現するために以下のようなコードが書けます。 function Value() { var value = 0; this.getValue = function() { return value; } this.setValue = function(newValue) { value = newValue; } } var ob…

アクセッサメソッド定義メソッド

ECMAScript ではメソッドの呼出しとプロパティの参照は透過的ではありません. account.message() // メソッドの呼出し account.message // プロパティの参照多態したい場合にはメソッド呼出しに統一するしかないので単純なプロパティへのアクセスもアクセサ…