2007年度第2期 未踏ソフトウェア創造事業最終成果報告会のお知らせ

引き続き未踏関連のエントリで申し訳ないですが、いよいよ2007年度第2期分の未踏ソフトウェア創造事業最終成果報告会が下記の通り実施されます。

http://www.tsi-info.jp/

今回は5PM同時開催ということで様々な発表が見ることができると思いますので、皆様ふるって足を運んで頂けたらと思います。

私も、第1部、第2部共に発表します。第1部はフォーマルな成果報告を、第2部は「Viral Feed Live Coding!」*1というテーマでラフ感じでお話をさせて頂こうと思っております。
未踏なんてどうせ大したことないだろ、土日くらい家でゆっくりしたいよ、とかいうあなた!色々な世界の方達がくると予想されますので、少しでも顔を出して一緒の飲んでおしゃべりしましょう!

*1:第2部では今のところ、「Viral Feed Web Serviceでマッシュアップ」、「People Near MeでNear by Twitterを作ろう」という内容を話す予定です。

Viral Feed ご紹介(実現方式編)

TechCollab2008-02-11


さて、引き続いてViral Feedの実現方式についてざっくり*1と紹介していきます。

Viral Feed アーキテクチャ

Viral Feed」はシステム全体を統括するWEBサービス(A)「Viral Feed Web Service」と、各クライアントで動作し「Viral Feed Web Service」と連携したオンライン機能と、People Near Me*2エンジンを利用したオフライン機能を合わせてもつ、(B)「Feed Communicator」から構成されます。

WEBサービスViral Feed Web Service」

ユーザ毎のフィード注入状態/購読状態を管理し、各クライアントの現在位置に応じたフィードの注入をするためのサービスです*3Viral Feedで扱うデータはオープンに公開されREST/SOAP/Popfly Blockの各種インタフェースからアクセスすることが可能です。

Ex1.RESTアクセス
例えば、次のようなクエリを投げることによりAdministartorというユーザが購読しているフィードの一覧を取得することができます。ここで得られる結果はOPMLとして返答されます。owner属性にadと記述されているフィードは自分存在位置に応じて注入されたフィードとなります。

http://viralfeed.net/ws/rest/GetSubscribeFeed.aspx?v=1.0&user=Administrator&type=all

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<opml type="feed/subscribe" version="1.0">
  <head>
    <title>Feeds</title>
  </head>
  <body>
    <outline text="Tim Sneath" xmlUrl="http://blogs.msdn.com/tims/atom.xml" type="rss" owner="my"/>
    <outline text="ABC News: Top Stories" xmlUrl="http://feeds.feedburner.com/AbcNews_TopStories" type="rss" owner="my"/>
    <outline text="Cirius Lab" xmlUrl="http://feeds.feedburner.jp/ciriuslab" type="rss" owner="my"/>
    <outline text="マイコミジャーナル" xmlUrl="http://journal.mycom.co.jp/haishin/rss/index.rdf" type="rss" owner="my"/>
    <outline text="畑@サイボウズ・ラボ" xmlUrl="http://labs.cybozu.co.jp/blog/hata/index.xml" type="rss" owner="my"/>
    <outline text="Microsoft Live Labs Volta Team Blog" xmlUrl="http://labs.live.com/volta/blog/SyndicationService.asmx/GetAtom" type="rss" owner="my"/>
    <outline text="Windows Live Agents" xmlUrl="http://windowsliveagents.spaces.live.com/feed.rss" type="rss" owner="my"/>
    <outline text="CNET News.com" xmlUrl="http://www.news.com/2547-1_3-0-20.xml" type="rss" owner="my"/>
    <outline text="Microsoft Live Labs Volta Team Blog" xmlUrl="http://labs.live.com/volta/blog/SyndicationService.asmx/GetAtom" type="rss" owner="ad"/>
    <outline text="レッド ■ ワン: red-one" xmlUrl="http://redone-on.blogspot.com/feeds/posts/default" type="rss" owner="ad"/>
  </body>
</opml>

Ex2.Popfly Block
上のRESTアクセスの例と同じことがPopfly Blockからも実現することができます。Viral FeedブロックのOperationとしてGetSubscribeFeedFromUserを選択し、対象ユーザとしてAdministartorを指定する。

そうすると、Administartorが購読しているフィード一覧を取得することができる。

クライアントツール「Feed Communicator」

Feed CommunicatorはViral Feed Web Serviceにより配信される現在位置に依存したFeed情報や、近隣ユーザとFeed情報をやりとりをするためのツールとなります。近隣ユーザとのコミュニケーションをオンライン/オフライン問わずに実現することが可能です。現時点でのサポートプラットフォームはWindows Vista/XP、Windows Mobile 5/6ですが、SDKの調査結果に応じて今後はMac/iPhoneLinux/Androidをサポートしていくことを計画しています。

このFeed CommunicatorはPeople Near Meのエンジンを利用することでフィード情報を近隣のピアと共有しています。このPeople Near Meですが、もともとのサポートはVistaのみであるため、今回のプロジェクトではVistaに限らず、XP、Windows Mobile5/6でも利用させるためPeople Near Meを独自に実装しています。独自実装したPeople Near MeはPEERネットワークの状態をリアルタイムに管理する常駐サービスであるPNM Control ServiceとPNM Control ServiceからPEERネットワーク状態の変更通知、情報取得を実現するための汎用ライブラリPNM Libraryから構成されています。PNM LibraryはWin32 Native実装版と.NET Class Libary(Compact Framework含む)実装版が存在します。それにより、アプリケーション作成者は次のようなオリジナルのPeople Near Meと同等な簡単なコードでP2Pアプリケーションを実現することができます*4

private void InitializePeopleNearMe()
{
    PeerCollab collab = new PeerCollab();
    collab.SignIn(PeerSignInOption.NearMe);

    collab.PeopleNearMeChanged 
          += new PeerCollab.PeopleNearMeChangedHandler(collab_PeopleNearMeChanged);
    collab.ObjectChanged 
          += new PeerCollab.ObjectChangedHandler(collab_ObjectChanged);
}

void collab_PeopleNearMeChanged(object sender, PeerCollabPNMChangedEventArgs e)
{ 
    PeerPeopleNeaMe pnm = e.PeopleNearMe;
    switch(e.Action)
    {
        case PEER_CHANGE_TYPE.Added:
            break;
        case PEER_CHANGE_TYPE.Deleted:
            break;
        case PEER_CHANGE_TYPE.Updated:
            break;
        default:
            break;
    }
}
応用例1(Viral Feed Web Serviceを使ったマッシュアップ

Viral Feed Web Serviceを使うと次のようなマッシュアップを実現することもできます。

1.Geocoding Block (キーワードから経度緯度の取得)
東京タワーの経度緯度を取得
2.Viral Feed Block (Viral Feedで扱うデータの取得)
東京タワー付近に注入されているフィード一覧を取得
3.RSS Block (RSSのパース)
東京タワー付近に注入されているフィード一覧のパース
4.Heart Rails Capture Block (WEBサイトのキャプチャ画像の取得)
東京タワー付近に注入されたフィードのアイテムWEBサイトのキャプチャ画像一覧を取得
5.Photo Sphere Block (画像一覧を球体表示させる)
東京タワー付近に注入されたフィードのアイテムWEBサイトのキャプチャ画像い一覧を表示

以上のマッシュアップ結果は下のようになります。

応用例2(Custom People Near Meを使ったNearby Twitterの実装)

(落ち着いたらまとめる予定?)

*1:ここでは本当に簡単な説明にとどめます。

*2:People Near Meについてはhttp://www.microsoft.com/japan/technet/network/p2p/pnm.mspxhttp://codezine.jp/a/article/aid/1300.aspxを参照。

*3:うまく説明できてないので後でうまくまとめ直す。

*4:この独自People Near Meの実装が本プロジェクトでもっとも苦労したところで今でもまだ懸案があります。。。

Viral Feed ご紹介(概要編)

TechCollab2008-02-10


2週間後に未踏の最終成果報告会も迫ってきたこともありますので、今日はViral Feedというサービスについて軽く紹介してみようと思います。

Viral Feedhttp://viralfeed.net/

一度に全部説明すると量が多くなるので、概要編と実現方式編と2回に分けで説明していきます。

Viral Feedって何?

Viral Feedは端的にいえばフィード共有インフラサービスのようなものです。

Viral FeedWEBサービスとデバイスとの連携、そしてオンライン/オフラインを問わないシームレスな情報共有を目指したものです。このサービスでは、ある物理位置に対してフィードを注入し、その注入位置近隣にいるユーザに対して注入されたフィードを配信することができます。また、注入されたフィードは配信されたユーザにとどまらず近隣ユーザへ伝播していきます。

すでに他の方に紹介頂いていますが、そこで推測いただいたとおりのサービスです。

おそらく、「新宿駅」という物理位置に対して広告を載せたフィードを配信すると、新宿駅の近くにいる人たちのデバイスにフィードが配信され、さらにその人たちが歩いてすれ違った人のデバイスにもフィードが転送されていくというものだと思います。

このサービスが目指すところは大きく次の3つです。

  1. WEBとリアルの融合(Sync & Share)
  2. 近隣ユーザとの情報共有
  3. 新たな広告モデルの実現

1. WEBとリアルの融合
ここ数年、WEB2.0の名のもとに多くのサービスがオンラインにおいて提供され、かつそれはコンシューマの世界に限らずエンタープライズの世界においても普及してきているということはもうここで説明することはないでしょう。しかし、このWEBの流れが昔のダム端末のような形態にはなっていくのか?というとやはりそうは思えず、じゃあ今後どうなっていく?、自分はどういう世界を望むか?、と考えた結果、「multi-master topology」という形態がはやり幸せであるように考えます。もともと学生時代の研究テーマが分散オーバレイとかP2P関連を結構やってたことからこのような思考になるんだとは思いますが、ここ1年の流れとしてAdobe AIRGoogle GearsMozilla Prismなどが現れている背景からもオフラインで扱うデータとWEBと連携したオンラインのデータをうまくシームレスに流すことができたならばかなり魅力的なことが実現できるのでは!?と思います。また、このWEBの潮流を受けて、無線の利用形態としてはAPとしての利用はますます発展するでしょうが、アドホックという利用形態はますます影をみせてきています。WEBとアドホックとうまく組み合わせたらいいサービスができるのでは、という思いもあります。

以上の思いから本サービスの開発は開始されています。このサービスでは「WEBとリアルの融合」をコンセプトにWeb-Device間のSync、Device間のShareの実現を目指します。

2. 近隣ユーザとの情報共有
現在ではWEB上で様々な情報の共有はできてはいるものの、つい隣の席の人とは意外にも情報の共有ができていないことって結構あるものです。今ではWEB上での仮想的なコミュニケーション、情報共有は今後も発展していくとしても、やはりリアルな世界のつながりは重要で、これを強化するようなサービスがあってもいいのでは、ということでWEBとSyncされた情報が近隣ユーザとShareすることを目指します。

3. 新たな広告モデルの実現
現在の広告モデルにおいては基本的には例えば検索キーワードと連動した広告のリンクがWEBページの一部として表示されます。しかしモバイルデバイスでは画面サイズが小さいなどの制限を受けてPCと同等な効果は望めません。本サービスではフィードを広告媒体として利用することにより、このハードウェアの制限を緩和できリッチな広告コンテンツの提供が実現できます。また指定位置に対して注入ができることにより適切なターゲットに対して広告の提供が実現可能です。

Viral Feedって誰が使う?使うメリットは?

Viral Feedでは位置に依存したフィードを注入することができます。よって、より適切なターゲットに対して広告を配信したい広告代理店、 マスメディアを使った広告配信が難しい中小企業、SOHO経営者、さらには、インディーズで活動しているミュージシャン、アーティストにも最適です。 個人ブログを普及させたいという方にも適していると思います。またオフラインでも情報をやりとりできるため、オンライン/オフライン問わずに シームレスな情報収集を行いたい方、物理的に近隣にいる人達とのコミュニケーションの きっかけを求めている方などにも最適です。

Viral Feedのビジネスモデルは?

このサービスにあたってのビジネスモデルなまだ検討段階です、現時点では、広告代理店、ユーザ企業を主なターゲットとし設定し、物理位置に対する広告注入、注入された人の物理的に近隣にいる人に対しても情報が伝播していく、という点をポジショニングとして設定しています。とはいっても適切なターゲティング広告の提供となるとまだまだ魅力に欠けます*1。もちろんこのサービスはあくまでも物理位置も考慮したフィード共有サービスというものであって、広告に限定されるものではないのでもっと別な観点での利用価値を求めることは可能だと思っています。
またここでは次のようなすばらしい意見を頂いたのでこの考え方もうまく取り入れることができればと思います。

説明を読む限り「位置情報」で広告配信ターゲットを絞っているようですが、「あるフィードを購読している人に対して配信」とかはできるのでしょうか。RSSリーダーは個人の嗜好がかなり反映されているので、このプロジェクトに限らず、広告配信ターゲットの絞込み要素として購読フィードの情報を使うことができれば面白そうな気がします。

補足

Viral Feedはまだまだアルファ公開の前段階の位置づけのサービスです。正式に公開する際にはまたこのブログでアナウンスさせて頂きます。なので、こんなことって実現できないの?開発に参加したい!という意見はどしどし募集中ですのでよろしくお願いします。(現時点では2008年の夏の正式公開を目標として動いています。)

*1:例えば30代男性で子供は二人(男の子と女の子)という人に広告を打ち出したい、ということまで求められるのがターゲティング広告の現状。しかし、これらの情報をサービスに対して入力させるには何らかの必然性が必要。とはいってもこれは個人情報の価値とサービスによって提供される価値を比較してもなかなか困難。

駄文

このブログには自分の思考をそのまま書くような駄文じゃなくてちゃんと練ったものを書いていこうとは思っていたけど、ちょっと気になったことがあったので書いてみる。

最近、このプログラム言語がいいとか悪いとか、この言語を学ぶべき、うんぬんという話をよく見かける。しかし、こんなのはまったくもってどうでもいい話だと自分は思う。要は言語は目的でなく手段だし、多く知っていれば便利。でもこれはただそれだけの話。あまりにも一つの言語に固執しすぎると視野も狭くなる。

というか、 そんなことよりも本当にみんなが幸せになるためのソフト、サービスってなんだろう!?ということに注力して頭をつかえよ!!と多々思う。日本人は本当の目的とか、ゴールを考えようとしないからいつまでたっても他の国の真似しかできないのでは。

どこぞかのブログにあったが、これでは「スーツ」と「ギーク」を併せ持つイノベーションを生み出せるようなやつは現れない。

※おそらくこのエントリは数日後に削除すると思われる。

FeedSync + Microsoft Sync Frameworkはソフトウェアの在り方を変える!?

TechCollab2007-12-11


ついつい先送りになってしまっていたSync Frameworkサーベイをしていたら、つい数日前にSSE(Simple Sharing Extensions)がFeedSync1.0として公開されていたことを知った(今日の1枚の画像がFeedSyncのロゴ)。

http://dev.live.com/feedsync/

SSEについてご存知の方には今更説明するまでもないが、FeedSync(旧SSE)とは、「複数サイト*1のフィードに対して双方向同期を実現するための仕様」であり、RSS/ATOMの仕様は維持したまま最低限の拡張を施すことで実現している。SSEについてはかなり以前の秋元さんのブログエントリにあったのでそちらを参照した方がわかりやすいと思う。

FeedSyncにおけるフィード同期のためのフローについてはこちらチュートリアルが分かりやすくまとまっている(後日にまた同期手順についてはまとめたい。。。)。

本格的なサーベイはまだできていないため、FeedSyncの詳細な仕様やSync Frameworkアーキテクチャについて理解できていないが、「FeedSync + Sync Framework」はこれをベースに俗にいうエコシステムが定義されていき、ソフトウェアとしての新たな姿が展開できてくるのではないかと確かに思った。それはThe Synchronizer – sync for the massesのブログにもあるとおり。

以下、Synchronizeable Web – The Synchronizerより抜粋。

So picture this, FeedSync gives enables you to synchronize web content and Microsoft Sync Framework enables you to synchronize between any store in peer to peer fashion. Now you can easily see that:

FeedSync + Microsoft Sync Framework = data flow between desktop, devices and the web

There is an incredible potential to what could be done with the sync technology that is coming out from Microsoft in the recent weeks. An ecosystem is being slowly defined. It is your chance to take advantage of it and build a great value for your customers.

最近のMicrosoftまわりでは.NET3.0(WPF/WCF/WF/CardSpace)、.NET3.5、SilverlightLINQなどなど魅力的な技術が発表されてきたが、自分の中ではこのFeedSync + Sync Framework」という組み合わせに直感的だがとてつもない可能性を感じた。
この「FeedSync+ Sync Framework」アーキテクチャについて考えていくことで今後のソフトウェアのあり方もみえてくるのではと思う。そもそもソフトウェアはパソコンにのみに載るものである必要はない。今のWEBの潮流が昔のダム端末への回帰のような方向に向かっていくのではなく、様々なデバイス間でデータをコラボレートしていくmulti-master topology的な構成に変化していくことがとても魅力的であると思う。そもそもGroove創業者のRayOzzieなので、やはりこのようなシステムトポロジーを「Software+Service」として目指しているのではないだろうか?

自分はMicrosoftの人間でもないのでMicrosoftが目指そうとするところはあくまでも推測でしていえないが、この「FeedSync + SyncFramework」の可能性については今後とも重点的に色々考えていきたい。

以下は気になった言葉。

one particular service and one particular software application => 「any service and any application」

現在開発者向けにFeedSyncホスティングサービス(これ)を提供してくれているようなので、色々実装しつつFeedSyncを理解してみたいという方は是非利用してみてはいかがでしょう。詳細な流れについてはChannel9の方にアップされているのでそちらもご参考に*2

おまけ:SyncToy v2.0 Betaなるものダウンロードできるらしい。

*1:サイトに限定されるものではなくどんなプラットフォームどんなデジタルデバイスにおいても

*2:試してみた方は詳細情報を是非!

未踏ソフトウェア創造事業2007年度第1期畑PM採択プロジェクト最終報告会への参加

TechCollab2007-12-02


ということでざっくりとメモ書き程度にまとめておく。内容については他の方々のを参照ということで省略。ここでは雰囲気のみのご紹介。写真がぶれてるのはご勘弁を。。。

まずは5組の開発者の発表。

フレームを活用したスクレイピングによるマッシュアップ支援ツール

不覚にも遅刻したので写真撮ってません。ごめんなさい!あのGUIPrototype Windw?家族がいる中での単独開発は大変だったかと。。。本当にお疲れ様です。

オブジェクト管理API及び簡単システム構築UIの開発

オブジェクトデータベースをRDBの世界の上で実現しているイメージのシステム。中間合宿の時からの豹変ぶりにかなりびっくり。全部のコンテンツを1ヶ月の間に作り上げたということか。。。すばらしすぎる!しかも驚くことに後藤さんは化学出身の方。にこにこプレゼンは是非ブレークさせたい。

動的仮想世界でのコミュニティ形成を軸とするネットゲームの開発

これを一人で作りあげたということは本当に驚き。質問のときにあった実時間性の考慮が少し気になった。PRGとかなどは全然問題ないだろうけど、シューティングゲームのような場合だときっかり実時間を維持しなくてはならない。MMOGは今後も普及していくだろうし、実時間性の維持はやはり気になる。1プロモーション時には猫ひろしを使ってみてはいかがかな。

宣言的アプローチによるJavaScriptマッシュアップエンジンの開発

これを一人で作り上げたとはとても信じられないような出来のマッシュアップエディター「Afrous」。さまざまな機能が搭載。これは本当にグローバル化してほしいものですし、それが実現できるような完成度かと。それにしてもExtJsはいつみてもパワフルです。デプロイの機能が充実したらいいのかも。Silverligth(2008/1/29:Popflyのこと。深夜は誤字が多いですな。。。)とかはガジェットをはくこともできたはず。


2組のゲストスピーカーの講演。

by mixi笠原社長

mixiの歴史についての貴重なお話。企業規模が大きくなっていくにつれてのXX人の壁にぶつかっていったという話は大変興味深い。

by サイボウズ青野社長

色々な苦労をされていると思いますがとても明るい方で精神力の強い方なのでは。


振り返ってみれば畑PM1期採択の皆さんはとても刺激的な方々で自分に大きな影響を与えてくれた。ここで思うのはすごい人間とかすごい環境にいるからといってそれが自分の実力だと勘違いしないようにすることがやはり大事かと。自分の今のポジション(強み/弱み)を的確に把握して頑張っていきたいものです。ラボを出てからのid:shinichitomitaと二村さん(おぶたん開発者)との赤坂飲みで何か面白い生み出せそうな気がしただけにここでつながりが無くなるのは非常に残念。。。。

うーん、眠くてまともな文章がかけてない。。。まあ、たまにはこういうエントリもありとしましょう。

追記:
ゆーすけべーさんとこの方が会場の様子がわかりやすいかな。

htc P3600購入

またまたご無沙汰になってしまいました。今はアウトプットするよりもインプットすることに結構必死な状態なもので。

というわけで新たなWM端末を購入!キャリア端末だと色々面倒なのでSIMロックフリー端末の「htc P3600」を買ってみた。SIMロックフリーだから気分に応じて端末が変えられるから便利便利、と思ったところhtc端末からの通信はパケット定額の適用外。。。けち臭い話だこと。でもhtcテーマのGreenの配色は結構お気に入り。あと「ボイス短縮ダイヤル」のような機能がデフォルトで入っているのは結構Good!

それにしても結構増えてきたなー。3月になったらいくつになってるんだろ。