Yokohama.pm テクニカルトーク #5 に参加してきた

Yokohama.pm テクニカルトーク #5 を開催します(追記あり) - Yokohama Perl Mongers
前回に引き続き、参加させていただきました。


今回もid:hirataraさんが素晴らしい記事を書いてくださっています。ありがとうございます。
今日は Yokohama.pm #5 の日です - 北海道苫小牧市出身のPGが書くブログ


以下は自分用メモ…。自分で聞いて理解できた(かも?な)ところを書いてみました。
せっかくの自分メモならもっと感想とか思ったことを書いておけばよかったなー。反省。

■Modern Command Line Tools (id:xaicron[さいくろん]さん)
最近のコマンドラインツールについて

  • cpanminus
    • CPAN::Shellの代替
      • CPAN起動遅いしメモリ食うしBundle::CPAN入れないと使いにくいしコード読みづらいし…
      • CPANPLUSあるけど まだ微妙
    • 単一のPerl Script ポータブル、高速、省メモリ、プラガブル
    • wgetでダウンロード or githubから持ってくる
    • モジュール名指定/ローカルフォルダから/URL指定で(githubからも可)/interactiveモードも
    • Plugin 現時点で17個
      • $HOME/.cpanm/pluginsに置く
    • デモ
  • cpan-outdated
    • cpan -rの代替
    • パイプで繋いで一気にイケるよ


■Kamui Plack base framework(id:nekokakさん)

  • Kamuiとは
    • WAFだけでなくCLIで使うことも想定したフレームワーク
    • SledgeとArkをつまみ食い
    • Mobileプラグインが豊富
    • Object::Containerみたいなのが使える
    • config.pl/config_local.pl
      • Arkみたいに、yamlじゃなくてコードで書く
    • **::Container
      • Object::Containerのようなカンジで使える
      • registerで登録したもの、名前空間を使ったアクセスが可能
    • view
      • TT, TMTE, JSONをサポート
    • dispatcher オリジナル
    • controller sledgeのようにhookできる
  • デモ
    • mobile対応の絵文字きりかえできてるよ!
      • "{emoji:E6D3}"のような書き方で
  • 使ってみてね 何か分からないことあれば聞いて下さい!


■AnyEvent::IRC::Server (id:mikihoshi[kan]さん)

  • IRCとは -> みんな使ってるよね
  • AnyEvent::IRC::Serverについて
    • 拡張して利用することを想定して作っています
  • デモ
    • 数行のスクリプトIRCサーバーとして繋げるものが立ち上がる
    • 50行ちょっとでTwitterのstreamを流すことができる!
    • ギャル文字変換Proxy!
  • 今後の展望
    • イントラ向けのIRCサーバーとしての機能を実装したいな
    • 複数サーバーとの接続を可能にしたり
    • AnyEvent::IRCに同梱されるとイイナ!


■Inside mbga Open Platform 予告編 (id:ZIGOROuさん)

  • 再来週のtechnical seminarの予習
  • People API
    • mbgaには友達人数の制限がない!
    • ユーザーと友達のマスタテーブルが物理的に違う場所なのでjoinできない
    • まずはfriendsテーブルで友達一覧を取得
    • app_ownerテーブルでin(?, ?, ?)に含める
    • MySQLのmax_allowed_packet制限
    • peopleてーブルへのアクセスは閾値を超えていた場合はtemporaryテーブルを作ってbulk insert
  • Benchmark tool
    • 作りました
  • Message API, Activity API
    • 個人へのメッセージ 分かりやすく言うとSNSスパム
    • Q4Mで処理している
    • 1日単位でテーブルをパーティショニング
    • MySQL Partitioningの話
  • Message APIの仕組み
    • Workerを2つに分割 DBへinsertするものとmemcacheに突っ込むもの
    • replication遅延が問題 そのへんを考慮して対応


■Data::Object::Driver (id:clouderさん)

  • D::ODとは
    • Simple, transparent data interface, with caching
    • 組み込みでキャッシングとパーティショニングをサポート
    • マスタスレーブ構成を考慮した作り
    • 実装が薄くて使いやすい
  • クラス構造
    • Driverクラス、Objectクラス
      • その他ResultSetやProfiler、GearmanDBIなど
  • 使い方
    • テーブルのObjectを作成、newで作成、lookup/searchで取得、saveでupdateなど
    • add_trigger 色んなところで追加できる
    • キャッシュを使う -> ドライバを切り替えるだけでおk
    • マスタスレーブ対応 -> r_handle, rw_handleを定義
    • パーティショニング -> …よくわからなかった ><
  • 不満とか希望とか
    • Data::Page対応とか素のSQLとか使いたいなー


■Introduce Application Framework Polocky (id:polockyさん)
ポロキィさん livedoor wikiシステムエンジニア

  • Polockyについて
    • HTTP Webで使うことを前提としない
    • githubに上がってます
  • デモ
  • CatalystっぽいWAFを乗っけることができる Plackで起動
    • 色んなWAFを乗せられる!
  • SimpleなWAFで軽い処理を
  • CLIだけでも使えるよ
    • scriptいろいろ
  • wiki rankingがPolockyで動いてます


■Twib 一人で作るはてブもどき編 (id:yusukebe[ゆーすけべー]さん)

  • Twib -> Twitterのホットエントリーサイト
  • ハードウェアリソース
    • Appサーバ x1, DBサーバ x1
  • 収集プログラムとクローラーの2つ
  • Tweet数が増えてきた
    • Q4Mの導入 クローラを複数動かせるようになった
    • FeedReaderの他に、StreamReaderも動かす
  • 画像APIサービス
  • Noe
    • 2クラス+HTTPx::DispatcherによるWAFのようなもの
  • チューニング
    • DBIx:Classが吐くクエリをみて調節など
  • 取りこぼし問題
    • APIをギリギリまで
    • topsy APIを使うなど
  • 今後もがんばりんご!!


OpenSocial Mobile Application Developmen (id:typesterさん)


■Module::Setup 2 (id:Yappoさん)

  • h2xsを使ってた Module::Starterじゃなく yet anotherなもの
  • Module::Setupのチュートリアル
    • cpanmでいれてね
    • initコマンドでSetupすれば、それ以降はmodule-setupコマンドで簡単に作れるようになるよ
    • 最初からgithubで使ったりの設定ができる
    • フレーバーを自分で作ったり


MacBookバッテリー切れた!

id:tomi-ruさんのTemplate::Semantic とても興味深く、使ってみたいと思った。
id:gfxさんのperl5.12解説 面白かった! ...; どうなるんだろうなー、これからのPerl


懇親会でも初めての方や久々の方と色々お話できて、とても楽しめました。
皆様、ありがとうございました!