YAPC::Asia 2日目のまとめ
もう一週間もたってしまいましたが、YAPC::Asia 2日目をまとめました。
※あくまでも私の聞いた(つもりの)内容と私が書いたメモが元になっておりますので、実際のセッションや発言とは異なる可能性があります。今回は資料がアップされていることが多いので、資料も見てくださいね!
How regular expressions work internally
Jose Castroさん
資料: 現時点ではアップされていないようです
- Internally っていうから、コアな話かと思ったら、意外と初心者向けでした
- 箱を使って、マッチとかバックトラックとかを説明してて、いい感じでした
- 正規表現を説明する際のいい方法だと思う
- QA
- aaaaaaaaaa =~ /a+a+a+a+b/ のマッチ(バックトラックを延々繰り返すので非常に遅い)でアンカー($)をつけたらどうなる?(速くなるのではないか?)
=> 分からないけど、もっと遅くなるかも
-
- 電話番号の国際的、汎用的なマッチとかどうする?
=> *::MobilePhone::{JP,UK}みたいなのを作れば良いのではないか?
The Way To Rakudo *
Jonathan Warthingtonさん
資料: http://www.jnthn.net/papers/2009-yapc-asia-rakudo.pdf
- Perl 6 の話
- Perl 6 は仕様で、実装として Pugs や Rakudo *(「らくど・すたー」と読む)がある
- Pugs の開発は止まったので、今一番ホットなのは Rakudo *
- 2010 Q2 リリース予定
- Perl6 の Significant subset
- 基本的な機能
- OOP の大半
- Multiple Dispatch
- Junction
- if ( $dice == 2|4|6 { say "even" } のようにに書けるらしい
- あとでリリースされる機能
- standard grammer
- > これやると、早くなるらしい
- メソッドのシグニチャ
- 遅延評価
- こんな感じのことができるらしい。http://googlewhacks.blogspot.com/2007/05/yapcasia13.html
- モジュール
- 現状もつかえるが、CPAN ほど使い易くないので
- Perl 5 との統合
eval ('use CGI; $cgi = new CGI', :lang<perl5>) $cgi.header #perl6 style
とかやっていた。
- 今回正式リリースするのは、フィードバックがほしいから
- 開発版だとあまり使ってもらえない
- 徒歩と空路
- 徒歩: やること多いけど、楽しい (Rakudo *のコンパイラがこれにあたる)
- 空路: 楽 (Rakudo * の目指すところ)
- QA
- inline module がどうとか、他の言語のマッピングがどうとか言っていたようなのですが、ちゃんと聞き取れませんでした...
Practical Bug Reporting/もしもバグを見つけたら
Kenichi Ishigakiさん
資料: http://www.slideshare.net/charsbar/practical-bug-reporting
CPAN は良くテストされてる
=> 数字を交えつつ説明
けど、2割くらいは通らないテストがある
=> いつかはバグにぶつかる
そのとき、どうするか、という話
- リポジトリ見る => もう直ってるかも
などなど。割と文化的な話。
QA
- RT 受ける側の話(Encode の Dan さんより)
=> 難しい。。。どうしましょ?
-
- より上流に上げるとか?
小規模 Web サイトのための CGI フレームワーク「Sabae」
Susumu IWATA さん
資料: http://www.slideshare.net/issm/20090911-yapcasia-2009
- Web Application Framework の話
- URI に対するアクションを YAML で定義する
- view は TT(Template Toolkit)
- デザインがきれい
- Perl とは関係ないらしいのですが、自己紹介で使っていた dqwm(http://www.dqwm.net/) が面白かった
job queue manager Qudo
Atsushi Kobayashiさん
資料: http://nekokak.org/presen/yapcasia2009-qudo/
"Lego programming" with Lorzy
Chia-liang Kao さん
資料: http://www.slideshare.net/clkao/lego-programming-with-lorzy
- パーツを組み立てるような感覚でプログラミングできる環境
- 見た感じでは Yahoo! Pipes に似ている(?)
- RTシステムを使ったデモで説明
- 内部的には Perl を拡張した Lisp っぽい DSL
- 型付けをもつ
- 引数/戻り値のチェックができる
※英語が早くて、1/3 くらいしか理解できませんでした。。。
Basic Mechanism of Object-Oriented Programming Language
makoto kuwata さん
資料: 現時点ではアップされていません。ここ(http://www.kuwata-lab.com/)にアップされる(?)
=> とくに目新しい話は無く、正直言って失敗でした。。。素直に Dan さんのセッションを聞いておくべきでした orz
はてなブックマークのシステムについて
Naoya Ito さん
資料: http://d.hatena.ne.jp/naoya/20090911/1252670407
- はてなブックマーク(http://b.hatena.ne.jp/)の実装に関する説明
- 規模
- 30万 users
- 400万 sessions/月
- 1600万 URIs
- 4700万 BookMarks
- 5000万 tags
- あるテーブルを select count(*) すると 3億レコード
- データベース
- MyISAM
- エントリー 3GB
- ブックマーク 5.5GB
- タグ 4.8GB
- HTML 200GB(zlib で圧縮している)
- サーバ
- httpd 20〜30台くらい
- mysqld 20〜30台くらい
- その他をあわせて合計で 70台くらい
- Perl のソースコード
- 10万行ぐらい
- WAF, ORM を含む
- 本体だけだと 45,000 行くらい
- 1200ファイル(.pm ファイル), 本体だけだと 600ファイル
- 10万行ぐらい
- 開発体制
- 8名くらい
- director 1名(伊藤さん)
- Engineer 3名 + アルバイト1名
- Designer 1名 + アルバイト1名
- アーキテクチャ
- Perl
- 5.8
- mod_perl
- WAF は自社製(Ridge)
- ORM も自社製(DBIx::Moco)
- JavaScript
- Ten.js(自社製のライブラリ)
- C++
- 本文抽出
- 検索・カテゴライズの精度に関わるので重要
- HTML::ExtractContent
- 自社で開発したモジュール。CPAN にもアップされている
- HTML からサイドバーなどを除き、本文を抜く
- HTML をブロックに分け、スコアリングし、スコアの高い部分を本文とみなす仕組み
- HTML::LayerdExtractor
- 2ch のまとめサイトが抽出が難しいらしい
- 全文検索
- 全文書検索 => PFI 社の Sedue
- 自分のブックマークから => 自社開発
- Sedue
- 圧縮 suffix array というアルゴリズムを使っている
- これに TF/IDF などのヒューリスティック、BM 数・時間などを組み合わせる
- 個人用(全文検索)
- 関連エントリ
- ブックマークに関連するほかのエントリを探す機能
- PFI 社のレコメンドエンジンを使っている
- いろいろ試したところ、ブックマークのタグを入れるのが一番精度が良かった
- ブックマークに関連するほかのエントリを探す機能
- カテゴリー分け
お手軽・お気軽・お気楽なサーバー&クライアント
Yuji Suzuki さん
資料: http://docs.google.com/present/view?id=dhjm998r_172gvndsfg3
- POEIKC による、クライアント・サーバのデモが中心
- POE::Component::IKC というモジュールがある
- クライアント・サーバを作れる
- リモートの関数を実行できる
- P2P 通信も可能
- が、面倒
=> POE::Component::IKC を簡単に使える POEIKC を作った
- . サーバとして、poeikdc start する => 空のサーバが立ち上がる
- . モジュールを書く(普通の Perl のクラスを書く)
- . パス(@INC)を通す
- . サブルーチンを呼び出す
という簡単な手順で通信ができるらしい。
all your base32 are belong to us
Yoshinori TAKESAKO さん
資料: 現時点ではアップされていませんが、 http://conferences.yapcasia.org/ya2009/talk/2226 からコードを見ることができます
ネタ系だが、セキュリティの研究をしていて、こういったもので
ファイアウォールのルールをすり抜けてしまうよ、という警告的な
意味もあるみたいです。