2004-09-04[n年前へ]
■ソースコードに付箋を付けるシステム
JSPIE3はJavaのソースプログラムに対して付箋をつけるシステムで、ソフトウェアの開発をサポートするツールとして作りました。꒿꓀꒷ꆢ꒳징믅쇈ꓟꆢJavaꖽꆼꖹプログラムに対してだけしか使えない訳ではなく、別のプログラミング言語や単にふつうのWebページに対して付箋を付けるというような応用も考えています。from Zakki
■「男」と「女」の「性的型付け言語(例外処理編)」
静的と静的のタイプミスは結構あるし、そんなオヤジギャグもよく耳にする。例えばこんなメールがその一例だ。
> 画像処理部を作るのが面倒だったので、トリアエズ、> 性的に(いや違った)静的に配列を宣言しています。これはオヤジギャグ以外の何ものでもない。
そんな「静的(いや違った)性的」な男性達の行動を、プログラミングの例外処理を例に挙げながら男の視点から考察し、さらにそれを女性の視点から添削を加えた解説が素晴らしい。特に女性により、「デート時にキスを迫り、さらにもっとスゴイことを迫る男性」の行動に対して女性から「ダメよ=例外」が発生した場合の行動原理(ソースコード)が
try { if (we.passionatelykissed()) { we.sex() } } catch (Java.Sex.Exception jse) { woman.beatAsMuchAsPossible(man);; // ぐーで殴れるとなお良し System.exit(); }と添削されているのを眺めれば、例外を発生させてしまった男性は思わず「ぐーで殴られた気分」を楽しめて良いかもしれない。ちなみに、男性側はこの例外処理部分は
// man.doNothing();; // 何をしたら良いかわからないという感じらしい。これには、「runtime errorをcatchするかもしれないけどとりあえず動かしとこーって設計はもーほんっとに迷惑なので止めてもらいたいもんです」、もう一回繰り返すと「ほんっとに迷惑」とキツイ添削が入っている。
そして、
if (we.passionatelykissed()) { if (we.granted(Java.Sex.Sex)) { we.sex() } }というコードには、「grantの中身は結構大変で、踏んじゃいけない地雷を全部クリアしなきゃダメ」というツッコミも入っている。というわけで、これは今日の必見(特に男性は)情報化も。そして、例えばテレビドラマや俳優達を、こんなソースコードで例えて考えてみるのも面白いかも。
2004-10-11[n年前へ]
2004-11-03[n年前へ]
■ブラウザの中のファミコンゲームで遊ぶ
ブラウザの中のファミコンゲームで遊ぶことができるラブ・ファミコン 〜 ブラウザでファミコンしよう 〜 。JavaアプレットやFlashなどでファミコン・ゲームを遊ぶことができる。ドンキーコング、1942、R-TYPE…。あの懐かしのゲームがブラウザの中に蘇る。 from hpsc.
2004-12-10[n年前へ]
■ジャイアント馬場(ババ)と矢口真里(ヤグチ)が暮らす部屋
背が伸び縮みする「エイメスの部屋」
もし、壁に空いた小さな穴から光が漏れていたら迷わず覗く、それが人間だ。他人の部屋から何やら怪しげな声が聞こえれば、ドアに頭を押しつけて聞き耳をたてる。そのドアに小さな覗き穴が空いていれば、迷わず片目をつぶり、そしてもう片方の目を大きく開き穴の向こうの世界を覗く。もしも、その覗き穴の向こうが他人の家の浴室であれば、覗きの現行犯で逮捕されてしまかもしれないが、とにもかくにも覗き穴を除くのが人間なのである。「歩く好奇心」、好奇心が服を着ているのがイコール人間なのである。
そんな人間であるあなたの前に壁があり、壁の向こうには「謎の部屋」がある。そして、そのあなたと「謎の部屋」の間を遮る邪魔な壁に小さな覗き穴が空いていたら、あなたは一体どうするだろうか?そう、もちろんその穴から不思議な部屋の中のようすを覗いてみるに違いない。好奇心のかたまりとなって、その「謎の部屋」の中を眺めてみるに違いない。
というように、その「謎の部屋」を実際に覗いてみたのが下の二枚である。左は、部屋の中を覗いたようすを示すJavaアプレットであり、右はそのJavaアプレットを静止画像にしてみたものである。まずは、Javaアプレットを動かさず、ただ眺めてみることにしよう。
しかし、実はこの二人の身長は全く同じなのである。この「謎の部屋」は「エイメスの部屋(Ames room)」と呼ばれる特殊な作りになっていて(ペーパークラフトの模型の例)、部屋の中のどの場所に立っているかにより、(覗き穴の外から眺めた)身長がまるっきり違うように見えてしまうのである。部屋の左と右では実は覗き穴からの距離が違っているのだが、その距離に応じて部屋の高さを部屋の左右で変えることにより、その左右が奇妙な形状をした部屋が「覗き穴から眺めてみると」綺麗に四角い部屋に見えるのである。覗き穴の視点からの遠近感を「帳消し」にするような形状にすることで、「エイメスの部屋」を覗き穴から覗くと普通の四角い部屋にしか見えないわけである。
というわけで、「覗き穴」からは綺麗な部屋に見えるけれども、実は部屋の高さと距離が左右で違っているわけで、誰かが視点(覗き穴)から近い側(そして部屋の高さも低い)に行くと、その人は部屋に比べてひどく大きく・背が高く見える。そして、同じ人が視点(覗き穴)から遠い側(こちらの部屋の高さは高く作ってある)に行くと、その人は距離に応じて大きく作ってある部屋に比べて(その人自身は遠くにいるので小さく見える)ひどく小さくく・背が低く見える。そのため、例えば誰かが部屋をトコトコ歩いて行くようすを外から眺めていると、いきなりその人の背の高さが伸びたり縮んだりしてしまうように見える不思議な部屋「エイメスの部屋」ができあがるのだ。というわけで、上のJavaアプレットの場合は右に立っている巨大なジャイアント馬場は単に覗き穴から近いところに立っているだけで、実際には左に小さく見える矢口真里と同じ身長・同じ大きさなのである。ジャイアント馬場と矢口真里が一つ屋根の下で暮らしているわけではなく、実は同じ背格好の人間が二人立っているだけなのである。ちなみに、上のJavaアプレットは 「左クリック+マウス移動」: 物体回転 「Shit+マウス上下」: 視点移動・回転 「Ctrl+」: 「Sボタン」: 通常 → 平行法立体視 → 交差法立体視 というように動かして眺めることができるので、「エイメスの部屋」が特殊な作りになっていることがわかる。他の視点から眺めてみれば、この部屋は決して四角い普通の形ではなく、何とも奇妙な形であることが実感できることと思う。
* ちなみに、足の位置を眺めるとその距離感がつかめてしまうかもしれないが、それは単にポリゴン配置の都合でそんな風に手を抜いただけで、ちゃんと作ればそんな風には見えてしまうことはなく、巨大なジャイアント馬場と小さく可愛い矢口真里にしか見えなくなる。 「エイメスの部屋」を他の視点から眺めてしまうと、仏の四角い部屋でなく、奇妙な形状の部屋であることが判ってしまうということは、「エイメスの部屋」のトリック・魔術にひっかかるのはただ一点から眺めた場合だけなのである。違う視点に移動して、「エイメスの部屋」を覗き眺めてみれば、全然不思議でもない(ただヘンな形をした)部屋になるだけなのである。
他の視点から見た「エイメスの部屋」 視点位置(覗き穴)は右であり、(視点から見て左側に見える)手前の壁は視点から離れるほど高くなり、その一方で床は低くなっていることがわかる。 視点位置(覗き穴)は左であり、視点から見た左右がずいぶんと歪んだ形の部屋になっている。
あるいは、視点をわざわざ移動しなくても、「覗き穴」から片目でその部屋を眺めるのではなく両目でその部屋を眺めてみれば、その部屋の不思議は一瞬にして消え失せる。両目で、すなわち「二つの異なる視点から」その部屋を見るやいなや、頭の中にエイメスの部屋の真実の姿・立体形状・遠感が得られるハズである。部屋が奇妙な形をしていることや、部屋の中の人物が立っている場所がずいぶん離れていることなどを自然に感じとることができるに地がない。「エイメスの部屋Javaアプレット」で"S"ボタンを押して、立体表示させてみれば、(それまでは背の高さが違って見えた)二人が同じ背の高さに見え、単に二人の距離が近いか遠いかどうかの差だけであることがわかることと思う。
二つの目(視点から)でエイメスの部屋を眺めてみる (平行法)こんな風に、「エイメスの部屋」の中では本来同じ背丈の人が背が高く見えたりも背が低く見えたりもする。同じ人であっても、その人との距離や・その人の後ろに見える背景のせいで大きく見えたり小さく見えたりする。だから、片目をつぶり、もう片方の目だけで特殊な場所を覗いてみると「右に歩けばジャイアント馬場、左に歩けば矢口真里」なんていう魔術や幻想が生じたてしまったりするのである。 「背比べ」に絶対的な基準があるわけでもなく、「比べ」というからには、それは単に相対的な高低・大小の比較に過ぎない。となれば、こんな「エイメスの部屋」のような細工された場所、歪んだ世界を距離感を失いながら眺めてしまうと、途端にあるはずもない「ジャイアント馬場と矢口真里が暮らす部屋」が出現してしまう、というわけなのである。いや、「あるはずもない」と言ってしまうと、(今は亡き)ジャイアント馬場に失礼な話だが。