YAPC::Asia 2007 2日目
2日目.あんまりまとまってないが.
Abusing Domain Specific Languages for Fun and Profit - Jesse Vincent
- DSLを作ろうという話
- DSLにはinternal DSLとexternal DSLがある.
- internal DSLはそのDSLを定義するホスト言語の構文で表現できる範囲で表現し,external DSLはホスト言語に制限されずに記述できるもの
- Jiftyで使われているinternal DSLを紹介する
- English風
- Jifty::DBI::Schema
- DBIx::SearchBuilderではスキーマをハッシュで表現しているのだが醜い
- より直感的なsyntaxになるように実装
- Template::Declare
- Test::WWW::Declare
- mechanizeっぽい
- このプレゼンもDSL
- japanese dsl作るのどうよ
Introduction to DBIx::Class - Jonathan Rockway
DBIx::Classの紹介.基本的な使い方がメインだった.
Asynapse - The missing links between servers and clients - Kang-min Liu
Patterns in Perl - Dave Rolsky
Perlにおけるデザインパターン(Gang of Fourのやつ).全体的に言語やCPANモジュールにあるのでそれを用いるべきという話でした.
走り書き
- Singleton
- synchronize, construction, global config
- Class::Singleton
- Factory
- OS, file type
- File::Locker
- Strategy
- Tk::grid, Tk::pack, Tk::Tiler
- Observer
- facade
- design
- memento
- Storable
- Iterator
- Decorator
- Class::Trait
- http://blog.plover.com/prog/design-patterns.html
Behind the Scene at LiveJournal: Scaling Storytime - Brad Fitzpatrik
スライドが見えず,ほんと走り書きのみ.
history
- one server
- two server
- 1db 1web
- 4 servers
- 負荷分散
- 5 servers
Jifty Now! - Audrey Tang
Audrey Tangではないった.スライドがよく見えなくてついていけなかった.
Writing Pluggable software - Tatsuhiko Miyagawa
Assurer - a pluggable server testing/monitoring framework - Gosuke Miyashita
- もともとサーバ構築テストのためのフレームワークだったけど,監視にも使えるのでは
- テスト結果をグラフィカルに表示できる
- Plaggerライクである
- yamlで設定
- Test::Base
- assets
- 4つのフェーズ
- Test->NotifyかTest->Format->Publishという流れになる
- yamlのvalidationを行うことができる
- シェルモードを用いて対話的にテスト
- 複数のサーバから同時にテストを行うことができる.
- ポートスキャンして自動的にconfigを作成
- Assurer::TestでTest::Moreっぽくテストコードを書ける
- Assurer::Test::WWW::Mechanize
- Mechanizeはyamlでは扱いにくいので
Lightening Talks
Perlbal selector Plugin - Atsushi Kobayashi]
ちょっとselectorが何のことなのかよくわからなかった.
ブラウザ履歴を利用したRSS Auto-discovery - ma.la]
- http://ma.la/files/yapcasia2007/
- サイトのRSSがみつからないとき,自動的に見つけたい.
- ブラウザの履歴からまだ登録していないものを抽出するとか.
- LDRに登録されているサイトから探せばいいのでは?
- LDRに登録されている50万サイトのURLのハッシュ値を生成してマッピングを作る.
- RSSを取得したいサイトのURLからハッシュ値を生成.マッピングに存在するかチェックする.
- そのURLがLDRに登録されているURLと同じ階層にあるとはかぎらないので,階層構造を遡りながら毎回ハッシュ値を作成しチェックする
- 存在すれば,そのサイトのURLからRSSを配信するURLを取得するのかな?
- この辺で終了
BabelBee - Collaborative Translation Tool - Chia-liang Kao
- Asynapseの人
- ソフトウェアの翻訳をsocialにやろうという感じかな?
- 似たような文を検索する機能があり,一度に編集することができるっぽい
Moxy - Mobile Development Proxy - ふしはらかん
Bytecode for Wikipedia - Ingy dot Net
なんか新しいパーザをつくったとかいう話だっただが,よくわからなかった.表題とは別物?
Angerwhale - Jonathan Rockway
- blog2.0
- RDBMSを使わず,記事はファイルにして書き込む.
- webから投稿するのではないみたい
Expectをつかったサーバ管理レシピ - 長野雅広
- 複数のサーバに対して同じコマンドを同時に行う.
- sudoとかでパスワード入力でこまる
- そこでExpect.pmを使う
- passwordというプロンプトが出たときはパスワードを入力する
- IO::PromptとString::ShellQuoteを使っている
Debugging the De Bruijn Sequence - Mark Jason Dominus
何もないところからプログラムを作るのではなく,彫刻のようにいらないものを削って行くべきみたいな話で,任意のASCII列を含むテキスト(Bruijn Sequence)からプログラムを削り出すみたいなことを言ってた(ネタ)
Device::USB::MissileLaunchers (live) - Yappo
USBにミサイルをくっつけて発射.ほんとに生中継でした.
Spidernomic - A self-modifying HTML/Perl/JS file/game - Thilo Planz
本題に入る前に終ってしまった.
Perl Program Repair Shop and Red Flags - Mark Jason Dominus
- Perlのコードの添削.
- 同じようなコードを書くな.コードが読みにくくなりバグがあっても気づかなくなる.
- 日付は内部で扱いやすいようにしておいて,出力するときのみ変換する