orchestra

iphoneが登場して以来、スマートフォンを使ってオーケストラ演奏しようという試みが行われている。2007年にスタンフォード大学のGe教授が始めたプロジェクトは、1台のiphoneをひとつの楽器として、複数台のiphoneを使って合奏するものだった。

http://mopho.stanford.edu

http://www.nytimes.com/2009/12/05/technology/05orchestra.html?_r=0

そして、2012年mobileorchestra.comはクリスマスシーズンに向けて、”Carol of the bells”のオーケストラを編成した。

まず、最初に指揮者として、www.mobileorchestra.comにアクセスする。そうすると、ひとつのURLが与えられる。指揮者はこのURLで楽団員を募る。具体的には、友人、知人のこのURLを伝えて、スマートフォンやタブレットからアクセスしてもらう。友人たちの画面には、バイオリンやビオラ、フルート、チューブラーベルなど、担当する楽器が表示され、演奏する楽曲がダウンロードされる。指揮者の画面には、友人たちがアクセスしてくると、今、何人がアクセスしてきているかが表示される。皆が準備できたところで、指揮者が棒を振り始めると(startボタンを押す)と指揮者の棒に合わせて、割り当てられた楽器の演奏が始まる。

自宅のスマートフォンを総動員して試してみると、見事にタイミングを揃えて、演奏者の動画と音声がぴたりとタイミングをあわせて演奏されるのだ。これがwebベースで行われているのは驚きだ。

http://www.mobileorchestra.com

このふたつを足して2で割ったようなサービスがJam With Chromeだ。

http://jp.techcrunch.com/archives/20121108google-shows-off-chromes-web-tech-with-jam-with-chrome-an-online-band-app-where-you-play-with-friends/

広告

キャリアAPI ネットワークのモジュール化

通信サービスの構造は、OSIの参照モデルに端的に表されている。最下層に物理的なケーブルがあり、その上に信号のやりとりの層があり、・・・、最上部にアプリケーション(人に意味を提示できる個々の内容)が乗っかっている。

ところで、html5になって、webのアプリケーションで実装できる範囲が大きく広がってきた。

それがきっかけとなって、ネットワークサービスの新たな可能性を指摘する記事が出ている。

HTML5 – The Catalyst for Network as a Service?

これまでも、ネットワークのサービス要素をAPIとして切り売りするような話はあった(OneAPIとBONDIで携帯のオープン化は進むか 海外通信事業者が取り組むAPI公開への動き)。

たとえば、認証機能のAPIとか、位置情報取得のAPIといったイメージだ。

これがhtml5によって何が変わるのかと言えば、html5によって、端末での表現の自由度やデバイスへのアクセスの話ではなくて、クライアントとサーバーの役割をサーバー側にシフトさせられるところにあるというのだ。

ややこしいが、これにもふたつの意味があって、html5の表現力や機能が高まり、ネイティブ(スマホ)アプリでなくてもhtml5ウェブベースのアプリでサービスが実現でき、さらに、node.jsなどサーバーサイドで処理できる仕組みが充実してきたことだ。

一見したところ、クライアントで実行されても、サーバーで実行されても、利用者にとっては同じことではないかと思われるかもしれないが、ある機能を実行するのに、本来、実行するのに都合がよい位置がある。たとえば、端末の位置を把握するのであれば、クライアント側で実行するのがよいし、データベースのアクセスであれば、サーバー側だ。

じゃあ、通信サービスの要素的サービスはどうだろうか。

トポロジーから考えると、ピアトゥーピアならクライアント側と思えるが、端末の種類や契約によって通信サービスの実装が異なる可能性を考えると、サーバー側で処理すれば、端末機種の違いを考えないで済む。そのため、サーバー側で扱ったほうが都合がよいケースが多いのではないか、というのが、冒頭に紹介した記事の趣旨だ。

これまで、通信サービス、通信を使ったアプリケーションは、OSI参照モデル的な構造だと刷り込まれていたが、通信は機能の集合体だと思えば、サービスの構造はそもそも階層モデルが相応しいという前提もないのではないか。アプリケーションの内容に依るとは思うが、どういった構造が自然なのだろうか。

関連記事;

ネットワーク仮想化がIT戦国史の分かれ目, オープンクラウドが勝ちOracle王国は敗者に

しかしSDNは、これまでの、アプリケーションがネットワーク化する世の中を、ネットワークがアプリケーション化する世の中へと180度変える。ネットワークが、何もかもプログラマブルなものへと変わる。ネットワークは、スマートフォンの上や車の中など、あらゆるものの上のアプリケーションになる。

初のWebSocketデベロッパフレームワークRealtimeが大金$100Mを調達–“ライブWeb”の時代へ

webがリアルタイムを前提に考えると、さらにサービスの構造(アーキテクチャ、デザイン)は変わってくるのか? Realtimeの実装例

構造化の基底は「体験」?

関連記事;

どんなアプリからでもパノラマ写真を撮れるAPIをDMD Panoramaが提供

この記事は、「パノラマ写真を撮る」という機能が、あらゆるアプリで簡単にできるようになると言っている。

たとえば葉書アプリ、あるいはAirbnbのような家や部屋の一時貸し借りアプリも、家をパノラマ写真で見せられたらすてきだろう。

ネットワークAPIを考える上で、参考になるだろうか?

【追記;2012/9/26】

キーワードは『仮想化』?

クラウド化時代に取り残されそうだと不安な人へ

R練習帳

osx 10.6環境でRを使ってみる。Rのバージョンは 2.13.0

1。データファイルをRで開く

日本語の混じったexcelシートがもとになるデータシート(mac版excel2011)

1−1 excelでtxtデータとして保存する。保存のしかたは、

「ファイル」>「名前を付けて保存」>フォーマット「タブ区切りテキスト(.txt)」>「保存」(保存するフォルダはRのワークディレクトリが楽)

こうすると、出来上がるtxtファイルは、文字コードcp932、タブ区切りのファイルとなる。

元のexcelシートのFA項目は削除しておいたほうがよい。どうも、列がずれてしまうことがある。

1−2 Rでは、read.table()を使う。

df <- read.table(“さっき作ったtxtファイル”,header=TRUE,sep”\t”,fileEncoding=”cp932″)

これで、3000行×147列のデータがさらりとデータフレームになった。

UTF-8,デリミタ=tab、ヘッダー付きの場合は、

df <- read.table(“ファイル名”,header=TRUE,sep=\t”)

文字コードのエラーが出る場合に、バイナリーコードを調べたくなる。その場合には、たとえば、「0xED」などのバイナリーエディタを使って中を覗くことになる。

1−3 列名(ラベル)の表示

names(df) とコマンドを入力すると、指定したデータフレームの列名を表示する。

または、df[0,]としても表示される。これは、データフレームdfの0行目を表示するコマンド。

1−4 データフレームの削除

rm(データフレーム名)

rmコマンドはオブジェクトを削除するコマンド。

2代目Air

結局、初代Airはディスクが壊れて使えなくなってしまった。

そこで、2代目がやってきた。

Air 13inch 1.86GHz 4GB memory / OS 10.6.6 / 128GB SSD

すこしずつセットアップしていく。

1。safariのブックマークを移行

昨今、何をするにしてもweb経由でダウンロードするところから始まる。だから、バックアップしておいた初代airのブックマークをインポート

2。windows環境をいれるので、最新のparalellsをダウンロード

ダウンロードには結構時間がかかったが、インストールは2分くらいで完了

3。windows7のインストール

最初は通常インストールを行ったが、なぜか、うまくネットワークがつながらず、parallelsの設定などを少々いじってみたものの断念。一旦windows7を削除し、改めて「高速インストール」しなおして使えるようになった。なお、仮想マシン→構成→ハードウェア→ネットワークアダプタ→種類(ブリッジネットワークのデフォルトのアダプタ)としておく、共有ネットワーク(nat)だと、windows側から外のinternetへはアクセスできるが、親分のosx側からwindows上に構築するサイトへのアクセスができないため。ブリッジネットワークを選ぶということは、ルータ配下で、osxとwindowsが平行な位置づけとなる。15の設定とも関連。

3−1。EmEditor Pro v10インストール

3−2。XAMPP 1.7.4 インストール

(apache 2.2.17, php 5.3.5, mysql 5.0.7)

一通りインストールしたら、my.iniを作成する。C:\にmy-*****.ini(*****はsmall,medium,large)というひな形のファイルがあるので、これをベースに作る。場所は、ルートにしか置けないと書いてある(xamppコントロールパネル→ヘルプ)。

今回構築するサイトはutf8で扱うので、my.iniの[mysql]セクションに、default-character-set=utf8 を一行追記しておく。

4。KeyRemap4MacBook7.1.0のインストール

5。Microsoft Office 2008のインストール、SP1 update

6。TextWrangler v.3.5.3 インストール

7。英辞郎ビューア、EIJIRO dash インストール

8。JMP8 インストール

9。Flip4Mac のダウンロード

10。Microsoft Remote Desktop Connection Client for Mac 2.1.0

11。FTP Cyberduck 3.8.1 インストール

12。ディスク容量管理 GrandPerspective インストール

13。perian 1.2.1 インストール

14.プリンタードライバーのインストール

15.osx側のhostsファイルにwindows7のホスト名・IPアドレスを記述し、windows側で構築するサイトにosx側からアクセスできるようにしておく。また、そのために、ルータには、windows側のmacアドレスに固定的なIPアドレスを付与するように設定する必要がある。

osx 10.6のhostsファイルの場所は、/etc/hosts ここを修正するのは、Finderでcommand+shift+Gで/etcを指定する。

16.htmlエディタ  BlueGriffon

17.ファイル比較  DiffMerge

18.csvエディター  reCsvEditor

このプログラムはjavaでできており、シェルスクリプトで起動する。(.shについては、OKLabの解説が丁寧)

インストール後の実行プログラムは、 /applications/recordedit/recsved/bin/runCsvEditor.sh

これを、Finderからダブルクリックで起動させる方法は以下の通り。

(1)上記シェルスクリプトの修飾子を.shから.commandに変更(またはコピーしてリネーム)

(2)runCsvEditor.commandの実行権をchmodコマンドまたはFinderから付与

reCsvEditorは比較的大きなファイルを扱えること、utf8が使えることが特徴

日本人の手になるCsvEditorというこちらもjavaのエディターがある。これは、直接、CsvEditor.jarをFinderからダブルクリックすれば起動する。こちらも、utf8は扱えるが、相当シンプルなプログラムで行番号などの表示がなく、あまり出番はないかもしれない。

MS Officeのファイルの関連付けを修復

職場の同僚が、韓国語ドキュメントのビューアーソフト(Haansoft Viewer)をインストールしたときに、xlsやpptの関連付けをHaansoftにしてしまったらしくexcelやpowerpointのファイルから起動できなくなった。

職場のPCはadmin権限が取り上げられているので、アプリケーションのインストールはその都度申請し、admin権限のある期限限定アカウントを払出してもらって実行するようになっている。

admin権限があれば、プログラムの追加と削除から「修復」をしたり、なんだったら再インストールするのがわかりやすい対処方法だが、それはできない。

また、explorerのオプションからいちいち関連付けを変更するのも修飾子がいくつもあるから全部修復できるかどうか怪しい。

そこで、ネット上を探ってみたところ、以下のコマンドで関連付けを修復できることがわかった。

program_name.exe /unregserver
program_name.exe /regserver

program_nameのところには例えば、excel, winword, powerpntが入る。

このコマンドをコマンドプロンプトから実行し、関連付けの修復は完了。ただし、関連付け以外に何かの設定が初期化してしまったかもしれないが、ひとまず元に戻ってめでたしめでたし。