2010年9月25日土曜日

PHPカンファレンス 2010 ビジネスデイにいってきました.

寒いですね.

こんにちは,スチールです.

風邪を引かぬようみなさまご注意ください.

普段はPythonを書くことが多いのですが,来年からお仕事でPHPを書くことが増えそうな予感がするのでPHPカンファレンス2010にいってきました.
9/24,25の二日間行われ,24日がビジネスデイ,25日はテックデイとテーマがわかれてるようです.
というわけで,ビジネスデイにいってきたまとめというか感想とか.二部屋にわかれてたので,基本的に自分が見てきたことについて書こうと思います.
ちなみにPHPカンファレンスのプログラムはこちら

基調講演「GREE Platformの現状と今後の取組について」
GREE 青柳直樹さん

遅れて会場に到着したので途中から聞いてました.
基本的にはGREEがGREE Platformを展開してからこんだけ数字が変わったよ(縦軸に単位のないグラフが出てきてふきました),というお話と,外部パートナーとの今後の取り組みとか,スマートフォン対応させるよ!的なお話.海外進出に向けてのお話もありました.
特に外部パートナーに関しては,CM費GREE負担で年末までに30タイトル(だったかな?)を放送するよとかいってました.太っ腹ですな.
PHPに関する話はなかったです.Twitterのタイムライン見てたらその辺どーなの?というツイートもちらほら見かけましたが,まぁビジネスデイなのでいいんでないかと思いました.
そのあとのプログラムでもソーシャルゲームの話が多かったので,これはこれでよかったのではないでしょうか.

モバイルソーシャルアプリの開発と運用
ウノウ 個々一番さん

最初はOpenSocialの実装の話.プラットフォーム(GREEとかのこと)とSAPでのAPIのやりとりはOauthが必要なので,その話がありました.
Oauthの署名の検証にはまるとデバッグが大変らしいというお話.
Oauth認証の実装にはPEARのHTTP_OAuthとかPECL::oauthとかがあるけどオススメはPEARの方だとか.(PECL::oauthはCで実装されてるみたいでなんかあったときに修正するときにHTTP_Oauthの方が楽,とかそんな感じの話だったと思う)
opensocial-php-clientは使いにくいとのこと.

その後は今までにあったトラブルとかの話.
ソーシャルゲームってヒットすると一気にどばっとアクセス来るから開始直後いきなり死ぬ,なんてことはよくあることのようで,問い合わせはたくさん来るのだそう.
なのでお問い合わせをシステム化しておかないとすぐ破綻する(特に人数少ないと貴重な開発人材がサポートに時間を奪われてしまう).
FAQで解決してもらうとか,動かない・重たい機能などを一旦取り下げる覚悟なども必要のようです.
あとプラットフォームによっては友達登録に制限がないところもあるので,プラットフォームのAPIを使った友達一覧・ランキングはうっかり実装すると大変なことになります.3万人友達がいる人とかをAPI利用しちゃうと….APIを使わないランキング実装などがおすすめだとか.

続いてウノウの環境についてのお話も.
  • PHP 5.2〜5.3
  • MySQL(5.1)
  • memcache
  • Q4M
  • nginx
  • puppet
  • capistrano
とか使っている様子.
MySQLのマスタ/スレーブの構成はreadの分散にはなるけどwriteは分散できないとかの話もありました.
あと,SwfEditorの存在だけで,PHPでソーシャルサイト作る価値があるよとのことです.

細かく書くと長くなるのでこの辺で.この話はUSTに録画されているみたい(こちら).
もう片方の会場は「CakePHPで作るニフティWebサービスのレシピ 」でした(UST).早く話が終わったみたいで後半こっちの部屋に流れてくる人が多かったです.


ユニットホスティングを使った効率的なPHPプラットフォームのご紹介
株式会社ディノ 高原芳浩さん
ユニットホスティングのお話,ホスティングサービスに
  • 10分以内にサーバを立ち上げる
  • 1分以内にCPUやメモリを増やす
  • 要らなくなったらすぐ捨てる
などの機能が欲しいけどなかったので作った感じ.
その他特徴としてはそのホスティング上でサーバー構築時にユーザースクリプトを仕込むことが可能で,例としてOpenPNEを一発インストールの例,とかやってました.

このあとHadoopの話もあったんですがおなかがすきすぎたので離脱しました.
これもUSTありました(こちら).
別会場では「〜モバイルオープンソーシャルにも対応!〜 OpenPNE Ver3.6紹介」をやってました(UST).

大ヒットソーシャルアプリの裏側
KLab 高田敦史さん,新田祐介さん

最初はソーシャルアプリの企画の話.後半は技術的な話.
ソーシャルアプリは気軽に立ち上げることが可能なので,他のアプリとの差別化が必要不可欠とのこと.
その中で「恋してキャバ嬢」は見事に差別化に成功した(が,最大2000PV/sec以上を記録するなど,負荷分散大変だったそうです).
そして,テーマが被ったら新機能を開発して差別化を行わないと死ぬ.
その新機能を作っていくにあたって,エンジニアだからって企画に参加しないと「ゴメン,やっぱ変更して」なんて事もあり痛い目にあうこともあるようです(謀反といってましたw)
「エンジニアのみなさん,少しでもいいので企画のフィールドに首をつっこむと楽になれますよ」とのことです.

続いて負荷分散.モバイルサイトとモバイルソーシャルアプリの大きな違いは更新の多さ.
ウノウの個々一番さんもお話しされてましたが,更新が多いのでマスターDBへの負荷集中がやっぱりやばい.
なるべくDBにアクセスしないように,更新データの一部をKVSに分散させるなどをしているようです.
(KVSはTokyoTyrantのようです.アイテムとか体力とか,ロック,トランザクションが必要ないデータで利用している)
そこで問題になるのはKVSとDBとのデータの整合性なのですが,やはり保証させるのは難しいとのこと.
個々で興味深かったのは,処理の順番を「ユーザに損が発生しない順序で処理を行う(得する順番で処理を行う)」ということでした.
例えばアイテムで体力回復みたいな作業の場合,回復→アイテム消費にする.逆だとその間で何らかの処理が失敗したらアイテムだけ消費されて回復しなかったって事が起こり,ユーザさんが損してしまう.回復→アイテム消費の順番だと途中で処理をしくじってもタダで回復できたのでラッキーということで許してもらいやすいとのこと.当たり前といえば当たり前ですが,おもしろいなと思いました.

あとはOpenSocialなAPIとのやりとりでの注意点などで.API通信が常に成功する前提でアプリケーションを開発するのはまずいということでした.例えばトランザクション中にAPIへリクエストしたりすると危険だとか.
その他に,高速が蔵合成ライブラリのKGDの紹介や,SymfonyベースのKLabSocialGamePlatformの紹介とかがありました.

なぜかUST見つかりませんでした.どなたかご存じでしたら教えてください.
もう一方では「新しいPHPアプリケーションのテスト手法 」をやっており,こちらはUSTあるそうです→UST

Scaling the Worlds Largest Social Gaming Network Zynga Justin Waldronさん,Don Mositeさん
お話は英語でした.でもスライド見ればなんとなく何言ってるかはわかりました.
とにかく話のスケールが大きかったです.Zyngaの一日のデータスループットは1PB…あり得ないです.
どれだけユーザがいるかというと,facebookのゲームランキングではTop7までZyngaが占めており,毎月全世界で2億人以上が遊んでいるようです.
アメリカでは文化の一部としてとらえられており,ジュースなどのパッケージにも進出してコンビニで売っているそうです.
日本のソーシャルゲームもそうなるといいなと思いました.

最初は規模すげーなお話で後半は技術の話.
ここでもやっぱり規模がすごくて,1週間で1000台のサーバを追加したことあるそうです.やばい.
あとデプロイにBitTorrentを使っているようです.TwitterやfacebookもBT使ってるらしいですね.

その他,Zyngaが開発しているオープンソースな物として
  • Membase
  • mcmux
  • pecl-memcached
  • FontLabel
があるよと紹介していました.→ zynga's Profile - GitHub

これも残念ながらUSTないのかな…

まとめ
聞きに行った話によって印象は人それぞれだと思いますが,「ソーシャルアプリ,そしてその負荷分散」の印象がやっぱり強かったですね.やはり流れはソーシャルアプリなんですね.
自分はソーシャルアプリは作ったことないし,負荷分散するほど大規模な物に関わったことがないんですが,ちょうど「大規模サービス技術入門」を読んでいたのでけっこうすんなり話題について行けました.お薦めの一冊です.

さて,明日のテックデイはまさしくPHPの話中心になると思います.っていうかこんな時間まで起きてて明日行けるか若干心配です(現在午前4時)

以上がPHPカンファレンス2010ビジネスデイ,スチール的レポートです.書くの疲れた…
明日(っていうか今日)のテックデイも行きますが,これはさすがに全部書ききれないかもしれません.

では最後に,入り口でまつもとゆきひろさんとGREEの藤本さんの似顔絵が描いてある団扇をもらいましたのでその写真を.



んじゃっ

2010年9月14日火曜日

HP mini 2140にUbuntu 10.04をインストールしたときに無線LANが使えなかったら

ブログにGREEのいいねボタンとはてブのボタンをつけてみました.

こんにちは,スチールです.

facebookのもつけようかなと思っています.

さて,去年に買ってあまり使っていないHPのミニノートPC,
HP mini 2140なのですが,とりあえずUbuntuでも入れてみるかーと
思って10.04を入れたらネットワークが使えなかったので使えるように
なるまでの備忘録です.

っていうかこの機種,Ubuntuのインストールとの相性がそもそも
よくないみたいで,"hp mini 2140 ubuntu"とかで検索すると
つまづいてる人をよく見かけます.10.04はとりあえずインストール自体は
素直に終わります(たぶん)

ちなみにインストールにはUbuntuのサイトから日本語Remixイメージを
ダウンロードしてDVD-Rに焼いてインストール作業をしました.

で,インストールが終わっていざ再起動するとどうやらネットワークデバイスの
ドライバがないみたいでネットワークが認識されず.
しかも困ったことに無線,有線どっちもダメという状態.

とりあえず無線つかえるようにしたいなーと思ったのでそっちの作業から.
(実はまだ有線LANの方は放置しています…)
ちなみに,無線LANデバイスはBroadcom 4322のようです.

作業を行うに当たって,他のネットワークがつかえる環境からドライバを
ダウンロードして,USBメモリか何かで持ってくる必要があります.
ドライバは以下からダウンロードしてきました.32-bitのものです.

Broadcom.com - 802.11 Linux STA driver

で,それを適当な場所に持ってきて展開します.

#tar zxvf hybrid-portsrc-x86_32-v5.60.48.36.tar.gz

あとは展開した後のREADME.txtに書いてあるのを参考にしました.
まずはビルド.

# make clean
# make

ドライバインストール時にコンフリクトを起こすモジュールが
あるそうなので,該当するものを除去してブラックリスト入りさせます.

# lsmod | grep "b43\|ssb\|wl"

上のコマンドで該当した項目を,以下のコマンドで除去します.

# rmmod b43
# rmmod ssb
# rmmod wl

ブラックリストにも入れとく.

# echo "blacklist ssb" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf

ここまでやったらインストールをします.
READMEによるとインストール前にセキュリティモジュールが必要になる
みたいで,以下のどちらかのコマンドを実行する必要があります.

# modprobe lib80211
または
# modprobe ieee80211_crypt_tkip
僕の環境では上が正解のようでした.

ここまできたら以下のコマンドでインストールします.

# insmod wl.ko

このあとしばらくしてUbuntuのメニューバーの無線マークをクリックすると
接続先のサーチが始まりました.これで無事接続ができるようになりました.

と思ったのですが,この後再起動したらまた無線が使えなくなっているという…
ただ一点,違うところは起動後"ハードウェア・ドライバ"マークがメニューバーに現れます.ただ困ったことにインストールするにはネットワーク接続が必要のようで…

仕方がないので今までのインストール工程をもう一度繰り替えしてネットワークにつなげられるようにして,そのあとメニューバーの
システム→システム管理→ハードウェア・ドライバ
を起動させて"Broadcom STA 無線ドライバ"を有効にしました.
これで無事に再起動させても無線LANが使えるようになりました.

作業は以上です.お疲れさまでした.

何だか回りくどい感じになってしまいましたが,一度目の接続時に"ハードウェア・ドライバ"からもしかしたらドライバを有効にできていたかもしれないですね.

時間がある時に有線も使えるようにしないといけないですね.
やったらまたここで報告するかもしれません.

それでは今日はこの辺で.

んじゃっ

2010年9月1日水曜日

「夜カフェ4.0 〜え,Appleがライブ配信やっちゃうの?〜」やります

ツイートボタンを用意してみました。押してみてね!

こんにちは、スチールです。

毎年恒例の新iPodの季節がやってきましたね!
というわけで今回も追っかけます。

放送タイトル:夜カフェ4.0 〜え、Appleがライブ配信やっちゃうの?〜
放送URL:
  USTREAM:http://www.ustream.tv/channel/steelroom
  ねとらじ:http://std1.ladio.net:8070/steelroom.m3u
(今回もUstream、ねとらじのダブル放送です!)
放送時間:9月2日(木) 1時50分(日本時間)からイベントが終わるくらいまで
放送掲示板:Ustreamのチャットとソーシャルストリームを使う予定です。
(僕のアカウントは http://twitter.com/s_wool です)

夜カフェとはUSTREAM、ねとらじを使ってAppleな話題を中心に、
Webサービスからトイレまで、話題は何でもありの放送です。
今回はAppleの開催イベントの内容をおっかけます!
果たしてリークされた情報以外にも隠し球があるのか、楽しみですね。

放送時間中は私スチールが、skypeにログインしていますので、
放送に参加して話したい!という方は、僕のアカウントへご連絡
お願いします!

Skype ID:s_wool です。放送中いきなりの参加もOKですよ!
みなさまの凸お待ちしております。

っていうかAppleがイベントの様子をライブ配信されちゃうと
誰も見てくれない気がします!こわい!

んじゃっ!