19:00 にスタートです。詳細はこちら。
出ますので、いつものようにメモをまとめる予定です。ustreamはこちららしいです。
モダンコマンドラインツール - xaicronさん
cpanminus
- CPAN::Shellの代替
- Plackのリリースが伸びる原因に!?
- cpan の問題点
- 起動、メモリ
- Bundle::CPANを入れるのが大変
- コードがカオス
- CPANPLUS
- 5.10 からコア入りしているけど・・・
- 重過ぎる
- miyagawaさんが40分くらいで作った
- 特徴
- 単一のPerl Script
- 高速、省メモリ
- プラガブル
- インストール → ダウンロードしてchmod +x か、普通にインストール
- コマンドは cpanm
- デフォルトでは表示をほとんど捨ててる。Y/Nが必要な時は --interactive
- Pluginは17個
- backpan とか
- 今のとこは開発者向け。自己責任で
- ~/.cpanm/plugins に保存する
- DEMO
Kamui - Plack base frame work / nekokakさん
AnyEvent::IRC::Server / kanさん
Inside mbga Open Platform 予告編 / ZIGOROuさん
- DeNA Technical Seminar の予告編
- People API
- ユーザプロフィール、フレンドの取得
- モバゲーでは最高64万人フレンドの人が居る
- テーブルが色々散っていて、JOINできない
- friend , app_owner, people テープルなど
- 例
- 最初にfriendテーブル(ここで10万かも)
- 次にapp_ownerテーブル
- max_allowed_packet この値を超えると怒られる
- 5.1だと1MB
- int(10) なので 10万件ほど
- 安全な件数になるように、peopleテーブルを分割する(MEMORYテーブル)
- 自前の並列ベンチマークツール
- 例: INとtemporary table とどっちが速いのか
- Message API, Acrtivity API
- 即時性は不要 ← Q4Mを利用
- 生成日時でパーティショニング(1日単位)
- サマリーテーブル、メッセージ用のqueue
- MySQL Partitioningについて
- rangeで分割でき、selectにrange条件が入る場合
- primary key や UNIQUE 制約が必要
- queuが2つある
- 質疑応答
- Q. マスタから引いて重いのは校正の問題では?
- A. そうでもない。件数がすさまじい。構成も初めしょぼかった
Data::ObjectDriver / clouderさん
- D::ODとは?
- 元々MT::ObjectDriver
- キャッシング+パーティショニングのサポート
- マスタースレーブ構成の意識 (r_handle, rw_handle)
- thin → 自分で実装する必要がある。has_aはかろうじてある
- クラス構成
- Driverクラス→キャッシュへの接続方法等
- Objectクラス→モデル
- 他、ResultSet(開発途上?), Profiler, GearmanDBIなど
- モデルはBaseObjectのサブクラスとして定義
- insert → new & save または bulk_insert
- select → lookup または search または lookup_multi
- update → save
- delete → remove
- has_a (キャッシュの指定も可能)
- add_trigger → 豊富
- キャッシュの使用 → Driverを変更するとよい
- Driver::Cache::Memcached など
- Master/Slave → Driverのr_handleとrw_handleをoverride
- パーティショニング → Driver::Partition を利用
- 希望
- Data::Pageに対応して欲しい
- count関数使いたい
- 素のSQLの実行
- JOINとか
Introduce Application Framework Polocky / polockyさん
Twib - 一人で作るはてブもどき編 / yusukebeさん
- Twibはツイートを元にしたはてブもどき
- ハードウェアは?
- Appサーバ×1 と DBサーバ×1 を共有
- 初期構成
- 問題
- ツイートが多い : 1.5/秒
- Q4Mを導入、Crawlerを別プロセスへ
- StreamReader を導入
- 実際のログを表示 / ツ一ターのログとCrawlerのログ
- 画像API: ついブ数、ユーザ画像、favicon
- Noe - 2クラス程度の似非フレームワーク
- テンプレは Text::MicroTemplate
- チューニング
- DBIx::Class のクエリを調整
- 非正規化、likeの廃止
- とりこぼし対策 → プロセス数増加、 topsy APIなど
- 今後 → はてブもどき? マーケティング? がんばりんごする
OpenSocial Moblie Application Development / typesterさん
Moxy for OpenSocial
- moxy
- モバイルアプリ開発用のプロクシサーバ
- OpenSocialプラグイン
- OAuth署名
- リンクを辿れるように (通常はパラメータのみを渡すので)
- OpenSocialコンテナを通さなくても開発が可能
- デモ: OAuth機能
- 直接appにはGETリクエストできない (OAuthの署名があるもののみ)
- プラグインがあると、OAuthの情報を送れる(設定タブも加わる)
- 制約: POSTはまだ無理な気がする。開発者募集
Module::Setup 2 / yappoさん
- スマイリーハッカソンで機能追加された
- みんながパッチあててくれた
- h2xs, pmsetup, ModuleStarter
- pmsetupベースに、雛形から作れるように
- チュートリアル
- cpanm Module::Setup
- module-setup --init で設定 : フレーバーができる
- config.yaml いじれば初期情報は変えられる
- module-setup Your::Class
- GitHub フレーバー
- 他、CatalystStarter, PBP, XS などのフレーバー
- フレーバーの編集方法
- --test でフレーバーのテスト
- フレーバーの継承 (パッチ)
- プラグイン
- 依存が多過ぎる
- 今後 Module::Setup::Coreを作る予定
- 質疑応答
- Q. Module::Starter のような後からファイルの追加は?
- A. 仕組みはある。使い方を忘れた。今後もっと簡単にするのでそちらを。
Template::Semantic / tomi-ruさん
最新Perl事情 - 5.12の新機能完全解説! / gfxさん
- Parrot上で動く噂はなかったことに
- 5.10の後継
- 機能の整理 (Depricatedするなど)
- use 5.011 = use strict
- sub foo { ... } が動く (... はdie)
- keys @array や each @array (Perl6的)
- values @array もできるけど・・・
- delete local $hash{elem}
- package Foo 0.009001 ← コンパイルと同時にバージョン設定
- overload
- PL_keyword_plugin : よりよいソースフィルタ
- deprecations
- *.pl は軒並み駄目
- UNIVERSAL isa や can (blessedとかを使う)
- Switch (switchを使う)
- bytes.pm
- Perl 5.14へ (妄想)
- 質疑応答
- Q. ブロック渡しは今でもできるのでは?
- A. sub {} で。
"Webを支える技術"の告知 / ikasam_aさん
感想
kidとかTeedaとか好きだったんで、Template::Semanticには興味津々でした。
後、 5.12 の話も大変参考になりました。 ...演算子(Yada-Yada-Yada operator)はシンプルでいいですねww 5.14の開発にも期待です。
最後に、主催のid:clouderさんと懇親会幹事のid:masartzさん、お疲れ様でした!
*1:やっぱ Mouse ?懇親会で、Mouseはコアにするのはちょっとなーって話。