7/28/2009

道具にもこだわりたい

どうもJudaです。
世間的には優れたプログラマは道具を選ばないらしいのですが、私は俗物凡人なので入力インターフェイスもテキストエディタもこりこりで、言語やランチャやクリップボード、仮想Windowなどもつかっています。
入力インターフェイスは長期戦向きのFILCOのマジェスタッチ、職場向けのHHK Professional JP
テキストエディタは通常使いのMIFES8と開発用のVisualStudio、そして修練中のVi、Emacsです。
言語は、なるべくならばC/C++ではなくてC#、Perl、Python
ランチャは穏便にLaunchy、クリップボードはCLCL、仮想WindowはVirtualWindowです。
この導入群の制でALTとCtrlのキーは押しまくりです。

7/26/2009

テストファーストでの開発の注意点

どうもJudaです。
今日は、TDD(Test Driven Design)について気づいたことを。
TDDは結局は終わりから始まりに戻るリバースエンジニアリングであり、それによって開発を行う方法だけど、これって通常は突然の仕様変更に耐えられるように作れるのか?または機能追加に。
事前に機能追加を見越して開発をするということは、テストケースからは推察できないと思うのだが、どうなのだろう。今はまだしっかりと理解していないが、直ぐに思いつく問題になりそうなものはそこかな。
あとはMDD(Model Driven Design)なんかも、仕様を元にデータモデルを考えて云々だと思うけど、仕様変更には、TDDよりは強いと思う。
ただ、一番いえるのは、仕様が変更されることは今までのものでは機能不全であるという烙印を押すのであるから、どんな場合でも厄介である。また冗長性で回避できるにしても限界があるし、想定の範囲内の修正でない場合も多い。
私はソフトウェアをなにかの類推や定型化して考えるには、まだまだ知らないこと、いつか現れる新しいことが多すぎて、いつ何をしゃべっても一定以上の付帯条件がついていて、どれにも銀の弾丸にはならないと考える。ただあるのは、開発者がより多くのツールと手段を知っていることで、それらに対応するのが唯一有効であると言える手法に思える。ただこれは何も示していないのと同じだが。

7/18/2009

新しいゲーム布教の提案

どうもJudaです。今回は新しいゲームの布教の話をします。

昨今のゲームではオンラインは当たり前になりつつあります。そのなかでPCゲームというカテゴリでの販売にはクローンの生成に問題があります。現在はこれらを海賊行為として取り締まっていく機運がありますが、個人的にはこれではユーザーがわざわざPCゲームを選んでくれているメリットの一つを奪うと考えます。それは、楽しいゲームをみつけて、それを仲間内でやろうとします。そのときには直ぐに仲間とゲームをやりたいのです。そのためにそれが契約違反であってもしてしまう可能性は極めて高いです。そのゲームをレビューするような段階ならなおさら。

そこで既に試みられているかもしれないのですが、この行為が仲間内で行われることを利用して、同一シリアルでのLAN Party利用を前提としたプレイスタイルを認めることを提案します。基本的にはゲームの仮想イメージを故意に流布させる人は、それ以外のものをも流布している可能性が高いので、法的意識云々のレベルで考慮にいれてもどうしようもありません。わかっているけど、一線を越えてしまう人のために限定的に同一ライセンス同士でのローカルマッチを認めるのはどうか、と。これはまだ案でしかないので、より詰めて考えないといけないのですが、新規のゲームほどレビューをしてもらえること、紹介してもらえることにかけるコストが大手に比べて大きくなります。そのためにソフトのロックも保守的になるのですが、あくまでそれらを広めようとする人に対して、より理解を示そうということが主眼です。利用者のいないゲームはただの自己満足でしかないので、可能であるならば、販売者側の立場と購入者側の立場でより妥当な線を提案できればと考えます。

PCでゲームをするという、欧米では普通のスタイルですが、日本国内ではなじみのないスタイルに対して、よい関係を気づいていくことが双方によいフィードバックをもたらすと思います。

このためにオンラインでの対戦のネットワーク構築の基盤となるライブラリの構築と認証システムを考えるのも、販売者よりの利用者の歩み寄りかなぁ、と。まぁ、企業からすれば横柄な利用者にしか見えませんが、それでもゲームは好きですし、よりゲームデザインのよいものをより多くの人と分かち合い、それを生み出してくださった開発者によりダイレクトに評価ならびに評価としての金銭が還元されるモデルがうまくうまれるといいなぁとおもいます。

7/15/2009

人工知能

どうもJudaです。
今日は、人工知能の話。

人々が本当に望んでいるのは、人工知能ではない。とても優秀な私だけの奴隷だ。
仮に人工知能が可能であるとすると、自身の意図していない行動を起こすようになることだ。自律的に活動するということだ。でも、人々が人工知能に期待するのは、人道的な奴隷だ。
空間を跳躍して、同時に離れた場所に点在する。遍くこの世界に存在することが究極の願いだろう。いわば、神である。
この目標を達成することに、知能はいらない。精密なフィードバック機構と規格化された外骨格だけが必要なのだ。機械はどこまでも末端神経の拡張でしかないので、この方面での拡張はもっとも人間的である。
自らの身体という鎖から放たれていることが目的であるので、この方向はとても利に適う。しかし別の欲求も認める。自分でない、自分と同等の存在の渇望。人は一人でできることなど限られる。議論やゲームなどの闘争に関するものは必然的に一人ではできない。
人は遊び相手、奴隷、代替品として人工知能を求めている。しかも自分と同等の知能でという制約付だ。その中で社会制度というものを考えるとなかなか面白いのではないだろうか。自己の制限付の代替品としての他者とか。
人工知能の究極のジレンマは、離散集合でしかどうしても処理ができないことだろう。

7/12/2009

破をみた

というわけで以下ネタばれ

単純にみて、泣けました。

シンジの葛藤や、アスカの苦悩、レイの心境の変化がふんだんに盛り込まれていて、今までのエヴァとは違うものとなっていました。まぁ、悪く言うとガイナック的な演出が多くなりました。それは特に後半に凝縮されているのですが、いささかやりすぎな演出があったと思います。宣伝も大々的に行ったサブカルチャとしてのエヴァから大衆向けのエヴァへの変化という点では正解なのだと思うのですが、後半の戦闘シーンに関してはもっとトーンを落としてもよかったのかもなぁと思います。

本当はべた褒めしたいです。アスカの心理描写がとても現代的なものに変わっていること。アスカがとってもキュートな演出できつさがぼかされていること。まぁとにかくアスカがかわいいんだ。(ぇ
まぁ、アスカとレイの描写がことごと古い時代とは変わっていること。それがいいことか悪いことかは瑣末な問題で、本当に受け取るべきは今回提示されたエヴァであり、これは古い時代の誰もを悩ませた混沌に満ちていたエヴァとは違う。あの行き場のなさとそれでも抗うしかない自己との拮抗のような詩的な世界観から、人から神へと昇華する神話的な世界観になってきています。エヴァというアニメ界の金字塔に求められている期待に対する回答としては、上等だと思います。

ただ着目したいのは、
なぜ物語はシフトしたのか?
なぜ大筋から変革を加えられたのか?
時間が流れて、要求されるものが変わったから?
それとも、これが本来の結末なのか?

エヴァの世界観を現代風にアレンジしなおしても、どうしても変えられなかったのは、"インターネットの導入"だと思う。携帯電話やノートPCがでてくるが、インターネットの存在は明らかにならない。彼らの世界にはそれがないと考えるのが自然だ。あの世界にはGoogleは生まれていない。mixiもブログもない。知識は本や口承で伝わるのだ。世界はつながっていないのだ。

なぜエヴァの結末は変わったのか?私の答えは、インターネットが生まれたからだ。この発明のせいで人類補完計画の結末は塗り替えられざるを得ないのだと思う。今すでに人々はつながっている。知識は共有されている。一つのネットワークを作り出している。ネットがない世界を、ネットがある世界の人が見ていながら、人類補完計画の結末を納得させるにはどうするのか?これに立ち向かうのか、それともこの問題を回避するのかは、これからの話だ。たぶんエヴァの新しい世界では人類補完計画は発動しない。あの結末はネットのない時代の孤立と取れる。ならば、結末はどうするのか。ハッピーエンドにしてしまうのか?

あと気になるのは、今回のエヴァはよく精神汚染されていると思う。なにかのメタファー?

と、難しいことも書いたけど、普通に見れば楽しめます。熱いです!

理想的なキーボード配列

どうもJudaです。
今回の記事はインターフェイスについて考えます。

結論から言うともっとも汎用的なものがもっとも便利です。しかし、そのキーボードには潜在的な健康リスクや打鍵速度の限界が存在しているとします。そのときに、自分のキーボードだけでもそれを回避しようという考えが生まれるかもしれません。インターフェイスの重要性への気付きです。

インターフェイスの基礎はそれを通じての他者間の交通があることです。その交通が円滑に行えることは、交通量の増大をもたらします。古いタイプライタがQWERTYを採用した背景には交通量による制限がありました。あまり早く打鍵すると、交通量が増えすぎて入力が渋滞するのです。現在のキーボード入力のために用意されているパスではこのような交通渋滞は発生しません。つまりはQWERTYに固執しなければならないハード的な制約はないのです。

キーボードに求められるインターフェイスの要求は、手元を見ずに話すような自然さで入力を行えることでしょう。日本の携帯電話は固定電話のインターフェイスを踏襲しています。これに対してiPhoneは、キーボードのインターフェイスを踏襲しています。一部は固定電話のインターフェイスですが。ここでも結局は既存のインターフェイスを変革させることはできませんでした。インターフェイスは習得することに抵抗が大きいのです。

しかし習慣化されたインターフェイス利用への前に存在した学習期間がどのインターフェイスにも必要なことに留意してもらえば、対等にそれぞれのインターフェイスを考えることができます。またそのあとの利点については、なるべく伏せておきます。この点に関しては、趣味の話なので、個人の信条が至上です。ただここで考えるのは、優れたインターフェイスを追求するという試みです。

携帯電話に話を特殊化します。このときに入力インターフェイスが固定電話と同じであることは至極もっともです。iPhoneのPCキーボード踏襲は完全にMailやBrowseでの使用が前提です。この基盤の違いがインターフェイスを決定しています。日本の携帯はi-modeなどのネット利用のBrowseを普及させる戦略をとりましたが、結局インターフェイスは電話のままでした。私はこれは使いにくいと思います。もともと意図されていないインターフェイスを使わされているので、不便であるはずなのです。しかし現在この入力系は基本です。これを強制する理由は電話利用におけるキープッシュです。あとは携帯のための小型化のためにインターフェイスに課せられる制約は大きいものであったと思います。

そしてiPhoneでBrowseにはなじみのQWERTYを持ってきましたが、今度はそれを使うBrowserが携帯での利用を本気で考えてはいなかったことですかね。あんな小さい画面でPC並みの情報を得ることには無理があります。すべての機能が統合されていません。ちぐはぐな感じがします。このことにもきっとDesignerは気付いていると思います。

携帯自体が個人間のインターフェイスとして機能しています。電話、メール、ブラウズの機能を凝縮したインターフェイス端末です。電話とメール・ブラウズには使う感覚に違いがあります。電話は音声、メールなどは文字です。携帯の役割が次第にメールなどの文字系統に変わっていくのならば、インターフェイスがキーボード配列になっていくのは、自然であると思います。しかし携帯端末にPCのキーボードのような役割をもたせつつ、PCとは異なるインターフェイスの開発が求められます。今度は空間的な制約がインターフェイスに制限を課すのです。

そのなかで私はiPhoneのタッチしているとスライドする入力方式はとてもスマートであると思います。ただし入力精度にまだ問題が残っているのですが、あの考え方は素敵です。ですが、完全なブレイクスルーにはいたらないと思います。あれでもまだ入力しにくいのです。ただタッチスクリーンによる入力インターフェイスは、レイアウトが自由ですし、開発の制約が少ないので、さまざまインターフェイスがうまれてくることを期待します。

このときに、私が重要だと考えるのは、2つです。

  1. 片手で入力が完結すること。(基本的に携帯は片手で使用)
  2. 1.75ステップで入力できること。(めんどくさいのいまいち)
  3. できればさらにコンパクトにおさまること(画面的な制約)

習得のしやすさは根本的な問題ではなくて、とっつきやすさでしかないのです。

7/09/2009

ご無沙汰

どうもJudaです。
最近業務とゲームが忙しくてサボってしまいました。
今日はCVSの話

CVSのレポジトリを終えるにはどうするのがよいのか?
コレに関しては誰も書いてくれていないので、僕もかけない。
今は関連する情報を調査中です。
とりあえず自分のソースコードのバージョンの安全性を保証するためにこれを慣習化するまで使ってみる。
同時にメモリーリークを起こすプログラムの見直しと対策。
またはリファクタリングによる整理を行う予定。
詳しくは、また今度、とにかく今はマシーンが調子悪い