KOIL(柏の葉オープンイノベーションラボ)に行ってきた

とある仕事の打合せで、つくばエクスプレス 柏の葉キャンパス駅にある「KOIL」に行ってきた。コワーキングスペース、イベントスペースに加えて3Dプリンタやレーザーカッターを利用できるデジタルものづくり工房を備えた複合スペースだ。

実はいつかコワーキングスペース的なものを運営してみたいと思っていることもあって、コワーキングスペースに関しては六本木アカデミーヒルズから勉強カフェまでいろいろな場所を試しに使ってみたことがある。その中でもここは、設備や使い勝手、居心地の良さでかなり上位に入ると思う。ここ数年で本当に沢山のコワーキングスペースができたけど、都心からちょっと離れていることも手伝って広さ(一人当たりの空間)に関しては最高レベルではないだろうか。この無駄に広いスペースを見て欲しい。

写真に写っていない奥にもたくさんの机があり、左には集中するためのブースがある。また、ベランダにもテーブルと椅子が置いてあって太陽の下で作業をすることも可能だ。

ここが3Dプリンタやレーザーカッターが使えるデジタルものづくり工房。

会議室も沢山あって、使っている人がいなければ特に時間制限なく利用可能だそう。オープン間もない今のうちだけかもしれないが、時間制限無しの会議室があるコワーキングスペースなんて初めて聞いた。

大型のプリンタやコピー機も利用可能。

今回初めて行ったのだけれど、アンケートに答えると3回無料で利用できるチケットをプレゼントするキャンペーンをしていた。というわけで、この日の利用料は0円。何という太っ腹なんでしょう。とても気に入ってしまったので、あと2回は必ず行こうと思う。以下のようなイベントも定期的に開催しているそうなので、お近くにお住まいで興味のある方はぜひ足を運んでみてはどうだろうか。

AWS NATインスタンス構築とSerfによる冗長化

2015.12.17追記:マネージドNATゲートウェイというサービスがリリースされました。

AWS VPCでプライベートサブネット内に起動したインスタンスは、インターネットと通信することができません。外部リポジトリやAmazon S3等の各種サービスも利用するためには、NATインスタンスを用意して外部との通信を中継する必要があります。

このためにAWSではNATインスタンス用のオフィシャルなAMIが提供されているのですが、わざわざ専用のインスタンスを稼働させるのは勿体ないので、ヴェッテルでは管理用サーバにNATインスタンス機能を持たせて併用しています。またNATインスタンスがSPOFにならないように障害が発生したら、自動的にフェイルオーバーするような冗長化も行っています。

ここでは、オフィシャルなAMIを利用せずに独自でNATインスタンスを構築する方法と Serf による冗長化の方法を紹介したいと思います。

NATインスタンスの構築

まずはAMIを使わない独自NATインスタンスの構築ですが、これは configure-pat.sh がポイントなだけでそれほど難しくありません。当然ですが、NATインスタンスはパブリックサブネット上にあり、Public IPもしくはElastic IPアドレスが割り当てられている必要があります。

1. configure-pat.sh を /usr/local/sbin/ に設置
$ sudo mv configure-pat.sh /usr/local/sbin/
$ sudo chmod 755 /usr/local/sbin/configure-pat.sh
2. /etc/rc.local に最後の2行を追加
$ sudo vi /etc/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

# Configure PAT
/usr/local/sbin/configure-pat.sh
3. 再起動もしくは configure-pat.sh を実行して設定を反映
$ sudo /usr/local/sbin/configure-pat.sh
4. Route Tablesの設定を追加

VPCコンソールにて、 [Route Tables]を開きます。[Routes] タブで [Edit] をクリックし、[Destination] ボックスに [0.0.0.0/0] と指定します。次に、[Target] リストから NAT インスタンスのインスタンス ID を選択して、[Save] をクリックします。

5. 「Source/Dest. Check」の無効化

Amazon EC2コンソールからNATインスタンスを選択して、[Actions]-[Networking]-[Change Source/Dest. Check] をクリックします。以下の画面が表示されるので [Yes, Disable] をクリックして無効にします。


6. SecurityGroupの設定

必要に応じて適切なSecurityGroupを設定します。公式ドキュメントを参考にしてください。

これで無事にNATインスタンスを構築することができました。
しかし、NATインスタンスが1台だけだとこの部分がSPOFになってしまうので、もう一台NATインスタンスを用意して監視を行い、何かしらの原因で通信ができなくなった場合に2代目のNATインスタンスに切り替えるように設定します。

Serfによる冗長化

Serfはサービスディスカバリーやオーケストレーション、障害検出のためのツールでVagrantの開発者であるMitchell Hashimoto氏により開発が進められています。Goで書かれており、軽量で設置も簡単です。
ここでは、2台のNATインスタンスをそれぞれ nat1(10.0.0.1), nat2(10.0.0.2) として設定します。

1. インストール (nat1, nat2)
$ wget https://dl.bintray.com/mitchellh/serf/0.6.3_linux_amd64.zip
$ unzip 0.6.3_linux_amd64.zip
$ sudo cp serf /usr/local/bin/
2. TCP/UDPの7946番ポートを開放 (nat1, nat2)
3. 設定ファイルの設置 (nat1)
$ vi /etc/serf.conf

{
  "node_name": "nat1",  ← ノード名
  "tags": {
    "role": "nat",
    "routetable": "rtb-123456789"  ← Route Table IDを指定
  },
  "start_join": [
    "10.0.0.2"  ← 相手のIPアドレスを指定
  ],
  "event_handlers" : [
    "member-failed,member-leave=/home/ec2-user/bin/replace-nat.sh >> /var/log/serf-event.log 2>&1"
  ]
}

EC2ではマルチキャストDNSによるオートディスカバリはできないようなので、少々ダサいですが相手ノードのIPアドレスを指定しています。

4. 設定ファイルの設置 (nat2)
$ vi /etc/serf.conf

{
  "node_name": "nat2",  ← ノード名
  "tags": {
    "role": "nat",
    "routetable": "rtb-123456789"  ← Route Table IDを指定
  },
  "start_join": [
    "10.0.0.1"  ← 相手のIPアドレスを指定
  ],
  "event_handlers" : [
    "member-failed,member-leave=/home/ec2-user/bin/replace-nat.sh >> /var/log/serf-event.log 2>&1"
  ]
}
5. 切り替えスクリプトの設置 (nat1, nat2)
$ vi /home/ec2-user/bin/replace-nat.sh

#!/bin/sh
export AWS_CONFIG_FILE=/home/ec2-user/.aws/config

echo `date` "-- Other NAT heartbeat failed, taking over $SERF_TAG_ROUTETABLE default route to $SERF_SELF_NAME"

# Get this instance's ID
Instance_ID=`/usr/bin/curl --silent http://169.254.169.254/latest/meta-data/instance-id`

if [ -n $SERF_TAG_ROUTETABLE ]; then
  aws ec2 replace-route --route-table-id $SERF_TAG_ROUTETABLE --destination-cidr-block 0.0.0.0/0 --instance-id $Instance_ID
fi
6. Serfの自動起動設定 (nat1, nat2)
$ vi /etc/init/serf.conf

description "Serf agent"

start on started elastic-network-interfaces
stop on stopping elastic-network-interfaces

respawn
exec /usr/local/bin/serf agent \
    -config-file=/etc/serf.conf >> /var/log/serf.log 2>&1

ネットワークが利用可能になってから起動しないといけないので、start on started elastic-network-interfaces を設定しています。EC2のネットワークが有効になるタイミングなんですが、問題なく動いているのでおそらくこれで大丈夫だと思います。

以上で設定は完了です。Serfを起動して実際に動作確認をしてみましょう。

[nat1]$ sudo initctl start serf
[nat2]$ sudo initctl start serf

何も問題がなければ、お互いを認識しログに以下のように表示されるはずです。

[nat2]$ tailf /var/log/serf.log
==> Starting Serf agent...
==> Starting Serf agent RPC...
==> Serf agent running!
         Node name: 'special'
         Bind addr: '0.0.0.0:7946'
          RPC addr: '127.0.0.1:7373'
         Encrypted: false
          Snapshot: false
           Profile: lan
==> Joining cluster...(replay: false)
    Join completed. Synced with 1 initial agents

==> Log data will now stream in as it occurs:

    2014/12/29 08:34:28 [INFO] agent: Serf agent starting
    2014/12/29 08:34:28 [INFO] serf: EventMemberJoin: nat2 10.0.0.2
    2014/12/29 08:34:28 [INFO] agent: joining: [10.0.0.1] replay: false
    2014/12/29 08:34:28 [INFO] serf: EventMemberJoin: nat1 10.0.0.1
    2014/12/29 08:34:28 [INFO] agent: joined: 1 nodes
    2014/12/29 08:34:29 [INFO] agent: Received event: member-join

membersコマンドで確認してみます。

$ serf members
nat2  10.0.0.2:7946  alive  routetable=rtb-123456789,role=nat
nat1  10.0.0.1:7946   alive  role=nat,routetable=rtb-123456789

nat1とnat2が表示され、問題なく認識されていることが分かります。

それではいよいよ nat1 を停止してフェイルーバー機能が想定通りに動作するか試してみましょう。ここでは、serfを停止していますが、実際にサーバを shutdown してしまっても構いません。

[nat1]$ sudo initctl stop serf
2014/12/29 08:24:45 [ERR] memberlist: Push/Pull with nat1 failed: write tcp 10.0.0.1:7946: connection refused
2014/12/29 08:24:47 [INFO] memberlist: Suspect nat1 has failed, no acks received
2014/12/29 08:24:49 [INFO] memberlist: Suspect nat1 has failed, no acks received
2014/12/29 08:24:50 [INFO] memberlist: Suspect nat1 has failed, no acks received
2014/12/29 08:24:52 [INFO] memberlist: Suspect nat1 has failed, no acks received
2014/12/29 08:24:52 [INFO] memberlist: Marking nat1 as failed, suspect timeout reached
2014/12/29 08:24:52 [INFO] serf: EventMemberFailed: nat1 10.0.0.1
2014/12/29 08:24:53 [INFO] memberlist: Suspect nat1 has failed, no acks received
2014/12/29 08:24:53 [INFO] agent: Received event: member-failed
2014/12/29 08:25:00 [INFO] serf: attempting reconnect to nat1 10.0.0.1:7946

member-failedイベントが発火し、Route Tablesが書き換わっているのが分かります。

Route Tablesを書き換えることでプライベートサブネットから外部への通信がnat2経由に切り替わります。

以上、負荷の低いサーバを待機系のNATインスタンスとして設定することで、可用性を保ったままコストも最小限に抑えることができます。これで年末年始も安心して休めますね。

【改訂新版】サーバ/インフラエンジニア養成読本 管理/監視編

以前、記事を寄稿させていただいた『サーバ/インフラエンジニア養成読本』の改訂版が出ているようです。書店で見つけた際には、ぜひお手にとってご覧ください。

最新の情報にアップデートして「サーバ/インフラエンジニア養成読本 管理監視編」が新登場! Webを中心としたITシステムは、24時間365日無停止運用が当たり前になりました。こうした中でさまざまなシステムのトラブルに迅速に対処することがサーバ/インフラエンジニアには求められています。本書では、こうしたビジネス要求に応えるための基盤技術であるシステム監視にフォーカスして、そのノウハウをわかりやすく解説します。さまざまなツールやスクリプトの活用法から豊富な現場経験を持つ著者のノウハウまで、丁寧に解説します。

ニフティクラウドC4SA Meetup で話してきました

昨日、お台場カルチャーカルチャーで開催されたニフティクラウドC4SA Meetupに参加してきました。ちょうど発表になったニフティクラウドC4SAを使って「アイデアをカタチにしよう」というのがテーマで、ヴェッテルで新しいプロダクトを開発する際に行っている方法を説明させてもらいました。使用した資料を SlideShare にアップロードしましたので、よかったらご覧になってください(時間がなくて削除した部分も追加してあります)。

株式会社ヴェッテルでは、Objective-CやJavaが得意なエンジニアを募集しています。もし興味がある方がいましたら、twitterで@weboo宛てか右のメールアドレス(Gmail)までご連絡ください!

『サーバ/インフラエンジニア養成読本 管理/監視編』に寄稿させていただきました

技術評論社様の『サーバ/インフラエンジニア養成読本 管理/監視編』に寄稿させていただきました。といっても新たな書き下ろしではなく、ウノウ株式会社勤務時代に中澤さん、酒徳さんと一緒に書いた記事が今回ムックとして出版された形です。自分の担当は第4章のシステムトラブル一刀両断になります。

サーバ/インフラエンジニアとしてこれから活躍しようとしている方、新人エンジニアとして今年の4月に入社した人などは特に読んでもらいたいと思います。この業界で長く働いているとプログラムは一人前に組めるけど、サーバの知識はさっぱりという人にもよく出会います。でも、伸びるエンジニアというのは守備範囲の広い人であることが多くて、最終的にはシステム全体のイメージをいかに自分の頭の中で作れるかで優秀なエンジニアかどうかが決まってくると思っています。

また、DevOpsといえばこの人とも言うべきkazeburoさんの記事もあるので必見です。
ぜひ手に取って読んで頂けたらと思います。

App Engine ja night #19 で話してきました

先週の金曜日に、リクルート・メディアテクノロジーラボで開催された App Engine ja night #19 でPicoTubeの紹介をさせて頂きました。Beer Talkというビールを飲みながら話を聞くというちょっと変わった感じだったのですが、いろんな方向からたくさん質問して頂いたのと打ち上げでのコアな話が楽しかったです。使用した資料を SlideShare にアップロードしましたので、よかったらご覧になってください。

株式会社ヴェッテルでは、JavaScriptが得意なエンジニアを募集しています。
Coffee Script, node.jsなどできる方大歓迎です。もし興味がある方がいましたら、twitterで@weboo宛てか右のメールアドレス(Gmail)までご連絡ください!

会社を作って5ヶ月が経ちました

昨年、日本は自分たちにはどうしようもない大きな力で、今まで大切にしてきたものを一瞬にして失ってしまうことがあるということを身をもって体験しました。僕はその時に、人生一度きりなのでやりたいことを全力でやることに決めました。

そして、株式会社ヴェッテルという会社を立ち上げたのが8月。それからあっという間に5ヶ月が経ちました。忙しさにかまけてブログを書くのが久しぶりになってしまったのですが、会社を作ってからの5ヶ月について年始めに書いておこうと思います。

■株式会社ヴェッテルについて

分かる人には一発で由来が分かる名前だと思います。いくつか候補があったのですが、前職のミクシィを退職する際にとあるミニカーをもらったことがきっかけでこの名前にしました。スピードと情熱が大切なベンチャー企業にぴったりの良い名前だと思っています。

メンバーは、エンジニア3人(@MiCHiLU,@mainyaaと自分)に社外取締役1人(@kensuzuki)のスタートアップです。この他にフルタイムではないのですが、デザイナー、コミュ/イベントプランナーの方が関わってくれていて、現在6名のチームで活動しています。皆それぞれに独特な経歴を持った優秀な人たちで、まだ利益も出ていない生まれたての赤ちゃんのような会社のビジョンに賛同してくれて関わってくれています。

また、TechCrunchやTechWaveといったサイトに情報が掲載されたのでご存じの方もいるかもしれませんが、DeNAやmixiを創業したお二方、事情があって名前は出せないけれど国内で著名なWebサービスを創業した先輩起業家の方たちに多大な支援をしてもらっています。さすが、事業を成功させている方だけあって、彼らの適切なアドバイスには非常に助けられています。この他にも多くの方から助言をいただいていて、これ以上ないほどの人たちに支えられてヴェッテルは活動しています。

■picotube.tv について

で、その会社で何をしているのかというと、「picotube.tv」というサービスを開発しています。友人や趣味の合う仲間と一緒にリアルタイムでビデオパーティーが楽しめるサービスです。昨年、海外で流行ったturntable.fmというサービスの動画版といったら分かりやすいでしょうか。PODという仮想ライブ空間に集まったユーザーが、お気に入りの動画を流し合うことで、従来の音楽・動画サイトにはなかったライブ感を味わうことができます。また、自分で動画を流さなくても、シンプルに音楽を聴くためのソーシャルラジオとしても楽しめます。

このpicotube.tvですが、昨年の「TechCrunch Tokyo 2011 スタートアップバトル」というイベントで最優秀賞をいただきました。IT業界の人だったら誰もが知っているであろうTechCrunchが主催するイベントで、130を超える応募の中から一番に選ばれました。まだ招待制のベータ版なのですが、お陰様でいろいろなブログでも取り上げてくださっているので、ぜひこちらもご覧頂ければと思います。

※知人の方には招待状をお送りしているはずですが、もし届いてないよという方がいたらご連絡ください。すぐにお送りします。

 

と、ここまで読むと非常に順調なスタートアップで何も苦労してないように見えるかもしれませんが、この5ヶ月の間には本当にいろいろなことがありました。
まだこれからなのにと笑われるかもしれませんが、今までの人生でいうと軽く倍の1年分は働いた感じがします。思うように開発スピードが上がらなかったり、サービス自体の完成度が低くてどうしたらよいのか日々悩んでいました。自己資金で始めたので当然お金もなく、エンジニアを増やすなどできなかったので自分が他の人の2倍働けばいいやと思って、土日休日返上で週2日くらい会社に泊まったりして開発していました。

それでも開発は遅れて、今だから言えるのですが TechCrunch Tokyo の1週間前には出場辞退も考えていました。その時は本気で、イベントの準備にかかる時間を開発に当てた方がいいのではないかと思っていました。最終的には、鈴木健さんが出ても出なくてもいいんじゃないと言ってくれたお陰で、気が楽になり最小限の準備で出場したというかたちです。

結果的には多くの方にサービスを知ってもらうことができて正解だったと思います。ふつうスタートアップの作っているサービスなんて誰も知らないから、初めて会う人にはサービスの説明をして理解してもらうところで終わりなのですが、picotube.tvの場合は説明しなくてもいきなり意見をもらえたりしました。また、プレゼン動画を見たという方から直接連絡を頂いたことがきっかけで、継続的にアドバイスをもらえるようにもなったりもしました。

■エンジニアを募集しています!

しかし、それでもまだpicotube.tvは自分たちの考えるサービスにはなっていません。ヴェッテルの「テクノロジーを活用し、人々の生活を豊かにする」という会社コンセプトを実現するためには、さらに多くの努力が必要です。この創業期のヴェッテルで、夢を実現するために一緒に働いてくれるエンジニアを募集しています。

将来は自分で会社を作りたいという人はIT業界にそれなりの数いると思います。インフラコストが劇的に安くなった今、会社を作ることはとても簡単ですが、一人でいきなり起業してもうまくいかないと思います。起業に関して一番大切だと思うことは、まず相談できる人(メンター)をみつけること、同じような志向を持った仲間をみつけることです。自分の場合は、フリーランスで仕事をしていた時にベンチャー企業の仕事しか受けないと決めていて、そのおかげで非常に有能な人たちと出会うことができました。その時に関わっていた人たちに助けられて今がある感じです。

そのような起業マインドのある人は大歓迎なので、まずはうちのような新進気鋭のベンチャー企業で働いてみるのはどうでしょうか。僕自身、日本でもアメリカのように優秀なエンジニアがどんどん起業する流れを作りたいと思っているので、そのためにできるだけの協力をします!

もし興味がある方がいましたら、twitterで@weboo宛てか右のメールアドレス(Gmail)までご連絡ください。

株式会社ミクシィを退職しました

突然ですが、株式会社ミクシィを退職しました。正確には今月末までの在籍となり、今は少ない有給消化期間です。

本来、お世話になった皆様、応援していただいたみなさまには直接ご挨拶しなければならないところ、この場でのご報告となりますことをお詫びいたします。

2009年2月にミクシィに入社してから約2年半の間、一貫してプラットフォーム化に携わってきました。もともと gumi Platform の開発に関わっていたことから声を掛けていただき、mixiアプリモバイルの立ち上げを行いました。当時、既に海外SNSではPC向けソーシャルアプリが流行っていたものの、モバイルで実現している例は他になく、文字通り何もないところからのスタートだったのでとてもチャレンジングな仕事でした。mixiアプリのリリースにより、停滞気味だったミクシィのPVは劇的な上昇を遂げ(*)、後続のモバゲーやGREEも参入してきて、あれよあれよという間に今のソーシャルアプリブームが来たのはご存じの通りです。

ミクシィではPerlでプログラムも書いたのですが、アーキテクチャの設計がメインで、mixiアプリの他にも mixi SDK for Android やスマートフォン向けWebアプリプラットフォームの設計を行いました。詳細は書けないのですが、どちらもひと味違ったエッセンスを加えてあります。また、特に後者のスマートフォン向けWebアプリプラットフォームは、Facebookが現在進もうとしている方向を先取りしたもので、今後より重要性が増してくるはずでこの先が楽しみではあります。

ソーシャルアプリ・プラットフォームが流行ったことで個人的に良かったと思うのは、日本のエンジニアの重要性が以前よりも増したことです。それまでは大量のトラフィックが来るのは、Yahoo!やmixiなどいくつかの巨大サイトに限られていました。それが、数人で始めたベンチャー企業でもアプリの出来が良ければ、多くの注目が集められるようになりました。例えば、通常のWebサイトが1年かかって会員がやっと5万人ほどだったのが、ソーシャルアプリの場合だと1週間でユーザ数が100万人に達することも往々にしてあります。それだけのトラフィックを捌くには相応の技術力が必要で、優秀なエンジニアが重宝されるようになりました。ここ数年でエンジニアの求人が増え、待遇的にもかなり改善されたように思います。そういった意味で、私たちがした仕事は日本のIT業界に一定の足跡を残せたのではないかと思っています。

さて、ミクシィの社員のことに話を移すと、自分が今まで働いてきた他の会社と比べても特に優秀かつ人間的に優れた人が集まっているなという印象があります。先日も自分の送別会を開いてもらったのですが、勝手に辞めていくにもかかわらず、笠原さん、原田さんを始め50人近くの方に送り出して頂きました。SNSの会社だけあって、社内サークル活動的なものも盛んで自分が最初に社内の輪に溶け込んでいけたのも趣味のカメラがきっかけでした。皆さんには暖かく接してもらって、本当に感謝しています。

さて、そんなにいい環境なら何で辞めるの?という声が聞こえてきそうですが、退職の理由としては「次の新しいことがやりたくなったから」これに尽きます。具体的には、日本でもアメリカのように優秀なエンジニアがどんどん起業する流れを作りたいと思っています。

先日、Instagramがたった4人で運営しているということが話題になっていましたが、まさにそんなことが出来てしまうのが今の時代です。クラウドのおかげでサーバを購入することなしに最小限のリソースでスタートすることができます。また、スマートフォンに関してはネイティブアプリが全盛の時代です。処理をクライアント側に任せることができ、そもそもサーバリソース自体がほとんど必要ありません。あと数年したら、スマートフォンもWebに回帰してくると思われるので、今が起業するには絶好のチャンスです。

というわけで、今、自分は新会社設立に向けて準備を進めているところです。エンジニアがどんどん起業する流れを作るには、まず自分からということで根拠のない自信とともに前に進んでいきたいと思います。最初は数人の仲間とともに始めるのですが、資金調達のタイミングでエンジニアを増やしていきたいと考えています。もし、興味がある方がいましたら、右のメールアドレスまで直接ご連絡ください。

これまでお世話になってきた方々にはこれからもお世話になることと思いますが、どうぞ今後ともよろしくお願いします。

gumiStudy#4 でスマートフォン版「mixiアプリ」について喋ってきた

株式会社gumiさん主催の技術勉強会 gumiStudyの第4回で、スマートフォン版「mixiアプリ」について発表をさせて頂きました。スマートフォン版は9月10日にリリースしたばかりで、社外勉強会等で詳細な発表をするのは今回が初めてとなります。現在はパートナー企業限定でアプリを開発可能なのですが、近日中に個人Developerの方でも開発できるように準備を進めています。

mixiアプリモバイル版とスマートフォン版に関して、仕様の策定から開発まで立て続けに行ってきました。世界を見回してもおそらく初の試みで、どちらも参考にする実装例は他になく、それなりの苦労がありました。gumiの国光さんとこれからモバイルのソーシャルアプリが来る!と二人で盛り上がっていたのは、2008年3月と今から2年以上前です。その時は社員が3人しかいなかったgumiも今では80人以上になったそうです。とても感慨深いものがあります。実際のところ、市場でのスマートフォンの存在はまだ小さいものですが、今後一層の盛り上がりを見せてくることは誰の目にも明らかです。特にAndroid流行の兆しは目を見はるものがあり、今後の展開が非常に楽しみです。

先日のDeNA Technology Seminarの資料を公開しました

先日、開催された DeNA Technology Seminar #1で「Inside mixi Platform」と題して、mixi Platform(主にモバイル版mixiアプリ)の裏側がどうなっているかという話をさせて頂きました。その時に使った資料を公開します。

あっという間に定員80名が埋まってしまったようで、参加したいけどできなかった方の参考になれば幸いです:-) 自分としてもZIGOROuさん、hidekさんの話を聞いて大変参考になりました。
どうもありがとうございました。

関連リンク:
OpenSocial Blog: Japan's mixi adds mobile support with its OpenSocial RESTful API
リリース | Weboo! Returns.