2013-06-30

最も変わった自然言語

The weirdest languages

自然言語処理の一環として、最も変わった言語を算出したそうだ。

変わった言語スコアを算出するために、21種類の言語機能について、多数派の方法ではない文法を使っている言語が高く評価されるようにした。

スコアの結果はともかく、いくつか紹介されている自然言語の文法が興味深い。

例えば、語順はSOV型の方が多いので、英語のような広く使われている言語は、全体からみると変わった言語であるというのはよく知られているが、他にもいくつか変わった文法が紹介されている。

イエスかノーで答えられる疑問文の文法で、多数派なのは、どこかに特別な疑問助詞を追加する文法だ。たとえば、日本語の「か」のような文法が相当する。

猫だ
猫か(疑問文)

英語では語順をひっくり返すことで疑問文にする。

This is a cat.
Is this a cat?(疑問文)

もちろん、英語でも他の方法で疑問文を作ることもできるが、一般的には語順をひっくり返す文法が使われている。

この言語機能の文法で、もっとも変わっている言語は、Chalcatongo Mixtecだ。この言語は、メキシコで6000人ぐらいの話者がいるらしいが、何と、肯定文と疑問文に一切の違いがない。

助詞はないし、語順の入れ替えもないし、イントネーションの違いすらない。

私とかアレとかいった代名詞的主語の文法も面白い。代名詞的主語の文法で最も多数派なのは、主語の代名詞情報を動詞に含ませるものだ。つまり動詞の格変化とか呼ばれている文法だ。代名詞的主語の情報を動詞の変化で表すので、特別な代名詞は使わない。

主語として使える特別な代名詞の言葉(たとえば英語におけるIとかitなど)を使っている言語は、意外と少数派なのだそうだ。

KutenaiとかMumuyeのような変わった言語では、主語にあたる特別な代名詞があるのだが、文法上、通常の主語とは別の場所で使うのだそうだ。

Chalcatongo Mixtecはこの文法でもやはり変わっていて、複合的な文法になっている。動詞に付け足す変化があるし、代名詞の言葉もある。ただし、代名詞の言葉は通常の文法で主語が現れる場所とは別の場所に配置するらしい。

2013-06-29

Olli Ries、phoronix.comのMirベンチマークについて書く

Olli's random thoughts and impressions » Blog Archive » First Mir benchmarks

CanonicalでMirを開発しているOlli Riesが、phoronix.comのXMirベンチマークの結果について書いている。

明らかにXMirにはパフォーマンスペナルティがあると認めながら、問題は認識しており、改善の余地があるとしている。

また、現在のMirにはcomposite bypassingが欠けており、それも問題だとしている。

XMirというのは、X.Orgを実行して得られた描画結果をMir側に一枚のウインドウとして渡すものだ。Mirが最終的なスクリーンの描画を行う。現状では、ウインドウマネージャーすらXMir上で実行されているので、すべてを一枚のフルスクリーンで実行しているようなものだ。そういう場合はcompositeする必要がないので、じどうてきに無効化されて欲しい。

これはMirネイティブに実行されるウインドウで、フルスクリーンのゲームでも同じだ。

XMir上で動作するUnity上での2Dパフォーマンス

[Phoronix] 2D Performance Also Impacted By Unity On XMir

phoronix.comの記事によれば、XMir上で動作するUnity上で、QtのベンチマークであるQGears2や、GTK+のベンチマークであるgtkperfなどを実行した結果、やはり3Dゲームと同じく、X.orgに比べてパフォーマンスの低下が見られたという。

現状で、ほぼすべてのソフトウェアがXを使っており、そもそも14.04までは、UnityすらXMir上で実行されることを考えれば、QGears2やgtkperfのようなベンチマークのregressionは、ゲームよりも懸念すべきだ。なにしろ、4ヶ月後には自由なグラフィックドライバー環境ではXMirがデフォルトになり、10ヶ月後には不自由なグラフィックドライバー環境ですらXMirがデフォルトになるのだから。

オンラインゲーム上のチャットで冗談を言ったら懲役8年

Texas teen makes violent joke during video game, is jailed | The Daily Caller

オンラインゲーム、League of Legendsで遊んでいた少年が、チャット上で「イカれてる」と言われた事に対し、「うん、マジ俺の頭イカレちまっててさ、今度学校でガキどもを撃ち殺してまだ脈打つ心臓を食らってやろうかな」と返答した。その返答に続く二行のチャットは、lolとjkであった。lolとは(笑)を意味し、jkとかjust kidding(冗談だよ)を意味するネットスラングである。

この少年は、このチャットログにより、テロリスト脅迫の罪により、懲役8年をかせられ、裁判はすでに終わり、いま刑務所に入っている。

両親の主張によれば、この少年は新聞やテレビを見ておらず、最近の学校での無差別発砲事件も知らず、自分の発言が最近の事件を暗示するとは分からなかった。この発言は罪ではないし、表現の自由にも反すると主張し、署名活動をしている。

これは文脈を考えれば明らかに冗談であり、テロリストの脅迫と解釈するのは危険である。まるで思想犯罪だ。

合衆国アメリカではテロリストがあなたになる!

MySQLの七年間修正されていないバグに七歳の誕生日ケーキが送られる

MySQL Bugs: #20786: mysqldump always includes AUTO_INCREMENT

2006年6月29日に報告されたMySQLのバグ#20786は、7年たった2013年6月29日になっても、なお修正されていない。そこで、このバグに対し七歳の誕生日ケーキが送られた。

バグの内容は、mysqldumpの出力が、--no-dataを指定しても、テーブル定義にAUTO_INCREMENT=xxxが含まれてしまうというものである。これはバックアップ目的にはふさわしいかもしれないが、開発目的のダンプにはふさわしくない。現状では、開発目的に使うには、ダンプ後のファイルを手動や、あるいはsedなどで書き換えなければならない。

期待される修正は、出力しないオプションを付け加えるか、--no-dataオプションが指定されたときは出力しないようにするというものだ。

変更自体は些細なことなのだが、明確に対応されないまま7年間も放置されている。

そこで、7歳の誕生日ケーキが送られた。

Mir VS Wayland

GNU/Linuxにおける次世代のディスプレイサーバーが揺れている。Waylandか、Mirか、果たしてどちらが勝利するのか。あるいは、両者とも使われるのか。

昨日、CanonicalはMirを来年には完全にデフォルトにすると宣言した。

本の虫: CanonicalがMirの方針を決定、13.10でフォールバック付きXMirデフォルト、14.04でフォールバック削除、14.10でUnity移行

Waylandはというと、Fedoraが近い将来にWaylandをデフォルトに切り替えるのではないかと言われている。

Unix風OSでGUIのデスクトップ環境を実現するためのプロトコルとしては、長らくX Window System、あるいはX11と呼ばれるプロトコルが使われてきた。単にXとも呼ばれる。Xの実装には、プロプライエタリなものもかつてあったが、いずれも広く使われていない。最も広く使われている実装は、幸いなことに自由ソフトウェアで、XFree86と呼ばれていた。ただし、ライセンス変更などのいろいろな紆余曲折を経て、今ではforkされたX.Orgが最も広く使われている。

Xは動くが、何分相当に古いプロトコルであり、拡張に拡張を重ねて限界が来ている。特に、最近の主流であるCompositing window managerを実装するには、相当に無理をしなければならない。今の技術にあった、全く新しく設計されたプロトコルがほしい。誰もがそう考えたため、Waylandが設計されはじめた。

Waylandの開発は、将来も長く使うことができる、しっかりとしたプロトコル設計から始まった。ツギハギをかさね、もはや現代には不要な部分もあるXプロトコルの轍は踏みたくない。Waylandは、皆が同意するプロトコルを時間をかけて設計していった。

Waylandの価値は、しっかりとした将来にわたって使え、変更されないことが保証されたプロトコル設計にある。

Waylandは将来的にXを置き換えるプロトコルと期待され、Waylandの多くのウインドウマネージャー、デスクトップ環境、GUIライブラリなどのプロジェクトが賛同し、Wayland対応が進められている。

Waylandは、下位互換性もおろそかにしていない。WaylandにはXWaylandという仕組みがある。これはX.OrgをそのままWaylandの管理下で動作させ、X互換レイヤーとして機能させるものだ。したがって、既存のXに依存したソフトウェアも、変更なしにそのまま動作させることができる。

強固なプロトコル設計のWayland。既存のデスクトップ環境やGUIライブラリのプロジェクトが皆賛同するWayland。まだ時間はかかるが、いずれはXを置き換えるだろう。

ところで、Ubuntuを開発するCanonical社は、デスクトップやラップトップから携帯電話まで、幅広く使えるOSを開発したがっていた。それには新しいディスプレイサーバーが必要だ。Xプロトコルは設計的に無理が来ている。すでにWaylandのプロトコル設計がほぼ完了し、またGoogleのSurfaceFlingerといった実装もある。Canonicalは、表向きには将来はWaylandに移行することを表明していたが、内部でWaylandやSurfaceFlingerを試した結果、どれにも満足せず、自前開発しかないと判断したようだ。

どうやらCanonicalは、Waylandのプロトコルには基本的には賛成するものの、満足できない部分もあったらしい。そこで、Canonicalは注意深く設計されたWaylandのプロトコルを流用し、自前のディスプレイサーバーであるMirを開発した。また、XWaylandを流用して、XMirとした。

Mirの興味深い点は、Waylandから派生したプロトコルを使っているものの、プロトコルの互換性保証をしていないところにある。プロトコルはいつでも変更されうるとしている。これは、Canonical外部でMirを使う際に問題になる。なにしろ、プロトコルが変更されない保証がないのだから、Canonicalの都合でプロトコルが変更されて、既存のソフトウェアが動かなくなってしまう。Canonical自身は、自分で管理しているのでそのような問題は起こらない。変更するときには関連部署と相談して決めればいいだけだ。

したがって、Waylandは多くのディストリビューションで選択され、GNOMEやKDEを始めとした多くのデスクトップ環境で対応され、GTK+やQtを始めとした多くのGUIライブラリで対応されているが、Mirは上流での対応の動きは一切ない。そもそも、発表されたのが今年に入ってからで、まだようやく動くといった段階なので、対応する理由がない。従って下流Canonicalが自前で対応しなければならない。

MirはCanonical独自のプロトコルと実装であり、そのライセンスは自由なソフトウェアであるとはいえ、その変更規模の大きさから(たとえばmesaとかにも独自パッチを当てないといけない)、おそらく他のディストリビューションやデスクトップ環境やGUIライブラリでは対応されないだろう。結果的にUbuntuのみが使う。また、他のデスクトップ環境への対応は、既存のXプロトコルの互換レイヤーであるXMirで行い、GUIライブラリの対応は、上流ではなくCanonicalが自前でパッチを作成して保守しなければならない。X互換レイヤーがあるため、何も対応しなくても、現時点で一応は既存のソフトウェアをなんでも動かせる。Xがobsoleteになるには、まだまだ相当の時間がかかるだろうから、しばらくは時間を稼げる。

変更されないことが保証された、しっかりと設計されたプロトコルであり、多くのプロジェクトが安心して依存することができるWayland。柔軟に変更できるが、Canonical一社の都合でいつでも破壊的変更がされうるため、外部から安心して依存できないMir。さて、どちらが勝利するのだろうか。

Mirのライセンスの問題はよく議論される。MirのライセンスはGPLv3である。これはすばらしいライセンスであり、GPLv2の問題をいくつも修正している。しかし、CanonicalにはCLA(Contributor License Agreement)もある。CLAとは一般的な名称であり、特定の契約文ではない。共通しているのは、開発の貢献者は権利をプロジェクト管理団体に引き渡すというものだ。これはCanonicalだけではなく、ほとんどの大規模な自由ソフトウェア開発プロジェクトならば行なっている。

すると当然浮かび上がる懸念は、CanonicalはいつでもMirをプロプライエタリとして使えるという事だ。ソースコード自体はGPLv3で公開されるかもしれないが、たとえば実際の携帯電話の製品に搭載されるソフトウェアはプロプライエタリなバイナリブロブで、悪名高いTivoization(利用者がソフトウェアの改変版に差し替えることを不可能にすること)を行うかもしれない。これでは時代遅れのライセンスであるGPLv2に逆戻りだ。せっかくGPLv3である意味がない。

また、十分な市場シェアを獲得した後に、急に不自由ソフトウェアになりさがるかもしれない。この邪悪な戦略はとても効果的で、しばしば使われている。

一部のバカがGPLv3は制限的だと主張しているが、彼らはGPLv3の意義が分かっていない。もし、あるハードウェアで使われているソフトウェアを改変して差し替えることができなければ、たとえソフトウェア自体は自由ソフトウェアであっても意味がない。これはTivo社の例にちなんで、Tivoizationと呼ばれている。ソフトウェア自体は自由だと言いながら、自由なのは著作権だけで、別に特許権で不自由にする可能性もある。そのため、ソフトウェアを自由にするには、著作権だけではなくあらゆる権利の利用許諾を与えるべきで、そこに特許権が含まれるのは当然である。

さて、Waylandはどうかというと、MITライセンスである。MITライセンスは許諾的なライセンスであり、誰でも不自由なソフトウェアとして使うことを許してしまっている。

MirはCanonical社がいつでも不自由に使える。Waylandは誰でもいつでも不自由に使える。どちらも好ましくないので、ライセンス的には引き分けと言える。

ソフトウェアのデファクトスタンダード化の歴史を振り返ると、先に動くものを出したほうが勝ちだという気がする。「動く」の定義は、読者のカーチャンでも使える状況になるということだ(ただし読者のカーチャンがカーネルハッカーやロケット科学者である場合を除く)。gitで落としてビルドして設定ファイルを書き換えてというのは、「動く」の定義にはあてはまらない。

したがって、インストールしただけでWaylandなりMirなりが使える実用目的のディストリビューションが現れなければならない。いや、それでは筆者のカーチャンは使えない。やはりプレインストールされたコンピューターが近所の店で販売されていなければならない。

WaylandとMir、どちらが勝つのだろうか。

参考

Mir in Kubuntu | Martin's Blog
[Updated] Mir – An outpost envisioned as a new home | tvoss@work

自由ソフトウェア財団がBitTorrent Syncを高優先度ソフトウェアプロジェクトに指定

自由ソフトウェア財団は高優先度ソフトウェアプロジェクトと題して、現状では不自由ソフトウェアしか選択肢のないある種のソフトウェアに対して、自由なソフトウェアによる実装があるべきだと宣伝し、開発を促し、あるいは、自由ソフトウェア財団自ら開発している。著名なソフトウェアに対して、自由ソフトウェア実装が存在すれば、自由ソフトウェアの受容を高められるというわけだ。

たとえばFlash Playerの自由な実装であるGnashとか、自由なBIOSであるCorebootなどが挙げられている。

中には疑問なソフトウェアもある。例えば、自由なソフトウェア実装のGoogle Earthだ。Google Earthを使ったことがない身としては、Google Earthの自由なソフトウェア実装が存在するかどうかが、自由なソフトウェアの受容を高めるとは思えない。

自由ソフトウェア財団は戦略的に、著名な不自由ソフトウェアの対抗馬となる自由ソフトウェアを開発している。例えば、ゲームDink Smallwoodで使われているゲームエンジンの互換品である、FreeDinkなどだ。

GNU FreeDink - a free RPG/adventure game

phoronix.comの記事で、この自由ソフトウェア財団の高優先度プロジェクトのリストに、久しぶりに新たなソフトウェアが追加されたという。

[Phoronix] The FSF Has A New High Priority Project

その新たな自由なソフトウェアによる実装が求められるソフトウェアとは、BitTorrent Syncだという。

BitTorrent Syncとは、複数のコンピューター間のネットワーク越しのファイル同期をBitTorrentプロトコルを用いて行うソフトウェアである。

BitTorrent Labs

中間にサーバーを挟まない。通信は暗号化される。BitTorrentプロトコルによる効率的な転送が行われる。とまあ、そんな謳い文句だ。

たしかに、大量のサーバー群のソフトウェア更新の配布手段に、BitTorrentプロトコルを用いている例は読んだことがある。大量のコンピューターがある場合にはBitTorrentプロトコルは便利だろう。

しかし、二台のコンピューター間のファイル同期なら、BitTorrentプロトコルを使う意義は薄い。利用環境は数百台、数千台も管理するような規模だろうが、まず個人向けではない。

BitTorrent Syncの自由ソフトウェア実装の有無が、自由ソフトウェアの受容にそれほど影響するとは思えない。

現時点では、単にwikiページへのリンクがあるだけで、何も具体的なものはない。

XMir上で動作するUnity上でゲームのベンチマーク

[Phoronix] The First Benchmarks Of Unity On XMir: There's A Performance Hit

phoronix.comが意外な速さでやってくれた、XMir上で動作するUnity上でのゲームのベンチマーク結果が公開されている。

XMirとは、Mir上で動作するX互換レイヤーであり、X.Orgと全く同じように振る舞うため、既存のデスクトップ環境は一切変更する必要がなく動作する。将来的には、UnityはMir上でネイティブに動作する予定だが、Ubuntu 13.10と14.04では、暫定的にX上で動作する現状を維持し、XMir上で動作するようになる。

さて、そのX互換レイヤーのXMirのパフォーマンスはどうなのか。最低でもX.Orgと同じであるべきだ。

Intelの自由なGPUドライバー環境でベンチマークを行った結果、現時点で最新のXMir上で動作するUnity上で動作するゲームには、明らかに無視できないパフォーマンスの低下がみられた。

phoronix.comがこのベンチマーク結果を、記事公開前にMirの開発チームにみせて感想を聞いたところ、Kevin Gunnから、nexuiz以外は想定の範囲内だ。nexuizは何がマズイのか調べて見る価値があるとの感想が得られたという。

来月辺りにRadeonやNouveauのベンチマークも行うそうだ。

ネイティブのMirでUnityを動作させた場合のベンチマーク結果も気になるところだが、残念ながらまだMirはそこまでの完成度ではない。ただし、予定では2014年の10月にはMirネイティブでリリースできるようになっているはずだ。

そして、対抗馬であるWaylandのXWaylandで動作させた場合のベンチマーク結果も気になるところだ。XWaylandも動く段階に達しているはずだが、容易に環境を構築できないのだろうか。

まあ少なくとも、既存のXを利用するソフトウェアが、多少のパフォーマンスの低下以外は、同じように動作するというのは、評価するべきなのか。パフォーマンスの低下も、それほど著しいというほどではないし、もとよりIntelの内蔵GPUではまともなパフォーマンスが出ない。ベンチマークで使われているのは、いずれもオールドスクールなアクション性が非常に重視されるFPSであり、strafingやbunny hoppingやrocket jumpingといったテクニックは基本中の基本、Aim力は完璧で常に動きまわる敵に照準を合わせることができ。マップとアイテム位置は隅から隅まで頭の中に入っていることが最低限求められる硬派な対戦FPSであることを考えれば、このベンチマークのフレームレートは、X.orgだろうがXMirだろうが話にならない。

2013-06-28

CanonicalがMirの方針を決定、13.10でフォールバック付きXMirデフォルト、14.04でフォールバック削除、14.10でUnity移行

Ubuntu graphic stack roadmap update

CanonicalでUnityとMirのディレクターを務めるOlli Riesが本日ubuntu-develに投稿した内容によれば、Ubuntu 13.10で、Mirドライバーサポートがあれば、XMirをデフォルト、ドライバーが対応していなければX.orgへのフォールバック。Ubuntu 14.04では完全にXMirに移行し、フォールバックも消すそうだ。14.04では、Unityも含めた既存のデスクトップ環境はすべて、X11の互換レイヤーであるXMir上で動くことになる。MirにおけるXMirは、WaylandにおけるXWaylandと同じ手法を用いている。

Ubuntu 14.04までは、まだUnityもX互換レイヤーであるXMir上で動作させることになるが、Ubuntu 14.10では、Unityは直接Mir上で動作するようになるそうだ。

Mirドライバーサポートとは、おそらくはEGL対応のことで、現段階では、自由なソフトウェア実装のIntel、Radeon(非公式の自由なソフトウェア実装によるAMD Radeon用ドライバー)、Nouveau(非公式の自由なソフトウェア実装によるnVidia GeForce用のドライバー)が対応している。14.04ではX.orgフォールバックを取り除くという事は、来年にはAMDやnVidiaの不自由なバイナリブロブでも、EGL対応が完了することを見込んでいるのだろう。EGLはMirだけでなく、Waylandも利用しているOpenGLとGPUの間の低レベルインターフェースなので、EGL対応が進むことは、Waylandにとっても追い風となるだろう。

やあ。

私はCanonicalのOlli RiesでUnityとMirのエンジニアリングディレクターだ。今後の数リリースにおけるUbuntuのグラフィカルスタックのロードマップについて発表する。

我々のディスプレイサーバーであるMirは試作品の域を脱し、今年の三月に、Ubuntuプラットフォームに最も高速で最もクリーンなディスプレイエクスペリエンスをもたらす高品質、高パフォーマンスなコンポーネントであると発表ができる段階に達した。我々は完全なX互換レイヤーを提供することにより、すべてのデスクトップ環境と派生品を移行して動かせると確信している。

以下がUbuntuのグラフィックスタックをMirに移行するにおけるロードマップとマイルストーンだ。

Ubuntu 13.10:
Mir上のXMirがデフォルト、Mirドライバーサポートがない環境ではXへのフォールバックセッション。サポート期間9ヶ月。

Ubuntu 14.04 LTS:
XMirがデフォルトでフォールバックセッションは削除。完全なるMirドライバーサポート、サポート期間は通常のLTSである5年。

Ubuntu 14.10移行:
Mirスタックがデフォルト、レガシーなXアプリケーションをサポートするためのrootless Xをサポート。サポート期間9ヶ月。

XMir: XとUnity7がMirシステムコンポジター上で動作するもの
Mirスタック: Mirをシステムコンポジターとし、その上にUnity 8がセッションシェルとして動作するもの

Mirを、今日X上で動くすべてのデスクトップ環境をホストできるX互換システムコンポジターとして、14.04で使うことは、すべてのUbuntu派生が13.10と14.04で、何の変更もなしに、このスタックの上で動作することが可能になる[1]。CanonicalはXMirを14.04のライフサイクルである5年間保守し、これにより派生に対し、グラフィックスタックの評価に十分な時間を与え、意思決定のための情報を十分に与えることになるだろう。

Xmirをディストロで利用可能にするための進捗は進んでいる。早期のドッグフード[訳注:内製ソフトウェアを自ら率先して使うこと]のための、PPA[2]が用意され、日々のテストは全てのスタック(XMir, X, Compiz, Unity)が有効にされている。自動パフォーマンステスト結果は、もうじきUbuntu QAダッシュボードで公開される。universeへの追加作業も進められている。Mir準備のための我々の作業(私の仕事も見てくれよ)はMirの機能フリーズに向けて進められている。じきに品質と出荷可能判断がなされ、その結果が公開されるだろう。

ただし、現在のPPAはまだexperimental/testingとタグ付けされており、今後数週間で大幅な変更があるだろう。より広範なテストが準備できたら、改めて紹介する。

疑問があればここやmir-develで質問をチームに投げかけてくれ。

Ubuntuはデフォルト設定でXを置き換える最初のLinuxディストリビューションになるだろう。我々はこれを実現するにあたって諸君のサポートと忍耐を感謝する。

よろしく
Olli

[1]: various flavors running unmodified on top of XMir -
https://www.youtube.com/watch?v=8h0m-ZjPxe8

[2]: System Compositor Testing PPA -
https://launchpad.net/~mir-team/+archive/system-compositor-testing

というわけで、本気で移行するらしい。13.10では現行のUnityであるUnity 7をX互換レイヤーであるXMirで走らせ、Ubuntu 14.10から、新しいUnity 8をMir上で直接実行する予定のようだ。既存のデスクトップ環境は、すべて完全なX互換レイヤーであるXMir上で動作可能だとしている。

ちなみに、KubuntuはMirに移行せずにX.orgにとどまり、Waylandの準備ができ次第Waylandに移行すると宣言している。

Kubuntu Won't be Switching to Mir or XMir | blogs.kde.org

既存のWaylandやSurfaceFlingerなどではなく、Mirを独自に開発するに至った経緯については、以下に詳しい。

[Updated] Mir – An outpost envisioned as a new home | tvoss@work

日本のハトが太平洋を超えてカナダに到達

Japanese pigeon crosses Pacific to Canada // Mountainaire Avian Rescue Society
Japanese pigeon crosses Pacific to Canada | AFP.com
日本のレース鳩が太平洋横断、7000キロ離れたカナダで保護 国際ニュース : AFPBB News

競技中に失踪した日本のレース用のハトが、なんと太平洋を超えたカナダで発見されたのだそうだ。現地の動物愛護団体が保護したらしい。

ただし、その動物愛護団体によれば、以前にも日本から飛来したハトの例があったそうだ。意外とよくあることなのかもしれない。

最近のphoronix.comの記事で面白かったもの

[Phoronix] 16-Way Linux OS Performance Comparison

16種類のUNIX風OSのディストリビューションを比較ベンチマーク。大半はGNU/Linuxベースだが、FreeBSDとDragonflyBSDもある。カーネル差し替えより面倒だっただろうなぁ。

OpenGLを使うゲームのベンチマークでPCLinuxOSのスコアだけが突出して高いのは、PCLinuxOSはデフォルトでAMDのプロプライエタリなバイナリブロブを使っているからだ。他のディストロでも汚らしいバイナリブロブを使えば似たような結果になる。

[Phoronix] Xfce, LXDE, & GNOME Are Running On Ubuntu XMir

UbuntuのMirでUnity以外のデスクトップ環境ってどうなるんだよという疑問があったが、どうやらXMirで走らせる予定らしい。XMirとはX.orgの互換レイヤーで、XWaylandと技術的には同じものだ。Canonicalの開発者がXMirの互換性を調べるために実験してみたところ、多くのデスクトップ環境が、一応は動いたらしい。

しかし、多くのデクストップ環境がWayland対応を進めていることを考えると、いずれは古臭いX11から脱却したいはずだ。もちろん、現段階ではX11を捨てるなどありえないが、将来的にはどうなのだろうか。

[Phoronix] Kernel-Based X11 Server Claims 2x Performance Over X.Org

面白かったというか、むしろアホくさくて面白かったというべきか。

X11をLinuxカーネル内で実装したら二倍速くなったぜと主張しているMicroXwinという胡散臭い連中の話。

「X11をLinuxカーネルにぶち込むなんて、まあ話のネタには面白いが、怖いな」と思う人が大半だろうが、問題はそれ以前だ。

Linuxカーネルを使っているのになぜかプロプライエタリ。ソースコードは公開されておらず、バイナリが試用かつ非商用目的にぽんと置いてあるだけ。

さらに、デモ動画もWindows 7上で動く仮想環境というわけの分からなさ。

二倍速くなったとか主張しているデモ動画で使われているのはgtkperfとx11perf。仮想環境で動くX.orgの具体的な設定も公開されていない。今時そんなベンチマークが二倍速くなったところでなんだというのだ。OpenGLには一切言及がないし、そもそも対応するのが困難だろう。

世の中には、古い技術を改良して、全く新しい別物の技術に対抗しようとしている笑うべきバカが存在する。電話交換手をよく訓練して電話の接続速度を上げようとか、モールス信号打電装置を改良して電報の転送速度を上げようなどと、現代で主張するようなものだ。すでにどちらも全く新しい技術により、そもそも人間すら必要なくなっているし、そもそも電話とか電報という存在自体が、全く新しい概念によって、過去のものとなりつつあるのに。

[Phoronix] Native Linux Kernel Module Is Out For Microsoft exFAT

exFATのカーネルモジュール。すでにFUSEベースの実装があるが、やはりFUSEということで遅いらしい。もちろん、特許上の懸念から、mainlineに取り込まれることはまず20年ほどありえない。

純粋なデータ構造になぜ特許が認められるのか、そこからして理解できない。そもそも、私は特許という仕組みの存在意義自体が理解できない。

何にせよ、LinuxカーネルがexFATのようなふざけたファイルシステムに対応するより、WindowsやMac OS Xのような不自由OSがネイティブにext2に対応したほうがよっぽどいいと思うのだが。

[Phoronix] Research Underway With QEMU 3D Support
[Phoronix] Red Hat Is Indeed Working On 3D QEMU Support

QEMUがホスト側のGPUを利用できるようになるべく、Red Hatが作業中らしい。

2013-06-27

昔の日本語ゲームの伝説的クソ英語翻訳

Legends of Localization

むかし、日本がゲーム用制限コンピューター市場を独占していた頃、アメリカの子供たちは日本産のゲームの伝説的なクソ翻訳に悩まされていた。"All your base are belong to us"のような伝説的なクソ翻訳は有名だが、そこまでは知られていなくても、やはりひどい翻訳は大量にあるものだ。

さて今、当時のクソ翻訳は、実際には何だったのかという事を、オリジナルの日本語版と翻訳版を比較しつつ解説しているWebサイトがある。主にファイナルファンタジーが充実しているようだ。残念ながら、私はファイナルファンタジーはやっていないので、いまいち面白さはわからないが。

Final Fantasy IV: Mist « Legends of Localization

たとえば、ファイナルファンタジーIVには、「ミストのどうくつ」というダンジョンがあり、「ミストドラゴン」という敵と戦える。オリジナルの日本語版では、

「きりは すべての こうげきを むこうにする」

というメッセージが、英語版ではなぜか、

Do not fight now!

というメッセージに変わっているらしい。「今は戦うな」とは親切なメッセージだが雰囲気ぶち壊しだ。

Final Fantasy IV: Kaipo « Legends of Localization

ファイナルファンタジーIVのカイポなる場所のNPCのセリフに、

なんでも バロンからきた
きれーな ねーちゃんが たおれてて
だれかのいえに かつぎこまれたらしーぜ。

というのがあるのだが、何故か英語翻訳版では、

Someone picked up a sick
girl from Baron falling
down.

という英文法的にわけのわからないセリフになっている。あえて解釈すると「誰かがバロン・フォーリング・ダウンから病気の娘を連れてきたらしいぜ」といったところか。どうやら、「倒れる」という日本語の解釈に問題があるようだ。日本語の下手な英語ネイティブか、英語の下手な日本語ネイティブが訳したためだろう。

しかもなぜか原文にない、sickを付け加えて、きれーなねーちゃんの部分がそぎ落とされている。また、原文の言葉遣いのニュアンスは翻訳されていない。

「倒れる」の翻訳問題は、別の箇所でも発見できる。

バロンからきた むすめさんが
むらのまえで たおれてたんです。
かわいそうに こうねつびょうに やられて
うわごとで セシル セシルと

これの翻訳は、またもや文法的に破綻している。

A girl from Baron was kept
from falling down.
She kept calling a name.
Do you know Cecil?

最初の文は英文的にさっぱりわからない。やはりどういうわけか、この部分を訳した人間は、日本語の「倒れる」という言葉の理解か、あるいはその意味を英語で記述するのに問題があったようだ。

また、「こうねつびょう」の部分がそぎ落とされている。そしていきなり「セシルを知っているか?」ときている。

この部分は誤訳の宝庫らしく、宿屋のセリフ

いらっしゃいませ。
おや おじょうちゃんの かおいろが わるい。
ささ はやく へやへ!
おだいは いいから どうぞ!

Welcome! Oh!
Take her to the room! Hurry up! Money?
No! That’s okay! Go ahead!

何故か同行者の病態についての言及がそぎ落とされてしまった。もっともこれは、文字数の都合だろうか。

日本のゲームが落ち目な今、海外のクソ翻訳やクソ吹き替えに悩まされているのと似たような状況だろうか。

2013-06-24

Graham Pentheny | 余は如何にしてC++グランドマスター認証を辞したるか

Graham Pentheny | Why I’m quitting the C++ Grandmaster Certification course

今年の二月頃、C++グランドマスター認証を紹介した。これは、C++11の完全なコンパイラーとライブラリを作るというもので、定期的な課題をクリアすることで、最終的にセルフホスト可能な完全なC++11の実装を作るというオンライン上の講義という触れ込みだった。参加費は無料で誰でも参加できるが、課題をパスできない者達は脱落していく。

その途中結果は外部に公表されないので、詳細は不明だが、どうやら、単なる詐欺サイトではなく、真面目に課題が進んでいたそうだ。

その参加者のひとりが、途中でやめることにしたそうで、その理由を書いている。

余は如何にしてC++グランドマスター認証を辞したるか

数カ月前、余はC++グランドマスター認証コースを受けたり。その意は教育的のみならず、且は生産的、且は履歴書に書くにも都合よからんことにあり。グランドマスター認証コースは、完全な、ブートストラップな、C++11コンパイラー(オプティマイザーは除く)を、Linux AMD64向けに、外部ライブラリを使わず、一から書き上げるものなり。これはいと興あることなり、如何となれば、完全な標準準拠のブートストラップコンパイラーを書く以上に、言語を完全に理解したと示す方法なしとみなされたればなり。これは素晴らしく野心的なアイディアたるも、余は同意せず、辞したりし。

大苦行

今更言うにも及ばぬが言う。C++コンパイラーを書くがごときは大苦行なり。C++標準規格の最新の公開されたる作業中のドラフトは、1314ページもの長きに渡る。試みにこれをR5RS Scheme標準と比してみんか。目次、題名、参考文献、索引まで含めて50ページなり。余思う、C++標準規格は、およそ書かれたるプログラミング言語コンパイラー規格書の中でも、最大のものならんと。

ツールチェイン

コースはターゲットプラットフォームとOSを未改変でインストールされたUbuntu AMD64と定めたり。すなわち、認定のために提出すべきコンパイラーは、GCC 4.7.3と、(さらに重要なることに)、stdlibc++ 4.7でコンパイルされねばならず、これには、C++11のregexサポートなかりし。余思う、コンパイラーを何らかの正規表現やパターンマッチライブラリなしで書くのは、James Hagueのブログのすばらしい引用、「文字eを使わずに小説をかくようなものだ」と等しからんか。これ、外部ライブラリの利用が許されたるか、あるいはclangとlibc++が使えたれば、問題とはならざりき。前者は禁止され、後者は認証サーバーに存在せざりき。

「グランドマスター」

そもC++の「グランドマスター」たることは何らの意味をもてるにや? 標準規格を表裏、枝葉まで知りつくしたることの謂か。GCCのコードジェネレーターの中身であるレジスター割り当てやエイリアス検出アルゴリズムを深く理解することの謂か。余はこれらを重要な知識とは思いたるも、偉大なるC++プログラマーたるにさほどまで関わるとは思わざりし。F1ドライバーは車がどのように動くか、且、入力がどのように運転に変換されるかを知れり。されど、F1ワールドチャンピオンたらんとするに、圧縮率やピストンの設置角度や許容範囲について理解する必要なし。単に速く運転する方法と、車を可能な限り速く動かす方法を知れば足るのみ。あるいは、これらの深い知識が一助になることもあらんか。されど、これらの技術は頻繁に変更され、極端に文脈依存なりき。最良の方法は、入力を変更して、結果をベンチマークすることを繰り返すことなり。

結果

かかる苦行を受けるからには、何か一般に見せられる努力の成果があらんと欲す。コースはコンパイラーを作成することなるも、受講者は、受講中、あるいはその後も、ソースコードを公開しないことに同意することを求められたりし。如何となれば、結果は、最適化無し、単一プラットフォーム、極端に非汎用で、制限的なC++コンパイラーなれば、価値がなければなり。もしこのコースを受ける労力の半分でも、clangのドキュメントや、熱望されている近代的なC++開発ツールにあてれば、多少のユニットテストをパスして究極的に何らの意味もない認証のためのクソコンパイラーをいくつも書くよりは、この業界に変化をもたらすこともあらんか。

一つだけ思うのは、C++11コンパイラーを実装するという問題に比べれば、正規表現ライブラリの有無なんて些細なことに思えるのだが。どうせstd::regexなんて文脈依存しまくりのC++のパースにはまともに使えないだろうし。

2013-06-15

Red HatがMySQLからMariaDBに切り替え

Red Hat ditches MySQL, switches to MariaDB

RHEL 7からは、従来のMySQLに変えて、MariaDBがデフォルトのデータベースソフトウェアになるそうだ。

MySQLはSunに買収された後、SunがOracleに買収されたことにより、Oracleの所有物となった。Oracle傘下となった後も開発は続いているが、テストケースやバグトラッカーや脆弱性の修正情報などが非公開になり、その閉鎖的な開発姿勢が利用者の反感を買い、ついにオリジナルの作者であるMontyを筆頭にMariaDB財団が立ちあげられ、MariaDBとしてforkされた。

ここ最近、多くのGNU/Linuxベースのディストリビューションが、デフォルトのデータベースソフトウェアをMySQLからMariaDBに切り替える動きがみられる。ついにRed Hatも追従したようだ。

Slashdotのフォーラムでは、いつものようにMariaDB派とPostgreSQL派が舌戦を繰り広げている。

2013-06-14

なぜいまだに一般家庭でLANケーブルを使っているのだろうか

現在、日本の一般家庭でインターネット回線を引けば、PCとの有線接続は、LANケーブルを介して行うことになる。なぜなのだろうか。

PCを直接つなげるわけではない。まず、電話線や光ファイバーとの間にモデムが存在し、場合によってはルーターも挟んで、そうしてようやくPCに接続する。そのモデムやルーターと、PCとの接続方法が、なぜLANケーブルでなければならないのか。

2013年現在、ほとんどの一般家庭では、USB 2.0の帯域(実質280Mbps)を上回るネットワーク回線は、なかなか得られない。USB 3.0の帯域(実質4Gbps)ともなると、個人でそのような帯域の回線を使うのはとてもむずかしい。現在のコンピューターの性能は、USBで数百Mbpsの帯域を十分にさばくことができる。建物内の配線や、パフォーマンスが非常に重要なデータセンターならばわかるが、なぜ一般家庭の目に見える部屋の中で、LANケーブルを使う必要があるのか。

互換性の問題でもない。すでに、USB接続のLAN端子は市場に出回っている。それもかさばる製品ではなく、中によっては製品名をアダプターとしているようなものまである。

ここまで書いて思い出した問題は、USBケーブルの長さだ。USB 2.0規格では、ケーブルの長さは5メートルまでと定められている。確かに、技術的にはもっと伸ばすことも可能だし、市場には5メートル以上のUSB 2.0対応を自称するケーブル製品があるが、5メートルを超えるUSBケーブルはすべて規格違反のUSBケーブルである。したがって、規格的には、USBケーブルではない。

なるほど、ケーブルの最大の長さがたったの5メートルというのでは、USBケーブルで置き換えることはできない。

ちなみに、USB 3.0規格では、ケーブルの最大長は定義されていない。規格に定められた電気的特性を守ることという定義しか与えられていない。すると、USB 3.0のケーブルは、規格上、長さの上限は存在しないことになる。一般家庭で必要なケーブルの長さは、せいぜい数十メートルだろうから、USB 3.0ケーブルで置き換えるのは可能ではないのか。

2013-06-11

香港に滞在している内部告発者のEdward Snowdenが行方不明

BBC News - US spy leaker Edward Snowden 'missing' in Hong Kong

現在、香港に滞在している内部告発者の元CIAの技術支援職員で、少なくとも今現在はNSAの職員であるEdward Snowdenの行方が、月曜日にホテルをチェックアウト後から、わからなくなっているそうだ。

Amazonでジョージ・オーウェルの1984の売上が上がっている。

Sales of George Orwell’s ’1984′ up 69 percent on Amazon | WashingtonExaminer.com

Amazon.comで、監視社会なディストピア世界を描いたジョージ・オーウェルの有名な小説、1984の60周年記念版 の売上が、飛躍的に上がっているらしい。元ネタの記事が書かれた時には過去24時間の売上が69%上昇している。

なお、この記事を書いている今現在、1984の60周年記念版の過去24時間の売上は177%上がっている。

Amazon.com Movers & Shakers: The biggest gainers in Books sales rank over the past 24 hours

これは最近、アメリカ合衆国の諜報機関であるNSAが大手の携帯電話インフラ会社や、有名なWebサイトを提供している会社に、無差別な監視機能の組み込みを、秘密の令状により秘密に行なっていたことが、NSAに在籍していて、今は香港に在住のEdward Snowdenの内部告発により明るみになったことが関係しているのだろう。

2013-06-09

UNIX風OSで同じプログラムの複数起動を防ぐ方法

若い頃、OSに不自由なWindowsを選んでしまったがばっかりに、今GNU/Linuxに移って、UNIXの流儀を飲み込むのに苦労している。

さて、UNIX風OSで、同じプログラムの複数起動を防ぐ方法は、一体どうやって実装すればいいのか。

クローズドソースのWindowsならば、ある決められた名前付きのカーネルオブジェクトを作成すればよい。カーネルオブジェクトはいくつも種類があるが、なんだっていい。カーネルオブジェクトの作成はアトミックに行われる。すでに同じ名前のカーネルオブジェクトが存在する場合、その情報も伝えられる。これにより、すでにカーネルオブジェクトが作成されたかどうかがわかり、重複起動も判断できる。プロプライエタリなWindowsのカーネルオブジェクトはリファレンスカウントされており、参照するプロセスが存在しなくなった時点で破棄される。そのため、プロセスがクラッシュしたり外から強制的に終了させられた場合にも、安全である。

Linuxカーネルにも、ユーザースペース向けのカーネルオブジェクトはあるのだが、どうもmanページを読む限り、参照カウントは行われていないようだ。これでは異常終了した場合の備えができない。

追記:Linuxカーネルの名前付きセマフォは、プロセスの終了時やexecve時に自動的に閉じられるとあるので、この目的に使える。
追記2:とおもったが、やはり使えないようだ。

かわりにいくつもあるテクニックは、どれもファイルを利用したもののようだ。

pidfile

これは、OSの提供するファイル作成の機能を利用する。ある決められた名前のファイルを、ある決められたディレクトリ下(システムで重複確認ならば/var/runあたりに、ユーザーごとに重複確認ならばホームディレクトリに)に作成する。そして、自分のプロセスのpidを書き込む。終了時にファイルを削除するという方法だ。

もし、プロセスの起動時に存在し、現在有効で、しかも自分と同じプログラムから起動されたpidが書き込まれていた場合、すでに他のプロセスが起動している。

ファイルが存在しない場合、ファイルが存在するが、pidが現在無効な場合や自分のプログラムとは違う場合、重複していない。

問題は、これはどうも、ファイルの作成や書き込みがアトミックに行われることを前提にしているようだ。果たして今でも通用するのだろうか。

ファイルロック

これはOSの提供するファイルにロックをかける機能を利用する。ファイルロックには、既存のファイルにロックをかける機能と、作成からアトミックに行う機能があるが、とにかくファイルロックを使う。

問題は、この方法は余り使われていない。というのも、どうもUNIX風OSでは、伝統的にファイルロックの実装の質が悪いようなのだ。実装されていないとか、実装されているがAPIがバラバラとか、実装はされているがまともに動かないとか、あるファイルシステムでは動かないとか、ランダムに動かないとか、とにかく移植性が悪く、信頼できないらしい。

ディレクトリ作成

これはOSの提供するディレクトリ作成を機能を利用するもの。ほとんどの環境で、ディレクトリの作成はアトミックに行われるらしく、お手軽で移植性も高いのだとか。ただし、プロセスが異常終了した場合を考慮して、pidfileとの併用を行う。

方法はいろいろあるが、どうも原始的な感じがするのは、まだUNIXの流儀に十分に慣れ親しんでいないせいだろうか。

来たるべき夏に備えてCPUクーラーを掃除した

来たるべき夏に備えて、CPUクーラーの掃除を決行した。今までにも何度もCPUクーラーを掃除しているが、結局、ピンセットと爪楊枝が最適であるという結論に達している。掃除をした結果、CPUファンの騒音が劇的に下がった。

なぜホコリというものはこうもたまるのか。何とかしてホコリの発生を防ぐ方法はないものか。そのために、私はホコリについて調べた。

まず、もっとも効果的にホコリを防ぐ方法は、私の部屋をクリーンルームに改造することだ。これは、ホコリの発生を防ぐわけではないが、発生したホコリは速やかに除去されるので、結果としてCPUクーラーにホコリが付着しにくくなる。

残念ながら、個人用クリーンルームを建設する費用は捻出できない。そこで、もっと日常の工夫で、ホコリの発生を抑えることはできないものか。

Wikipediaによれば、ホコリの発生源は、繊維から出る糸屑・毛髪・ダニ・ダニの糞・カビの胞子・フケであるそうだ。これらを使わない生活を考えてみよう。

まず、繊維製品の排除だ。カーテンやマットのようなものはもちろん、繊維を利用した服も排除する。繊維を排除した結果、一体どういう服が残るのかについては、よくわからない。おそらくはレインコートや傘に使われているような、軟質プラスチックの服になるのではないかと思う。体毛はすべて除去する。ダニやカビの発生を抑えるために、定期的に部屋を消毒し、また乾燥状態を保つため、常に除湿機をかける。また、自分の体の皮膚上のダニも、薬用石鹸を使うなどしてできるだけ除去する。皮膚が剥がれ落ちることを防ぐために、できるだけ食事の量を減らし、運動せず、体の代謝を抑える。

残念ながら、ホコリを抑える生活は、私にはできそうもない。これからも定期的にCPUクーラーの掃除をしなければならない。

2013-06-07

ステレオタイプなLinuxカーネル開発者

この記事はおふざけで書いた。

30人のLinuxカーネル開発者から、PC環境がステレオタイプというか、古典的というか、典型的というか、硬派なカーネル開発者像に合致するような人物を探してみた。主に、「ソフトウェア開発に愛用している生産性向上ツールを教えてください」という質問を参考にして考察した。もちろん、完全に主観的な見た目の評価である。技術力の評価ではない。

硬派の考察としては、主にGUIのソフトウェアも存在するような場合でもCLIのソフトウェアを使っていることや、そのほかの利用しているPC環境の一般人から考えての奇抜さを考慮した。ただし、カーネル開発ならば当然使うようなツールは除外した。

30人のLinuxカーネル開発者:Linus Torvalds

Linux Torvaldsは、もちろんLinuxカーネルの元を最初に書いた本人そのものなのだが、どうもインパクトに欠ける。いや、技術上はすごい人だし、GUIもあるようなソフトウェアでもあえてCLIのツールも多数使っているのだが、例えば、「リーナスはターミナルエミュレーターの立ちあげにはマウスクリックするアイコンを使う」などと書くと、他の硬派な人たちからすれば見劣りする。もちろん、すごい人ではあるのだけれど。これだけ世界中で使われているソフトウェアをひとつならずふたつも書く人間なんてそうそういない。

これは別のインタビューの内容だが、リーナスは以前、UbuntuやLinux Mintのようなディストロを使うのはなぜかと聞かれて、他のディストロで設定ファイルを手動で書き換えて詳細な変更ができることに言及し、それに対し、「俺ができるからと言って、俺がやりたいわけじゃない」と答えている。そういう詳細を普通の利用者に直接弄らせるのは不便だと考えているのだろう。リーナスはデフォルトの設定がリーナスの価値観にとってまともかどうかを重要視している。リーナスはやろうと思えば、いくらでも自力で設定、あるいは作り出せる力を持つだけに、なおさら興味深い。

30人のLinuxカーネル開発者:Thomas Gleixner

彼はコマンドラインツールを使っていることを肯定したものの、どのテキストエディターを使っているかについては明らかにしていない。Vi vs Emacs論争に巻き込まないでくれとのことだ。体よくかわしたともとれるが、このような発言をするところも硬派といえるのではないか。

30人のLinuxカーネル開発者:Sarah Sharp

彼女はVim(テキストエディター)とMutt(メールクライアント)を愛用している。どちらもCLIのソフトウェアであり、硬派ということができる。

30人のLinuxカーネル開発者:Jean Delvare

まあ、特筆すべきことはないとおもう。エディターもGUIのものを使っているようだ。ただし、

私はとてもシンプルな人間です。端末と make と gcc があれば十分です。

とは言っている。硬派だろう。

30人のLinuxカーネル開発者:Greg Kroah-Hartman

まあ、普通の硬派な開発者だ。mutt(メールクライアント)とvim(テキストエディター)とirrsi(IRCクライアント)を愛用している。どれもCLIのツールであり、硬派な人間という事ができる。

30人のLinuxカーネル開発者:Dave Jones

サングラスとおヒゲが非常に硬派な見た目の人。PC環境については多くを語らず、他のカーネル開発者と同じだと答えている。作業を楽にするためのシェルスクリプトをたくさん書いているとも言っているが、これはプログラマーとしては自然なことで、特に硬派というほどでもない。デスクトップはXfceで、GUI環境としては、GNOMEやKDEに比べれば、やや硬派な部類にはなるかもしれない。

30人のLinuxカーネル開発者:Paul Mundt
英語版:30 Linux Kernel Developers in 30 Weeks: Paul Mundt | Linux.com

Paul Mundtさんは、優勝まちがいなしの硬派なカーネル開発者である。

彼の主な作業環境はfbcon。Xは起動しない。これはフレームバッファー上のターミナルである。フレームバッファーを使えば、ターミナルでも日本語表示ができる。他にもvimとmuttを使っているらしいが、メイン環境がfbconの衝撃に比べれば、些細なことだ。

デスクトップの環境ではいい仕事ができたためしがないので、なるべく避けています。とは言っても、lynx で開けない Web サイトを見る時、非常識なフォーマットの資料を開く時、あるいは日本語入力で必要以上にてこずった時は、やむを得ず fvwm2 を起動することもあります。テキスト データでの作業が一番理想的です。

筋金入りの硬派なカーネル開発者だ。

「デスクトップの環境ではいい仕事ができたためしがない」とか、「非常識なフォーマットの資料」とか、「やむを得ず fvwm2 を起動する」などという言葉がすばらしい。

しかも見た目が髭面と、非常に硬派だ。インタビュー掲載の画像では、少し太めに見えるが、騙されてはいけない。どうやらTwitterを読むに、登山やウルトラマラソンもやるらしく、相当に肉体的にも鍛えられていることが伺える。登山はともかくとしても、ウルトラマラソンはすごすぎる。

Paul Mundt (pmundt) on Twitter

さらにすごいことに、今日本在住で、日本語も理解しているため、このブログで安易にステレオタイプがどうこうとネタに取り上げていることがバレる恐れもある。日本語では隠し通せない。とんでもない人だ。

30人のLinuxカーネル開発者:Alan Cox

見た目が老ハッカーらしくてかなり硬派だ。利用しているツールも、CLIのものばかりで硬派だ。

30人のLinuxカーネル開発者:Arnd Bergmann

このインタビューを読む限りでは、他の硬派なカーネル開発者の前に霞んでしまう。もちろん、多くを語ってはいないので、情報不足なのだが。

30人のLinuxカーネル開発者:John W. Linville

私は単純なコマンドライン人間です。デスクトップはいつもターミナル ウィンドウで一杯です。自動化が必要な時は、Bash、sed や awk を使って楽しんでいます。

とあるから、硬派な開発者だ。

30人のLinuxカーネル開発者:Johannes Berg

まあ、テキストエディターにCLIのjoeを使っているので、硬派といえるか。

30人のLinuxカーネル開発者:Martin K. Petersen

この人も相当に硬派な開発者だ。

デスクトップでは Fedora を走らせていますが、基本的にはただの X ターミナルです。重要な仕事は全て複数のリモートマシンで行っています。愛用するツールはあまり変えません。xterm、emacs、perl、mc、そして git です。グラフィカル デスクトップには遠い昔にしびれを切らし、今は i3 ウィンドウ マネージャーを使ってます。ターミナルをきちんと管理させてくれるのが理由です。

Xこそ使うものの、単にターミナルエミュレーターを画面上で分割して管理するためのXでしかない。

30人のLinuxカーネル開発者:Julia Lawall

Emacsとocamlを使っているので硬派でまちがいなし。

30人のLinuxカーネル開発者:Ben Hutchings

あまりPC環境について多くを語っていないので情報不足。

30人のLinuxカーネル開発者:Mauro Carvalho Chehab

メールクライアントは主にThunderbirdだそうだ。硬派な選択肢としては、pineも使うらしいので

通常はテキスト モードのツールを好んで使いますが、必要があれば GUI ツールを使うことにも抵抗はありません。ファイルの編集にはおもに nano を使いますが、高度な作業には kate が最適です。

柔軟な人間だろうか。

30人のLinuxカーネル開発者:Jiří Slabý

vimを愛用しているらしいが、情報不足。

30人のLinuxカーネル開発者:Laurent Pinchart

この人もvim愛用以外には詳しく語っていないので情報不足だが、

歴史的な理由から、デスクトップではKDEを走らせています。開発面でいうと、キーボードのみのコンソール コントロールのオプションがあるシステムなら何でも良いです。

とあるから、やはり硬派なカーネル開発者といえるだろう。

30人のLinuxカーネル開発者:Jiří Kosina

KDE の黎明期以来 KDE を使っていました。でも KDE4 で限界に達しました。ずっと軽いツールに変えずにはいられなくなったのです。現在は、icewm の中でたくさんの xterm を開き、vim、gcc、git、quilt, (al)pine、ブラウザー、任意の IM クライアント、IP 電話用の twinkle、mplayer などを使っています。

硬派好みのキーワードは散見されるものの、温和な方ではないかと思う。

30人のLinuxカーネル開発者:Chuck Lever

忌まわしいと思う人もいるかもしれませんが、デスクトップでは Mac Os を走らせています。そして、Linux の開発は仮想環境で行っています。Mac Os は使い勝手もよく、有効な生産性ツールも備えています。Evernote は頻繁に使う生産性ツールの1つです。

硬派ではない。

30人のLinuxカーネル開発者:H. Peter Anvin

おそらく硬派ではない。

30人のLinuxカーネル開発者:Steven Rostedt

私はデスクトップのタブレット パラダイムには興味がありません。

生産性向上ツールは Emacs です。Emacs は、OS の上で動作する私の OS です。

このようなことをわざわざ答えるからには、相当に硬派なカーネル開発者であるといえる。

また、「コードを書くときには何か聴いていますか?」という質問に、「コンピューター ファンの音です」と答えるのも評価点だ。

30人のLinuxカーネル開発者:Stephen Hemminger

硬派らしくヒゲを生やしている。残念ながら、利用しているソフトウェアについてはKVMによる仮想化と答えるのみで、エディターとかメールクライアントについては未詳。

30人のLinuxカーネル開発者:Glauber Costa

読む限り硬派な感じは受けない。シーランド公国の爵位を持っているのはネタとして面白いが。

30人のLinuxカーネル開発者:Jonathan Corbet

あまり硬派な感じは受けない。

30人のLinuxカーネル開発者:John Stultz

ヒゲは生やしているものの、あまり硬派な感じは受けない。

30人のLinuxカーネル開発者:James Bottomley

硬派な感じは受けない。

30人のLinuxカーネル開発者:Chris Mason

おもに Arch Linux を使っています。このソフトのローリング アップデート モデルはメインライン向けの作業に適しています。ウィンドウ マネージャーには他のデスクトップ環境を使わず、awesome を使用しています。たくさんのウィンドウを扱うにはこれが一番賢い方法です。

疑いようなく硬派な開発者である。

30人のLinuxカーネル開発者:Herbert Xu

テキストエディターはelvis、GNOMEだが常にターミナルエミュレーターを全画面表示といっているので、それなりに硬派といえるのではないか。

30人のLinuxカーネル開発者:Frédéric Weisbecker

情報不足。

30人のLinuxカーネル開発者:Paul E. McKenney

立派なヒゲを生やしている。硬派かどうかは判断しかねる。

なぜ viか? それは、30 年前に使っていた共同利用システムは 、emacs のセッションを 1 つしかサポートできませんでしたが、vi のセッションなら同時に 7~8 個サポートできたからです。そういう環境で emacs を使うのは社会的に許されませんでした。

これを読めば硬派にみえなくもないが、今もviを使っているものの、UbuntuのUnity2Dを使っているそうだ。ただし、Unity2Dはもう打ち切られたので、今はなにか別のものを使っているはずだ。UnityではなくUnity2Dをわざわざ使っていたことから、硬派とも言えないことはないが。

感想

何人かのカーネル開発者がviと答えているが、まずオリジナルのBill Joyによって書かれたviではなく、クローンだろう。

メールクライアントとして、MuttとPineの多さが目についた。

エディターはViかEmacsが多いようだが、GUIのエディターとして、NEditを挙げるカーネル開発者も数人いた。NEditはそれほど有名というわけではないと思うのだが、面白いことだ。

途中で、自分でも硬派の基準がよくわからなくなってきた。なんとなく評価後に自分が何を硬派と評価していたのか振り返ってみると、テキストエディターやメールクライアントのようなソフトウェアにCLIのソフトウェアを使うのは硬派、デスクトップ環境に軽量だったり、ミニマリストなタイルベースだったりするのは硬派、ヒゲは硬派、といったところか。

最も硬派でステレオタイプなLinuxカーネル開発者は、たぶんPaul Mundtさんだと思う。

いまさら児童ポルノ法の改正という枝葉に反対しているのでは遅すぎる

児童ポルノ法、その正式名称を、「児童買春、児童ポルノに係る行為等の処罰及び児童の保護等に関する法律」というそうだが、今、検閲主義の自民党によってこれが改正され、単純所持の禁止、そしてあるいは、被害者の実在しない架空の存在、つまり人間による創作物にまで児童ポルノの定義が及ぶであろうことを危惧して、様々な団体や、一部の政治家が反対の声を挙げている。

これに対して思うことがある。なぜ今頃、枝葉に反対するのだ?

日本には表現の自由がない国である。なぜかというと、日本には刑法175条があり、わいせつ物の頒布を禁じているからだ。

すでに、チャタレー夫人の恋人や、悪徳の栄えといった、名だたる文学作品が検閲されている。

児童ポルノ法のごときは枝葉である。たとえ児童ポルノ法の改正を阻止、あるいは廃止したとしても。刑法175条が存在する以上、問題は何も解決しない。

刑法175条は日本で表現の自由を制限する法である。しかし、憲法21条はどうしたのか。曰く、

集会、結社及び言論、出版その他一切の表現の自由は、これを保障する。検閲は、これをしてはならない。通信の秘密は、これを侵してはならない。

これは一体どうなっているのか。憲法で保証された表現の自由が侵されているではないか。どうやら、理由はさっぱり理解できないが、公共の福祉のために、限定的に制限できるらしい。

その限定的に制限できる理由の一つに、「わいせつ性」があるというのだ。

公共の福祉ということこそ理解できない。刑法175条はわいせつ物を頒布するのを禁止する法律である。私が受けとりたくないものを無理やり渡すのは、「公共の福祉」に関係する。私の権利と衝突するからだ。しかし、私が受け取ることを同意しているもの渡す場合、一体誰のどの権利と衝突するのか。そして、その渡すものがわいせつ物である場合、なぜ法律で犯罪にしなければならないのか。

ましてや、わいせつ性の判断は時代によって異なる非常に曖昧で危険なものである。

私は刑法175条は存在自体が間違っている法律であり、無効化されなければならないと信ずる。

さて、いまぞろぞろと名乗りを上げている児童ポルノ法改正反対論者は、なぜ今頃反対の声を上げるのか。普段から刑法175条の存在に反対しているべきなのだ。

そして、反対の声を上げた一部の現役の国会議員もいると聞く。もし、彼らが真に憲法21条を知り、表現の自由の力を知っているのであれば、すでに刑法175条の廃止を訴えているはずだ。さもなくば、人気取りのパフォーマンスと言われても仕方がない。

刑法175条こそが表現の自由を脅かす敵の本体だ。児童ポルノは枝葉にすぎない。

追記

今回問題になっている児童ポルノ法は、刑法175条のような頒布の禁止ではなく、単純所持の禁止だ。たしかに、持っているだけで違法になるというのは、とても危険だ。もしかしたらこのブログには、img要素があって児童ポルノ画像を自動でダウンロードさせている可能性だってあったのだ。

img要素とは、HTMLにおける画像を表示するための要素であり、以下のように記述する

<img src="http://example.com/child-porn.jpg" />

ほとんどのブラウザーは、img要素のsrc属性が指定するURLを、自動的にダウンロードする。ダウンロードされたデータは、キャッシュという仕組みでストレージに書きだされ、しばらく保持される。さらに、近代的なOSは、ファイルを自動的にバックアップするなどの機能も提供している。もし、"http://example.com/child-porn.jpg"というURIが児童ポルノへのURLであって、このimg要素がこのブログに書かれていた場合、読者はすでに児童ポルノをダウンロードして所持してしまっているのだ。

これからの日本人は、あるWebサイトを閲覧したければ、まずHTMLを生で閲覧し、超能力で事前に児童ポルノのリンクを含むかどうか判断できなければならないという事だろう。

ただし、HTMLには、SVGやデータURIのような機能もあり、さらにはCSSやtable要素を使って1ピクセルずつ指定するような技法もある。このような技法を使えば、擬似的にHTML内に画像を埋め込める。この。この場合、HTMLフォーマットのデータをダウンロードしただけで犯罪になる。

単純所持と言えば、銃刀法や軽犯罪法も、非常に危険な法律である。すでに、工具類を所持しているだけで任意同行や押収が行われているし、しかも最近は両刃の刃物が規制され、カキの殻剥きナイフのような正当に利用されているはずの道具まで所持すると犯罪になるそうだ。

銃刀法と軽犯罪法も、危険極まりない法律である。

レンズのないカメラ

ベル研究所、レンズのない1画素カメラ実現。ピンぼけもない : ギズモード・ジャパン

論文:[1305.7181] Lensless Imaging by Compressive Sensing

光を検知するLCDパネルで、光を通すかどうかを操作するアパチュアをランダムに切り替えた状態で、何千枚も撮りためる。一枚一枚はまともな品質の画像ではないが、何千枚もの画像の差分を解析して品質の高い画像を生成する。

レンズを使う必要がないため、製造が非常に安価になるのだとか。また、レンズを使う必要がないため、レンズによるピンぼけも発生しない。

ただし、それなりの処理能力は必要になりそうだ。

2013-06-06

紀伊国屋書店で電子書籍を不正に入手したという事件がよくわからない

紀伊國屋書店「Kinoppy」から電子書籍を不正に入手で2名逮捕 - ITmedia eBook USER

電子書籍不正:被害額2170万円 160人関与か- 毎日jp(毎日新聞)

不正アプリで紀伊国屋書店の電子書籍だましとる : 社会 : YOMIURI ONLINE(読売新聞)

もちろん、ニュースを書いている人間の不理解の可能性も考えられるのだが、どうも複数の報道が一貫して伝えることによると、

  • 電子書籍をダウンロード販売する紀伊國屋書店は、iOS用の専用ブラウザーを経由して、正規の購入の際の決済やダウンロード(おそらく閲覧もか?)させていた。
  • 容疑者は、この専用クライアントを改造して、偽の決済情報を送信することで、不正にダウンロードしていた。

これを考えると、どうも紀伊國屋書店はまともな認証を使わず、利用者側の専用ブラウザーが改変されないことを当てにしていた、根本的に頭のおかしい設計をしていたように読める。

この事件に登場するのは、不自由なコンピューターとソフトウェアばかりである。読者はこのような制限コンピューターと不自由ソフトウェアを利用を強制する電子書籍を読んではならない。

2013-06-05

食べる自由

トーキョーシティで働く一般社員の春部ダンは腹をすかせていた。時刻はちょうど正午、今から一時間は雇用の免除時間であるので、どこか適当なタベモノ店で食事をとりたいところだ。ダンは労働部署を出て、タベモノ店地区に向かった。冬の寒さが身にしみる。こういう時は、暖かいカレーうどんでも食べたいものだ。カレーうどんは一般社員のタベモノとしてふわさしい。

ダンは会社から発行された食事許可カードがポケットに入っていることを確認しつつ、ぶらりとタベモノ店地区へ向かった。この食事許可カードがなければ、食事にはありつけないのだ。カードには非接触ICが搭載されており、ダンが食事の権利を持つ者であるという身分証明もかねているのだ。

ダンには、というより、ほとんどの一般社員には、行きつけのタベモノ店などというものはない。一般社員が利用できるタベモノ店は数社の企業による寡占フランチャイズで、どの店で食べてもちゃんと綿密に設計された味と量と安全性が保証されているからだ。核心社員ならば、もっと上等な専門店の利用許可が得られる。専門店には、ダンは今の会社の20年間勤務の報奨として一度しか行ったことがないが、そこでは専門的な訓練を受けた職人が手作業でタベモノを作っている。もちろん、安全には最新の注意が取り払われるものの、人間の行うことなので多少のリスクは覚悟しなければならない。この手作業でタベモノを作る行為は、「リョーリ」と、そう呼ばれている。昔、我々がまだ近代的な企業主義™を発明する以前の頃は、極めて非効率的なことに各社員(当時は市民とか国民とか人民とか、それぞれの主義によって呼ばれていたが)が独立してリョーリなるものを作成していたらしいと、ダンは会社の意識教育で習ったことを思い出した。今では、手でリョーリを作成するのは、一部の好事家がやることだ。ただし、最近ブームになったのか、先週あたり、テレスクリーンでも報道されていたのを、ダンは記憶している。「まったく、最近の若いものは危険な遊びをしたがるものだ」と、ダンは自分の過去は棚に上げて無責任に思う。

ダンがタベモノ店地区に近づくと、メガネにタベモノ店の広告が流され始めた。まだ数百メートルは離れているというのに、大したものだ。タベモノ店は、ダンのポケットの中のカードに内蔵された非接触ICとのコネクションの確立に成功したので、ダンのメガネに広告を送っているのだ。この非接触ICの当初の設計上の通信距離は30メートルである。しかし、サーバー側の日進月歩の技術革新により、今や当初の想定を超えて、数百メートルの距離を隔ててコネクションが確立できるまでになっている。他社に先んじて広告を見せることができれば、それだけ有利なので、通信距離の延長技術には、今特に投資の盛んな分野である。ダンは他の社員とは違い変わり者なので、あまり広告が好きではない。そのため、ダンは視点操作で広告の通過率を上げた。メガネに映る広告を完全に消し去ることはできないにせよ、少なくとも、ある程度は通過率をあげることができる。もちろん、通過率をここまで上げることができるのは、ダンが一流企業に属しているためである。平等な社員とはいえ、他の社員よりは、より平等なのだ。

ダンは広告を最初に表示したのではないが、さりとて最後尾に回ったわけでもない、あるタベモノ店に入った。広告は嫌いだとはいえ、広告送信技術に十分な設備投資をしていない企業のタベモノ店は、その他の設備投資の状況も疑問である。また、このような中間層の店は、技術的には先んじて広告送信することも可能ではあるが、あえてお客様に配慮して、わざと広告送信を遅らせて、中間層に甘んじていることもある。このようなオモテナシの精神を、ダンは高く評価する。広告は見せられる契約とは言えど、時としては、ベストを尽くすのが最善ではない場合もあるのだ。そして、これはまさにそういう場合だ。

「いらっしゃいませ。この度は弊店にご来店いただき、まことにありがとうございます。本日はおひとり様でいらっしゃいますか」

ダンが店に入ると、流暢な合成音声が案内をする。無論、ダンは1人であることは文脈的に明らかであるが、曖昧性の解決には、面倒でもお客様に聞くのが一番だ。これをせずにアルゴリズムは万全であると信じてヘマをやらかす会社がいくつもある。どうやら、ダンは正しいタベモノ店を選べたようだ。

「ああ、ひとりだ。それぐらい見て分からんのかね。席はどこかね。はやく案内したまえ」

ダンはわざと横柄に要求する。これはテストである。試験である。お客様は神様アルゴリズムを正しく実装している人工知能ならば、丁寧に対応するはずである。

「かしこまりました。春部ダン様。当社のソーシャルグラフで友人の可能性が非常に高いと評価された小野寺サイムさんがいらっしゃっております。同席なさいますか?」
「ナニ? サイムのヤツが来ているだと。珍しいこともあるものだ。同席しよう。案内したまえ」

サイムはダンの初等社勤務時代からの友人で、高等社まで一緒の会社に勤めていた仲だ。大学社のときに別々の会社に分かれてしまったが、今でも時々は会って話をする仲だ。サイムは研究職に進み、今では食品研究をしていたはずだ。

移動中、ダンのメガネに契約文が表示され、同意が促される。曰く、「当社のタベモノの保証は当店内にのみ限定されていること」、「近年の法改正により、許可無く保護されたタベモノを持ち帰ったり、複製、公衆送信をするのは、たとえ従来の私的飲食の範囲であっても犯罪であること」、「犯罪はすみやかに通報し、厳格に処罰されること」などの警告的な契約文が非常に小さな文字で延々と続く。ダンは読まずに同意ボタンを視点操作で選択し、契約同意画面を消した。ただし、「食い逃げは犯罪であること」という警告文だけは、店内にいる間は絶えずメガネに表示される。ダンは視点操作で警告文をできる限り縮小し、通過率も最大に設定した。

サイムは席に座り、料理を前にして、ナニがおかしいのか、一片の肉片をにやけながら見つめていた。ダンが正面に座っても気がつかない様子だ。サイムは昔からこういう技術者くさい人間だった。

ダンはすっかり挨拶する機会を逃してしまい、そのままぼーとサイムを眺めていた。やがて、サイムは顔を上げ、ダンに気がついたらしく、仰天して早口でしゃべりはじめた。

「やあダンじゃないかめずらしいねいったいどうしてここにだれかにきいたのかいいやまてそんなはずはないぐうぜんだよねきっとそうだそれにしてもひさしぶりだね」

こういう時のサイムは、ただ喋り終わるまで待っている他にしようがない。彼の頭脳の割り込み機構は故障しているらしい。

ようやく口を止めたサイムに対して、ダンはご無沙汰の挨拶をした。

礼終わり、座定まって後、ダンはサイムが何をそんなに眺めていたのかたずねた。

「これかい。これはうちの会社の開発中のポークだよ。この店と契約して試験運用しているんだ。ほら、この店に入る時同意した契約にあったでしょ。」

あっただろうか。ダンは履歴から契約文を読んでみた。なるほど、確かに、「当社の肉等のうちポーク等はM社で開発中の遺伝子プログラム肉等を使っている可能性があります」とある。

「いまどき遺伝子プログラミングとは古典的だね。もうじきフェムトテクノロジーも実用化されると、こないだテレスクリーンでやってたが」
「いやー、フェムトテック、というかそのマーケティング用語嫌いなんだよね。原子核プリンターはまだまだだよ。もうしばらくはピコテック、つまりは原子プリンターで我慢しないと。だいたい、ああいう総当り的なプリンターは美しくないね。やっぱり人間は自然が一番。ゲノムコードを書くに限るよ。ゲノムプログラミングは自然だし、楽しいし、生産コストも安く済むしね」
「で、その肉が開発中の製品か」
「そうなんだ。このポーク、僕の書いたコードもかなり入っているんだよ。味がすばらしいよ」

ではひとつ頼んでみようと、ダンは注文を入れた。

「カレーうどんひとつもってこい。ポークをいれてな。何、「うちのカレーはビーフです」って? かまやしないんだよそんなの。俺がポークと言えばポークだ。お客様をなんだと思っているんだ。何、追加の契約が必要。分かった分かった。同意するさ」

注文を終えたダンはサイムに向かい、「まったく、この店の人工知能はなってないね。柔軟に対応ってのができてない。誰が書いたんだよ。多分今頃は時代についてけなくてハケンをやってるジジババだろ、どうせ」
サイム、「まあ、遺伝子プログラミングはなかなか難しくてね。危険も多いし。追加の契約もやむなしさ。あ、もちろん僕の書いたコードはちゃんとテストされてるから、バグはほとんど潰してあると思うよ。もちろん、ソフトウェアである以上、絶対ってことはないんだけどさ」

M社のポーク入りのカレーうどんは即座にやってきた。ダンがさっそく食べようとすると、サイムがポークの欠片を切り取って、ポケットからゲノムリーダーを取り出してちょんとつついた。

たちまち、ダンのメガネに逆コンパイルされたゲノムコードが表示される。はて、メガネのアクセス許可はまだだしてなかったはずだが。

「なぜ俺のメガネにアクセスできるんだ」
「ああ、この店内に入るときに同意した契約のおかげだよ。M社の社員の研究目的に限定したメガネアクセスの許可に同意してるんだ」
「そうか、なるほど」

ダンはプログラマーではないので、ゲノムコードは読めなかった。そんなことはおかまいなしに、サイムが解説をはじめる

「このゲノムコードの何がすごいかってね、うちで開発した強固なGRM(Genetic Right Management、遺伝子権利管理の略称)が使われているんだ。ゲノム読み込みには秘密鍵を組み込んだ菌を使わないと、このコードでPCRを妨害するようになっているんだ。だから、このゲノムリーダーじゃないと読み込めないってわけ。他社から勝手に解析されてパチモンだされたら困るからね。本当に、法律を守らないヤツだらけで困るよ。こうやってGRMで自衛しないといけない。GRM開発コストだってバカにならないんだから、カネを払って欲しいくらいだよ。まあ、実際には製品に価格転嫁するわけだけどさ。あ、ここで見せてるコードは特別だよ。店内に入る時の契約でNDA結んだでしょ」

ダンはポークを食べてみた。実に不思議な味だ。ポークのような味だが、ポークではない。それでいて、ひとくち食べると、もっと食べたくなる味だ。

「すごい、これは・・・うまいのかどうかはよくわからないが、とにかく食べたくなる味じゃないか」
「そうなんだよ。まあ、僕の優れたコードのおかげだね。いやー、それ書くの苦労したんだよホント。それに一度食べると、また食べたくなるように機能するコードも、おっと、これはいっちゃまずいことだったな」
「これなら狙えるんじゃないか。夢の市場独占が」とダンは言ってみる。
「そうなんだ。我社の目的はまさにポーク市場の独占なんだ。だから我社はポークに選択的集中投資をしていて、東洋国中の優秀な遺伝子プログラマーを他社から引き抜いているんだ。実際、ハッカーをうならせるだけのいい労働環境を提供していてね。こんな企業で働けるなんて僕は幸せだよ」

ダンが食べ続けている間、サイムは延々と語った。

「僕の、いやうちの会社のすばらしい味のポークと、強固なGRMがあれば、市場を独占して他社の追随を許さず維持できるんだ。そうすれば、太刀打ちできない他社は次第にポーク市場から脱落していく。そうすれば独占は完璧になるんだ。もう50年もすれば、この東洋国の人間は皆、M社のポークを食べることになるんだよ。その頃には、今のポークの味を思い出すことができる人間なんていなくなる。」

「ただし・・・」とダンは言いかけてやめた。『ただし、ハケンは除く』、そう言いかけたのだ。ダンの唇の動きから察したのか、サイムは続きを目ざとくさとった。

「ハケンは人間じゃない」とサイムは何気なしに言った。「今、みんなフェムトテックに夢中だから、もう50年もすれば遺伝子プログラミングは過去の失われた技術になる。遺伝子プログラミングできる人材がいなくなるんだ。それまでにうちがポークやその他の遺伝子プログラムされた製品を完成させれば、その後は一切の保守作業なく販売できる。遺伝子コードの中身を知る必要がなくなるんだ。再現不可能な技術で一生利益が出せるんだよ」

そうなるかもしれない。50年後には、遺伝子プログラミングが廃れているかもしれない。その頃にはサイムのような人間は、会社から消されているだろう。あまりに知りすぎている。あまりにも賢すぎる。あまりにも自主性がありすぎる。会社はそのような賢い人材を良しとしない。いつか、彼は消されるのだ。

食べ終わったダンは席を立って出口に向かった。店を出るには、放射線スキャナーの前に立って、店外へのタベモノの持ち出しがないことを証明しなければならない。タベモノはすべてベンダーによるアイソトープマーキングがされており、これによりベンダー固有のタベモノをどれだけ摂取したかを計測可能になる。また、ポケットの中などにタベモノを隠し持っていないかどうかも検査可能だ。この仕組みは、月々のタベモノ補償費の算出にも使われている。

「スキャニング完了、対象はタベモノの不法所持なしと証明されました。退出を許可します」

無愛想なスキャナーの合成音声がスキャン完了を告げる。この機械だけは、法規制で事前に検定済みの固定マシンなので、接客のために人工知能を実装することができない。まったく、けしからん法律だ。店を出るたびに不快になる。

店を出たダンは時刻を確認した。すっかり雇用契約の一時免除時間終了まであと僅かだ。遅刻は犯罪だ。早く戻らなければならない。ダンは足早にタベモノ店地区を後にした。

この話は、リチャード・ストールマンのThe Right to Readと、ジョージ・オーウェルの1984から着想を得て書かれた。もし、未来において食事に対して、今のソフトウェアの著作権保護のような法律ができていたら、どうなるかということを書いてみた。また、オーウェルの世界では共産主義的(もっとも、オーウェルのディストピア世界は共産主義に限定されたものではないのだが)な世界観になっていたが、思うに共産主義が再び流行ることはないだろうから、国家よりも企業が権力を握った企業主義というものを構想して使ってみた。

2013-06-03

香川県民は聖なる麺類触手様によって祝福された地か

聞説、香川県にはうどん屋が軒を連ね、香川県民は全員うどんが打てるし、毎日うどんを食するのだそうだ。これは聖なる麺類触手様に触れられているためではないのか。

さらに、平家物語に「天慶の純友」と書かれているように、瀬戸内海は海賊の住処であった。

しかも、この「海賊」という認識は、当時の朝廷側からの視点で、おそらく彼らに言わせれば、「水の上の独立国の住人」だっただろう。独立国であるから、領土内の通行には通行料を徴収するというわけだ。

これもパスタファリズムにおけるキリスト教の嘘による当時の海賊の不遇な認識と共通している。

さらにかの触手様に触れられたかどうかを証明するには、香川県民の平均身長が他県に比べて低いことが観測できればよい。これはどうだろうか。

ただし、私の知っているある香川県民は、うどんが嫌いだそうだ。いつの世にも黒羊はいるものだ。

追記:都道府県別の17歳の男女の平均身長の統計があることを知らされた。

都道府県別の平均身長一覧:スクスクのっぽくん

日本人の平均身長を都道府県別に比較すると、北の方は高く、南の方は低いという、かのべルクマンの法則を裏付けるかのような結果になるのだそうだ。

ソフトウェアの思想が設計にもたらす影響

Emacsは死んだ

Emacsの設計は、思想上の理由から、わざと貧弱であるという話。

Emacsの内蔵言語であるelispは、貧弱だそうだ。私はLisp系の言語に詳しくないが、少なくとも今まで出会ったLisperは皆elispは貧弱だと答えている。それにも関わらず、今まで出会ったLisperは全員、LispのコーディングにはEmacsを利用しているのは不思議だ。おそらく、Emacsとその資産を再実装する手間を考えたら、Emacsを使ったほうが得策なのだろう。

elispが近年のLispの進化を反映していないというだけではない。Emacsのelispはマルチスレッドに対応しておらず、ちょっと重い処理をしようとするとユーザーに応答できなくなってしまうし、共通の処理は共有のライブラリとしてまとめるという普通のことが難しく、ファイルI/Oなどの低級なAPIも不足しているという。

自然として、Emacsで高度なことをしようとすると、外部プログラムで実装して、Emacsと何らかのプロセス間通信でやりとりするという実装になる。これには副産物として利点がある。

外部プログラムは好きな言語で実装できるということ。外部プログラムはEmacs内で閉じずに、他の環境でも、バインディングを書くだけで対応できるということ。

これにより、Emacsの高度な拡張機能は、Emacs内で閉じることがなくなる。もちろん、タダで他の環境に対応しているというわけではないが、対応が容易になる。これはUNIX思想とも関係しているのだそうだ。

しかし、最近のEmacsの開発は、どうもこの思想を忘れ始めているので危惧すべきだとのことだ。

聞けば、GCCも似たような思想上の理由が設計に影響を及ぼしているそうだ。たとえば、GCCの実装は意図的にモジュール化されておらず、各機能を容易に分割できないし、各機能間のプロトコルや、入力と出力の間の内部表現のフォーマットも固定された仕様ではない。これは、GCCのうち、例えばパーサーを取り出してエディターのシンタックスハイライト機能として使うとか、パーサーとセマンティックアナライザーだけを使って高度なコード補完処理を行うとか、あるいは入力言語のフロントエンドだけ用意して、最適化やコードへの出力は既存のGCCのものを使うなどといった部分的な利用を困難にしている。

聞くところによれば、これはGCCの部分的に他の不自由なプログラムに流用するのを妨害する目的だという。

また、リチャードストールマンはコンパイル済みヘッダーの実装に反対していたし、またGCCが実装言語をCからC++に切り替えたのも、やはりストールマンの影響力が強いうちは不可能だっただろう。

その結果として、今GCCは、モジュール化を念頭に設計された後発のLLVMの猛烈な追い上げを受けている。

Emacsということで対比されるVimはどうか。Vimでも、やはり内蔵言語のVimscriptは貧弱である。ただしVimでは、Ruby, Perl, Python, Tcl, Lua, schemeといった主要どころのスクリプト言語をサポートしている。このような言語に対しvimバインディング用のライブラリを提供し、Vim側から呼び出して、結果をVimにもってくる。もちろん、これを実装する裏で、Vimのソースコードの汚さにますます拍車がかかるのは事実だし、結局Vimscriptを完全に使わなくてすむわけではないが、elisp一択よりは、個人的にはいいと思う。これはLisp系の文法に慣れないという個人的な嗜好が関係しているのだが。

ただ、Vimでも大掛かりな拡張機能となると、やはり外部プログラムで実装すべきだろうし、根本としては、やはりUNIX思想の影響を受けているのだろう。

ちなみに、件の記事は最近英訳され、Hacker Newsでも話題になっている。私もHacker News経由で逆輸入される形で知った。

英訳:Emacs is Dead (translated from Japanese)

Hacker Newsの反応:Emacs is Dead (translated from Japanese) | Hacker News

Redditでも取り上げられているが、現時点では反応は薄いようだ。

Redditの反応:Emacs is Dead (translated from Japanese) : emacs

2013-06-02

イスタンブールで何が起きているのか

What is Happenning in Istanbul? | İnsanlik Hali

トルコの外に住んでいる友へ

私はこの五日間でイスタンブールに何が起きているのかを伝えるためにこれを書いている。私が個人的にこれを書かなければならないのは、主要なメディアソースが政府により抑圧されており、口伝えとインターネットだけが、現状報告と支援要請を伝える我々に残された方法だからだ。

5日前、特定の団体や信条に属しているわけではない集団がイスタンブールのゲジ貢献に集まった。私の友人や学生も含まれている。彼らの理由は単純だ。公園を潰して、またぞろ街の中心にショッピングモールを立てることへの抗議と阻止のためだ。イスタンブールには多くのショッピングモールがあり、少なくとも近所には必ずある。木々の伐採は木曜日の早朝からおこなわれる予定出会った。人々は毛布や本や子供を連れて公園に行った。テントをはり、木々の下で夜を過ごした。早朝、ブルドーザーが樹齢100年の木々をなぎ倒そうとしたとき、彼らは立ち上がって作業を止めた。

彼らは機会の間に立つ以外のことは何もしていない。

新聞やテレビは抗議活動を報道していない。メディアからは完全にブラックアウトされた。

警察が散水車と唐辛子スプレーを持ってやってきた。彼らは公園から人の群れを追い払った。

その晩、抗議者の数は何倍にもふくれあがった。公園を囲む警察官の数もまたふくれあがった。そして、イスタンブールの地方政府はゲジ公園のあるタクシム広場への道を閉鎖した。地下鉄は閉鎖され、フェリーはキャンセルされ、道は封鎖された。

それでも、多くの人々が、徒歩で街の中心へとやってきた。

彼らはイスタンブール中からやってきた。彼らは異なる事情、異なる信条、異なる宗教を持つ。彼らは公園よりももっと大きなものの破壊を防ぐために集まったのだ。

この国の名誉ある市民として生きる権利だ。

彼らは集まって行進した。警察は彼らを唐辛子スプレーと催涙ガスで追い回し、警察に食事を提供しようとしたものには、戦車をもって踏み潰すことで答えた。二人の青年が戦車に踏み潰されて殺された。私の友人のある若い女性は、催涙ガス缶が頭に直撃した。警察は人の群れに向かって直接撃ち込んでいるのだ。三時間の手術の後、彼女はまだ深刻な状態で集中治療室にいる。これを書いている今、彼女が助かるかどうかまだ分からない。このブログは彼女にためにある。

彼らは私の友人だ。私の生徒で、私の親戚だ。彼らは政府が言うように「秘密の目的」など持ってはいない。彼らの目的はすぐそこにある。とても明白だ。この国全体が、政府によって企業に売られているのだ。モールの建設、高級マンション、高速道路、ダム、原子力発電所。国民の意思に反して、政府はあらゆる理由をつけて(必要とあれば作りだして)、シリアを攻撃している。

この上、最近の政府の国民の個人的生活上に対する支配は耐え難くなった。州は、保守的な理念で多くの法を通し、堕胎、帝王切開、アルコールの販売と利用、さらには旅客機の女性客室乗務員のリップスティックの色まで規制している。

イスタンブールの中心に向けて更新している人々は、自由に生き、正義を受け、州から保護と尊重を受けられる権利を要求している。彼らがすむ街の意思決定プロセスに加わることを要求している。

代わりに彼らが受け取ったのは、多大な武力と顔面に直接打ち込まれる大量の催涙ガスだ。三人が目を失った。

だが、まだ彼らは更新を続ける。何十万人も参加している。また数千人が、タクシムの市民を支援するために、徒歩でボスポルス橋を渡った。

新聞やテレビはこの事件を報道しない。彼らはミス・ターキーとか「世界の面白猫」のニュースを伝えるのに忙しい。

警察は絶え間なく人々を追い回し、その唐辛子スプレーの使用量は野良犬と野良猫が死亡するほどである。

タクシム広場の学校、病院、さらには5つ星ホテルすら、けが人を保護するために扉を開いている。医者は応急処置を提供するために教室やホテルの部屋にいる。一部の警官は無実の人々に催涙ガスを噴射するのを拒否して、仕事を辞した。広場の回りでは、ジャマーが仕掛けられ、インターネット接続と3Gネットワークがブロックされている。住人と職場は道行く人のために無料のワイヤレスネットワークを提供している。レストランは無料の食事と水を提供している。

アンカラとイズミルの人々が道に集まり、イスタンブールの抵抗を支援している。

主要メディアはいまだにミス・ターキーや「世界の面白猫」を流し続けている。

***

私はイスタンブールで何が起こっているかを知らせるためにこの手紙を書いている。マスメディアはこのことを伝えない。少なくとも、私の国では。インターネットでできるだけ多くの記事を投稿し、伝えて欲しい。

昨夜、Facebookのページでイスタンブールで何が起きているかの記事を投稿した時、誰かが以下の質問をした。

外国人に俺らの国の文句をいって、いったい何を得ようとしているのだ。

このブログがその答えだ。

その私の国への「文句」とやらで、私は以下のものを得ようとしている。

表現と言論の自由

人権の尊重

意思決定、自分の体のことは自分の勝手だ[訳注:おそらくはアルコール規制のことか]

テロリスト認定されず街のどこでも集会を開ける法的権利

最大の目的は、このことを広め、外国にいる私の友人に伝え、世界に知らせて、支援を受けることだ。

とはいうものの、イスタンブールでは抗議者側も暴徒化して悲惨なことになっているらしい。

別の視点。

Occupy Gezi: Police Against Protesters in Istanbul : The New Yorker

進行中の革命はテレビで放映されないとはよく言ったものだ。

イスタンブールでアルコールが禁止されたのがちょうど先週らしい。

追記、これを紹介された。

つれづればな | 学問のすすめかた

なんだかトルコの今は明治からの日本のようだ。結局、なにか崇拝対象が必要なのだろうか。それがアラーであれアタテュルクであれ。