2008年9月29日月曜日

【Android】 AndroidはiPhoneに勝てるか?

T-MobileからGoogle Androidを携帯プラットフォームとして採用した初めての端末G1が発表され、好意的に迎えられている。ソフトウェアとしての欠点は、MS Exchangeとの非対応くらいだというのが多くの論調だ。多くのプレス、ITジャーナリストの意見はこういったものだが、Diggの創設者であり考案者であるケビンローズが面白いことを言っている。

Diggnation.comのEpisode 169
18:20辺りからiPhoneとAndroidの比較が始まる。

Android初の端末G1について
Alex: This things looks pretty cool.
と褒めつつもAndroid陣営はiPhoneのすごさに気づくべきだとケビンローズとiPhoneを褒めちぎる。
Kevin: Everything is cool in iPhoneと絶賛した後に、iPhoneのUIは"pixel perfect".

すなわち、iPhoneのデザイン、かっこよさは完璧でAndroidはこの点をおろそかにしている。
確かに消費という行動が合理性だけで説明できず、機能面で優れているからといって消費者に選ばれるとは必ずしも言えない。
消費者は“気持ちよさ”を最優先に消費行動をすると考えた方が自然だ。

iPhoneとAndroidの比較をすると伽藍とバザールを思い出す。
iPhoneはすべてを統制しようとする伽藍で、Androidはひたすらオープンなバザールへと。
案外この戦いはスティーブジョブスの健康が一番大きなファクターかもしれない。
なぜなら、伽藍では統率するリーダーの資質が大きく運命を左右するからだ。

ラベル: , ,

2008年9月28日日曜日

【VC】 ウィンドウを透明化する

ウィンドウを透明化する。

Visual Studio
Visual C++
Windows SDK
Win32 API
MFC



int value = 128; // 0-255
LONG style = GetWindowLong(m_hWnd, GWL_EXSTYLE);
SetWindowLong(m_hWnd, GWL_EXSTYLE, (style|WS_EX_LAYERED));
SetLayeredWindowAttributes(0, value, ULW_ALPHA);

ラベル: , , , , ,

【VC】 Shift JISを明示的に設定する

メモ
Visual Studio
Visual C++
Windows SDK
Win32 API
MFC

ロケールをShift JISに設定する。

setlocale(LC_ALL, "Japanese_Japan.932");

ラベル: , , , ,

2008年9月25日木曜日

【AR】 Google Android × ストリートビューは最強の拡張現実アプリ

Google携帯Androidを搭載したG1が発表されたが、iPhoneに比べると反応は冷めている。iPhoneの登場に比べるととても地味なのは確かだ。しかしストリートビューを持ち歩けるこの携帯のポテンシャルはとても高い。

というのは、自分が現在いる場所から自動でストリートビューを表示できる。これができると風景にタグを載せることができるので、一種の拡張現実ができてしまう。たとえば街を歩いていて、映画館の近くに来るとストリートビューから映画の上映時間や空き状況などがわかってしまう。これ以上ないくらい直感的なインターフェースだ。携帯電話の使い方が根本的に違ってくる。というよりAndroidにとって電話の機能はPCにおけるSkype的なものといったほうがわかり易い。

Googleがストリートビューに力を入れていることはPCから実際使ってみるとよくわかる。かなり気合の入ったプロジェクトだ。狭い道も見れたりと作業自体はとても泥臭い。初めて使ったときこんな企画をよく通したなと驚いたが本来の使用目的はAndroidなのだろう。

強いてストリートビューの弱点を挙げるとすると更新が厄介なことだ。風景は写真画像として保存されているので更新する手間は少なくない。

iPhoneとAndroid G1を比べるとiPhoneのほうが魅力的な端末であることは多くの人が同意するところだろう。しかし、ストリートビューの今後の進化によりAndroidが実現する真のユビキタスコンピューティングはすぐそこだ。Androidの勉強つづけておけばよかったな。

ラベル: , ,

2008年9月24日水曜日

【AR】Sekai Cameraは初の拡張現実アプリになり得るか?

拡張現実はARToolkit人気と一部研究者の動画により広く知れ渡ることとなった。ただ、それらは現実の世界に3D CGを重ねるというだけのエンターテイメント、パフォーマンスの域を脱し得なかった。しかし、最近話題のSekai Cameraは専門家よりも一般の人に受けているようだ。

このプロジェクトはYouTubeでプレゼンが12万回以上も視聴され大きな話題となっている。しかし一方では技術的な観点で実現可能性に疑問の声が出ている。プレス発表などに反応したリーダーのコメントは大方大絶賛している一方、ITジャーナリストのブログや技術系の個人ブログなどで懐疑的な意見が少なくない。

私の印象として

肯定派:これはすごい!だから文句つけるやつはどうかしている!
否定派:実現されたらすごいけど、iPhoneのハードでどうやって実現すんの?

というのが大方の意見と思う。ということは肯定派も否定派もSekai Cameraを歓迎しない人はいない。みんな大歓迎だ。

では、何が違うのか。答えは簡単、技術的に実現可能か考えたかどうかだ。Sekai Cameraが実現困難であることは少し考えたらすぐわかる。TC50のデモムービを実現することはiPhoneの標準ハードでは無理(あるいは困難)ということは否定派の共通する意見だ。

以下では、Sekai Cameraが大きな反響を呼んだ原因と実現可能性についての順で論じたい。

「インパクトについて」
Sekai Cameraが目指すサービスが実現されれば、モバイルコンピューティングが大きく進化することになり、インパクトはかなり大きい。ただ、Sekai Cameraのアイデア自体はそれほど新規性のあるものではないと言える。同様なサービスは多くの人たちが夢見てきたしSFや映画で繰り返し描かれてきた。このようなコンセプトデザイン(Future of Internet Search)を発表する人までいる。
では、なざSekai Cameraがこうも話題をさらったのか?答えは簡単、デモムービーがわかりやすかった。ややこしいことにはいっさい触れず、できることだけを提示したデモだった。一部ではTonchiDotのCEOを褒める声もあるが、プレゼンと質疑応答を視聴する限り褒める点はない。というより、プレゼン自体内容があるようには思えないしパネリストへの最低限の礼儀は感じられない。オライリーをはじめパネリストの質問内容を批判する声も少なくないが説明されるべきポイントが説明されなかったので彼らの質問は至って妥当。ま、この点はさておき、デモムービで紹介されていたサービスが実現できるのか次の論点を進めたい。

「Sekai Cameraを実現するためのハードウェア」
iPhoneにはGPSとWiFiが搭載されている。よって、測定精度が両者で異なるが緯度経度を取得することは可能だ。また、加速度センサーが内蔵されている。加速度センサーはiPhoneの傾きを検出してくれる。まとめると
GPS/WiFi:場所情報
加速度センサー:本体の傾き
ということになる。ではこれで十分だろうか。答えはノー。全然足りない。

足りないものは
コンパス:iPhoneがどちらの方角に向けられているのか
距離:対象とどのくらい近いのか
高度:ユーザがiPhoneをかざす高さ
である。

これらがないと3次元空間でiPhoneが向けられている対象を特定することはできない。Enkin (http://enkin.net)ではAndroidを環境に選んで外部のセンサーにより3次元空間を特定している。

「他の可能性」
iPhone標準のハードが限られているといって実現が無理とはいえない。外付けという選択肢が残っている。また、画像処理で対象を識別するということは原理的に可能だ。しかし、画像処理となるとテンプレートマッチングか特徴抽出ということになるだろうがiPhoneの演算処理能力でできることは限定的だ。マッチングするデータが極めて限られていれば何とかなるが、データ量が少し増えるとシステムはすぐに破綻を来す。Sekai Cameraのプロジェクトには赤松 正行氏も加わっているようなので「パテント」で隠されている技術があるのだろうか?質疑応答で、どのくらい画像(Visual-based)に頼っていて、どのくらい場所(Location-based)に頼っているのか、と訊かれ、ほとんどすべて場所(Almost all location-based)と答えているので画像処理による認識はしていないと考えてよい。

では実際の落としどころを考えてみよう。

1. デモはすべて実現できる:凡人には思いもつかない天才的な技術革新がある(イマジネーションでなんとかなる!?)
2. デモは外付けハードで実現できる:Enkinのようにセンサーを外付けする。
3. デモの一部を実現できる:GPS/WiFiから場所を特定しサーバーが周辺情報をプッシュする。画像も一緒に送って、ユーザがその画像を実風景から探し出してiPhoneをそちらに向ける。
4. デモは構想段階:センセーションなデモで多くの人にプロジェクトを知ってもらう。デモはマーケティングの一環。
5. なんだかんだで実現できる:GPS/WiFiから場所を特定してサーバーから情報をiPhoneにばんばん送る。後はユーザが適当にiPhoneをそれらしい方角に向けてくれればそれなりに動くだろう。最初のリリースはこの辺で乗り切る。理論に基づいた完璧なシステムは目指さず、それなりのものをリリースする。

日本では11月にサービスを始めるらしい。CEOがインタビューで言っているので確かな情報だ。日本のみならず海外でも大きく取り上げられているプロジェクトだけにがんばっていただきたい。1の場合は革新的なサービスになり、日本から世界に通用するネットサービスに成長する可能性は大。2は妥当だけど普及へのハードルはかなり高くなってしまう。3は骨抜き。第一つまらない。4は論外。5は3とあまり違いないようだが、個人的には5が一番可能性が高いと思う。いろいろ勝手なことを書き綴ってみたが、11月が楽しみだ。

ちなみに私はFaLLenというソフトウェアを個人的に開発している。おもちゃレベルだけど、できることを紹介すると
1. 場所情報から飲食店を収集:PlaceEngine + (Tabelog or Hotpepper)
2. USBカメラから風景をリアルタイムで識別してタグ付け:SREngine
(Windows, Core2Duo)
iPhoneのハードウェアリソースではとてもじゃないけど動かない。サーバサイドで動くエンジン作ってみよっと。

参考

「セカイカメラ」で電脳コイルの世界が実現?(2)

ラベル: , , ,

2008年9月23日火曜日

【AR】 拡張現実を実現するデバイス

拡張現実を実現するにはディスプレイが大きなハードルだ。
ヘッドマウントディスプレイをつけて外を歩きたい人はいないだろう。

このたびブラザー工業が発表した網膜走査ディスプレイはかなり画期的だ。
http://www.brother.co.jp/news/2008/rid/index.htm

2010年発売と製品について具体的で期待が持てる。
http://www.itmedia.co.jp/news/articles/0809/04/news076.html

業務用のあとに個人用にも提供を考えているみたい。
接続端子については不明。

ラベル: ,

2008年9月19日金曜日

【AR】 こんなデバイスほしい

Future of Internet Search: Mobile version

ラベル: , ,

2008年9月8日月曜日

【Plone】 Apacheとの連携

PloneとApacheの連携方法を紹介する。

といっても、Apacheに来たリクエストをProxy機能でPloneに飛ばすというものだ。

Apacheの以下のモジュールを有効化する。
rewrite
proxy
proxy_http

UbuntuでApacheをapt-getインストールしたなら/etc/apache2/mods-availableのrewrite.load, proxy.load, proxy_http.loadを/etc/apache2/mods-enableにコピーする。
/etc/apache2/sites-available/defaultのVirtualHostディレクティブに以下を追加する。



RewriteEngine On
RewriteRule ^/myplone[/]?(.*) http://plonehostname_or_domain:8080/Plone/$1 [P]



Apacheを再起動後、
http://hostname/myplone
にアクセスして確認する。

ラベル: , ,

【Plone】 UbuntuにPlone3.1をインストール

Plone 3.1をUbuntuにインストールする手順。

http://plone.org/products/ploneよりPlone-3.1.5.1-UnifiedInstaller.tgzをダウンロードする。

tar zxvf Plone-3.1.5.1-UnifiedInstaller.tgzで解凍後、ディレクトリ移動(cd)する。
rootユーザでインストールするとユーザが自動で作成されたりと、なにやら影響が出るみたいなので一般ユーザでインストールしてみる。

$ ./install.sh standalone

結構時間がかかる。
無事終わったら、ホームディレクトリにPlone-3.1ができている。
また、インストーラーのターミナルにaminユーザの初期パスワードをメモる。
cd ~Plone3.1/zinstance/bin/
./instance start
で起動する。
停止は
./instance stop

ブラウザで、
http://localhost:8080/Plone
にアクセスして確認する。

adminユーザのパスワードを変更するには
http://localhost:8080/acl_users_users/manage_users
から変更する。

ラベル: ,