<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>小松 健作 &#8211; HTML5Experts.jp</title>
	<atom:link href="/komasshu/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>Googleが新たに提唱するProgressive Web Appsの新たな開発パターン「PRPL」とは？</title>
		<link>/komasshu/19704/</link>
		<pubDate>Wed, 22 Jun 2016 01:00:14 +0000</pubDate>
		<dc:creator><![CDATA[小松 健作]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[I/O 2016]]></category>
		<category><![CDATA[PWApps]]></category>
		<category><![CDATA[Polymer]]></category>

		<guid isPermaLink="false">/?p=19704</guid>
		<description><![CDATA[「Google I/O 2016」では、これからのWebアプリ開発パターンとして提唱しているPWApps(Progressive Web Apps）について多くのプレゼンテーションがなされました。 PWAppsとは、最新...]]></description>
				<content:encoded><![CDATA[<p>「Google I/O 2016」では、これからのWebアプリ開発パターンとして提唱しているPWApps(Progressive Web Apps）について多くのプレゼンテーションがなされました。</p>

<p>PWAppsとは、最新のWeb技術を有効に活用し、漸進的（Progressive）に高度なユーザー体験を提供しようとする概念です。このPWAppsの概念を具体化する一つの手法として、「PRPL」（パープル）と名付けられた開発・提供パターンが提案されました。本稿ではこのPRPLを解説するとともに、その有効性や課題点を考察します。</p>

<p>本稿は、Google I/O 2016の二つのセッションに関する、解説記事です。</p>

<ul>
<li><a href="https://www.youtube.com/watch?v=fFF2Yup2dMM" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Polymer and Progressive Web Apps: Building on the modern web</a></li>
<li><a href="https://www.youtube.com/watch?v=J4i0xJnQUzU" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Progressive, Performant, Polymer: Pick Three</a></li>
</ul>

<h2>PRPLの概要、PWAppsとの関係</h2>

<p>PRPLは、次の4つの頭文字をとった、開発パターンです。</p>

<ul>
<li>Push</li>
<li>Render</li>
<li>Pre-cache</li>
<li>Lazy-load</li>
</ul>

<p>モバイルWebアプリケーションにおいて、現行のWeb開発・提供パターンが抱える課題点を解決するものとしてGoogleが今回の I/Oで提案した新たなフレームワークパターンです。</p>

<p>Web Componentsや、Service Worker、HTTP/2 Serveer Pushといった Webの最新技術をフルに活用し、レスポンス性の高いユーザー体験を提供しようというものです。PWAppsの具体的なパターンの一つとして位置付けられます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/1.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/1.png" alt="The PRPL Pattern" width="640" height="330" class="aligncenter size-full wp-image-19706" srcset="/wp-content/uploads/2016/06/1.png 640w, /wp-content/uploads/2016/06/1-300x155.png 300w, /wp-content/uploads/2016/06/1-207x107.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>PRPLについては、以降のパラグラフで詳しく解説するとして、まず最初にPWAppsについて概説します。</p>

<p>PWAppsが最初に発表されたのは、昨年11月。シリコンバレーGoogleオフィスで開催された <a href="https://developer.chrome.com/devsummit" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Dev Summit</a>のことです。モバイルWebアプリにメインターゲットをおき、ネイティブアプリに近いユーザー体験（オフライン動作や高速なレスポンス性）を漸進的に提供していこうという考え方です。</p>

<p>ここで、漸進的といっても、イマイチピンと来ない方も多いことでしょう。具体例としてService Workerのパターンについて紹介します。Service Workerの詳細ついては、<a href="http://www.html5rocks.com/ja/tutorials/service-worker/introduction/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 Rocks</a>や<a href="https://html5experts.jp/kinuko/16537/" data-wpel-link="internal">Googleの安田絹子さんの記事</a>（Service WorkerのChrome実装者です！）を参照ください。</p>

<p>Service Workerは、オフラインWebを実現する最新Web標準技術の一つ。オフライン環境でも動作するWebアプリケーションの提供を可能とします。オールドファッションなオフライン Web（Application Cache）とは異なり、柔軟なキャッシュ制御が可能となるため、多様なWebアプリケーションにオフライン Webの世界を適用することができます。ネイティブアプリのようにオフラインでも動作するWebアプリ体験を提供することが可能となるわけです。</p>

<p>また、Service Workerは単なるオフラインアプリの実現にとどまりません。多様なキャッシュ制御ができるということは、リソース（HTMLやJavascriptファイルなど）のロード時間短縮が可能となることを意味しており、アプリキャッシュによる高速なレスポンス性を実現します。</p>

<p>さらに、Service Workerは、プッシュ通知もサポートします。これにより、該当のWebサイトにアクセスしていなくても、通常のモバイルアプリのようにプッシュ通知を提供することができます。Service WorkerはモバイルアプリとWebアプリとの間の様々なギャップを埋め、より高度なユーザー体験を提供するためのAPIなのです。</p>

<p>では、このService Workerと漸進性との関係はなんでしょう？答えは単純で、Service Workerは、それが対応していないブラウザ環境であっても、Webサイトのサービス提供自体を止めることはありません。</p>

<p>したがって、非対応ブラウザ利用ユーザーには、ベースとなるWebサービスのみを提供し、対応ブラウザ利用ユーザーには、オフライン対応・高速なレスポンス性・プッシュ通知といったより高度なユーザー体験を提供します。これが漸進的なWebアプリケーションと言われる所以です。</p>

<h2>現状のWeb開発課題を解決するPRPL</h2>

<p>さて、本題のPRPLです。これは前述のService Workerなど、様々な最新Web技術を活用したWeb開発・提供パターンです。もちろん、PWAppsの理念に基づいています。</p>

<h3>現状のWebアプリ開発の課題。バンドルの肥大化</h3>

<p>最近のWebアプリ開発手法は、コンポーネント化による独立性・安定性の向上と、バンドル（単一ファイルの生成）による高速性の両者に基づいています。BabelやReact、npmといったツール類を用い、ES2015やTypeScript記法による洗練されたコンポーネント志向のコーディングを行いつつ、mochaやwebpackなどを用い、オートメーション化されたテスト駆動開発と全てのコンポーネントを集約したコンパイルの実行、バンドルを行うのがベストプラクティスとなっています。</p>

<p>ここで、コンポーネント化のメリットは解説不要でしょう。Webアプリの各機能要素をライブラリとしてコンポーネント開発することで、独立性・安定性・再利用性といった様々な恩恵を得ることができます。</p>

<p>一方で、バンドル化のメリットはなんでしょうか？答えは、ロード時間の短縮です。この点は、PRPLを理解する上で重要な知識となりますので、より詳しく紹介します。</p>

<p>そもそも、Webはコンポーネント志向を支えるプラットフォームであると捉えることができます。それぞれのコンポーネント要素（Javascriptライブラリ、HTMLテンプレート、CSS）は、それぞれ個別のリソースファイルとして提供され、 &lt;script&gt; タグや、 &lt;link&gt; タグなどにより個別にダウンロード、ブラウザ内で一連のプログラムとして結合・コンパイルされ、Webサービスとして提供されます。</p>

<p>しかし、このような開発・提供手法は甚大なユーザー体験の低下を招きます。HTTP/1.1の制約により、ファイルロード時間の増大を促してしまうのです。HTTP/1.1はリクエスト＆レスポンス型のデータ転送プロトコルとなっているため、リソースファイルのダウンロードが完了しないと、次のファイルのダウンロードを開始することができません。</p>

<p>この影響は無視することができないものであり、仮にブラウザとWebサーバー間の往復転送遅延時間を0.1秒とし、300個のコンポーネントリソースをダウンロードしなければならないとなると、0.1 x 300で合計30秒の待ち時間がサービス起動にかかってしまいます（実際には、平行ダウンロードにより数分の一に短縮されますが、極端な例として理解ください）。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/2.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/2.png" alt="HTTP/1.1" width="640" height="332" class="aligncenter size-full wp-image-19713" srcset="/wp-content/uploads/2016/06/2.png 640w, /wp-content/uploads/2016/06/2-300x156.png 300w, /wp-content/uploads/2016/06/2-207x107.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>これを解決するのがバンドルです。Webアプリ開発時に、サーバーサイドで一連のコンポーネントリソースを結合した一つのファイル（バンドル）を生成し、サービス提供時には、バンドルファイルのみをダウンロードすることで、転送待ち時間によるサービス起動時間を短縮する手法が用いられています（バンドル時には単に結合するだけでなく、ブラウザ依存の解決や、構文チェック・コードの最適化・重畳リソースの削減など、各種コンパイルプロセスが実行されます）。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/3.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/3.png" alt="App bundling" width="640" height="335" class="aligncenter size-full wp-image-19714" srcset="/wp-content/uploads/2016/06/3.png 640w, /wp-content/uploads/2016/06/3-300x157.png 300w, /wp-content/uploads/2016/06/3-207x108.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>しかし、これは新たな問題を引き起こしました。それはバンドルファイルの肥大化です。全てのコンポーネントが一つのリソースファイルに集約されるため、設計を怠るととんでもないサイズのバンドルファイルが生成されます。</p>

<p>最近では、SPA（Single-Page Application）の進展により、全てのルート（SPAに不慣れな方は、個別のWebページと考えていただいて結構です）を制御する一つのバンドルファイルが提供されることも珍しくありません。</p>

<p>このようなケースでは数百キロバイトのバンドルファイルとなることもチラホラ。ダウンロード時間の増大をもたらします。これは、モバイル環境のユーザーにとっては、とくに深刻な状況になりえます。</p>

<h3>コンポーネント志向への回帰。PRPLによる解決</h3>

<p>このバンドルファイルの肥大化問題を解決するのがPRPLです。最新のWeb技術を活用することで、バンドルを行わずとも、転送待ち時間によるユーザー体験の低下を解決することができます。</p>

<h4>コンポーネントの定義</h4>

<p>PRPLでは、各コンポーネントがWeb ComponentsのCustom Elementsで提供されることを前提とします。具体的には、各コンポーネントが カスタム要素としてHTMLファイルとして提供され、親となるHTMLからはHTML Importsにより各コンポーネントの利用が宣言されます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/4.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/4.png" alt="HTML Imports" width="640" height="333" class="aligncenter size-full wp-image-19715" srcset="/wp-content/uploads/2016/06/4.png 640w, /wp-content/uploads/2016/06/4-300x156.png 300w, /wp-content/uploads/2016/06/4-207x108.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>この手法の重要な点は、標準化された手法によりコンポーネントの利用が宣言されること、これによりサーバーサイドでHTML Importsのリンクを解析し、Webサービスに必要となるコンポーネントツリーを得ることができます。これが、その後の HTTP/2 Server pushの適用につながります。</p>

<h4>HTTP/2 Server pushの適用</h4>

<p>先に解説した通り、HTML Importsで記述した場合、個別のリソースファイルの転送待ち時間によるサービス起動時間の増大が発生します。これを解決するため、PRPLではHTTP/2 Server pushが利用されます。</p>

<p>HTTP/2は、HTTP/1.1に続く最新バージョンのファイル転送プロトコル。HTTP/1.1のリクエスト＆レスポンスによる待ち時間の制約を受けずに、複数リソースファイルを効率的・スピーディーにダウンロードすることが可能になります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/5.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/5.png" alt="HTTP/2" width="640" height="331" class="aligncenter size-full wp-image-19716" srcset="/wp-content/uploads/2016/06/5.png 640w, /wp-content/uploads/2016/06/5-300x155.png 300w, /wp-content/uploads/2016/06/5-207x107.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>HTTP/2では、ダウンロード完了を待つことなく、以降のリソースダウンロードを行うことができます。したがって、サーバーサイドでバンドルすることなく、個別のコンポーネントファイルを高速に転送することができるのです。</p>

<p>PRPLでは、さらなる転送時間の短縮を図るため、HTTP/2 Server pushが用いられます。先にも書いた通り、PRPLでは各コンポーネントファイルがHTML Importsの記法により親となるHTMLファイルに記載されています。したがって、最初のHTMLファイルがダウンロード完了しないと、各コンポーネントファイルのダウンロードを開始することができません。</p>

<p>しかし、HTTP/2 Server pushを用いると、この待ち時間すら短縮することができます。前述の通り、PRPLでは、サーバーサイドで HTML Importsを解析し、コンポーネントツリーを得ます。そして、そのコンポーネントを最初のHTMLファイルに対するレスポンスヘッダーに記述することで、HTTP/2サーバーはクライアントからのリクエストを待つことなく、以降のコンポーネントリソースをPushすることができます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/6.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/6.png" alt="HTTP Request Headers" width="640" height="331" class="aligncenter size-full wp-image-19717" srcset="/wp-content/uploads/2016/06/6.png 640w, /wp-content/uploads/2016/06/6-300x155.png 300w, /wp-content/uploads/2016/06/6-207x107.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/7.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/7.png" alt="HTTP/2 + Server Push" width="640" height="333" class="aligncenter size-full wp-image-19718" srcset="/wp-content/uploads/2016/06/7.png 640w, /wp-content/uploads/2016/06/7-300x156.png 300w, /wp-content/uploads/2016/06/7-207x108.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>これにより、いわゆる0 RTT（Round-Trip Time）で、全てのコンポーネントリソースをブラウザに転送することが可能になります。</p>

<h4>Service workerによるpre cache</h4>

<p>ここまでであげた手法により、<em>初期起動に必要</em>となる リソースを高速に転送し、ユーザーの起動待ち時間を短縮することが可能となりました。しかし、Webサービスは、初期画面だけではありません。その後の、ユーザー操作に基づいた各画面の提供が必要となります。</p>

<p>例えば、ショッピングサイトでは、各商品画面や商品購入画面が必要となります。これらを形成するコンポーネントは、初期画面に含まれるものもあるでしょうし、それ以外のものも含まれるでしょう。これらのコンポーネントリソースのダウンロード待ち時間を短縮するために、PRPLではService Workerが用いられます。</p>

<p>PRPLでは、初期画面用のコンポーネントリソースをService Workerを用いて、キャッシュに保存します。以降の画面で該当のコンポーネントが必要になった場合は、このキャッシュが用いられるためダウンロードは発生しません。</p>

<p>また、初期画面を表示したあと、以降の画面で必要となるコンポーネントリソースをバックグラウンドで事前にダウンロードし、Service Workerを用いキャッシュとして保存します（pre cache）。したがって、これらのコンポーネントリソースについても待ち時間は発生しません。非常にレスポンス性の高いWebアプリをon-the-flyで提供することが可能となります。</p>

<h4>さらにユーザー体験を向上する lazy load</h4>

<p>最後にlazy loadです。Webアプリのリソースには優先度があります。例えば、ファーストビューには表示されない画像ファイル、初期画面のメニューコンポーネントなどは、優先度が低いリソースの典型的なものです（メニューは、ファーストビューに含まれますが、最初からは表示されてなくてもいいですよね！）。</p>

<p>これらのリソースについては、lazy-loadとして、優先度の低いものとして宣言してしまいます。こうすることで、ブラウザはこれらのリソースのダウンロード順番の優先度を下げ、ファーストビューに本当に必要なものを優先して表示することができるようになります。</p>

<h2>サンプルサイト、開発ツール</h2>

<p>PRPLを活用したサンプルサイトとして、ショッピングサイトのサンプルが公開されています。</p>

<p><a href="https://shop.polymer-project.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">https://shop.polymer-project.org/</a></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/8.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/8.png" alt="SHOP" width="640" height="333" class="aligncenter size-full wp-image-19719" srcset="/wp-content/uploads/2016/06/8.png 640w, /wp-content/uploads/2016/06/8-300x156.png 300w, /wp-content/uploads/2016/06/8-207x108.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>Chromeのdev tool、networkタブのwarter fallパターンから、PRPLの転送フローを確認することができます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/9.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/9.png" alt="SHOP - Push" width="640" height="330" class="aligncenter size-full wp-image-19720" srcset="/wp-content/uploads/2016/06/9.png 640w, /wp-content/uploads/2016/06/9-300x155.png 300w, /wp-content/uploads/2016/06/9-207x107.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>また、開発ツール<a href="https://www.polymer-project.org/1.0/toolbox/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Polymer App Toolbox</a>ではPRPLの一端が提供されています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/06/10.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/06/10.png" alt="Polymer App Toolbox" width="640" height="331" class="aligncenter size-full wp-image-19721" srcset="/wp-content/uploads/2016/06/10.png 640w, /wp-content/uploads/2016/06/10-300x155.png 300w, /wp-content/uploads/2016/06/10-207x107.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p></p><pre class="crayon-plain-tag">$ npm install -g polymer-cli
$ mkdir my-app; cd my-app
$ polymer init app-drawer-template
#... write code ...
$ polymer build</pre><p></p>

<p>HTTP/2対応ブラウザ、非対応ブラウザ用に、それぞれPRPLの概念に基づいた非bundle版、bundle版のjsが生成されます（こういったところに、PWAppsの概念が適用されています）。ただし、こちらの開発ツールでは、HTTP/2サーバーは提供されておらず、PRPL概念の一部を具体化したものとなっています。その点は、注意してください。</p>

<h2>PRPLは即座に利用可能か？</h2>

<p>さて、今回のGoogle I/Oで発表・提案された新たな開発・提供手法のPRPL。最新のWeb技術を活用することで、従来のWebアプリが内包する課題を解決し、モバイル環境での最高のユーザー体験提供を目指したものです。ただ、ここで気になるのが、以下の2点です。</p>

<ul>
<li>「PRPLは今すぐ、production環境に適用できるものなのか？」</li>
<li>「本当にこれまでの開発プラクティスよりも優れているのか？」</li>
</ul>

<p>この点について、（あくまで）個人的な見解を述べ、本稿を締めたいと思います。</p>

<p>まず結論から言うと、「<em>Productionでの利用は、まだ早い</em>」 というのが僕の率直な感想です。</p>

<p>その理由として、以下の点があげられます。</p>

<h4>まだHTTP/2の環境が整備されていない</h4>

<p>HTTP/2は、最近標準化が完了したばかり、実装はまだ完全には追いついていません。実際、apahceやnginxではHTTP/2の基本機能は搭載されているものの、Server pushまだ未サポートです。</p>

<p>また、これらの実装が完了したからといって、それがすぐ Productionに適用できるというものではありませんし、AmazonのELBやHerokuなどIaaS/PaaS事業者側のサポートも必要となるでしょう。WebSocketがそうであったように、サーバーサイドのエコシステムが整備されるのにはしばらく時間が必要です。</p>

<h4>まだ開発者フレンドリーではない</h4>

<p>開発ツールPolymer App Toolboxを見てみてもわかりますが、PRPLの概念はnpm + webpackのような開発者フレンドリーな開発手法とは相性が悪いです（実際、bowerが用いられています）。</p>

<p>Webアプリのコンポーネント開発において、Javascript部分が占める割合は非常に大きく、これをbowerベースで行い、いちいちHTML Importsで記述することは大変なストレスとなります。やはり、npm + webpackでストレスレスにコーディングしたい…、というのがJSエンジニアの率直な意見でしょう。</p>

<h4>cacheとの相性が悪い</h4>

<p>PRPLで用いられているHTTP/2 Server pushですが、Webのキャシュと非常に相性が悪いことが知られています。基本的に、ブラウザの状態と無関係にリソースをPushする仕組みのため、ブラウザにキャッシュがあろうがなかろうが、リソースをPushしてしまいます。</p>

<p>したがって、「初回の起動である」、「常にダイナミックに変動するリソースである」の場合を除いてHTTP/2 Server pushの効果は限定的ですし、逆に負の効果をもたらします(キャッシュがあるのであれば、リソースをPushする必要はない)。バンドルのサイズ肥大化の問題も、persistant cache制御さえちゃんとしてやれば、初回起動時およびバンドル変更時の問題だけになります。</p>

<h2>最後に</h2>

<p>最後にネガティブな意見を述べましたが、僕はPRPLの考えには基本的に賛同しています。Googleは常にWebをより良いものにするため、努力を続けている企業。その姿勢の表れであると感じています。</p>

<p>本稿で述べたPRPLの限界点は、現状のツール環境に依存するところが大きく、新たなツールが登場することでこの状況は一変することでしょう（本来、ツールは概念の一部を具現化するものであって、それをもって概念全体を評価されるべきものではありません）。</p>

<p>さまざまな概念やツールが融合し、開発者がフィードバックしていくことで、よりよい形が作り上げられていく。これまでのWeb開発の進化がそうであったように、そのような文脈の中でPRPLや、それのベースとなっているPWAppsが進化していくことでしょう。</p>
]]></content:encoded>
			</item>
		<item>
		<title>ティムのクロージングトークが素晴らしい！「W3C20 ANNIVERSARY SYMPOSIUM」ライブレポート(2/2)</title>
		<link>/komasshu/11258/</link>
		<pubDate>Thu, 30 Oct 2014 02:10:09 +0000</pubDate>
		<dc:creator><![CDATA[小松 健作]]></dc:creator>
				<category><![CDATA[最新動向]]></category>

		<guid isPermaLink="false">/?p=11258</guid>
		<description><![CDATA[連載： イベントレポート (27)10月29日、米シリコンバレーのサンタクララマリオットホテルで開催された「W3C20 Anniversary Symposium」より、 ティム・バーナーズ=リー氏の講演を現地レポートし...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/eventarchives/" class="series-159" title="イベントレポート" data-wpel-link="internal">イベントレポート</a> (27)</div><p>10月29日、米シリコンバレーのサンタクララマリオットホテルで開催された「<a href="http://www.w3.org/20/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">W3C20 Anniversary Symposium</a>」より、
ティム・バーナーズ=リー氏の講演を現地レポートします。</p>

<p>
<i>
※このレポートは、<a href="https://html5experts.jp/komasshu/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">小松 健作</a>, <a href="https://html5experts.jp/alan-iida/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">飯田 アレン真人, <a href="https://html5experts.jp/sakkuru/">本間 咲来</a>の3名で共同作成しました。
</i>
</p>

<h2>Closing Talk</h2>

<h3>Tim Berners-Lee, Web Inventor and W3C Director</h3>

<p>
今日、講演者からWebの未来や課題点について、貴重な意見・ディスカッションをいただけたことを嬉しく思っています。<br>
25年前、この技術を考案し、私は一緒に働く人を探さなければなりませんでした。その後起きたことは、全てランダムで。しかし、全てが重要なことでした。<br>
<br>
<img src="https://lh3.googleusercontent.com/-t3BLIz2M9kc/VFGKDzSuV2I/AAAAAAAAECM/HpX8xsvVjtE/w506-h750/0A571CCC-7DB3-4D49-A14A-3DF12A5FC2BF.JPG"><br><span style="font-size: 80%">▲ティム・バーナーズ=リー氏</span>
<br><br>

最もアメージングだったことは、Webに集った人たちの情熱で。元々のHTMLのタグはたったの6個でしたが、すぐに人々は新しいタグを追加し、コラボレーションの必要性が生まれました。<br>
みんなは、全ての仕様が、私のコンピュータに格納されていることを心配し、コンソーシアムを作ることにしました。そして、多数の会社の協力を得ることができるようになりました。<br>
多数の企業の協力に感謝します。そのオープン性にも。そして、CERNにはロイヤリティを変更しなかったことを感謝します。<br>
今、我々は、仕様を規定するフレームワークを持ち、企業がロイヤリティフリーに協力してくれる環境を得ました。<br>
W3Cに協力してくれる全ての方、W3Cの全てのスタッフにとても感謝します。<br>
メンバーには2種類がいます。一つは招待された人たち。WG会合中で、「あの人は凄い」と言われた人たちです。仕様を作るのには本当にたくさんの苦労が必要です。W3Cの仕様化に協力いただいた、この部屋にいない人たちも含め感謝します。<br>
<br>
次に、レイヤーについて話します。<br>
低レイヤーのケーブルは、全てをつなぎ、ハイレイヤーは、今何をしたいかを表現します。ただ、コードを書けばいい。下位のことは気にしなくていい。Webプラットフォームは公平でbumpはありません。何の制限もありません。最初は10bpsでしたが、今は10Gbps。電車は最初は10マイル/秒でしたが、今も10Gマイル/秒にはいたっていません。<br>
<br>
インターネット技術の進化と供給は、それがなぜ成功したのかとは、完全に独立に実行されています。<br>
Webが作り上げたものは、健康にクリティカルで、民主的で。<br>
まれに、我々はlayerを破ります。誰がtrustか、何が悪いのか、オープンなマインドを保つために<br>
我々は、全ての時間をWebに費やすことはできません。もし、そうするなら、それを防ぐ必要があります。<br>
我々は、あなたのISPがどんなことを考えているかに関係なく、その防御を保ち続ける必要があります。<br>
ラグジャリーな時間の中で、考えなおすことが必要でしょう。それはなぜ必要なのか？世界にとって本当に必要なことは何なのか？<br>
<br>
不公平性は問題です。我々は、がんを治したい。<br>
我々は、人類に多数のチャレンジすべきことを有している。でも、それを成し遂げるには社会構造を変革しなければいけない。<br>
Twitterは、それを増幅してくれるシステム。我々は、それが必要なのか？<br>
それを反対にしてくれるシステムをつくり上げることはできるだろうか？意見をモデレートする。<br>
Facebookはどうだろう、友達間のみにターゲットを置く。あなたは、新しいアイディアや意見を得ることはできない。<br>
<br>
違う興味、違う信念、違うパーティ。我々は、これをWebの上で解決する方法を見出さなければならない。<br>

<br>

<h4>関連レポート</h4>

* <a href="https://html5experts.jp/komasshu/11213/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Webのメモリアルイヤー！W3C20 ANNIVERSARY SYMPOSIUM ライブレポート(1/2)</a>
</p>
]]></content:encoded>
		
		<series:name><![CDATA[イベントレポート]]></series:name>
	</item>
		<item>
		<title>Webのメモリアルイヤー！W3C20 ANNIVERSARY SYMPOSIUM ライブレポート(1/2)</title>
		<link>/komasshu/11213/</link>
		<pubDate>Wed, 29 Oct 2014 21:41:46 +0000</pubDate>
		<dc:creator><![CDATA[小松 健作]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">/?p=11213</guid>
		<description><![CDATA[連載： イベントレポート (26) 今年は、Webのメモリアルイヤー。Web生誕25周年、W3C設立20周年、そして昨日アナウンスされたようにHTML5の勧告化が完了した年です。このようなメモリアルイヤーを記念し、本日（...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/eventarchives/" class="series-159" title="イベントレポート" data-wpel-link="internal">イベントレポート</a> (26)</div><p>
今年は、Webのメモリアルイヤー。Web生誕25周年、W3C設立20周年、そして昨日<a href="https://html5experts.jp//www.w3.org/2014/10/html5-rec.html.ja" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">アナウンスされたように</a>HTML5の勧告化が完了した年です。このようなメモリアルイヤーを記念し、本日（10/29）PM3時～6時（現地時間）、シリコンバレーのサンタクララマリオットホテルにて<a href="https://html5experts.jp//www.w3.org/20/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">W3C20 Anniversary Symposium</a>が開催されます。本稿では、その模様を現地よりライブレポーティングします。<br>

<img src="https://lh3.googleusercontent.com/-8ed9fAldjLk/VFFTtYpQGaI/AAAAAAAAD1c/hTgMWZm7IIo/w506-h750/5F6A3815-97B1-4CAB-A90F-FDF5D4469770.JPG" alt="w3c20logo">
</p>

<p>
<i>
※このレポートは、<a href="https://html5experts.jp/komasshu/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">小松 健作</a>, <a href="https://html5experts.jp/alan-iida/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">飯田 アレン真人, <a href="https://html5experts.jp/sakkuru/">本間 咲来</a>の3名で共同作成しました。
</i>
</p>

<h2>Welcome and Introductions</h2>

<h3>Jeff Jaffe, W3C CEO</h3>

<p>
イベント開始は、W3CのCEOを務める Jeff氏よりウェルカムトーク。<br>
W3Cの役割は、webのポテンシャルを広げること。webの素晴らしさ、広がりは今さら言うまでもない。Webはデバイスまで広がり、そのポテンシャルは広がる一方であることを述べました。<br>
<img src="//lh6.googleusercontent.com/-TRXlF0UIgCg/VFFkTATw0rI/AAAAAAAAD2c/ui1MwLEjYZs/w506-h750/0E25F251-7808-428D-A83C-FE56B8C7176D.JPG”"><br>

</p>

<h2>招待講演</h2>

<h3>Vint Cerf &#8211; A Long Term View of the World Wide Web</h3>

<p>
最初の招待講演は、TCP/IPの発明者 Vint Cert氏。WWWへの長期的な観点について述べられました。<br>
Internetの最初のドキュメントが公開されたのは40年前。それから現在にいたるまで多くのことが変わりました。そして、我々のコミュニケーション手段のほとんどは、インターネットで行われるようになりました。<br>
様々なメディアが現れ、消滅していきました。floppy disk, CDメディア。いずれなくなるでしょう。長きに続くメディアが必要です。優れた設計が施されたソフトウェア。更なるプライバシーの保護も重要でしょう。<br>
<img src="//lh5.googleusercontent.com/-1BoGeg4cGX8/VFFlJXZ6HvI/AAAAAAAAD2w/SlqKCgwzY9Y/w506-h750/94046B4A-D3B2-4AF6-92AA-1FF7F1A45EA2.JPG”">
</p>

<h3>David-Michel Davies &#8211; Forging the Big and Beautiful Web</h3>

<p>
1990年代のWebサイトは、ほんとにひどいものでしたが、最終的には彼らがWebを前進させてくれました。感謝しなければいけません。<br>
フランスには、ストリートアートを飾るビルディングがありますが、それらが陳腐化するのを防ぐため、WebGLでオンライン公開することにしました。<br>
<img src="https://lh6.googleusercontent.com/-sRzg4gjqo3I/VFFn5DcM6xI/AAAAAAAAD3Y/wQ1GF0yx6-o/w506-h750/DE436EB4-D802-4E7B-91AD-239865C9FFA7.JPG"><br>
優れたインターフェースは、人々が伝えたいことの価値を高めます。ビデオやインタラクティブにより、スクロールするだけでストーリーを語ってくれます。<br>
人々は、様々なルールを壊してきました。大きな会社がルールを壊し始めた時、AdobeはFlashの提供を開始しました。Flashでサイトを作るのはどうかという考えもありますが、FlashはWebを大きく前進させました。ルールを壊すことで、前進が生まれるのです。
</p>

<h3>Anders Wahlquist &#8211; Stories Empower, and We Power Stories</h3>

<p>
<br>
Webの表現力は、格段に上がりました。1999年のWebは制限が強く、クリエイティブなものを提供することはできませんでした。2008年には、Flashでホラーゲームを作れるようになり、iPhoneの登場で、その役割はHTML5へと移されていきました。また現実世界とWebとの繋がりも始まりました。例えばロボットを動かすとか。<br>
ムービーを作るために、参加者がそれを手伝うことができるようになりました。コンテンツをpushするほど、良いストーリーが作られていきます。<br>
10年前にできなかったことが、今ではWebでできるようになりました。クリエイティビティの美しさは、技術の進化と共に変わっていきます。良いストーリー、優れたデザインには常にニーズがあり、テクノロジーはそれを支え続けるのです。<br>
<img src="https://lh4.googleusercontent.com/-Lmc1rJrbAGc/VFFsIfPVkDI/AAAAAAAAD6o/1ll1k6rudW4/w506-h750/57694ACB-ADE1-48CF-B578-F66FC4871058.JPG">
</p>

<h3>Di-Ann Eisnor &#8211; Solving Problems Together: Beyond Crowdsourcing toward Mass Participation</h3>

<p>
クラウドソーシングについて。多くの人が少しのコントリビュートを行うことで大きなことをできるようになりました。Wikipediaやmapなど。<br>
スケールは大きく広がり、2billionのスマートフォンが、様々なデータを収集し、それらをオープンに共有することができるようになりました。<br>
オンラインゲームで10日で得られるデータは、科学者が15年間探し続けてきたもの。50ミリオンのドライバーが地図の作成にコントリビュートし、トップコントリビューターはチームに入ることができます。<br>
ハリケーンサンディの時も、人々の10,000に上るレスポンスから、ガスステーション情報の入手などの問題が解決されました。<br>
各都市の自動車問題も、クラウドソーシングにより解決されていくでしょう。
<img src="https://lh4.googleusercontent.com/-gOAbC-lvHn0/VFFwbnL0zjI/AAAAAAAAD8Q/qD7GbKzIOcA/w506-h750/5DEA85C4-8FB4-4E89-9AD4-30946710215F.JPG">
</p>

<h3>Moh Haghighat &#8211; Bringing the Full Power of Modern Hardware to the Open Web Platform</h3>

<p>
JavaScriptは、本当に高速化されました。ここ数年で数百倍のパフォーマンスを示すようになり、ネイティブアプリとの違いも1.5倍程度の処理時間と、かなり接近してきました。CPUはマルチスレッド化が進んでいます。アプリケーションは並列処理に最適化されるべきです。レンダリングの33%は並列化されるようになりましたが、残りはまだ最適化の余地があります。SIMD &#8211; single instruction, multiple data。Javascriptに組み込むことでより高速化が促進されます。9-18fpsがSIMDを使うことで、30fps以上になるというデータも。Web Workerを使うことで100fps以上も可能です。<br>
3Dカメラを使うことで、遠くのオブジェクトをフィルターし、最適化された映像処理を行うことも可能になります。<br>
コンピュータ演算コストの高い、エッジ抽出を用いたモーション検出も可能に。モーション検出を用いたゲームも楽しむことができるようになりました。<br>
Webは、今もっとも広範なクロスプラットフォームです。さらに、ユビキタスアプリケーションのプラットフォームになっていくことでしょう。
<br>
<img src="https://lh4.googleusercontent.com/-Vn4sYIrjYrE/VFFztDVenZI/AAAAAAAAD9s/I1GH-v9MJTc/w506-h750/FF166571-88E5-4F2C-8A3F-77C095379EAC.JPG">
</p>

<h3>Alex &#8216;Sandy&#8217; Pentland &#8211; Toward A Sustainable Digital Ecology</h3>

<p>
10年前に、最初のスマートフォンを用い地図上で、人々がどこに行くのか、どのレストランに行くのかをビジュアライズしました。データから、どのような生活をしているかがわかります。これは良いことですが、人々に恐れを感じさせました。政府は、それをハッピーと感じ、人々はそれから安心を得て、企業は収益を得る必要があります。<br>
人々は、データをコントロールできなければいけません。削除可能でなくてはなりません。この機能がないと、経済は回りません。<br>
これらのディスカッションを通し、私はp2pを活用した信頼されたネットワークというアイディアを思いつきました。クラッキングされることのない、信頼された。openPDSは認証からパスワードをなくします。&#8221;are you in california?&#8221;といったYes/No質問に答えることで。<br>
データを集中せず、分散させることで、クラッキングの脅威を低減します。<br>
データの分散を制御できるようになることで、子供の社会生活を向上することができます。プライベートデータは匿名化されることで共有可能となります。信頼されたネットワークを使うことで。<br>
<img src="https://lh6.googleusercontent.com/-rdb6O6I3Ruw/VFF3X3Fh8jI/AAAAAAAAEAM/B-a4fyN8ri8/w506-h750/CE0B4793-B446-485F-8605-CFCDB77F1DC6.JPG">
</p>

<h3>Commissioner Jessica Rosenworcel &#8211; Access for All</h3>

<p>
TEDのトークで、ティム・バーナーズ=リーより、Webのためにmagna cartaを作って欲しいと頼まれました。目の不自由な方が参加できるように、壁を壊さなければなりません。数週間前にスティービー・ワンダーが私を訪れました。スティービー・ワンダーは伝説的なミュージシャンというだけではなく、目の不自由な方への伝道師です。ビデオキャプションを作るためのガイドラインに関する法律を策定しました。<br>
最大の問題は、文章を読めないこと。なので、OCRと音声合成機を用いています。彼のオフィスのスキャナーには全てOCR機能が実装されています。<br>
ウェアブル、バーチャル・リアリティ、無人カー。グローバルスケールで、これらの技術がもたらすものについて考えなければいけません。165の国々でシンポジウムを開催しました。これはとても成功し、他国は興味を示しました。こういった活動を続ける必要があります。そして、数年後にはソリューションが得られるはずです。<br>
<img src="https://lh3.googleusercontent.com/-xBqPDbLgXU4/VFF7QQjEXeI/AAAAAAAAEA4/eNF0oHceC4o/w506-h750/C03541CA-7A44-483E-A99A-C62DA8ED4FD2.JPG">
</p>

<h2>Panel and Discussion: “The Future of the Web and How it is Run”</h2>

<ul>
<li>Lee Rainie (Moderator)</li>
<li>Fadi Chehadé</li>
<li>Jun Murai</li>
<li>Darren Walker</li>
</ul>

<p>
<img src="https://lh3.googleusercontent.com/-VXqMAKhhu14/VFF-T_NavxI/AAAAAAAAEBM/GV1S6nwrTOk/w506-h750/EB53620C-C140-46B5-A32C-87117624DD3B.JPG">
</p>

<dl>
<p>
&#8212;
</p>
<p>
<dt>Lee</dt>

<dd>
アメリカで、「Webは何を成し遂げたか？」というアンケートを取りました。生活の向上が 90%, 社会性の向上が 75%でした。<br>
発展途上国へのインターネット普及は、更なる社会性をもたらしました。このようなチャレンジと変革のタイミングにおいて、どのようにそれを政治的に行っていくべきでしょうか？
</dd>
<img src="https://lh6.googleusercontent.com/-BlLjVl3SHAg/VFGBGIIcojI/AAAAAAAAEB8/HlqccV6asWU/w506-h750/EE964904-91C6-4637-9B9A-58B2E08E157C.JPG"><br>
<b>Lee Rainie (Moderator)</b><br>
</p>

<p>
<dt>Fadi</dt>
<dd>
21世紀の政治システムは Web により様々なチャレンジが行われています。Web はパワフルで、我々はそれをコントロールしようとしています。もし我々が人々のパワーとWebによる拡散性を政府に認識させることを怠ったら、様々な問題が起こるでしょう。<br>
もし、我々が価値を保ちつつそこに参加していく方法を見つけることができれば、素晴らしいWebを実現できることでしょう。<br>
来年の<a href="http://en.wikipedia.org/wiki/United_Nations_General_Assembly" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">The General Asssembly of UN</a>では、コミュニケーションにフォーカスを置きます。<br>
Webは人々の団結にとって最も重要な情報源として作用しています。我々は、挑戦を続けています。政府の役割を見つけるために。<br>
さもないと、彼らは彼らの方針と司法権を行使してくるでしょう、万人共通となったときに。
</dd>
<img src="https://lh4.googleusercontent.com/-FDKeM-bI44I/VFF-mvl4WSI/AAAAAAAAEBU/7GB-Wtm_HeQ/w506-h750/E8E684F4-59C9-4471-9393-D4B5D6A00F6F.JPG"><br><b>Fadi Chehadé</b><br>
</p>

<p>
<dt>Murai</dt>
<dd>
この部屋の殆どの人はアメリカや日本などからインターネットがすでに普及している国々から来ていますが、グローバルスペース（発展途上国）へのインターネット普及を助ける責任をもっています。<br>
グローバルスペースと、インターナショナルスペースの違いはなんでしょう？インターネットは最初にグローバルスペースを作った技術です。インターナショナルスペースで無く。
</dd>
<img src="https://lh4.googleusercontent.com/-8Ngksw0k1hU/VFF_iCZKmvI/AAAAAAAAEBg/ftquveqbX4w/w506-h750/ED0D0A66-3DB9-4D12-9DA1-EAF6D81F143C.JPG"><br><b>Jun Murai</b><br>
</p>

<p>
<dt>Darren
<dd>
私は理想郷と暗黒卿の間で、このような会話を見つけました。私からのクエスチョンは、民主化への人々の動員です。来年のUNで、我々は人々の動員についてのディスカッションを行うために何を考えなければいけないでしょうか？<br>
市民権と人権をケアする人々はどこにいるのか？
</dd>
<img src="https://lh4.googleusercontent.com/-n-DQXpigSkA/VFGAdyZP4hI/AAAAAAAAEBs/oPH8_QGPP-g/w506-h750/B9BAA716-7A4E-46DB-B93B-004429717243.JPG"><br><b>Darren Walker</b><br>
</p>

<p>&#8212;</p>

<p>
<dt>Lee</dt>
<dd>
我々は、30ヶ国でインターネットの検閲について尋ねてきました。パキスタンだけが 100% のオープンインターネットを望みました。ほとんどの南アメリカの国々は 75% 程度でした。<br>
インターネットの脅威と、コミュニティはいかにそれを解決しうるかをお話しいただけますでしょうか？
</dd>
</p>

<p>
<dt>Fadi</dt>
<dd>
インターネットのフラグメンテーション。現在部分的なフラグメンテーションは増加傾向にあり、人々の考えが伝えられていく流れを止めてしまいます。インターネット上での摩擦が多い国々はGDPが減少しており、人々の団結と経済に影響を与えています。<br>
摩擦はISPによって起こります。かれらはコンスタントに攻撃を受け、会社は彼らの壁に囲まれたインターネットを作りたがります。我々は、法的に技術的に摩擦を削減する努力を行う必要があります。どこに摩擦が生じ、誰が責任者かを見つけ、それらと戦う必要が有ります。
</dd>
</p>

<p>
<dt>Murai</dt>
<dd>
フラグメンテーションは、最大の脅威です。別の脅威は透明性が無くなること。何度も人々は「インターネットは危険だ」と言い、切断すべきと言ってきました。
</dd>
</p>

<p>
<dt>Darren</dt>
<dd>
ポリシーと政治。我々は、最終的に人々に影響をおよぼす、これらの問題を解決する可能性を持つ構造を保有していません。科学者は課題と認識していますが、人々は、どこでこの議論をしているのか
</dd>
</p>

<p>&#8212;</p>

<p>
<dt>
Lee
</dt>
<dd>
人々はテクノロジーに精通していません。教育が語れることで、何が最も欠けているでしょう？
</dd>
</p>

<p>
<dt>
Murai
</dt>
<dd>
データを欲している人が誰なのかに関する誤解です。それは誰のデータなのか？所有しているのは、個人、建物、会社どれなのか。個々の産業は現在インターネットの上に存在しています。
</dd>
</p>

<p>&#8212;</p>

<p>
<dt>
Lee
</dt>
<dd>
人々からの期待に対し、何が最もフラストレーションを覚えますか？また、ICANで行いたい役割は何ですか？
</dd>
</p>

<p>
<dt>
Fadi
</dt>
<dd>
最も大きなフラストレーションは、ICANNがインターネットを運営していると人々が考えていることです。ICANNはとても目立つ存在です。故に、注目をあげ、収入を得ています。しかし、役割は制限されています。
</dd>
<dd>
他のフラストレーションは、インターネットを管轄するには、トップダウンモデルを取るしか無いと、人々が考えていることです。それは、インターネットが動いている仕組みに反抗します。<br>
我々は、ガバナンスの他心性の上で仕事を進めています。たとえ、フランス政府がトップダウンレベルが必要であると考えたとしても。
</dd>
</p>

<p>&#8212;</p>

<p>
<dt>
Lee
</dt>
<dd>
人々が抱えている問題を気づかせるために、どのようにしたら良いと考えていますか？
</dd>
</p>

<p>
<dt>
Darren
</dt>
<dd>
指導は年間10億ドルの価値を、政策と戦い、民主化を推し進めることに与えられるでしょう。しかし、彼らは数十年に渡り、古い方法論を用いています。なぜなら、テクノロジーは彼らにとって脅威だからです。草の根運動の巨大なパワーは存在しますが、まだ未開発です。
</dd>
</p>

<p>&#8212;</p>

<p>
<dt>会場より質問</dt>
<dd>
マグナ・カルタなどは数百年以前のものですが、再度考慮する必要が有ります。インターネットは、境界で分割されていない共有の空間を作り上げました。
<dd>
</p>
<p>
<dt>
回答
</dt>
<dd>
2つのスタンスがあります：「政策立案者と協調的な関係を結ぶこと」と「政府が、保守的な体制をとること」です。テクノロジーによって、我々は政府を助ける必要があります。政府は敵ではありません。
</dd>
</p>

<p>&#8212;</p>

<p>
<dt>会場より質問</dt>
<dd>
我々は、インターネットを結合させるためにDNSに依存しています。しかし、それは毎年満了します。単一障害点となるのを防ぐために、より強化する必要があるのではないでしょうか？毎年お金を払うべきではないと考えます。
</dd>
</p>
<p>
<dt>回答(Lee)</dt>
<dd>
我々は、それの周辺で動いている金銭額がいくらになるのかを心配しています。最近のトップレベルドメインのオークションでは30ミリオンダラーを超えました。
</dd>
</p>

<p>&#8212;</p>

<p>
<dt>会場より質問</dt>
<dd>
トップレベルドメインの新しいコミュニティにより何がもたらされるとお考えですか？
</dd>
</p>
<p>
<dt>回答（Fadi）</dt>
<dd>
新しいトップレベルドメインには価値が芽生えるでしょう。ガバナンスへの影響として。アマゾンは、.amazon ドメインを買おうとしましたが、アマゾンの人々から嫌われました。.gay ドメインを欲する人は、全てのコミュニティにそれをさらけ出すことになります。
</dd>
</p>

<p>&#8212;</p>

<p>
<dt>会場より質問</dt>
<dd>
政府は、国家的な力を欲し、通常はそれはOKです。私は、データを何に使うかに関するコミュニティにいます。UNに行く前の文書では、それは公共のものであるべきと述べています。おそらく、我々はそれを基に進めていきます。
</dd>
</p>
<p>
<dt>回答（Murai）</dt>
<dd>
世界経済を考えた時、それはグローバルの課題です。インターネット上の個人を考えた時、既にグローバルです。ほとんどの国々は、世界中にマーケットを広げることで彼らの経済をのばそうとします。
</dd>
</p>

<p>
<dt>回答(Fadi)</dt>
<dd>
革命は、課題を帰着点で解決するためのプロセスです。これを進める際、2つの先導者がいます。一つは、世界のトッププレイヤーたち。彼らは通常、意思決定者としては参加しないことが重要です。これは良いことです。なぜなら、我々は彼らに従事することを望み、彼らは我々が Web に何を望んでいるかを聴くことができます。それ以外のサークルからは聴くことができない。もう一つの先導者は、物事をどう進めるかを決める人たち。技術面からではなく、政治家や法律家の視点より。現在我々は、これまでには見られなかったことですが、革命をボトムアップですすめている。
</dd>
</p>
</dl>

<p><br></p>

<h4>関連レポート</h4>

<ul>
<li><a href="https://html5experts.jp/komasshu/11258/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ティムのクロージングトークが素晴らしい！「W3C20 ANNIVERSARY SYMPOSIUM」ライブレポート(2/2)</a>
</p></li>
</ul>
]]></content:encoded>
		
		<series:name><![CDATA[イベントレポート]]></series:name>
	</item>
		<item>
		<title>Tech Crunch DISRUPT SF HACKATHON 2013 ライブレポート！！</title>
		<link>/komasshu/2272/</link>
		<pubDate>Sat, 07 Sep 2013 20:35:02 +0000</pubDate>
		<dc:creator><![CDATA[小松 健作]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[イベント]]></category>
		<category><![CDATA[ハッカソン]]></category>
		<category><![CDATA[海外]]></category>

		<guid isPermaLink="false">/?p=2272</guid>
		<description><![CDATA[エキスパートNo.2の小松です。 本日から開催されているTech Crunch DISRUPTに参加するため、サンフランシスコに来ています。 Tech Crunchに先立ち開催されている 「DISRUPT SF HACK...]]></description>
				<content:encoded><![CDATA[<p>エキスパートNo.2の小松です。</p>

<p>本日から開催されているTech Crunch DISRUPTに参加するため、サンフランシスコに来ています。</p>

<p>Tech Crunchに先立ち開催されている <a href="http://techcrunch.com/events/disrupt-sf-hackathon-2013/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">「DISRUPT SF HACKATHON 2013」</a>。ただいま現地時間13時を過ぎたところですが、明日の昼までのオールナイトハッカソンイベントです。小松もあまりに楽しそうなので参加しています。ここでは、その模様をライブレポートしていきます。だいたい、2時間おきぐらいには更新していきたいと思っていますので（寝ちゃったらごめんなさい）、お楽しみに！！</p>

<h2>開始前（13時ぐらい）</h2>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_123120.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_123120-300x225.jpg" alt="IMG_20130907_123120" width="300" height="225" class="alignnone size-medium wp-image-2273" srcset="/wp-content/uploads/2013/09/IMG_20130907_123120-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_123120-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_123120-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_123120.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>会場外で、registrationを待つ面々</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_124216.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_124216-300x225.jpg" alt="IMG_20130907_124216" width="300" height="225" class="alignnone size-medium wp-image-2280" srcset="/wp-content/uploads/2013/09/IMG_20130907_124216-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_124216-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_124216-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_124216.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>会場内は多くのテーブル。まだ、開始前ですが熱気ムンムンです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_124207.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_124207-300x225.jpg" alt="IMG_20130907_124207" width="300" height="225" class="alignnone size-medium wp-image-2275" srcset="/wp-content/uploads/2013/09/IMG_20130907_124207-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_124207-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_124207-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_124207.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>会場奥には「DISRUPT」！！</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_124254.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_124254-300x225.jpg" alt="IMG_20130907_124254" width="300" height="225" class="alignnone size-medium wp-image-2276" srcset="/wp-content/uploads/2013/09/IMG_20130907_124254-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_124254-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_124254-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_124254.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>なぜか、シボレーが会場内に展示されています。。。。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_124315.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_124315-225x300.jpg" alt="IMG_20130907_124315" width="225" height="300" class="alignnone size-medium wp-image-2277" srcset="/wp-content/uploads/2013/09/IMG_20130907_124315-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130907_124315-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130907_124315-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130907_124315.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>ハッカソンでは、各社(Dropboxとか)のAPIを使うのが推奨ですが、シボレーが車にアクセスするAPIを提供するようです。ってことで、展示されてるんですね。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_130041.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_130041-300x225.jpg" alt="IMG_20130907_130041" width="300" height="225" class="alignnone size-medium wp-image-2279" srcset="/wp-content/uploads/2013/09/IMG_20130907_130041-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_130041-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_130041-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_130041.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>今回一緒にチームを組むYukioさんとKazuさん。といっても、3人ともそれぞれ違うアプリを作る予定ｗ。まぁ、話し相手って感じですね。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_125807.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_125807-225x300.jpg" alt="IMG_20130907_125807" width="225" height="300" class="alignnone size-medium wp-image-2278" srcset="/wp-content/uploads/2013/09/IMG_20130907_125807-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130907_125807-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130907_125807-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130907_125807.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>何はともあれ記念写真。しっかり、日本で6/8に開催したイベント<a href="http://www.htmlday.jp/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">htmlday</a>をアピールしてます。これから24時間頑張りまーす！！</p>

<h2>開始2時間半後（16時ぐらい）</h2>

<p>ハッカソン開始後、2時間半が経過しました。テーブル囲んだり、地べたに座ったり、作るサービスのアイディアソンしているチームもいれば、黙々とコーディングしている人もいたりとさまざまです。全体的には、アイディアソンしている人より、最初からコーディングしている人が大多数という印象です。（僕は、30分ほど寝落ちしてしまいましたが……時差ボケとの戦い！！）</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_152142.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_152142-300x225.jpg" alt="IMG_20130907_152142" width="300" height="225" class="alignnone size-medium wp-image-2286" srcset="/wp-content/uploads/2013/09/IMG_20130907_152142-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_152142-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_152142-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_152142.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>最初の頃はオネェさんが回ってきて、空き缶とか持っていってくれたのですが、それもどこへやら段々とテーブルもいい感じに荒れてきました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_151102.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_151102-300x225.jpg" alt="IMG_20130907_151102" width="300" height="225" class="alignnone size-medium wp-image-2287" srcset="/wp-content/uploads/2013/09/IMG_20130907_151102-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_151102-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_151102-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_151102.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>API出展企業が会場両脇にブースを出したりしています。質問とかにも答えてくれたり。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_155656.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_155656-300x225.jpg" alt="IMG_20130907_155656" width="300" height="225" class="alignnone size-medium wp-image-2289" srcset="/wp-content/uploads/2013/09/IMG_20130907_155656-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_155656-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_155656-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_155656.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>パイオニアさんが <a href="http://www.itmedia.co.jp/news/articles/1111/08/news026.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Zypr</a>のブースを構えていました。スマートフォンで音声認識アプリを作るSDKを提供しており、これを使うと<a href="http://www.appradioknows.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">カーナビ（AppRadio3)</a>と連携動作するアプリが作れます（審査を通る必要あり）。このSDKを使ったアプリ部門で一位を取ると「2,000ドル + AppRadio3」がもらえるとのことで、「ぜひ何かトライしてみてよ！！」とのことでした。小松は作るものを決めているので、今回はパスですが……。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_154946.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_154946-225x300.jpg" alt="IMG_20130907_154946" width="225" height="300" class="alignnone size-medium wp-image-2288" srcset="/wp-content/uploads/2013/09/IMG_20130907_154946-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130907_154946-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130907_154946-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130907_154946.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>ちなみに、AppRadio3も展示されており、カーナビとスマフォを連動したサービスデモを見せてもらったりしました（スマフォの音楽をbluetoothで飛ばしてカーナビで流したりとか）。最近ChromeCastが出たりと、セカンドスクリーンサービスが脚光を集めていますが、カーナビとスマートフォンのセカンドスクリーンサービスも面白そうです。</p>

<h2>開始後6時間ぐらい（19:30）</h2>

<p>久しぶりにbootstrap使ったので「あれ、どう使うんだっけ？」とかひーこらしてたら、あっという間に6時間経過してしまいました。ここまででやったことは、ワイヤーをhtmlにしてbootstrapあてて……ぐらい、さてとここから頑張らないと。</p>

<p>チームメンバーのyukioさんも「やっとサーベイが終わったー。光が見えたー」とのたもうていらっしゃいます。ここから、いよいよ本格化。サンフランシスコはだんだん寒くなってきました（＞＜）</p>

<p>さて、このタイミングでお楽しみの夕飯タイム。まだ、夕飯を食べる体力は残っています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_190408.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_190408-300x225.jpg" alt="IMG_20130907_190408" width="300" height="225" class="alignnone size-medium wp-image-2291" srcset="/wp-content/uploads/2013/09/IMG_20130907_190408-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_190408-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_190408-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_190408.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>さて、食事を取りにいこうとするとすごい列！！Webサイトによると「800人のハッカーが一同に……」とのこと。</p>

<p>「いやー、これは食事にありつけるのは相当かかるなー」と待っていたら、親切な海外の方が「並んでるのこの列だけで、前行けばすぐに取れるよ」と教えてくれました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_190549.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_190549-300x225.jpg" alt="IMG_20130907_190549" width="300" height="225" class="alignnone size-medium wp-image-2292" srcset="/wp-content/uploads/2013/09/IMG_20130907_190549-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_190549-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_190549-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_190549.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>食事を取る場はこんなかんじ。夕食はメキシカンでした。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_191911.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_191911-225x300.jpg" alt="IMG_20130907_191911" width="225" height="300" class="alignnone size-medium wp-image-2293" srcset="/wp-content/uploads/2013/09/IMG_20130907_191911-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130907_191911-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130907_191911-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130907_191911.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>僕が、盛りつけたお皿。盛りつけ方にセンスがないのはお許しを。結構美味しかったですよ。（デザートは、アメリカ仕様で無茶甘かったス）</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_192903.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_192903-300x225.jpg" alt="IMG_20130907_192903" width="300" height="225" class="alignnone size-medium wp-image-2294" srcset="/wp-content/uploads/2013/09/IMG_20130907_192903-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130907_192903-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130907_192903-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130907_192903.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>食べ終わった後、皿を捨てに行ったら、会場Wifiが無造作に置いてありました。ちなみに、Wifiつながりづらいです。あしからず！</p>

<h2>開始後11時間（だいたい0:30）</h2>

<p>予定では現地時間23:00ぐらいに更新しようと思っていたのですが、（自分でも情けないぐらいつまらないところに）ハマってしまい更新が遅れてしまいました。うーーーーー、くやしい orz　そんな中、チームのkazuさんのアプリがあまりにも凄くて・・・惚れ惚れしてしまいました。</p>

<p>夜になり、気温もかなり下がってきました。温度計見るといやになるので見てませんが、セーター着てないとやってられません。真面目に毛布欲しいです。会場のホットドリンク（お湯やらコーヒーやら）も底をついた様子。</p>

<p>でも、半袖でハックしている人がたくさんいる。。。。信じられない。。。気が付いたら人数が気持ちまばらになりました。終電に合わせて（カルトレインのサンフランシスコ駅が比較的近い）帰ったのかも。おかげで、だいぶWifiは快適になりましたｗ</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_212400.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_212400-225x300.jpg" alt="IMG_20130907_212400" width="225" height="300" class="alignnone size-medium wp-image-2303" srcset="/wp-content/uploads/2013/09/IMG_20130907_212400-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130907_212400-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130907_212400-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130907_212400.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>隣のチームが、地べたに基板置いて遊んでいるので、思わずパシャリしちゃいました。聞いたら、ラズベリーパイ経由でWebサービスとデバイスを連携させるんだとか。オチも聞いたのですが（あまりのくだらなさ……いえいえ素晴らしさに笑い転げてしまいました）、LT前なのでここではふせておきます。全く明日昼からのLTが楽しみで仕方ありません。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_222549.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_222549-225x300.jpg" alt="IMG_20130907_222549" width="225" height="300" class="alignnone size-medium wp-image-2300" srcset="/wp-content/uploads/2013/09/IMG_20130907_222549-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130907_222549-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130907_222549-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130907_222549.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>スペシャルフルーツジュースの差し入れ by スポンサーが！！</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_222632.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_222632-225x300.jpg" alt="IMG_20130907_222632" width="225" height="300" class="alignnone size-medium wp-image-2301" srcset="/wp-content/uploads/2013/09/IMG_20130907_222632-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130907_222632-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130907_222632-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130907_222632.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>目にやさしいかな（時差ボケで、ホント目がしょぼしょぼなので）ということで、ブルーベリージュースを選びました。ものすごくドロッとした「濃いーーーー」ジュースです。結構美味しかったし、飲んだら気のせいか調子良くなった気がしました。こーゆー健康的な差し入れ嬉しいですね。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130907_234647.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130907_234647-225x300.jpg" alt="IMG_20130907_234647" width="225" height="300" class="alignnone size-medium wp-image-2302" srcset="/wp-content/uploads/2013/09/IMG_20130907_234647-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130907_234647-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130907_234647-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130907_234647.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>さらに、アメリカでハックといえばやっぱり「ピザ！！」。小腹が空いたところを、（必要以上に）満たすことができました。ちなみに、ビールもサーブされているのですが、いろんな意味で呑んでる場合じゃないので（呑んだら、ソッコーで寝れる自信あり）、健康的にコーラで美味しくいただきました。</p>

<p>できれば、次に更新するタイミングでは「ひと通りできたーーーー！！あとは、細かいところを調整するだけ ;-)」と言いたいところですが、はてさてどうなることやら。</p>

<h2>14時間経過（AM3時半ぐらい）</h2>

<p>もうしばらくすると午前4時になろうとしています。なんだか、寒いんだかなんだかよく分からなくなってきました。なにはともあれ眠いです。</p>

<p>とりあえず、作ろうとしていたブツはひと通りできたので（やったーーーー）、祝杯しようとビールを取りにいこうとしたら既に片付けられていました……ま、まだ細かい調整とかあるし！！</p>

<p>去年は、これぐらいの時間に「ハーゲンダッツ」が振る舞われる摩訶不思議な自体が起きたらしいのですが、今年は極めて平和です。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_033334.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_033334-300x225.jpg" alt="IMG_20130908_033334" width="300" height="225" class="alignnone size-medium wp-image-2311" srcset="/wp-content/uploads/2013/09/IMG_20130908_033334-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130908_033334-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130908_033334-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130908_033334.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>さしてUpするほどの写真も特にないのですが、全く何もないのも寂しいので、会場の写真。かなり閑散としてきました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_033503.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_033503-300x225.jpg" alt="IMG_20130908_033503" width="300" height="225" class="alignnone size-medium wp-image-2312" srcset="/wp-content/uploads/2013/09/IMG_20130908_033503-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130908_033503-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130908_033503-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130908_033503.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>Microsoftブースにも誰もいません。</p>

<h2>20時間経過（AM9時半）</h2>

<p>前回の更新のあと、、、告白します。2時間ほど寝てしまいました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_070238.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_070238-225x300.jpg" alt="IMG_20130908_070238" width="225" height="300" class="alignnone size-medium wp-image-2317" srcset="/wp-content/uploads/2013/09/IMG_20130908_070238-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130908_070238-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130908_070238-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130908_070238.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>地べたでとどのように眠るハッカー達</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/DSC03155.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/DSC03155-300x199.jpg" alt="SONY DSC" width="300" height="199" class="alignnone size-medium wp-image-2321" srcset="/wp-content/uploads/2013/09/DSC03155-300x199.jpg 300w, /wp-content/uploads/2013/09/DSC03155-1024x680.jpg 1024w, /wp-content/uploads/2013/09/DSC03155-207x137.jpg 207w, /wp-content/uploads/2013/09/DSC03155.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>小松は、こんな感じでお行儀よく寝てたようです。（撮影はyukioさん）</p>

<p>完全に地べたに雑魚寝。寒かった。。。。。あーーー、ベッドで寝たい。ちなみに、チームメイトのyukioさんとkazuさんは完徹 ( ｰ`дｰ´)ｷﾘｯ</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_070336.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_070336-300x225.jpg" alt="IMG_20130908_070336" width="300" height="225" class="alignnone size-medium wp-image-2318" srcset="/wp-content/uploads/2013/09/IMG_20130908_070336-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130908_070336-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130908_070336-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130908_070336.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>起きてしばらくすると、朝ごはんがサーブされました。ベーグルがいっぱい！！</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_070902.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_070902-225x300.jpg" alt="IMG_20130908_070902" width="225" height="300" class="alignnone size-medium wp-image-2319" srcset="/wp-content/uploads/2013/09/IMG_20130908_070902-225x300.jpg 225w, /wp-content/uploads/2013/09/IMG_20130908_070902-768x1024.jpg 768w, /wp-content/uploads/2013/09/IMG_20130908_070902-155x207.jpg 155w, /wp-content/uploads/2013/09/IMG_20130908_070902.jpg 480w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>

<p>ホットドリンク（コーヒーなど）も準備され、冷えきった寝不足の体をいやしてくれました。やっぱ、朝はコーヒー！！</p>

<p>さて、ハッカソンタイムは9:30で終了。とりあえず、コーディングは完了。午後のLTに臨むのみです。</p>

<p>今年のLTの持ち時間は1分間。とにかく、一発芸を狙うしかありません。はたしてウケるかどうか、滑ったらどうしよう……ドキドキです。</p>

<h2>21時間経過（10:30）</h2>

<p>LTの順番が発表されました！！小松のタイトルは&#8221;SMILE NOW&#8221;順番は、、、、、262番!! なんと、最後の発表です！！イエーイ！！やったーーーー！！！・・・・・・・・・ドキドキドキ</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_102230.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_102230-300x225.jpg" alt="IMG_20130908_102230" width="300" height="225" class="alignnone size-medium wp-image-2329" srcset="/wp-content/uploads/2013/09/IMG_20130908_102230-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130908_102230-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130908_102230-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130908_102230.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h2>LT大会!!さて、その時小松は？</h2>

<p>すみません、ライブレポートといいつつ、終わった後ホテル戻ったら倒れるように寝てしまいました。。。ただ今現地時間のAM2:00。時差ボケ中に24時間ハッカソンで、さらに体内時計がおかしくなった模様です。というわけで、遅ればせながらレポートの締めです。</p>

<p>AM11:00からいよいよハッカソンの成果を見せる、大LT大会が始まりました!!総勢265チームが一チーム1分間の持ち時間で入れ替わり立ち替わり。だいたい17時に終わったので、途中10分の休憩をはさみつつ6時間の長丁場でした。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_141923.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_141923-300x225.jpg" alt="IMG_20130908_141923" width="300" height="225" class="alignnone size-medium wp-image-2343" srcset="/wp-content/uploads/2013/09/IMG_20130908_141923-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130908_141923-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130908_141923-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130908_141923.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>始まった時がこんな感じ。会場が満席近くまで埋まり、多分1000人弱の観客でもの凄い雰囲気でした。感覚的には去年の倍ぐらいの発表者で、観客の埋まり方も倍ぐらいになっているとチームのyukioさんから教えてもらいました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_142028.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_142028-300x225.jpg" alt="IMG_20130908_142028" width="300" height="225" class="alignnone size-medium wp-image-2344" srcset="/wp-content/uploads/2013/09/IMG_20130908_142028-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130908_142028-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130908_142028-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130908_142028.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>9歳の女の子がプレゼンしたり（多分、一番ウケていた）。</p>

<p>全体的には、大きく二つに分類され、</p>

<ul>
<li>各スタートアップによる自社のサービスを紹介</li>
<li>24時間で頑張って作った</li>
</ul>

<p>に大別され、（作りこみが明らかに違うので）完成度含めくっきり分かれる感じ。</p>

<p>内容としては、技術的に頑張るというより、ビジネスとして使えるサービスを作った人たちがほとんど。まぁ、中には僕みたいなキワモノも含まれつつ……</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_163327.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_163327-300x225.jpg" alt="IMG_20130908_163327" width="300" height="225" class="alignnone size-medium wp-image-2345" srcset="/wp-content/uploads/2013/09/IMG_20130908_163327-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130908_163327-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130908_163327-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130908_163327.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>僕の番は262番。最初順番が紹介された時は最後だったのですが、その後入ってきた人たちがいたようで、最後から4番目。これは、ステージ上からの写真です。
24時間かけて作りこんだものの、本番でまともに動かず……かなり残念な結果でした。くーーーーー</p>

<p><a href="http://on.aol.com/video/smilenow-demo-at-hackathon-sf-2013-517925919?icid=search_results_click" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">講演ビデオはこちら</a>、あっという間に終わってますｗ</p>

<p>プレゼンで失敗したので、代わりにどんなものを作ったか軽く紹介。「気持ちを伝える」チャットです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/generic.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/generic-300x231.png" alt="generic" width="300" height="231" class="alignnone size-medium wp-image-2347" srcset="/wp-content/uploads/2013/09/generic-300x231.png 300w, /wp-content/uploads/2013/09/generic-1024x790.png 1024w, /wp-content/uploads/2013/09/generic-207x159.png 207w, /wp-content/uploads/2013/09/generic.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>ビデオチャットで自分の顔を伝えたくない時にも対応したもの。「SMILEモード」にセットすると、普通の表情の時は、相手には普通の表情のニコちゃんが表示されるのですが、、、</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/laugh.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/laugh-300x199.png" alt="laugh" width="300" height="199" class="alignnone size-medium wp-image-2348" srcset="/wp-content/uploads/2013/09/laugh-300x199.png 300w, /wp-content/uploads/2013/09/laugh-1024x681.png 1024w, /wp-content/uploads/2013/09/laugh-207x137.png 207w, /wp-content/uploads/2013/09/laugh.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>笑うと、ニコちゃんも笑う！！</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/yawning.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/yawning-300x198.png" alt="yawning" width="300" height="198" class="alignnone size-medium wp-image-2349" srcset="/wp-content/uploads/2013/09/yawning-300x198.png 300w, /wp-content/uploads/2013/09/yawning-1024x677.png 1024w, /wp-content/uploads/2013/09/yawning-207x136.png 207w, /wp-content/uploads/2013/09/yawning.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>さらに（24時間ハッカソン明けで <img src="https://s.w.org/images/core/emoji/2.2.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ）うっかりあくびをしても大丈夫。この時もニコちゃん笑ってくれます。あくびをしたことがバレません！！</p>

<p>・・・・という一発ネタを狙ったのですが、ど滑りというより本番で上手く動かず、しゅーりょー・・・・・。</p>

<p>笑顔検出をWebでやるという技術的にはかなりとんがったことをしていて、表情検出には<a href="https://github.com/auduno/clmtrackr" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">clmtrackr</a>を、笑顔判定には<a href="https://github.com/karpathy/svmjs" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">svm.js</a>を使い、サポートベクターマシンによる機械学習を用いて、自動判定しました。</p>

<p>Webでこんなキワい事ができるなんて、、、、発表はズタボロでしたが、そのうちどこかで詳しく紹介したいなぁと思っています。</p>

<p>さて、話は戻ってハッカソン。全ての発表が終了すると、API出展企業から各API賞が、さらに全体でのTop3がその場で表彰されました。確か、1位で5千ドル（あれ？5万ドルだったかな？？？）ぐらいの賞金。（ちなみに、発表すると3千ドルのTech Crunch入場が無料になる特典がもらえます。（1チーム2名まで））</p>

<p>この辺りは、今後<a href="http://techcrunch.com/events/disrupt-sf-hackathon-2013/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Webサイト</a>が更新されていくのかな？？？</p>

<p>今回は初参加で、いろんな意味で手探りでしたが、リベンジを兼ねて、来年もぜひ出たいな！！とゆー、とても素敵なイベントでした。なんか、不思議な一体感も生まれましたし、ホント楽しめました。</p>

<p>あと、日本でもこんなイベント開催したいなーーーー終わった後、エキスパートの<a href="https://twitter.com/technohippy/status/376890103479554048" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">あんどうさん、えーじさんとこんなTweet</a>も。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/64db4a558507eed70f08336496d02951.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/64db4a558507eed70f08336496d02951-168x300.png" alt="スクリーンショット 2013-09-09 3.22.07" width="168" height="300" class="alignnone size-medium wp-image-2350" srcset="/wp-content/uploads/2013/09/64db4a558507eed70f08336496d02951-168x300.png 168w, /wp-content/uploads/2013/09/64db4a558507eed70f08336496d02951-576x1024.png 576w, /wp-content/uploads/2013/09/64db4a558507eed70f08336496d02951-116x207.png 116w, /wp-content/uploads/2013/09/64db4a558507eed70f08336496d02951.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a></p>

<p>あっ、HTML5 Experts.jpでやればいいのか！！（と、自分とこのハードルを無茶苦茶あげるプレイ ;-)）</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/09/IMG_20130908_183022.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/IMG_20130908_183022-300x225.jpg" alt="IMG_20130908_183022" width="300" height="225" class="alignnone size-medium wp-image-2346" srcset="/wp-content/uploads/2013/09/IMG_20130908_183022-300x225.jpg 300w, /wp-content/uploads/2013/09/IMG_20130908_183022-1024x768.jpg 1024w, /wp-content/uploads/2013/09/IMG_20130908_183022-207x155.jpg 207w, /wp-content/uploads/2013/09/IMG_20130908_183022.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>何はともあれハッカソンも終わり、軽く打ち上げ。アメリカですし……ということで、リブアイステーキをチームメイトのkazuさんと美味しく頂きました。お腹いっぱい。</p>
]]></content:encoded>
			</item>
		<item>
		<title>リアルタイムにライブ映像をマンガ化「マンガテレビ」アーキテクチャ編</title>
		<link>/komasshu/1649/</link>
		<pubDate>Mon, 26 Aug 2013 04:00:45 +0000</pubDate>
		<dc:creator><![CDATA[小松 健作]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WebRTC]]></category>
		<category><![CDATA[WebSocket]]></category>
		<category><![CDATA[Webアプリ]]></category>

		<guid isPermaLink="false">/?p=1649</guid>
		<description><![CDATA[「漫画家の先生をゲストに迎えた対談イベントで、“マンガ”をフィーチャーしたエンターテインメントを最新のWeb技術で作れないだろうか？」そんな思いから生まれた「マンガテレビ」。映像をリアルタイムで“マンガ化”するだけでなく...]]></description>
				<content:encoded><![CDATA[<p>「漫画家の先生をゲストに迎えた対談イベントで、“マンガ”をフィーチャーしたエンターテインメントを最新のWeb技術で作れないだろうか？」そんな思いから生まれた「マンガテレビ」。映像をリアルタイムで“マンガ化”するだけでなく、イベントをもり上げる各種機能が盛りだくさん。今回は、そのアーキテクチャを紹介します。</p>

<p><span id="more-1649"></span></p>

<h1>マンガテレビの紹介</h1>

<p>「マンガテレビ」は最新のWeb技術をふんだんに活用し、イベント映像を“リアルタイムでマンガ化”するエンターテイメントツール。俗にいう「技術の無駄遣い」Webアプリケーションです。我らが、HTML5 Experts.jpの編集長「白石俊平」氏が開催している<a href="http://www.kakkoii.tv/events/20130726/index.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">「（白石俊平と）カッコいいやつら」</a>のイベント用ツールとして開発しました。</p>

<p>「マンガテレビ」を説明するのに言葉は不要。とにかく、<a href="https://app.html5experts.jp/manga/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">サイトにアクセス</a>してみてください。ただし、Chromeでしか動作しません（後述のWeb Speech API利用のため）ので、その点ご注意ください。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/68fdef15b331b326d339ad36e4fc77c4.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/68fdef15b331b326d339ad36e4fc77c4-300x244.png" alt="スクリーンショット 2013-08-23 1.13.22" width="300" height="244" class="alignnone size-medium wp-image-1663" srcset="/wp-content/uploads/2013/08/68fdef15b331b326d339ad36e4fc77c4-300x244.png 300w, /wp-content/uploads/2013/08/68fdef15b331b326d339ad36e4fc77c4-1024x834.png 1024w, /wp-content/uploads/2013/08/68fdef15b331b326d339ad36e4fc77c4-207x168.png 207w, /wp-content/uploads/2013/08/68fdef15b331b326d339ad36e4fc77c4.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p><i>なお、初回アクセス時は、下図のようにカメラとマイクへのアクセスを確認するダイアログが画面上部に表示されますので、「許可」をクリックしてください。</i></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/360b376de712a69fa57fc0943f063a43.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/360b376de712a69fa57fc0943f063a43-300x18.png" alt="スクリーンショット 2013-08-23 11.26.03" width="300" height="18" class="alignnone size-medium wp-image-1834" srcset="/wp-content/uploads/2013/08/360b376de712a69fa57fc0943f063a43-300x18.png 300w, /wp-content/uploads/2013/08/360b376de712a69fa57fc0943f063a43-1024x62.png 1024w, /wp-content/uploads/2013/08/360b376de712a69fa57fc0943f063a43-207x12.png 207w, /wp-content/uploads/2013/08/360b376de712a69fa57fc0943f063a43.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/79442564a542884b7ec637d465e771b2.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/79442564a542884b7ec637d465e771b2-300x36.png" alt="スクリーンショット 2013-08-23 11.26.21" width="300" height="36" class="alignnone size-medium wp-image-1833" srcset="/wp-content/uploads/2013/08/79442564a542884b7ec637d465e771b2-300x36.png 300w, /wp-content/uploads/2013/08/79442564a542884b7ec637d465e771b2-1024x125.png 1024w, /wp-content/uploads/2013/08/79442564a542884b7ec637d465e771b2-207x25.png 207w, /wp-content/uploads/2013/08/79442564a542884b7ec637d465e771b2.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>かの有名アプリ<a href="http://tokyo.supersoftware.co.jp/mangacamera/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">「漫画カメラ」</a>を最大限に「リスペクト」したことは一目瞭然です。なお、「マンガ化」のアルゴリズムは<a href="http://www.slideshare.net/masayukimaekawa/java-script-14727253" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">こちらのslideshare(スライド9)</a>を参考にさせていただきました。</p>

<p>しかし、そのままリスペクトするだけではなく、Webならではの機能をふんだんに盛り込みました。</p>

<p>盛り込んだ機能は大きく二つ。一つ目は「みんなで『かっこいいね！！』」機能です。これにより視聴者参加型の「マンガテレビ」を実現しました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/6edcbc8f5a028530f0da3a910a11c1b6.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/6edcbc8f5a028530f0da3a910a11c1b6-300x257.png" alt="スクリーンショット 2013-08-23 1.17.29" width="300" height="257" class="alignnone size-medium wp-image-1665" srcset="/wp-content/uploads/2013/08/6edcbc8f5a028530f0da3a910a11c1b6-300x257.png 300w, /wp-content/uploads/2013/08/6edcbc8f5a028530f0da3a910a11c1b6-1024x880.png 1024w, /wp-content/uploads/2013/08/6edcbc8f5a028530f0da3a910a11c1b6-207x177.png 207w, /wp-content/uploads/2013/08/6edcbc8f5a028530f0da3a910a11c1b6.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>Webの特徴は、みんなが簡単に繋がれること。そこで、白石さん謹製の<a href="http://zapper.kakkoii.tv/?eventId=51ecca6063b71c4b39000012" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">「かっこいいねボタン」</a>と連携し、様々なエフェクトがかかるようにしました。「ボタン」を3回連打すると「ざわ・・」、5回連打すると「ゴ・・・」が画面を横切るという仕掛け。イベント参加者が「ちょっと、かっこいいね！」と連打すれば「ざわざわざわ・・」が、「すごい！！かっこいいね！！」と連打すると「ゴゴゴゴゴゴ・・・」と文字が横切っていきます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/bfea3c4a6086dc8d10b68cd13375360a.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/bfea3c4a6086dc8d10b68cd13375360a-202x300.png" alt="スクリーンショット 2013-08-23 1.18.43" width="202" height="300" class="alignnone size-medium wp-image-1666" srcset="/wp-content/uploads/2013/08/bfea3c4a6086dc8d10b68cd13375360a-202x300.png 202w, /wp-content/uploads/2013/08/bfea3c4a6086dc8d10b68cd13375360a-689x1024.png 689w, /wp-content/uploads/2013/08/bfea3c4a6086dc8d10b68cd13375360a-139x207.png 139w, /wp-content/uploads/2013/08/bfea3c4a6086dc8d10b68cd13375360a.png 431w" sizes="(max-width: 202px) 100vw, 202px" /></a></p>

<p>もう一つは、「自動吹き出し機能」。最新Webの目玉機能の一つ &#8220;Web Speech API&#8221; を使い自動認識した音声を、吹き出しとして表示する機能です。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/27f0501bca54ebef6f534cdc9efb4747.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/27f0501bca54ebef6f534cdc9efb4747-300x260.png" alt="スクリーンショット 2013-08-23 1.20.24" width="300" height="260" class="alignnone size-medium wp-image-1667" srcset="/wp-content/uploads/2013/08/27f0501bca54ebef6f534cdc9efb4747-300x260.png 300w, /wp-content/uploads/2013/08/27f0501bca54ebef6f534cdc9efb4747-1024x889.png 1024w, /wp-content/uploads/2013/08/27f0501bca54ebef6f534cdc9efb4747-207x179.png 207w, /wp-content/uploads/2013/08/27f0501bca54ebef6f534cdc9efb4747.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>音声認識には誤認識がお約束ですが、その誤りっぷりが相まって、さらにエンターテイメント性を引き立ててくれています。なお、吹き出しの表示位置を調整するために、顔検出機能を利用しています。技術の無駄遣いっぷりは半端ではありません。</p>

<p><li>なお、自動吹き出し機能を利用する際には、<a href="https://app.html5experts.jp/manga/#face" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">#face</a>をハッシュ指定し、顔検出機能をONにする必要があります。</li></p>

<p>また、&#8221;WebSpeech API&#8221;による音声認識機能を応用し、音声コマンド機能も実装しました。例えば「バーン」と話すと、画面に集中線と「バーン」が表示されます。イベントの盛り上がりに欠かせない機能です。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/a5976323aff9cdc6754bc84635e3d0a8.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/a5976323aff9cdc6754bc84635e3d0a8-300x260.png" alt="スクリーンショット 2013-08-23 1.21.45" width="300" height="260" class="alignnone size-medium wp-image-1668" srcset="/wp-content/uploads/2013/08/a5976323aff9cdc6754bc84635e3d0a8-300x260.png 300w, /wp-content/uploads/2013/08/a5976323aff9cdc6754bc84635e3d0a8-1024x889.png 1024w, /wp-content/uploads/2013/08/a5976323aff9cdc6754bc84635e3d0a8-207x179.png 207w, /wp-content/uploads/2013/08/a5976323aff9cdc6754bc84635e3d0a8.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>なお、開発メンバーは、筆者を含め HTML5Experts.jp 編集部メンバー4名で開発しました。</p>

<h1>マンガテレビ実装のポイント</h1>

<p>この「マンガテレビ」の実装のポイントを紹介します。本稿では、以下の4点について紹介します。</p>

<ul>
<li>WebRTC と HTML5 canvas による映像のリアルタイムマンガ化</li>
<li>WebSpeech API による音声認識</li>
<li>headtrackr.js による顔検出</li>
<li>WebSocket によるインタラクティブ機能</li>
</ul>

<h2>getUserMediaとHTML5 canvasによる映像のリアルタイムマンガ化</h2>

<p>最初に紹介するのは「マンガテレビ」の基本機能。リアルタイムで映像を「マンガ」にする機能の実装方法の紹介です。</p>

<p>ステップは以下のようになります。</p>

<ol>
<li>WebRTC の getUserMedia() により、カメラから映像を取得する。</li>
<li>HTML5 canvasのgetImageData() により、映像から画像データを取り出す。</li>
<li>画像データにフィルター処理を行い、マンガ化する。</li>
<li>requestAnimationFrame() により、画像変換処理を繰り返す。</li>
</ol>

<h3>WebRTC の getUserMedia() により、カメラから映像を取得する。</h3>

<p>まず、カメラから映像を取得します。これを行うためWebRTCのgetUserMedia()を使っています。(前述のとおり、Chromeを前提としているため、接頭辞 <abbr>webkit</abbr> を記述しています）</p>

<p><code lang="javascript">
$v_ = $("video");</p>

<p>// カメラからのストリーム映像を取得し、videoノードのsrc属性にURL指定する
navigator.webkitGetUserMedia({video: true, audio: false}, function(stream){
  var url = window.webkitURL.createObjectURL(stream);
  $v_[0].src = url;
  $v_[0].play();
});
</code></p>

<p>取得するのは映像のみのため、第一引数のaudioプロパティはfalseとしました。第二引数は取得成功時のコールバック関数で、カメラから取得した映像はインスタンスstreamに返されます。ここで、「マンガ化」の変換処理を行うためには、一旦streamをURLに変換し、videoノードにsrc属性として指定する必要があるため、 createObjectURL()を用いています。また、video ノードは、play()をコールしないと映像再生が開始しないため、このタイミングで呼んでいます。</p>

<h3>HTML5 canvasのgetImageData() により、映像から画像データを取り出す。</h3>

<p>マンガ化する画像変換処理を行うためには、映像から画像のピクセルデータを取得しなければなりません。このため一コマづつcanvasに画像として書きだし、getImageData()により、取得します。</p>

<p><code lang="javascript">
var canvas = $("canvas")[0]
  , ctx_ = canvas.getContext('2d');</p>

<p>// 映像の一コマを一旦canvasに画像として書き出す
ctx_.drawImage($("video")[0], 0, 0)</p>

<p>// canvasから画像のピクセルデータを取得する
var imgData = ctx_.getImageData(0, 0, 640, 480)
</code></p>

<h3>画像データにフィルター処理を行い、マンガ化する。</h3>

<p>取得した画像データに対してフィルター処理を行いマンガ化します。アルゴリズムは以下の通りです。</p>

<ol>
<li>画像を黒・スクリーントーン・白の3階調化する。</li>
</ol>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/e80a00d615240a9c282ed400de5dd322.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/e80a00d615240a9c282ed400de5dd322-300x260.png" alt="スクリーンショット 2013-08-23 1.27.21" width="300" height="260" class="alignnone size-medium wp-image-1670" srcset="/wp-content/uploads/2013/08/e80a00d615240a9c282ed400de5dd322-300x260.png 300w, /wp-content/uploads/2013/08/e80a00d615240a9c282ed400de5dd322-1024x889.png 1024w, /wp-content/uploads/2013/08/e80a00d615240a9c282ed400de5dd322-207x179.png 207w, /wp-content/uploads/2013/08/e80a00d615240a9c282ed400de5dd322.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<ol>
<li>エッジ抽出を行い、階調画像に縁取りを行う。</li>
</ol>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/3f19b7ae945f638e8725b9146ce4dc17.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/3f19b7ae945f638e8725b9146ce4dc17-300x260.png" alt="スクリーンショット 2013-08-23 1.26.57" width="300" height="260" class="alignnone size-medium wp-image-1672" srcset="/wp-content/uploads/2013/08/3f19b7ae945f638e8725b9146ce4dc17-300x260.png 300w, /wp-content/uploads/2013/08/3f19b7ae945f638e8725b9146ce4dc17-1024x889.png 1024w, /wp-content/uploads/2013/08/3f19b7ae945f638e8725b9146ce4dc17-207x179.png 207w, /wp-content/uploads/2013/08/3f19b7ae945f638e8725b9146ce4dc17.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p><i>（階調処理やエッジ抽出の具体やコードについては次回の記事で紹介します）</i></p>

<p>上記フィルター処理を行ったデータをcanvasに描画し、「マンガ化」された画像が表示されます。</p>

<p><code lang="javascript">
// 「マンガ化」フィルター処理後のデータを、canvasに書き出す。
ctx_.putImageData(toon, 0, 0)
</code></p>

<h3>requestAnimationFrame() により、画像変換処理を繰り返す。</h3>

<p>上記操作を16msec毎にループ処理することで、60fpsで「マンガ化」された映像が表示されます(パラパラ漫画の要領です)。このような処理を行う際、これまでだと</p>

<p><code lang="javascript">
// doToon()は、映像の一コマを画像変換する関数
setInterval(doToon, 16);
</code></p>

<p>と、setInterval()を用いるのが普通でした。しかしながら、このコードでは、doToon()の処理に16msec以上かかった場合、処理がスタックしていく問題が生じます。ここで、requestAnimationFrame() を用いると、doToon の処理時間に応じ、画像フィルター処理が繰り返し実行され、適切なフレームレートでマンガ化された映像が表示されます。</p>

<p><code lang="javascript">
requestAnimationFrame(doToon)
</code></p>

<h2>WebSpeech API による音声認識</h2>

<p>二番目に紹介するのは、音声認識機能です。認識した音声を吹き出しに自動表示したり、音声コマンドを使ったりするためにこの機能を利用しています。</p>

<p>音声認識を実現するために、Chrome で試験実装されている <a href="https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">WebSpeech API</a> を利用しました。ちなみに、このWebSpeech APIはW3Cで正式なドラフトも出ていない実験的なAPIです。音声認識が簡単にできてしまうなんて、ほんとブラウザの進化は留まるところを知りません。今後、本格的な仕様化や実装が進んでいくことでしょう。楽しみですね。</p>

<p>インスタンス生成後、start()メソッドをコールすると、音声認識が始まります。</p>

<p><code lang="javascript">
var rec = new webkitSpeechRecognition();</p>

<p>rec.continuous = true; // 音声認識を継続する
rec.interimResults = true; // 認識処理中の候補も返す
rec.lang = 'ja-JP'; // 認識モードを日本語にする</p>

<p>rec.start(); // 音声認識を開始
</code></p>

<p>音声が認識されると、&#8217;result&#8217; イベントが発生します。認識結果は、SpeechRecognitionEventオブジェクトとして返されます。</p>

<p><code lang="javascript">
rec.onresult = function(ev) {
  for(var i = ev.resultIndex, l = ev.results.length; i &lt; l; i++) {
    if(ev.results[i].isFinal) {
      // 音声認識が完了した
      var res = ev.results[i][0].transcript; // 音声認識結果
    } else {
      // 音声認識途中
      var res = ev.results[i][0].transcript; // 音声認識中の途中結果
    }
  }
}
</code></p>

<p>「マンガテレビ」では、認識結果の値をチェックし「バーン」や「ドーン」などの場合は、音声コマンドとして認識し、映像エフェクトを実施。それ以外の場合は、吹き出しに表示するといった処理を行っています。</p>

<p>なお、イベント中講演者が話し続けているようなケースだと、ずっと音声認識中となり、認識が完了しないケースが頻繁に発生します。これを避けるため</p>

<p><code lang="javascript">
// 認識結果の文字列長が15文字を超えたら、認識を再起動する。
if(res.length > 15) {
  rec.stop();
  rec.start();
}
</code></p>

<p>のように、認識結果が15文字を超えた時点で音声認識を再起動する処理を入れています。</p>

<p>なお、再起動の際に、サイトのプロトコルスキーマが<strong>httpsでない</strong>場合、毎回音声認識の許可を求めるダイアログが表示されてしまいます。注意してください。</p>

<h2>headtrackr.js による顔検出</h2>

<p>次に紹介するのは、顔検出機能です。音声を表示する吹き出しや、音声コマンドで集中線を出す際の位置を決めるために、この機能を利用しています。</p>

<p>JavaScript で顔検出を行うライブラリーとして <a href="https://github.com/wesbos/HTML5-Face-Detection" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">face.js</a> が有名ですが、検出スピードに難があるため、より高速に動作する <a href="https://github.com/auduno/headtrackr" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">headtrackr.js</a> を用いました。</p>

<p>headtrackr.jsは、最初に顔検出を行うまでは低速ですが、一旦検出が完了すると、それ以降は検出した顔の周辺のみを検出対象とするため、face.jsに比べ格段に高速動作します。もちろんハードウェアに依存しますが、筆者の Mac Book Pro では、概ね30fps(frame per second : 1 秒辺りのフレーム数）が得られました。ただし、検出できる顔は一つのみとなりますので、その点は注意してください。</p>

<p>Tracker オブジェクトのインスタンスを生成した後、検出対象のビデオ要素と、検出処理に用いるcanvas要素を指定し、start()メソッドを呼ぶと顔検出処理が始まります。</p>

<p><code lang="javascript">
var tracker = new headtrackr.Tracker({ui: false}); // uiをfalseにしないと、検出状態を示すテキストが表示される。
tracker.init($("video")[0], $("canvas")[0]); // 対象ビデオ要素と、検出処理用canvas要素を指定する。
tracker.start(); // 顔検出を開始する。
</code></p>

<p>顔が検出されると、&#8217;facetrackingEvent&#8217; イベントが発生します。認識結果は、コールバック関数にfacetrackingEventオブジェクトとして返されます。</p>

<p><code lang="javascript">
document.addEventListener("facetrackingEvent", function(ev){
  // ev.x, ev.y -> 顔の中心座標
  // ev.width, ev.height -> 顔の幅と高さ
}, false);
</code></p>

<p>これら顔の検出位置情報から、吹き出しの表示位置を決めています。</p>

<h2>WebSocket によるインタラクティブ機能</h2>

<p>最後に紹介するのは、インタラクティブ機能です。イベント参加者が「かっこいいねボタン」を連打すると、それがWebSocketで「マンガテレビ」に送られ、連打の数に応じて「ざわ・・」とか「ゴ・・・」などの文字が横断するエフェクトが動きます。参加者も一体になって盛り上がれるインタラクティブ機能です。この連打の数を「マンガテレビ」に送るために、HTML5の双方向通信機能WebSocketを使いました。なお、『マンガテレビ」では、socket.ioを用いているため、WebSocket が利用できない環境では自動的にHTTPポーリングにフォールバックします。</p>

<p>「マンガテレビ」では、socket.ioを更にラップし、メッセージ受信をsubscriberモデルとしたZapper オブジェクト(白石さん謹製)を用いています。</p>

<p>Zapperオブジェクトのインスタンスを生成し、connect()メソッドでサーバーへ接続。その後、&#8217;zap&#8217;メッセージに subscribe()すると、「かっこいいねボタン」の連打データを受信することができるようになります。受信データのcountプロパティに連打回数が入っているため、その値に応じて「ゴ・・・」や「ざわ・・」といったエフェクトをかけています。</p>

<p><code lang="javascript">
// 接続先サーバーを指定してインスタンスを生成
var zapper = new Zapper({
  serverUrl: 'http://somewhere/'
});</p>

<p>zapper.connect(function() {
  var event = zapper.event();</p>

<p>event.subscribe('zap', function(zap){
    // zap.count に連打回数が格納されている
  });
});
</code></p>

<h2>次回はパフォーマンスチューニング</h2>

<p>今回の記事では、筆者らが最新Web技術を駆使してイベント用に開発した「マンガテレビ」について、そのアーキテクチャを紹介しました。HTML5 の進化によりブラウザの世界観がさらに広がっていくことを感じて頂ければ幸いです。</p>

<p>さて、「マンガテレビ」では、本稿で紹介した各種機能以外に、もう一つ大切な点が。それは「高速動作する」ことです。映像のマンガ化処理に時間がかかると、「マンガテレビ」はカクカク動いてしまい、イベントが興冷めしてしまいますからね。次回は、「マンガ化処理」を高速に行うためのパフォーマンスチューニング・ポイントについて紹介します。</p>
]]></content:encoded>
			</item>
		<item>
		<title>WebSocket、WebRTC、ホームネットワーク、W3C標準化etc.通信エンジニアの習性は「何でもつなぐ」── 小松健作さん</title>
		<link>/komasshu/1134/</link>
		<pubDate>Mon, 19 Aug 2013 22:00:38 +0000</pubDate>
		<dc:creator><![CDATA[小松 健作]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[W3C仕様]]></category>
		<category><![CDATA[WebSocket]]></category>
		<category><![CDATA[デバイス]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[プロトコル]]></category>
		<category><![CDATA[ホームネットワーク]]></category>
		<category><![CDATA[標準化]]></category>

		<guid isPermaLink="false">/?p=1134</guid>
		<description><![CDATA[連載： エキスパートインタビュー (2)エキスパートインタビュー第二弾は、小松健作さん。NTTコミュニケーションズでHTML5、特にWebSocketやWebRTCなどの通信系の研究開発、W3Cの標準化活動に携わっていま...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/interview/" class="series-152" title="エキスパートインタビュー" data-wpel-link="internal">エキスパートインタビュー</a> (2)</div><p>エキスパートインタビュー第二弾は、小松健作さん。NTTコミュニケーションズでHTML5、特にWebSocketやWebRTCなどの通信系の研究開発、W3Cの標準化活動に携わっています。通信技術のエキスパートである小松さんに、これまでのキャリアと最近の活動を聞きました。</p>

<p><span id="more-1134"></span></p>

<h2>Webのオープンに自由につながる世界観が大好き</h2>

<h4>──最近、WebSocketやWebRTCなどのWeb通信系に加えて、ホームネットワーク系のDLNA（Digital Living Network Alliance）に関する研究開発もされているそうですね。</h4>

<div id="attachment_694" style="width: 209px" class="wp-caption alignright"><a href="https://html5experts.jp/wp-content/uploads/2013/08/IMG_7205.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/IMG_7205-200x300.jpg" alt="エキスパートNO.2　小松健作さん" width="200" height="300" class="alignright size-medium wp-image-1365" srcset="/wp-content/uploads/2013/08/IMG_7205-200x300.jpg 200w, /wp-content/uploads/2013/08/IMG_7205-682x1024.jpg 682w, /wp-content/uploads/2013/08/IMG_7205-137x207.jpg 137w, /wp-content/uploads/2013/08/IMG_7205.jpg 426w" sizes="(max-width: 200px) 100vw, 200px" /><p class="wp-caption-text">　エキスパートNO.2　小松健作さん</a></p></div>

<p>通信系のエンジニアって、何でもかんでもつなぐのが大好きなんです。通信系のAPIってことで、WebSocketをやってきたけど、それがホームネットワークにも広がってきたってかんじ。これまでのWebは自分の端末をクラウドのWebサーバと繋ぐパターンがメインで、ホームネットワークの端末同士を繋ぐ用途には殆ど使われてなかったんです。このような用途には、主にApple TVやビエラリンクに代表されるような、各ベンダーに特化した連携サービスが使われています。</p>

<p>それが最近のWebではブラウザからテレビを操作するというような、ベンダーにかかわらず端末同士をオープンに繋ぐことができるようになってきました。オープンで自由につながるっていうのがすごく大好き。HTML5の中でも、Canvasなどの描画系技術も基本知識としては押さえているつもりだけど、どっぷりつかるのはやっぱり通信系ですね。</p>

<h4>──なるほど。通信エンジニアの習性というか、好みを聞いたのは初めて。何でもつなぐのが大好きなんですね。僕的には、ホームネットワークとWebSocketって全然違う技術。なんで小松さんそこいったのかなと思ってたけど、「つなぐ」っていう共通点があった。</h4>

<p>なんでHTTPからWebSocketに飛び込んだかっていうと、HTTPって結構制約が多いじゃないですか。あくまでも文章をダウンロードするための用途っていうか。つなぐという意味では自由がない。WebSocketはその制約がなくなって、クラウドと自分のデバイスを自由につなげられる世界が作られる。そうなるとすごく楽しいなと。ホームネットワークについてもベンダーに特化した仕様ではなく、Webとオープンに自由につながる世界観ができれば自然に面白いことができるんじゃないかなって思ってます。</p>

<h2>磁気センサーからデータマイニングまで。幅広いキャリア</h2>

<h4>──小松さんって、キャリア的には通信エンジニアになるんですか？</h4>

<div id="attachment_695" style="width: 209px" class="wp-caption alignleft"><a href="https://html5experts.jp/wp-content/uploads/2013/08/IMG_7219.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/IMG_7219-200x300.jpg" alt="白石編集長" width="200" height="300" class="alignleft size-medium wp-image-1368" srcset="/wp-content/uploads/2013/08/IMG_7219-200x300.jpg 200w, /wp-content/uploads/2013/08/IMG_7219-682x1024.jpg 682w, /wp-content/uploads/2013/08/IMG_7219-137x207.jpg 137w, /wp-content/uploads/2013/08/IMG_7219.jpg 426w" sizes="(max-width: 200px) 100vw, 200px" /></a><p class="wp-caption-text">白石編集長</p></div>

<p>う～ん…自分の専門職が何なのか語るのは難しいなあ。大学の時は磁気センサーのデバイスの研究をしていました。会社に入ってからは映像配信システムやCDN（コンテンツデリバリネットワーク）など、どちらかというとインフラよりのネットワークエンジニアを10年くらいやってきました。</p>

<p>でも新しいことがやりたくて、データマイニングの研究を始めました。テキスト解析など今で言うビッグデータに走ってましたね。そんな中、HTML5に出会いWebSocketで一番最初に作ったのが<a href="http://wakachi.komasshu.info/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">wakachi</a>のデモ。当時社内の要望で、テキスト解析システムをHTTPインタフェースで作って欲しいと頼まれたんだけど、たった一つの文章でも下手をすると30秒ぐらいかかっちゃったり、これだと一億文書解析するのに100年かかっちゃう。それがWebSocketで処理すると、1時間か2時間くらいで分析できてしまう。WebSocketを使うと、簡単に業務課題を解決できると思って飛び込んだのが3～4年前です。</p>

<h4>──小松さんはいろんなことをされてますよね。初めてお会いしたときは、Webサービス系をやってなかったでしたっけ？</h4>

<p>Webサービス系もやってましたね。NTTの中でいろんな会社を渡り歩いていますが、新サービスを立ち上げる担当を任されることが多かったんです。NTT東にいた頃は、<a href="https://flets.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">フレッツ</a>とか、<a href="https://flets.com/hikaridenwa/" taget="_blank" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ひかり電話</a>とか…。Webに関しては、やれって言われたわけじゃなくて、すごいと思って個人的にやってたら仕事になったかんじですが（笑）。今はHTML5に関する事業を社内で立ち上げる役目です。通信系のWebSocketやWebRTC、ホームネットワークとか…ざっと挙げただけでも結構あります。</p>

<!-- -->

<h2>jQueryのように誰でも簡単に使いこなせる仕組み作り</h2>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/IMG_6996.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/IMG_6996-200x300.jpg" alt="小松健作さん" width="200" height="300" class="alignright size-medium wp-image-1372" srcset="/wp-content/uploads/2013/08/IMG_6996-200x300.jpg 200w, /wp-content/uploads/2013/08/IMG_6996-682x1024.jpg 682w, /wp-content/uploads/2013/08/IMG_6996-137x207.jpg 137w, /wp-content/uploads/2013/08/IMG_6996.jpg 426w" sizes="(max-width: 200px) 100vw, 200px" /></a></p>

<h4>──ホームネットワークでいろんなデバイスが共通のプロコトルでつながる話を聞きたいです。将来的にはあらゆる家電にWebサーバーが搭載されると、それを連携させる仕組みや標準化も必要になりますね。</h4>

<p>WebSocketやWebRTCをうまく活用して、リアルタイムコミュニケーションなどの双方向性サービスがもっと広がる形を作っていきたいと考えています。ただ、WebSocketやWebRTCを使うには新たにサーバーを立てなくてはいけないし、ネットワークの知識も必要だし、面倒なことが多いのも事実。そこを通信事業者としてサポートして、もっと気軽に使える環境を築いていきたい。例えばjQueryのように、誰でも簡単に使いこなせるようなもの。今のWebはjQueryが登場したからこそインタラクティブなものに発展しました。そういうチャレンジングな世界観を創りたいですね。</p>

<h4>──その小松さんのビジョンには、すごく共感します。言葉にしちゃうとSaaSとかPaaS、BaaSになっちゃうのかもしれないけど、それとは違う。アプリを簡単に作れるようにとか、双方向に通信する次のWebを加速させるといったことのために取り組むという姿勢に感銘を受けました。WebRTCやWebsocketが当たり前の世界でないなら、あって当たり前の世界に変えていけば、Webがさらに進化する。時代の到来を早めようとしている気がします。</h4>

<p>僕、性格的にせっかちなんです。そういう世界を先に見たくて（笑）。</p>

<h2>標準化の活動。日本のデベロッパーにも参加してほしい</h2>

<p><a href="https://html5experts.jp/wp-content/uploads/2013/08/IMG_6979.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/08/IMG_6979-200x300.jpg" alt="白石編集長" width="200" height="300" class="alignleft size-medium wp-image-1375" srcset="/wp-content/uploads/2013/08/IMG_6979-200x300.jpg 200w, /wp-content/uploads/2013/08/IMG_6979-682x1024.jpg 682w, /wp-content/uploads/2013/08/IMG_6979-137x207.jpg 137w, /wp-content/uploads/2013/08/IMG_6979.jpg 426w" sizes="(max-width: 200px) 100vw, 200px" /></a></p>

<h4>──小松さんが主導で進められたW3Cの活動についても聞きたいです。日本人でWebの標準化について語れる人はまだあまりいません。小松さんはどんなマインドで臨まれているのでしょうか。</h4>

<p>世界から見ても日本のデベロッパーはとても高いポテンシャルを持っているのですが、これまでW3Cみたいな国際標準化団体を遠い存在に感じていたと思います。きっかけ、やり方のヒントがわかればそこに踏み出していけるはず。そう考えて、もっと世界に飛び立つための仕組みやベースを作りたかったんです。</p>

<h4>──日本のWeb開発者とW3Cメンバーとの交流イベント「<a href="http://www.atmarkit.co.jp/ait/articles/1306/19/news010.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">W3C Developer Meetup</a>」をやってみてどうでしたか？</h4>

<p>日本の開発者は、これまでW3Cと接触する機会が殆どなかったわけで、それだけでも意義が大きかったと思っています。みんな楽しんでくれていたことに一番の達成感を感じました。今後はこのきっかけを継続する仕組みを作らないといけない。コードは世界共通言語なわけですし、英語が得意でなくても標準化に貢献できるような形も作っていきたいですね。</p>

<p>いやらしいことを考えずにつぶらな眼（まなこ）で貢献をしていけば、何か成果が生まれてくるし、日本全体がよくなってくる。今までの自分自身の活動もそうですね。やらないより、やったほうが絶対よかった。「それって儲かるんですか？」ってよく聞かれるんだけど、金銭などのリターンを常に前提においてやっていたら今の自分はなかったと思ってます。</p>

<h2>エキスパートメンバーで有機的なコラボレーションを</h2>

<h4>──最後に、今後の活動や「HTML5 Experts.jp」に対する抱負をぜひ！</h4>

<p>エキスパートの人たちと意見交換や何かを作り上げたい。有機的なコラボレーションができたらいいですね。
執筆陣やレビュワー以上のつながりを作り出し、エキスパート同士のコラボでどんどん新たなWebの世界を引き拓いていきたいです！</p>

<p><style><!--
.exp-comment {   border-top: 1px solid lightgray; } .exp-thumbnail { } .exp-info {   font-size: 1.1em !important;   margin-bottom: 0 !important; } .exp-comment-pubdate {   font-size: .8em !important;   margin-bottom: 4px !important; } .exp-comment-main {   border: 1px solid lightgray;   border-radius: 8px;   padding: 1em;   min-height: 70px;   margin-bottom: 16px; } .exp-thumbnail {   width: 70px;   float: left; } .exp-comment-body {   margin-left: 80px; } .editor-comment {   clear: left; } .exp-question {   font-weight: bold;   margin-bottom: 8px; }
--></style><article class="exp-comment"></p>

<div class="exp-comment-main">
<div class="exp-thumbnail"><a href="https://html5experts.jp/wp-content/uploads/2013/08/IMG_69792.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img class="alignleft size-thumbnail wp-image-784" alt="Screenshot_4" src="/wp-content/uploads/2013/08/IMG_69792.jpg" width="66" height="66" /></a></div>
<blockquote class="exp-comment-body">[エキスパート No.2 <a href="https://html5experts.jp/author/komasshu/" data-wpel-link="internal">小松 健作</a>]

1972年生まれ。NTTコミュニケーションズにてネットワークとWebとの関わりや、インタラクティブマルチデバイスWebサービスに関する研究開発・標準化活動に従事。Google API Expert（HTML5）、Microsoft Most Valuable Professional（Internet Explorer）</br>
<a href="http://blog.livedoor.jp/kotesaki/" rel="external nofollow noopener noreferrer" title="" class="ext-link" target="_blank" data-wpel-link="external">こてさきAjax &#8211; livedoor Blog（ブログ）</a></blockquote>
</div>

<p></article></p>
]]></content:encoded>
		
		<series:name><![CDATA[エキスパートインタビュー]]></series:name>
	</item>
		<item>
		<title>変わるWebプロトコルの常識（SPDY, HTTP2.0編）</title>
		<link>/komasshu/404/</link>
		<comments>/komasshu/404/#respond</comments>
		<pubDate>Tue, 09 Jul 2013 11:54:25 +0000</pubDate>
		<dc:creator><![CDATA[小松 健作]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[http2]]></category>
		<category><![CDATA[spdy]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[パフォーマンス]]></category>
		<category><![CDATA[プロトコル]]></category>

		<guid isPermaLink="false">/?p=404</guid>
		<description><![CDATA[最新の各種通信プロトコルにより、Webの可能性は大きく広ろうとしています。今回は、それらの中から Web をより高速かつスケーラブルなものに変えていくプロトコル、SPDYとHTTP2.0 について解説します。 HTML5...]]></description>
				<content:encoded><![CDATA[<p>最新の各種通信プロトコルにより、Webの可能性は大きく広ろうとしています。今回は、それらの中から Web をより高速かつスケーラブルなものに変えていくプロトコル、SPDYとHTTP2.0 について解説します。</p>

<p><span id="more-404"></span>
<img src="/wp-content/uploads/2013/07/overview_http2_spdy.png" alt="SPDY, HTTP2.0" title="SPDY, HTTP2.0" /></p>

<p>HTML5の登場により、Webで使われるプロトコルは、 HTTP1.1 から大きく変わろうとしています。具体的には、SPDY, HTTP2.0, WebSocket, WebRTC といったプロトコルがそれにあたります。これらは、現状のHTTPが抱える各種問題点を解決するものです。</p>

<p>しかしながら、これらのプロトコルについて、</p>

<ul>
<li>いったい何であるのか</li>
<li>今のWebの何を解決してくれるのか</li>
</ul>

<p>は、あまり知られていません。そこで数回に分けて、これらのプロトコルがいったい何であるのか、今のWebの何を解決してくれるのかを解説したいと思います。<sub><a href="#1" data-wpel-link="internal">[1]</a></sub></p>

<p>今回は、SPDY, HTTP2.0について取り上げます。</p>

<h2>そもそも HTTP とは？</h2>

<p>まず、従来のWebプロトコル HTTP についておさえておきましょう。HTTPは Hypertext Transfer Protocol の頭文字をとったもの。その名の通り HTML (Hypertext Markup Language) 文書をサーバーからブラウザにダウンロードするために開発されました。ちなみに現在もっとも使われているバージョンは1.1です。</p>

<p>このHTTPの特徴は、動作が非常に単純であることにつきます。その動作パターンは以下のようになります。</p>

<ol>
<li>ブラウザから、サーバーに HTML 文書を要求(request)する</li>
<li>サーバーは、ブラウザに要求された HTML文書を返す（response）</li>
</ol>

<p>このため、HTTPは request &amp; response型のプロトコルと呼ばれます。</p>

<h2>Webの進化に伴い、スピードの問題が!!</h2>

<p>Webが登場してしばらくの間は、このHTTPで全く問題がありませんでした。Webの初期は文書を表示することしかできなかったため、一つのHTML文書をダウンロードすれば良かったからです。</p>

<p>しかしWebの進化に伴い、特にスピード面で問題が出るようになりました。多くのリソースをダウンロードすることによる、パフォーマンス上のボトルネックが生じるようになったのです。</p>

<p>今皆さんが利用しているWebページは、多くのリソース（JavaScriptやスタイルシート, 画像など）から構成されています。例えば、<a href="https://html5experts.jp/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 Experts.jpのトップページ</a>では <strong>80個のリソース</strong> から構成されています。これらのリソースを、HTTPを用いて <strong>素直に</strong> 取得しようとすると、以下の様なパターンとなります。</p>

<ol>
<li>ブラウザから、サーバーに HTML 文書を要求する</li>
<li>HTML 文書を取得したら、次のリソース（スタイルシート）を要求する
&#8230;</li>
<li>最後の画像リソースをダウンロードしたら、それを表示してWebページが完成する</li>
</ol>

<p>つまり、request &amp; responseの繰り返しが 80 回起きるわけです。もし、仮にサーバーからリソースをダウンロードするのに 1 回あたり、0.2秒かかったとすると 16 秒かかる計算になります。こんなに時間がかかっては、正直サービスになりません。</p>

<p>このため、現在Webで使われている HTTP1.1 では、同時に送信するリクエストの数を増やすことで、ダウンロード時間の短縮を図っています<sub><a href="#2" data-wpel-link="internal">[2]</a></sub>。運送業者にたとえるなら、80個の荷物を1台のトラックで1個づつピストン輸送するよりも、同時に複数台のトラックでピストン輸送したほうが早く終わる…という感じです。</p>

<p>この解決策により、スピードの問題は著しく改善しました。現在のWebでは様々なテクニックを駆使し、10本以上の同時リクエストを送信することで、スピードの高速化を図っています。</p>

<h2>同時リクエストの乱用による新たな問題</h2>

<p>しかし、このようなHTTPの同時リクエストの乱用は、新たな問題を生むことになりました。サーバーやネットワーク機器の負荷を上昇することとなってしまったのです。</p>

<p>先の運送業者の例で、伝え忘れていたことがありました。このトラックは、一本の車線を占有しないと走れないという困った特徴があります。これは、同時に10台でピストン輸送しようとすると、10本の車線が必要となることを意味しています。</p>

<p>これは、あまりにも大変で、無駄が多いことは直感的にわかると思います。トラックに積荷を載せる倉庫は、多くの車線をカバーする大きなものが必要になりますし、途中の道路についても同様です。</p>

<p>ここで、倉庫をサーバーとし、道路をネットワーク、車線をTCPコネクションとしたのが今のWebです。HTTPはTCPコネクションという車線の上を走るトラックに相当しますので、同時に送信するリクエスト数が増えれば増えるほど、TCPコネクション数が上昇し、サーバーやネットワークに過剰な負荷を引き起こします<sub><a href="#3" data-wpel-link="internal">[3]</a></sub>。</p>

<h2>SPDY, HTTP2.0の登場</h2>

<p>このようなTCPコネクション数の乱用による問題を解決するために登場したのが SPDY, HTTP2.0です。これらの最新Webプロトコルを用いることで、スピードを高めつつ、サーバーやネットワークの負荷を下げることが可能となりました。</p>

<p>そのアイディアは非常に単純・明快です。トラックでたとえれば、一台あたり一本の車線を専有してしまうのが諸悪の根源です。もし筆者が運送業者の社長であれば、運転手を説得し、全てのトラックを一本の車線で走らせることでしょう。冒頭の図面のように。SPDYやHTTP2.0についても、全く同様のアイディアです。複数のHTTPを一本のTCPコネクションで運べるようにしたのです<sub><a href="#4" data-wpel-link="internal">[4]</a></sub>。</p>

<p>最初に登場したのは、SPDYです。Googleが提唱した独自プロトコルで、ドラフト仕様が最初に公開されたのは 2009 年のことです。HTTPの多重化以外にも、HTTPヘッダーの圧縮やサーバープッシュ、フロー制御など高速化のためのさまざまな機能が盛り込まれています。</p>

<p>既に、Googleの各種サービスや Twitter, Facebookなどの大規模サイトで実際に利用されており、運用実績があるのも大きな魅力です。ブラウザとしてはすでにChromeやFirefoxが対応しており、Internet Explorerの次期バージョン IE11 でもサポートされることから、今後更に普及することが予想されます。</p>

<p>HTTP2.0の検討は、SPDYをきっかけとして 2012年に始まりました。SPDYのエッセンスを新しい HTTP のバージョンに盛り込み、HTTP1.1の様々な問題を解決した標準仕様を策定しようとする取り組みです。最初のドラフトは SPDY そのものでしたが、徐々にその形を変えてきています。今年度内には、テスト実装も予定されており、これをベースとして検討がより具体化されると予想されます。</p>

<h2>SPDY と HTTP2.0の関係・これから</h2>

<p>SPDYとHTTP2.0の関係ですが、SPDY/4では、<a href="https://groups.google.com/forum/?fromgroups=#!topic/spdy-dev/EWEEWSYtlhc" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTTP2.0仕様の一部を取り込み</a>始めています。短絡的に考えるのは早計ですが、SPDYとHTTP2.0は互いに影響を与えながら、あるべき次世代 HTTP の結論を導くことでしょう。</p>

<p>ただし、SPDYがカバーしようとする領域は HTTP だけではありません。Webに関わるその他のプロトコル〜DNSやWebSocketなど〜もSPDYの中に取り込んでいこうとするアイディアもあります。こういった様々な興味深いトピックも、HTML5 Experts.jpでは今後紹介していければと思っています。</p>

<hr />

<p><a id="1" data-wpel-link="internal"></a>[1] このシリーズは、最新Webプロトコルの入門編的な記事です。その後、より詳しいシリーズを執筆する予定です。</p>

<p><a id="2" data-wpel-link="internal"></a>[2] 正確にはHTTP1.1というより、現在のブラウザのHTTP実装がそうなっているというほうが正しいのですが、話が複雑になるので割愛します。</p>

<p><a id="3" data-wpel-link="internal"></a>[3] 例えばIPv4枯渇に伴い、特にモバイルキャリアのネットワークに CGN（Carrier Grade NAT）の導入が進んでいますが、このような振る舞いがCGNに大きなインパクトを与えています。</p>

<p><a id="4" data-wpel-link="internal"></a>[4] 多重化のアイディアは、HTTP1.1でもpipeline仕様として存在しているのですが、相互接続性の問題から実際には殆ど使われていません。</p>
]]></content:encoded>
			<wfw:commentRss>/komasshu/404/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
