リリース

ここ半年くらいずっと取り組んできた例のモバイルのプロジェクトが、ちょうど一週間前にローンチしました。細かい不具合こそいくつかあったものの、何とか無事にリリースまでこぎ着けられて正直ほっとしています。ほぼ何もないところからのスタートで、設計から構築の部分まで自分がメインで関わったプロジェクトなので、本当に感慨深いです。

お陰様で、リリース当初より予想をはるかに上回るアクセスが来ています。このプラットフォーム上で動作するアプリを作っている方なら分かってもらえると思いますが、凄まじい量のアクセスです。一番人気は自分が前にいた会社「ウノウ」のアプリなのですが、ユーザ数の急激な増加で対処に苦労しているようです。リリースから5日で100万ユーザを超えるサービスなんてそうそうないわけで、技術力がないと対応は難しいかもしれません。機能制限をかけつつも安定して稼働させているあたりは、さすがウノウといったところ。一応、徐々にユーザに解放をしていく仕組みが用意してあるのですが、キャパを超えてもユーザを確保したいというところが多くて、うまく活用されていないのが少し残念です。

当然、プラットフォーム側にはアプリ数をかけた分のアクセスが来ているわけですが、弊社のインフラエンジニアが非常に強力で今は事なきを得ています。今後、より一層のパフォーマンス改善が求められていますが、ボトルネックとなっている部分がだんだんと見えてきたので、今はそんなに心配はしていません。

今のところ、いわゆるスコアを競うだけのアプリが多かったりするんですが、今後は海外SNSで流行っているようなソーシャル性を活用したアプリケーションがより一層伸びてくると思います。アプリケーションが複雑化することで、より技術力の高いエンジニアが求められてくるわけですが、そう簡単に人は集まりません。クラウドをうまく活用して、ユーザの急拡大にも対応できる仕組みを用意しているかどうかが鍵となってきそうです。

ITアーキテクト Vol.19に記事を書きました

ITシステムを“創る”人のための技術情報誌『ITアーキテクト Vol.19』に記事を書きました。「主要各社のクラウド・サービスに迫る」という特集の中で、Google App Engineに関する部分を担当しています。

ITアーキテクト Vol.19 (IDGムックシリーズ)
ITアーキテクト編集部
アイ・ディ・ジー・ジャパン
売り上げランキング: 1304
また、特集2『主要各社のクラウド・サービスに迫る』では、今日すでにサービスの提供を開始したり、何らかの対応方針を提示したりしているベンダーの中から、特に重要と思われる3社、IBM、アマゾン、グーグルを取り上げ、各社のクラウド・サービスの概要を紹介している。本誌Vol.17ではクラウド・コンピューティングの概要を説明したが、本特集はその続編だ。クラウドの先駆者であるアマゾンと検索サービスの覇者であるグーグルのサービスについてはすでに多くの情報が流通しているが、エンタープライズ向けクラウドを標榜するIBMに関しては、まだ日本語でまとめられた情報が少ない。特に国内のユーザー企業にとって、IBMのクラウド・サービスは気になる存在だろう。彼らが考えるクラウドの方向性を、ぜひ本特集でつかんでいただきたい。

ケータイ向け OpenSocial プラットフォーム「gumi Platform」

先日、モバイルSNS「gumi」が日本初となる携帯電話向けOpenSocialプラットフォームをリリースしました。実は、私もOpenSocialエンジン部分の開発に企画段階から関わっています。もともと gumi は、id:perezvon が Django で構築したサイトで、 OpenSocial エンジンの部分も Python で書いています。今回リリースされた gumi Platform の特徴としてはこんな感じです。

  • RESTful API ベースで JavaScript および IFRAME は使用しない(というか使えない)
  • APIへのアクセス制御には OAuth を採用
  • Viewer, Owner, Friends 情報を利用してソーシャル・アプリケーションを構築可能
  • 文字コードは UTF-8 を使用
  • 絵文字はドコモのUnicodeテキスト形式で記述し、他キャリア向けに自動変換
  • ホスティング環境として Google App Engine も利用可能(当然それ以外もOK)

下の画像を見てもらえれば、仕組みはイメージしてもらえると思いますが、携帯電話なので JavaScript が使えません。そこで、サードパーティ側から受け取った XML を gumi Platform 側で一枚の HTML にレンダリングして携帯電話に返すような構成になっています。

詳しくは、 Google Code にドキュメントがあるのでそちらを参照してください。

» gumi - Google Code

gumi Platformのリリースと前後して、2つほど検定/占い系のアプリも公開したのですが、一気にアクセスが来て大変な事になりました。やはりまだまだ世間はケータイなんだと実感しました。私も発売日に iPhone を手に入れたくちなのですが、使い勝手や安定性の点からいうと日本の携帯電話に一日の長がある感じがします。今は少し落ち着いたのですが、 Google App Engine のコンソールで見るとこんな感じです。

実際にソーシャルなアプリケーションを作ろうとすると、 OAuth の部分とかがかなり面倒くさいです。そこで、 Python 用には自動で OAuth 認証をして gumi API にアクセスするようなヘルパーライブラリを用意しています。他の言語用にも同様のライブラリも用意したいのですが、諸般の事情により今はそこまで手が回りません。

一番欲しいのはPHP用のライブラリなのですが。うーん、誰か作ってくれないかな…

「第13回 jQuery.js を読み解く」が掲載されました

技術評論社のWebサイト gihyo.jp にて、「jQuery.jsを読み解く」という記事を連載させていただいてますが、その第13回が公開されました。

jquery.jsを読み解く:
第13回 jQueryライブラリ(2834行目~3107行目)

今回は、アニメーション処理に関する部分の解説になります。アニメーションを登録した関数オブジェクトをキューイングする部分は面白いので、一度目を通しておくと良いかもしれません。
この連載もさすがにここまで来ると、読んでいる人はかなり絞られてきているのではないかと予想しています。こんなマニアックな企画をするのは、 gihyo.jp くらいです。海外のサイトを見ても jQuery.js のソースを読むなんて記事はまず見当たりません。今までに2〜3人から「いつも読んでいます!」と言われたのを考えると、全国の読者はたぶんその倍くらいでしょうか。実際のところは、怖くて編集の人には聞けないわけですが…

退職しました

1月25日付けでウノウを退職しました。一年半という短い期間ではありましたが、チームの皆に支えられながら何とかやってこれたことに大変感謝しています。

大企業と数十人のベンチャー企業を経験し、それぞれに一長一短があることを身をもって体験することができました。また、企業活動を行っていく上で、ビジネスモデルがいかに重要であるかということも知ることができました。でも、何よりも一番の収穫は、モチベーションの高いエンジニアの人たちと知り合うことができたことです。僕は、日本のエンジニアは決してレベルは低くないと思っているし、皆で力を合わせればきっと世界に向けたサービスを創り出せると信じています。また、近いうちに一緒に働ける日が来ることを楽しみにしています。

次はどうするの?と良く聞かれますが、実際のところはまだ決まっていません。でも、人生は一度きりなので後悔のないように過ごしたいし、多くの時間を仕事に費やす以上、世の中のためになることをして多くの人が幸せになれるようなことに関わっていきたいと思っています。そんな思いに共感できる人と仕事ができるように、今まで以上に自分の可能性にチャレンジするつもりです。

これからもどうぞよろしくお願い致します。

Web Site Expert #16に記事を書きました

技術評論社より、『Web Site Expert』という雑誌が1月24日に発売になりました。この中で、特集「Webサイトリニューアル大作戦」について数ページ記事を書かせていただきました。

エンジニアというよりも、どちらかというとディレクター向けの雑誌ですが、興味のある方はぜひご覧になってみてください。


Software Design 10月号にCactiの記事を書きました

Software Design 10月号にサーバ監視ツールCactiに関する記事を書きました。
Cactiのインストール方法からSNMPの設定方法、Plugin Architectureについて説明しています。今月号は、他のNagios,Swatch,Wiiに関する記事もウノウのエンジニアが執筆していますので、ぜひぜひご覧くださいませ。

関連リンク:

『最新Pythonエクスプローラ』に記事を書きました

技術評論社より、『最新Pythonエクスプローラ』というムックが3月2日(金)に発売になります。

Django,TurboGearsといったWebフレームワークに関することやTwisted,IronPythonなど旬な話題が目白押しです。僕もNintendo DSで動かすPythonの記事を書いていますので、ぜひご覧になってください!

Dumbness of Crowd — 集合愚


集合愚に落ちないためには - Rauru Blog

単一のアウトプットを出そうとすると、それは必然的に Dumbness of Crowd — 集合愚 になってしまう、っつう話ですな。だから、豊富なバラエティの海を元にして何か単一のアウトプットを出したいと思ったとき、例えば Wiki を用意して自由に編集させれば集合知になるかってえとそれは間違いで、うまい汲み上げ方の仕組みってのがいるんぢゃろね。

集合知の本質は集まってくる情報のバラエティ性であって、単一のアウトプットを期待するとき、それは集合愚になってしまうという話。これは、よく分かる気がする。例として、「大勢の人のアイデアの平均を取れば素晴らしいアイデアになると考えること」が挙げられているように、平均を取る方法は集合愚に陥りやすい。

玉石混淆の中から玉を見つけ出すことには適しているが、玉自体を作り出すにはもっと別の方法が必要だということでしょうか。

あいまいさを許すか許さないか

会社で使っているMac Bookなんだけど、最近、FirefoxでWebページを表示するのに数秒かかるようになってしまった。どうもDNSのLookupが遅いみたいで、1つのページを表示するにしても別のドメインから画像データを取ってくるところで、いちいち処理が詰まっているような動きだった。

しばらくlookupdのキャッシュをクリアしたり、Firefoxの同時接続コネクション数を変えたり、いろいろ試行錯誤してみたけど改善されなくて困っていた。結局、何のことはない、開発合宿に行った時に設定したDNSサーバが存在しないネットワークを指していたのが原因だったのだけど、この一件でひとつ考えさせられることがあった。

それは「あいまいさを許すか許さないか」ということ。今回のDNSサーバの設定が間違っていた件だけど、もし完全に名前解決ができなければすぐに問題に気づいたはず。遅いながらも問題なく利用できてしまったために、なかなか原因を突き止めることができなかった。別の分かりやすい例で言うと、某Officeソフトウェアのヘルプキャラクタがそうかもしれない。中途半端な親切は単なるおせっかいでしかないのか、こちらが欲している回答に到達するのを邪魔されているような気がしてならない。

人間同士でも意思の疎通は難しい。相手が考えていることを本当に理解し始めたとき、そこから新しい何かが生まれるのかもしれない…

# 僕は本当に相手に伝わっているか心配なので、"しし落とし ししおどし"の如く繰り返し言ってしまうようだ。

2006/12/07追記:
「誤:しし落とし → 正:ししおどし」だという指摘をして頂きました。ありがとうございます。
今までずっと、"しし落とし"だと思ってた…

http://ja.wikipedia.org/wiki/%E3%81%97%E3%81%97%E3%81%8A%E3%81%A9%E3%81%97