複数の知人からほぼ同時期に「マストドン」というTwitterのような機能があることを教えてもらいました。何でも巷ではこの機能が話題だそうです。特徴は分散型である点です。勝手にサーバーを立ち上げてマストドンを動かすと、他の同様のサーバーと連携して全体としてTwitterのような機能を実現できるというものです。(メールサーバーもこれと同じように分散型です)メリットは個人情報を特定の企業に渡す必要がないサーバーが増えていけばそれに比例して多くのユーザーが利用できる環境ができるところにあります。企業に支配されないという、実に素晴らしいシステムです。開発者からすればデータセンターを持つ必要がないのは魅力です。実はほぼ同じサービス(ソフトウェア)は以前にもありました。Socialの原型)がそれです。7年以上前のことです。コンセプトも機能もほぼ同じで、開発者がサーバーを立ち上げると共に、有志にこの機能用にサーバーを立ち上げるように呼びかけました。Twitterに対抗する分散型サービスとして話題になりました。ところが実際に運用を始めるとある問題が発生したのです。それは皆、本家本元のサーバーに登録してしまうせっかく分散型として開発したにもかかわらず、一極集中が起こったのでした。開発者はプロバイダにこの機能を提供するように呼びかけたりしたのですが、うまくいきませんでした。ある日、彼はデータセンター維持の費用が負担になったことを理由にサービスを停止したのです。(メールサーバーが分散型なのに皆がGMailを利用するのと同じです)今回も日本で先頭を切ってマストドンのサーバーを構築した大学生のサーバーに登録が集中し、結局データセンターへ引越しをすることとなったそうです。結論:分散型はユーザーがどこにサーバーがあるかわからないようにしなくてはいけない。サーバーの数はもっともっと増やさなくてはならない。各家庭にあるルーター内でこれらの機能が使えたらクラウドと完全に戦えたのに、と思うわけです。面白いソフトウェアを発見しました。WebTorrentというものです。これはブラウザで動画を閲覧すると、他の同じ動画を見ている人にそのデータを転送するものです。見ているデータをもらう代わりに他の人に配信する、という分散データ配信の一種です。ベースとなっているのはBitTorrentです。データを受信(そして別の閲覧者に送信)しながら動画を再生できるという点が比較的目新しいです。BitTorrentというベースになっている機能は受信はデータのどの部分から行うか最後まで決まっていません。先頭からデータを受信する保証はないのです。このWebTorrentでは必ずデータの先頭から受信するような仕組みが新規に作られたのでしょう。WebTorrent少し技術的なことを書きます。この仕組みはブラウザが「サーバー」の機能を持っています。データを送信する機能です。通常はブラウザは受信することがメインの機能であり、「コンスタント」に送信することはありません。それをすべて「javascript」と最近のブラウザに内蔵されている機能が連携してこの作業を行います。分散を目指すのは当然私だけでなく、私よりも優れた技術者によって分散技術は進化しています。どのような機能にも欠点があります。それを冷静に考えてみましょう。それはブラウザを閉じた時、もっと極端なケースとしてはPCやタブレットのスイッチを切ったときです。これはよくあることで、特に動画を見るときはあれを見たり、これを見たりすることが多いので、上の図でいうところの右側ではかなりダイナミックにデータの流れが変化するはずです。本来であればデータを受信していない時こそデータを発信すべきなのです。私の自宅の回線を考えてみましょう。私がインターネットを使っていないときに同じ回線を使って他の人のデータ取得に貢献するとすれば、その回線が遊んでいる時間が少なくなります。遊ぶ時間が少なくなるという事は、データの流れがネット全体を見た場合、均一に少し近づくということです。いうわけで上の図の左と真ん中にあるデバイスの数を増やし、できれば常時接続されているそのような環境を作ることが大切です。先日知人がこんなことを言っていました。ネットの問題と今後の姿そろそろ分散型のエンターテインメントサービスを作ろうかと思い、週末に基本設計をはじめました。通常このようなサービスを作る場合、インフラをどうするかを考えます。私が「美穂の旅」を作った頃、会社には月額50万円、最大帯域1.5Mの光回線が入っていました。その回線で出来るサービスとして「メール」を主体とした設計をしました。メールはあまり帯域をくわないからです。インフラに制限されたサービスであったとも言えます。いうのも分散型になるからです。Cellのうち、例えば100台がこの企画に参加してくれたとします。回線だけで100Mx100=10Gでかなり凄いです。メモリもそれぞれが1GB使ったとすれば100Gです。200台が参加すればそのさらに2倍になります。世界中には分散処理の素晴らしいソフトを開発している人たちが多くいます。残念ながらそのプラットホームを提供するサーバーは多くの場合データセンター内に設置されています。自由に活躍の場を持てないのです。いうわけで彼らのソフトを動かす活躍の場であるプラットホーム構築も重要な仕事といえます。ユーザーが小型のサーバーを各家に設置することが当たり前になれば、ソフトウェア技術者はインフラを心配せずに様々なサービスを提供してくれるでしょう。いうわけで、分散型のエンターテインメントサービスを作ることにしました。ユーザーがログインをする場合、グループ内のどのサーバーからもログインが出来るようになります。ある動画を見る場合、その時点で余裕のあるサーバーに接続します。光陰矢のごとし、って大げさですが気がつけばもう2月も終わります。Cellの動作確認をしたりと、それなりに苦労をしていました。そんななか、馬鹿げたことをいくつかしました。oneDrive(実験済み)を正式リリースしたいと思っています。先日焼きまんじゅうマニアさんにある記事を紹介してもらいました。その記事によればVPN機能を提供するというAndroidアプリの多くが実際には暗号化していなかったりデータをのぞき見しているというものです。ところでどうしてAndroidなどの端末でVPNが必要なのか、という根本的な話し方します。先進国を含む多くの国では無料Wifiが普及しています。街のいたる所にアクセスポイントがあり、自由に接続して使える、というものです。実に便利なサービスですが、問題もあります。それは「データをのぞき見される危険性」があるとこうことです。私が自宅にアクセスポイントを用意し、不特定多数に自由に使ってもらうとしましょう。このとき私に悪意があれば、アクセスポイントを通過するデータをすべて見ることが出来ます。Wifiが暗号化されていようがのぞき見出来ます。Wifiのアクセスポイントの先にある光など固定回線の先は暗号が解読された状態だからです。場合によってはメールを中身を読まれている可能性も出てきます。VPNはスマホなどの端末から完全に暗号化され、接続先まで中身が見えないようになっています。アクセスポイントの持ち主にもデータの中身を見られることがありません。ところがVPN機能の「提供者」だけはデータの中身を見ることができるのです。経路の最後では暗号化されたデータを解読する必要があるからです。解読をするのがVPN提供業者になります。唯一ほぼ安全なのが自宅で自分自身がVPN「提供者」の役割を担う場合です。この場合、出先で利用する端末、無料Wifi、その先のプロバイダ、そして自宅までは完全に暗号化され、途中で解読されることはありません。その先、すなわち自宅から先(例えば銀行のサイトの先)は解読されますが、この時点でデータは認可を受けた通信業者へ引き渡されるので、法律による保護のもと、安全は確保されています。このような理由で海外では無料Wifiを利用する場合、VPNが重要となるわけです。CellにはVPN機能が実装されていますが、無料Wifiを使う機会が少ない日本よりも海外のほうがこの機能が受けるかもしれません。初のコンピュータの場合同時だったと思います。コンピュータというハードウェアの上で動くソフトが前提にあったので、同時に開発が進んだはずです。現在の多くのソフトウェア技術者はまずはどのようなハードウェアに自分で開発するソフトを乗せるのか、という発想で開発をしているでしょう。開発するソフトはハードに乗せなくてはいけないからです。ハードウェアの進歩は比較的わかりやすいです。メモリやCPUを開発する人たちはより小さく、より速く、そして大容量を常に目指しています。年々、その目標は着実に達成されています。ところが多くのソフトウェア技術者はどうしても「現在あるハードで充分動く機能を提供しよう」と考えがちです。ソフトウェアがハードウェアに合わせるといえなくもありません。私はソフトウェアを開発する技術者たちは気持ちの上で「ハードウェアの先」を目指すべきだと思うのです。ハードウェアの性能はついてくるからです。最近、超小型のPCをサーバーにする仕事をしています。同僚がその過程でこう漏らしていました。過去5年以上、私と同僚たちはネットワークの分散を目指していろいろと工夫をしてきました。一言でいうと集中であるクラウドを使うのではなく、各自でクラウド機能を所有しよう、というものです。人に任せるのではなく自分で使いたいように使い大切なデータを他人に預けずクラウド以上の一人あたりのパワーを使いクラウドでは難しい(実用的でない)ことにも使えるを目指しています。各家庭にある光回線を有効に使うだけでもインターネットの効率化につながります。日中データがあまり流れていない回線を使うのですから、他の集中しているトラフィックが減ることが想像できるでしょう。いうわけで今、超小型パソコンであるスティックPCを本格的な分散サーバーとして利用できるよう開発をすすめています。重さ50gでもクラウドが提供できる「一人あたり」の処理能力を大幅に超えています。VPNゲートウェイファイルサーバー(内蔵で最大128G)仮想デスクトップブログの開設DropBoxのような機能メールサーバー(自分や家族だけのgmailみたいのもの)その他を実現します。Cellと比べるといくつかの制限があります)自宅に設置し、電源を入れるだけで自分だけの「クラウド」を持つことが可能となります。いつ皆さんに提供できるか、というと・・・・もうすぐです。いくらで提供できるか・・・・・驚きです。使ってみた感想は・・・・・涙ものです。昨年秋ごろから「いい加減」な広告が話題になりました。集客するためのコンテンツがいい加減なものだけではなく、企業がその「実態」を隠して広告活動をしていることが批判されているようです。いえば10年ほど前のことです。ビレッジセンターの創業者である中村満さんとお話をした時のことです。中村さんは広告だか記事だかわからないコンテンツが氾濫している。いつか大きな問題になる。うちでは絶対にやらない。中村さんは筋の通っている方で、当時からネット広告の本質を批判していました。その頃は今以上に「何でもやっていい」という雰囲気のあったインターネットでしたから、このような本質をつく批判を出きた人はあまりいなかったと思います。問題を起こしたメディアの経営に中村さんが携わっていたら反対してそのメディアを作らなかった(買収しなかった)喧嘩をして経営から退いていた(元ボクサーです)こういう人がいつの時代でも必要なのです。住所不定のプログラマ先日ファミレスで知人と打合せをしました。いろいろなアイデアや、今後どのような資料を作り、どこにそれを持っていくか・・・などを話し合いました。そのときの議事録が「新しい」のです。従来、その知人と打合せをすると必ずその後議事録がメールで送られてきました。(知人は67歳で私の大先輩です。私が怠慢なので、いつもその方に議事録を送っていただいていました)しかし今は違います。二人共タブレットにキーボードを接続しています。Cellに接続します。今回の打合せでは共同ワープロ(Etherpad-Lite)を利用し、同時に同じ文書を編集します。共同ワープロ(Etherpad-lite)二人が思いついたことをメモしていくと、それぞれが書いた内容もリアルタイムに確認できます。一方が書いた内容をもう一方が編集することも可能です。Cellを使いこなしているのを見て、私は明るい未来をみました。涙が出るほど嬉しいです。同僚がクライアントが壊れた時のことを考えて準備します!といきなりクライアントPCの代替機の準備をはじめました。今までメインはデスクトップPCでしたが、最近タブレットを24インチモニタに接続し、これもクライアントPCとして使っています。今回はスティックPCです。Cell内にあるので基本的に設定は簡単で、使えるようにするまでの時間は10分足らずです。見ての通り結構付属品がついています。そこで調べたところ、USBハブにLANアダプタが付いているものがありました。これを使えば上の写真の右にある有線LANアダプタが必要なくなります。キーボードとマウスをBluetoothにすればハブを使う必要がなくなります。(スティックPCにはBluetoothが内蔵されています)ちなみにこのスティックPCは今春購入し、1万円の激安でした。