2009年10月

10万人規模の政治家を擁するインターネット国会を実現する - 狐の王国.

ネットさえあれば多数の政治家が集うことができ、それによって今まで実現しなかった直接民主制がついに目の前に、というのは良く言われる話である。極端な話日本で1000万人クラスまでスケールアップさせることが可能である。
できない理由は聞きたくない。時間の無駄だ。

全くその通りなので、やるべきではない理由だけをあげよう。こいつは如何にして合意に至るか、というのを明示できない限り、駄目だ。

それがない以上、この10万人インターネット国会と言うのは、日本という船を富士山の頂上に持って行くだろう。もうちょっと言い換えると、これはネット直接民主主義ではない。ネット衆愚制だ。
これくらい本気で政治を変え、経済を変え、日本という国を改革しなければ・・・

変えるというのであれば、本当に必要なのは多様な意見ではない。1つの新しい合意なのだ。多数の人間が関わるというのは、それだけで膨大なコストがかかるものである。その上で1つの合意を形成するなどというのは至難の業である。歩みがのろのろとして仕方がない、とまで言い切ってもいいだろう。このスピードの速いネットの時代にはマッチしない。

スピードを速める方法は唯一、決断者を少なくすること、つまり一人にすることだ。独裁者の悪い面は良く強調されるが、独裁制の生み出すスピードとダイナミズムこそ、今の時代を作っている。Linuxを見よ。Linusの独裁じゃないか。そして優良な大企業の多くも有能な経営者による独裁同然である。

今苦しんでいる我々に必要なのは安定では無く、むしろ不安定であってもスピードとパワーによる変化である。であれば独裁か、それに近いぐらい強権が発揮できる制度が必要である。となるとむしろ必要なのは10万人より1人ではなかろうか。むろんネット独裁者の下部組織として、10万人のネット議会はあっていいものかもしれないが。

むろんこちらは独裁の最大の欠点でもある、独裁者が間違った決断を下す問題を何とかしないといけない。しかしそれでも、今の混乱した時代なら、独裁による一貫した変化のほうが受け入れられると思うのだが。

10月初め頃から徐々に一般公開されたGoogle Wave.並々ならぬ興味をもって眺めていたが、無事プレビュー権を獲得することができた。そして少しづつ使い始めている。当初思っていた通り革新的なツールであるというのは間違いない。しかし革新的なエクスペリエンスを提供するかというと今のところ期待はずれと言わざるを得ない。実装不足というわけではない。むしろ現在の仕様としてはちゃんと完成度が上がっていると言える。問題は仕様が偉大すぎてL.starのような凡人がついていけないところにある。

L.starが実際に使うコミュニケーションというと以下のようなものがある。

  • メール

    • グループディスカッション

    • スケジュール/会議予約調整



  • ドキュメント/ソースコード共有

  • IM

  • IRC

  • 2ch


多くはメールに頼りつつ、コラボレーションツールとしてOutlookの機能(ただし会社のみ)も少しは利用する。細かいやりとりはIMやIRCを使うのが多い。IMはBitlbeeでIRCに統合しているので、実際に使うのはメール・IRC・社内共有ツールというぐらいである。Google Wave、というかGoogle Waveが扱うメッセージ単位である"Wave"は基本的にオブジェクト埋め込み可能なツリー構造ドキュメントであり、Waveクライアントはそれをリアルタイムレベルで共有するものである。だから、"Wave"は汎用ツールとして、それら全部を内包することが可能である。それを意図して作ったのであるが、やはりここまで野心的なことをやるのはとてつもなくすごいことだと言えるだろう。問題は、汎用ツールであるが故にどれをやるにも使いづらいのだ。主観というか偏見に近いだろうが、そもそもツリー構造は人間が気楽に扱うにはいまいち。だからスレッド式掲示板はいつまでも傍流なのである。

もう一つは、非常に雑多な更新が起こりうるにもかかわらず、Waveは1つのドキュメントなのである。それゆえ、あちこちの更新をうまく拾ったりするのが難しい(ただし、未読拾うだけならスペースバーでできる)また、おそらく良くできたWaveは(同様にツリー型を基調とする)マインドマップのように放射状に広がることになると思われる(でかい議論とか見たことがないので何とも言えない)が、その場合には全体像を追うのがさらに難しくなる。そもそも、良いWaveを作るためには良い作戦が不可欠である。しかし、誰がいったいそれを指揮するのか、と言う問題はある。今のところ、ベストプラクティスのようなものはある程度存在している。メールやIRCは暗黙のルールがそれをカバーしているが、Waveはそれなしに戦わないといけないのだ。

もうちょっと簡潔にまとめると以下のようになろう。

  • 特定用途で使いづらい。

  • 全体を美しく保つ仕組みの不足

  • 全体像を把握しづらい


さらに踏み込めば「やることが多すぎて何をしたらいいのか分からない」と言うことだ。もちろん、こんなことをWaveチームが気づいていないはずはない。気づいているから徐々にプレニューからスタートし、ノウハウを蓄積させつつ改善のためのフィードバックを充実させようというのだ。

L.starとして、上記のある程度の解決策として、以下のようなものを提案したい。

  • Eclipseでいう"perspective"機能。つまり、特定用途に特化したUIを追加する。これは、ある意味Waveletの仕事と言ってもいいのかもしれないが、Waveletはあくまで埋め込み可能オブジェクトであり、ツリー全体を支配するものではない?と感じられる。ツリーの一部の特定種別に特化した入力機構があれば、ツリーの特定部分の共同作業が楽になる。例えばチャットのように連続してツリーノードでメッセージをやりとりするとか、写真登録を連続して行ったりとか。

  • Wave Template。これもまたWaveletとRobotで実現するべき機能なのかもしれない。今のところWaveはツリー式であり我なら上下スクロールで見るようになっている。例えば、チェスをやりながらchatをするようなケース、これはチェス盤が隠れてしまってやりづらいのではないか、と言うような懸念がある。実際地図は使いづらかった。感じとしてはExcelの「セルの凍結」のように特定部位にノードを貼り付けられたり、段組を実現したりというような形が、Waveの形態によっては求められないだろうか。perspectiveと併せて「特定機能特化」に対す回答である。また、テンプレートはBest Practiceの導入を容易にし、合意の形成や美しいドキュメント作成に役立つだろう。

  • 全体像を把握しやすくする機能。純粋にズームで良いかもしれないが、巨大なWaveになればなるほど使いづらくなるのを避けるためには、全体像を把握するのは必要である。

  • ノードの要約機能。Robotでもある程度可能だろう。巨大なWaveには余り意味のないノードが登場する。しかし、現状ではノードの目立つ度合いは単にオブジェクトの大小である。もっと意味論的にどうなのか?と言うのが必要では無かろうか。例えば単純に「賛成」という意見を表明するようなのは「○」にしてしまうとか、そういうのだ。また/.Jによるモデレーションのような、議論に有益な部分を浮きだたせる機能。短いバージョンを使って要旨を得やすくするなど、議論そのものを小さく「見せる」方法が必要になるだろう。ツリー型では子ノードをばっさりたたんでしまうパターンが多いが、あれ「だけ」はいただけないと思う。必要なのは全体を維持しつつ要約により全体を見やすくすること。


まあ、こんな要望が出てくること自体が、Waveの素質の高さと言っていい。どれも従来のコミュニケーションツールでは考えられないような広範囲をサポートするプラットフォームをデザインできたからこそ出てくるようなものである。そもそも、まだまだ開発は途中、大きい機能もこれからと言われている。Googleにはむしろ、L.starの考えなど軽く吹っ飛ぶようなすごい解決策の実装を期待したいものである。

最近ブラウザゲームなどをつらつらとやってみるに思うことがいろいろある。特に裏でどのようなデータが格納されているか、性能効率的にどうだろうか、と言うのを考えながらスキーマを考えるのはおもしろい。ここで典型的なMob系を考えてみよう。

Mob系は3つのパラメータ(health,energy,stamina)というのがあり、おのおの一定時間ごとに1づつ増加する。例えばこうだ。

  • Health: 35/130 増加まで1:25/4:00

  • Energy: 20/50 増加まで3:21/5:00

  • Stamina: 0/3 増加まであと0:11/2:00


普通にこの問題をなんとかしたければ、データを最新の値に保つために毎回updateすればよい。現在データを格納するテーブルmobは以下のようなスキーマになろう。
health int , when_health_growth timestamp,
energy... , when_energy_growth...,
stamina...

あとは毎秒ごとに
update mob health=health+1, 
wheh_health_growth=.wheh_helth_growth+...
where current_timestamp>when_health_growth;

のようなSQLを実行すればいい。複数パラメータを一気に扱うので、関数をつかうのもありだろう。CASE文を使って一本にまとめることもできるだろう。しかしこのやり方は馬鹿だ。なにしろ毎秒indexの効かないupdateを繰り返すわけだし、PostgreSQLなどではdead tuple増加の原因にもなる。MyISAMなら、少しはましかもしれないが。どちらにしても、現実的な性能にはならないだろう。

しかしよく考えると、この自然増加は時間による単調増加なのだから、ある時点での値(と傾き)さえ分かれば、現在の値はすぐ分かるはずなのだ。ゆえに、その関数さえ保存しておけば良い。関数に必要なのは現在値と現在時刻だけである。関数の傾きはユーザーごとに不変なので、故に必要なのは
health int ,
energy int ,
stamina int ,
when timestamp

この4つとなる。ただし、ここではhealth等には、増加時間nと、前回増加時間からの経過時間をpとすると、health*n+pを格納することとする。秒以下は切り捨てで良かろう。そうすると取得時のhealthはround((health+when-current_timestamp)/n)で求められる。これによりアップデートが必要なのは、ユーザーがアクションを発生させた時だけとなる。むろん可視性のためにカラムを分けてもいいだろうが。

例えばエネルギー10の仕事をする場合、同増加必要秒数はnとして(しかもtimestamp同士の引き算が秒数intになると仮定してw)、SQLは以下のようになる。
update mob set health=health+current_timestamp-when,
energy=energy+current_timestamp-when-10*n,stamina=(ry),
when=current_timestamp where(pk一致)

もちろん実際に利用するに当たって事前チェックなどが必要なのは言うまでもない。こうすれば、updateの回数を大幅に減らすことができる。というか、現実的な範囲にDB負荷を軽減できるだろう。

もう一つ問題になるだろうと思われるのは、頻繁に発生すると思われる同一IDへのupdateだ。HOTのような機構が有効に働いている限りはかなり負荷削減に役立つだろうが、それでも一時的に同じユーザが複数の行動を行う、というのがこの種のゲームの良くあるパターンであるから、そこは何とかしたいが、今のところ解決策は余り思い浮かばない。おそらくは、内部的に複数のリクエストを1つにまとめるような手法が求められているのだろう。

Winnyで47氏が逮捕された、高裁で無罪になったと言うことで賑わっている。L.star的には

  • 47氏を有罪にしようというその法理そのものが疑問。あんなのを振り回されたら技術者はたまったものではない。

  • しかしながら47氏がシロだとはとうてい言えない。彼が罰せられないのは法律の不備、あるいは法理の問題、そして「疑わしきは罰せず」という原則に沿った故である。

  • 一連の活動において、警察を含む権力者サイドは、結果として間違った判断を繰り返した。


と思っている。特に最後は致命的である。結局違法コピーは止まったかというと、Noである。しかも、日本における暴露ウィルスの大量被害と、脆弱性のある2.0b7.1のセキュリティフィックスがなかったこと (後で読むと言いたい事と全然違う内容だったので修正。不適切な文章をお詫びします。そして指摘感謝)バージョンアップを妨げることにより暴露ウィルス対策(アップロードフォルダに意図しないファイルを送り込めるという状態を修正する)をWinnyに組み込めなかったことは、密接な関係があるであろう。むしろ彼らこそ明確な意識を持って善と信じることをなしたにもかかわらず、現実問題としては結果は悪だったのである。まあ良くあることだが。

id:KoshianXもこれに関してエントリを出してる。

デジタルデータの本質とWinnyにおける警察の暴走 - 狐の王国.

これはKoshianとも別途ちゃんと話をしたのだが、
警察がすべきだったのは作者を逮捕することなどではなく、解決策を作者に出させる事だった。そのためには警察がわざわざでばる必要など無かったのだ。YouTubeがそうしたように、権利者との話し合いの場を持ち、解決策を協議すべきだったのだ。

この部分には納得できない部分がある。結局のところ、47氏は当事者でもなく、コントロールを主導する立場でもないのだ。解決策を出せる立場にもない。問題はWinnyそのものではなく、もはやWinnyネットワークであるから、どうしようもないのだ。これはNapsterとGnutellaの関係に似ているが、中央集権型のネットワークを持つNapsterのような(あるいはYoutubeのような)仕組みのシステムでなければできない。解決策があるとすれば、それこそ法律やそれに準ずるレベルのものでなければならなかっただろう。「○○機構を持つソフトウェアは違法」のような。むろんWinnyを罰することは現行の法理論ではできない。が、今後の抑止力にはなるだろう。

しかし、もはやデジタルコピーのコストはあまりにも安くなってしまった。それゆえ、どのようなことをしようがこの実態からの後戻りはできないだろう。歴史において、民衆全員に法を強制することなどできたためしがない。長期にわたって権力が他人の行動の自由を奪うこともできない。ましてやモラルなど、今の日本のような治安レベルの高い国家ですら守られやしない代物である。時代が変わるときには、かくのごとく従来のものはすべて無力になる。逆に言うと、それだけの変化が起きない限り時代は変わらないと言ってもいいだろう。あとできるのは、撤退戦か切り込むか、どちらかである。

実はこの影響を一番受けているのはゲーム業界であり、対策が一番進んでいるのもゲーム業界である。例えば古くからあるコピー防止対策はいたちごっこであると昔から誰もが認識しており、あれは純然たる撤退戦である。逆に切り込むのはクライアント無料のMMOアイテム課金とか、広告収入を当てにしたブラウザゲームとか、iPhoneのようなダウンロード販売前提のビジネスである。PSPgoも(現実として成功かどうかはともかくとして)ここの部類に入るわけだ。

大手レコード会社はいずれ降伏する, しかし2011年までは悪あがきする

上のTechCrunchの記事はL.starのお気に入りの一つだが、これが正しければアメリカの音楽業界も現状をはっきり理解しており、しかも撤退戦から反攻の時期までちゃんと考えているというのだ。彼らとて間違った選択をたくさんしてきた(そして、多くの利権をiTunesとiPodによってAppleに奪われた)が、彼らとて馬鹿ではない。長期的なプランはちゃんと練っているのだ。繰り返すが、正しいとは法律でも権力でもモラルでもない。ただ変わりゆく現実に従うこと、それだけなのだ。「勝てば官軍負ければ賊軍」の言葉通りである。

日本の業界はその準備ができているのだろうか。任天堂やSCEは多分準備ができているだろうが、しかし他はどうだろうか。どうせ適応できなければ死ぬしかないのだから、長期的には楽観しているけど。

さて、我々はヒスパニアからバルブス家を、これらにひけをとらぬ立派な人物をナルボ・ガリアから迎え入れたのを後悔しているだろうか? 彼らの子孫は今も この首都に住み続けている。彼らの抱く、この国に対する祖国愛は我々のそれに劣らぬものである。スパルタ人やアテネ人が戦争に勝っても短期の繁栄しか享受 できず、最後には破滅した理由は他でもない、彼らが征服した民族をあくまで異国人として、分け隔てしたからではないか?

その点で、我ら が建国者ロムルスは賢明にもギリシア人とは逆のやり方を選択したのであった。数多くの民族を、敵として戦ったその日のうちに、もう同胞として遇したほどで ある。のみならず、外来者が我々の上に立ったことすらある。解放奴隷の息子に官職を委託したこともある。これらは多くの人が誤解しているように、最近のこ とではない。古い時代から、度々起こっていることなのである。

- ローマ皇帝クラウディウス(訳:ローマ帝国第4代皇帝クラウディウスの演説より引用)

前回のエントリ

明文化されていない制度に振り回されるのはもうやめませんか?


に、以下の反応を海外ニートさんからいただいた。

「社畜丸出しな発言をすれば激しく叩かれる」という空気(世論)を作ろう。 ニートの海外就職日記.

まあお褒めをいただいたということで喜んでおくが、その後の反応は首をかしげてしまう。
どういうことかと言うと、「社畜丸出しな発言をすれば激しく叩かれる」という空気(世論と言ってもいいだろう)を作ればいいw。

うーん、空気をつくるのはいいのだが、相手を攻撃するような空気にしてはいけないと思うのだ。それは何かというと、海外ニート氏にしてもL.starにしても、究極の目標は日本人仕事環境の改善であるのだからして、元社畜も普通の人も人間的な労働環境を享受できることが必要なのである。蔑んだものいいは、強烈な反発を引き起こす。なんとなれば、彼らは社畜であることの有用性を信じており、そこにアイデンティティを持っているのだ。その先がどれだけ人間的な生活であろうと、現在の自分を否定するというのは大変なことなのだ。となると、自己肯定のために首輪自慢を始め、労働しない怠け者を糾弾せざるを得ない。これは人間のごく初歩的な行動力学の一つである。

海外ニート氏の言わんとすることは「反社畜文化の強制」である。これはすなわち、悪い空気を強制してきた悪しき伝統と何ら変わらない。我々がなすべきは、「クソ経営者と社畜文化を粉砕せよ!」とか、ゲバ文字でプラカードに書き殴りたくなるようなスローガンを掲げることではない。しかし、時間が過ぎれば条件も変わる一方、人間、特に集団の思考を変えることは大変に難しい。クソ経営者を駆逐し、社畜文化信奉者を追放したところで、真の社会の安定など訪れるはずがない。そのとき次のプラカードにこう書き殴ってしまうだろう「社会の敵である大企業を倒せ!」と。そしてその先がどこに行くのかは誰も分からない。すべては自分たちのすることを信じて目先の要求に応え続けた結果であるが、本質を突いていないが故にゴールにはたどり着けない。いや偶然たどり着くのかもしれないが。だから言いたい。我々のすべきは、「日本人のできるだけ多数に、家庭や自分を犠牲にせずに人間的な生活を享受できるようにする」という「ゴール」を忘れずに、都度正しい処置をし続けることである。つまり、社畜を攻撃して撃退するのではなく、社畜を融和して、人間らしい生活をさせるのだ。

と、ここまで書いたのはいいが、実際にどうすればいいかというととんと思い浮かばないのが現状である。我々に必要なのはシステムを破壊することではなく、改善することであるというのは、問題解決コンサルティングに似ている。問題点を並べ上げ、冷静に分析し、それをどう改善するかという案を立て実行する。ほぼ間違いないのは、みんなうすうす問題点には気づいているのだ。それを掘り出して明るみに出せばいい。ごくごく当たり前のことだ。もっとも、誰もが知っているとおり当たり前のことを当たり前にすると言うのは大変難しいことである。そんなの簡単だ、とのたまうやつはよほどの腕利きか、正真正銘の馬鹿かのどちらかである。たいてい後者だが。むしろ問題は如何にして問題解決コンサルティングという「法廷」に立たせるかである。彼らは自分の立場を100%信じている、いや信じざるを得ないのだから、これが半端無く大変である。そのため、ある程度はやはり外からの攻撃にならざるを得ないだろう。違法性を突くとか、非効率だと叫ぶとか。

しかし、やはり一番いいのは人間らしい生活の可能な職場を作って、それが見本になることである。つまり融和のための環境を新設すると言うことなのだが、L.starはこれを個人的に「ネオ大企業」と読んで、構想を練っている。大半の社員が普通の時間だけ働いて、普通に休みをもらって、無理な労働も強要されずにしかし一定の利益(多大な、である必要は無い)をあげることができるような、そんな会社モデルである。これはもちろん人件費ダンピングを平気でしてくる既存企業相手とやり合うため分が悪いが、少なくとも自分の周りだけは幸せになれる。しかし幸せな人を見たら、けしからんといいつつも、何か考えるのでは無かろうか。重要なのは彼らに自分で何かアクションをとらせることだ。我々が強制するのではなく。

・・・まあひとまずそんなところにしておこう。

ところでこのような「融和」が必要な局面は昨今そこら中に見られる。例えば在日韓国人問題も移民問題も、グローバル化に対応するというのもそうだ。結局のところ文明の歴史とは拡大である。もはやインターネットがパンドラの箱を開けてしまった段階で、それは止めようがない。このエントリは

叩かれるべきはムラ社会制度ではなく、ムラが小さすぎることに対して


に似ていると書いていて思ったのだが、そもそも言いたいことは同じである。我々は文明を指向する以上、(長期的には)拡大しなければならない。自分たちだけで足りなければ周りを取り込むしかない。これは必然なのだ。そしてその競争に勝ちたければ、やるべき事は一つ、他者に先んじて自分たちが彼らを融和してしまうことである。声を大にして言いたいが、我々は争っている暇など無いのである。その間に周りの強国がどんどん力を付けて、最後には飲まれてしまうだろう。あなた方はそれでいいのか?

↑このページのトップヘ