普通の壁とプロジェクターがマルチタッチスクリーンになるMicrosoft TouchWall
マイクロソフトのマルチタッチスクリーンといえばMicrosoft Surfaceだが、このたび新しくTouchWallなるものを発表するようだ。ソースはCrunchGear。
このTouchWall、普通の壁と普通のプロジェクタを使ってマルチタッチスクリーンが実現できるという点が新しい。画面の周辺に三つの赤外線レーザーとカメラを配置し、それらが画面に触れている指や手の位置を認識するという仕組みだ。
デモの映像があるのでどうぞ。
できることは今あるマルチタッチと同じようなもので、この動画では広範囲のスクロールやズームをスムーズにやってみせている。
プレゼンテーションで複雑な図を用いる必要がある場合などに便利そうだ。壁全体をホワイトボードにしてしまうこともできる。
だがTouchWallの一番のメリットはなんといっても値段だろう。専用のマルチタッチスクリーンと比べて物理的なパーツが少ないため価格が圧倒的に安いらしい。たとえばSurfaceは一機で100万円ほどするそうだが、TouchWallならなんと数万円ほど。しかも当然ながら画面がいくら広くなろうとも値段が高くならないというのが素晴らしい。
なんともわくわくする技術だ。
ただ、映像を見る限りではiPhoneやSurfaceなどと比べるとやや操作がもっさりしている気がする。たぶんうまくソフトウェアをチューニングすれば大した問題にはならないと思うのだが、どうなんだろうか。ちなみにこのデモではVista上で動くPlexというソフトウェアを使っているらしい。
今のところMicrosoftとしてはこれを製品化する予定はないとのこと。早く製品化してくれないかな。数万円ならプロジェクトルームや研究室の予算でぜひとも買わせたい。
これは余談だが、ホワイトボードとして使うならプロジェクタの消費電力が気になるところだ。普通のホワイトボードはいつ見ても同じものが必ず見えるというのが大きな特長だ。今のプロジェクタは常につけっぱなしにしておく訳にはいかない。TouchWallのような技術でホワイトボードを代用するのならその方面での技術的な躍進も欠かせないと思う。
月例発表会向けのカブロボ考察 途中経過
月例発表会向けレジュメとスライドの第一版ができた。最近研究関連の事を書いてなかったので、ラフにではあるがいまのところのアウトラインをまとめておく。
タイトル:「カブロボグリッド実現方法の検討」
カブロボグリッドとは
カブロボは、自動株取引きプログラム。選択した売買アルゴリズムによって儲かったり儲からなかったりするため、良いアルゴリズムを発見することが大きな課題になる。
カブロボのアルゴリズムは売買ルールとパラメータで表現されるが、ルール同士を組み合わせることも可能なため、その数は膨大。グリッドの力でこれを片っ端から探索しようというのがカブロボグリッドだ。
だが、本当に片っ端からやるだけでは効率が良くない。そこで、より良いアルゴリズムをより短時間で見つけるために、行う仕事の選択と、クライアントへの仕事の割り振り方に関していくつかの方策を提案する。
仕事の選択
片っ端から試すより、良いアルゴリズムの周辺を重点的に試行するほうがおそらく効率が良い。さらに、たとえばユーザが希望した部分を優先的に試行するような仕組みが欲しい。
そこで、仕事の生成をオーディションラインとトレーニングラインの二つに分ける。
オーディションラインは、基本的にはユーザが指定した部分の仕事を生成する。
トレーニングラインは、オーディション出身で比較的性能が良かったアルゴリズムの周辺へ手を伸ばしていく。
加えて、トレーニングラインから確率的にジャンプを起こし、少しだけ離れた部分のアルゴリズムをオーディションさせる。これは焼きなまし法に似ている。
仕事の割り振り方
ま ず前提として、カブロボグリッドではエラー耐性のために同じ仕事を複数のクライアントに割り当てる。同じ仕事を4つのクライアントに振る、というのは「冗 長性」として自由に設定可能だ。また、このうち最低3つの結果が一致していればそれを正しい結果とみなす、というような設定が可能で、この値を「クオラ ム」と呼ぶ。
さて、いまのカブロボグリッドでは冗長性を一律で設定できるが、仕事ごとに設定できない。だが冗長性をその時々のクライアントたちの能力によって動的に変更することで無駄が減らせるはずだ。
そ こで、何通りか考えられる冗長性rに対して、期待値Erを定義する。これはEr = 1/(jr * lr) で表される。jrは冗長性rのときに一回でコンセンサスが得られない確率。lrはそのときに失われる時間。これらは仕事を受け取るクライアントの能力に よって決まる。常にこのErが最大になるようなrをその仕事の冗長性として設定することで、常にもっとも効率が良いと見込める冗長性設定が可能になる。
次 に、最低限必要でない仕事をどのクライアントに割り振るべきかを考える。これは、たとえば冗長性4、クオラム3の場合の4つ目の仕事だ。前の3つが同じ結 果で返って来たときにこの4つ目の仕事は無駄になるわけで、それを例えばものすごく能力の高いクライアントに渡してしまうのはもったいない。そのクライア ントは無駄にならない別の仕事をすべきだ。
そこで、ある仕事wuを受け取れるそれぞれのクライアントiについて、もったいなさMiを定義す る。これはMi = w/(j * ei) で表される。wは仕事wuの計算量、jは自分と同じ仕事をしているほかのクライアントたちがエラーを起こす確率、eiは自分自身がエラーを起こす確率。こ れらの値は同じ仕事をしているクライアントたちと、手の空いているクライアントたちの能力によって決まる。常にこのMiが最小になるようなクライアントi に仕事を振ることで、もっとも無駄のない割り振りが可能になる。
これから考えるべきこと
- 「期待値」という言葉は厳密にはふさわしくないので、他の分かりやすい言葉を考える。
- もったいなさの式にjが含まれていていいのか怪しい気がしてきたので、もう一度よく考える。
- 先着順でないということはクライアントを待たせるということ。これの意味と影響を考える。
UbuntuでWindowsのホスト名を解決する方法
Ubuntuからリモートデスクトップなどを使う場合、いちいちIPアドレスを入力するのは面倒だし、そもそもIPが分からない場合がある。というわけで、Windowsのホスト名(コンピュータ名など)をUbuntuから解決する方法を探してみたら簡単な方法が見つかった。
1. /etc/nsswitch.conf を編集する。
hosts: files dns
↓
hosts: file dns wins
2. winbindをインストールする。
sudo apt-get winbind
たったこれだけだ。ping hostnameすればうまくいったか確認できる。
ソース:HOWTO: Resolve Netbios hostname system-wide - Ubuntu Forums
パスワード不要、画像でログインするシステムRecognitionAUTH
あらすじ:パスワードではなく画像の組み合わせを使って認証させる仕組み(RecognitionAUTH)を採用したOpenIDプロバイダを見つけたが、これはあまり良くないんじゃないかと思った。
myvidoopという、パスワード不要のOpenIDプロバイダを見つけた。
よくあるOpenIDプロバイダは普通にユーザ名とパスワードでログインを求めてくるが、myvidoopでは画像を使ってパスワードなしでログインできるところが面白い。
まずユーザ登録時に好きな「カテゴリ」を3つ選んでおく。カテゴリは「犬」、「高層ビル」、「飲み物」、「飛行機」などで、全26種類。ログイン時する際は、ユーザ名を入れると写真がサムネールで15枚ほど表示される。その中から自分のカテゴリの写真3枚を見つけ、一緒に表示されているアルファベットを入力する。正しければログイン完了だ。
ちなみに画像はカテゴリごとに一枚というわけではなく、同じ「犬」でも色んな犬の写真が出てきたりする。
RecognitionAUTHという名前でConfidentというところが売りに出しているこのシステム。試したみた感想だが、あんまり良くないんじゃないだろうか。端的に言うと簡単ではあるが、カテゴリを忘れにくいわけでもなく、自分のネット界の要となることを任せるには安心感が足りないという印象だ。
本棚.orgと比べてみる
画像でログインといえば僕は本棚.orgの例が浮かぶ。こちらは画像を自前で用意し、それぞれにいくつかの選択肢をつけてクイズを作るというもの。例えば自宅近くの公園の写真を使って「5丁目の公園」「4丁目の公園」「駅前」などを選択肢とすればよい。そんな画像を数枚使えば、数クリックでログインできることになる。
こういった認証システムを検討する時は、いくつかの重要なポイントがあるだろう。まずはもちろん、破られにくいかどうか。破られるというのにはDoS的なものもソーシャルエンジニアリングも含む。例えばパスワードは組み合わせ的には比較的破りやすいし、80%の人がチョコレートと引換にパスワードを教えてしまうというような話があった。
次に、安心感があるかどうか。様々な認証システムを見ていると、安心感があることと実際に安心であることは必ずしも同じではない。例えば指紋認証などはナイーブには安心感があるけども、実際の強度はそれほどでもない。
ログインできない事はないか。一番よくあるのはパスワードを忘れることだが、他にもたとえばFlashやJavascriptなど特定の環境に依存してしまうことも考えられる。
使いやすいかどうか。これは一つの認証方式でも大いに変わりうる部分だ。普通のパスワードでもそれなりに使いづらいが、オンラインバンキングでは何故かソフトキーボードをちまちまとクリックしなければいけない所などもあり、そうなると最悪である。
大体において安全性と使いやすさ・失敗しにくさはトレードオフの関係にある。たとえばパスワードは長ければ長いほど安全だが、ログインにかかる時間は長くなるし、忘れやすくもなる。したがって認証方式には一長一短が出るのだが、それが利用シーンに適した一長一短なのかどうかが問題になる。
さて本棚.orgの場合、破られてもせいぜい知らない本が登録されたり本が削除されたりするだけだ。大した被害ではない。まぁ本が消されてたら困るといえば困るが、そのせいでピザが届いたり壷が届いたりすることはない。一方、myvidoopはOpenIDプロバイダである。ログインIDが一つになって便利だが、一度破られれば自分の使っているあらゆるWebサイトへログインを許すことになってしまう。これは重大な違いだ。
それを踏まえてRecognitionAUTHの安全性を考えると、極めて不安である。まず、写真のカテゴリは3個から最高でも5個までしか選べない。ということは結局のところ、アルファベット5文字で認証するわけだ。単純に組み合わせの数で言うと本棚.orgの一般的なユーザよりは多くなるが、それでもDoSが可能ならばあっという間の範囲だ。それに、打ち込む文字列がワンタイムで毎回変わるというのは一見良さそうに見えても殆ど役には立たないはずだ。キーロガーだけでは破れなくなるが、OCRか単純な画面キャプチャを組み合わせればいいだけの話である。
また、五個のカテゴリのソーシャルな脆弱性を考えると、パスワードよりもなお悪い事が分かる。というのは、「パスワードはakI928DCです」というのよりも「キーカテゴリは猫と船とオフィスです」という方が簡単だし伝播しやすいからだ。口に出すのも恥ずかしいようなカテゴリばかりならソーシャルには強くなるかもしれない。
安心感としても3〜5文字というのは不安ではないだろうか。少なくとも僕は不十分な印象を受けた。それに、設定したカテゴリを忘れないかというと特にそんな自信が生まれるわけでもない。
結論
RecognitionAUTHをボコボコにしてしまったが、結局言いたいのは、OpenIDという利用シーンに適してないということだ。利用方法は実際に簡単なので、その点では優れていると思う。Twitterぐらいのサービスひとつを守らせるなら簡単さが生きると同時に不安感が目立たなくなるだろうから、この仕組みはきっとそのあたりで使うべきものじゃないだろうか。
