今年もやって来ましたPerlの祭典。昨年と同様に、東京工業大学大岡山キャンパスです(東工大++)。でもって、今日は前夜祭です。
今回はgihyo.jpさんの特集とコラボ(?)させて頂けることになりましたので、そちらも合わせてご覧下さい。
あいさつ
YAPCのTシャツと手ぬぐい(!)が売ってるとのこと。
acotieさん「AnyEvent的ななにか(仮)」
spiritlooseさん「Schenker - DSL for quickly creating web applications in Perl」
このセッションに関しては、gihyo.jpさんで参加レポートを書かせていただきました。gihyo.jpさんの特集記事もあわせてご利用下さい。
- POUSE IDはJIROさん
- Image::ObjectDetect, Text::Migemo など
- Schenker とは?
- Sinatraとは?
- 記法はSinatraでそっくり
- Dancer、Mojorisious::Liteも同様のもの
- HTTP::Engineとは?
- いいこと: とても簡単!
- ヘルパがいらない、設定がいらない
- 大体の物は入っているが、モデルははいってない
- コマンドラインオプションの説明
- HTTP::Engineインタフェースを指定可能
- Configの説明
- Routingの説明
- get '/' => \⊂ のように正規表現で指定
- Parameter
- 裸のparams関数やparam で読み込める
- Path Parameters
- my $args = shift;
- Encoding
- set encode
- View
- TT:
- tt関数で呼ぶ。__END__以下にHTMLを書くことも可能
- Podwalker にも対応
- Text::Microtemplate
- mtで呼ぶ
- TT:
- Helpers
- Before Filters
- Beforeで、最初に走るフィルタを定義できる
- その他、関数群
- statusとか、bodyとか、headersとか、backとか
- Sinatraとほぼ同等
- 画像の取り扱い
- イメージの出力方法や、send_file 等
- halt; で、以下の処理を通らないように出来る
- define_error: statusにより、エラー画面を定義
- enable 'sessions'; とすると、セッションが使える
- github上に、サンプルアプリケーションがある
- TODO
- 質疑応答
- Q: miyagawaさん「今、Plackで動くようにしました。3行で。」
kawanetさん「YAPC::Europe 2009(ポルトガル)参加報告」
- スライドに自分の姿が映って、プレゼンできる!(すごい!)*1
- 調整がすごく大変そう。WEBカメラ撮るので、明るさも必要。
- YAPC::Europe 2009は、リスボンで開催
- 一番国際的
- Action Scriptでやってる(Perlじゃない)
- ブルーバックがなくてもいい
- 画像を一定時間ごとに重ねると千手観音になれる
- もう一つしかけ、指サックでWEBカメラで操作可能*2
- Wiiリモコンより断然安い!(100円程度)
- YAPC::Europeの特徴
- 珈琲ブレークが多い
- BoF多い
- 2008年 Copenhagen
- スナックがかっこいい
- OSDC.TW 2009
- その他、気がついた点
- プレゼン中のツッコミが多い(日本ではdanさんだけ)
- 女性が多い
- カンファレンスに求める価値(交流?勉強?)
- send-a-newble: 若者への支援。平均年齢を下げる。
- ビデオや会場中継は、日本の方が進んでいる
- まとめ
- 海外のYAPCにも行きましょう
- 英語力より、まとめたい気持ちが大事
k-z-hさん「PerlのWAF今昔」
このセッションに関しては、gihyo.jpさんで参加レポートを書かせていただきました。gihyo.jpさんの特集記事もあわせてご利用下さい。
- WAFって?: Web Application Framework
- ウェブアプリケーションの、面倒なアレコレを片付ける
- セッション管理、ユーザ管理、ルートディスパッチ
- 他の言語のWAFも色々ある
- 時代遷移
- PerlのWAFの昔は手探り状態だった
- 今のWAFは、おおまかな「WAF」像ができてきた
- Catalystへの不満
- Contextが頑張り過ぎ、Pluginは禁止
- Contextから脱却したいが、それならHTTP::Engineでいい
- HTTP::Engineでは、依存性が面倒くさい
- Bread::Board ←これだと、ここに依存性が移っただけ
- MooseX::Bread::Board を開発中
- 他、PSGIとか
- まとめ
- HTTP::Engine + Bread::Boardが一番おすすめ
amachangさん「みんなHTML5やろうよ!」
- 勉強ができない、バカ、プログラマで検索すると出やすい
- HTML5とは?
- 新しいHTMLの仕様
- 独自仕様の再定義・新しい要素、属性、意味・API
- 独自仕様の再定義
- ブラウザみんなやり放題
- document.write, canvas, contentEditable
- 新しい要素
- nav, aside, article, section、等
- APIの定義
- HTML5を使うと、JSで3Dまでいける
- まあFlashは必要だと思うけど
- contentEditableの例
- もう一つの木構像
- 1つめの木はDOMツリー
- セクションツリー
- ポイント
- 要素はすべて、単一のセクションに関連する
- セクションツリーのアルゴリズムは定義されている
- 既存のHTMLでも、うまくセクションツリーができる
- サンプル:
- outline.js: 既存のページの木を表示する→意外と奇麗になる
- さらに、それを元に目次を作ったり
- 実装は簡単: 仕様はifとotherwize、変数は斜体で書かれてたり
- 仕様書を読もう
- パーサとかも、実装に落とし込める形式で文書化されている
- まとめ
- HTML5楽しい
sugyanさん「全裸でワンライナー(仮)」
このセッションに関しては、gihyo.jpさんで参加レポートを書かせていただきました。gihyo.jpさんの特集記事もあわせてご利用下さい。
nekokakさん「SmokerっていうぷらっがぶるWAFをつくってみたよ!」
- Smokerとは?
- WAFだけでなく、CLIでの利用も想定
- HTTP::Engine + HTTPx::Dispatcher
- 名前の由来は、灰皿に煙草が大量に刺さるイメージ
- 特徴
- 例: no pasteを作る
- コンポーネントを定義し、組み合わせる
junichiro x btoさん「PHP的な何か(仮)」
このセッションに関しては、gihyo.jpさんで参加レポートを書かせていただきました。gihyo.jpさんの特集記事もあわせてご利用下さい。
- 2名でのセッション
- 受託開発ではPHPが多い
- Perl Is unDead
- PHPの方がユーザが多くないか
- ユーザ層が違う。PHPは初心者層が多い
- 遊べる言語で、楽しんでやっている
- JPA
- PHPは多い。多いは正義である。
- 確率論としては、ユーザ数が多ければいい人材も多い
- 会社で選択される動機になる
- 初級者層へのアプローチが必要ではないか
- 非エンジニア視点で、PHPを分析する
- 関数が多い
- プログラマとしては気持ち悪いが、目的を達成する手段は多ければ多いほどいい
- ヘッダの自動出力、$_GET, $_POST
- アプリを作りたい人だけに、これを求めるのは酷
- テンプレートエンジン(テンプレート言語)
- 女子率が高い(非常に重要)
- 例: 福岡のPHP勉強会の女子率が高い
- PHPを使う某社の方は、結婚ができた。PHPをすると結婚できる
- JavaScriptでは結婚できないかもしれない
- 非エンジニアが、すぐ使える
- 関数が多い
- 例: 現在時刻を表示する
- PHP最強、Perl最愛
- Perlへの提案
- headerや$_GET, $_POSTのあるようなキラーフレームワーク
- 参考: WordPressポリシー
- まとめ
- デザイナも使えるような、キラーフレームワーク
yusukebeさん「エロサイト管理者の憂鬱2」
- 自分のWEBサイトのノウハウの紹介
- 普通10 + エロ10 、 60万PV/日
- なぜ小さなWEBアプリケーションを作るのか
- 楽しい、ブランディング、勉強、お金など
- Perlを使用
- Catalyst, Mouse(Mooseじゃない), DBIx::Class, TT
- Catalystを使う上での、ディレクトリ構造
- db/update_schema.pl
- DBIx::Class::Schema::Loaderの利用
- たくさん作って、自分なりのスタイルを作るのが重要
- フロントエンド
- HTMLデザイン
- fshinさんに誉められた!
- 実は、買っていた($50〜$75、WooThemes)
- 無料であれば、Open Source Web Designが使える
- 運用
- フロント
- mod_rewriteでバックエンドに飛ばす
- キャッシュ入れる
- バックエンド
- MaxSpareServersなどは低めに(12とか)
- 収入はどうするか
- アフィリエイト収入
- 気楽、成果報酬、継続報酬(会員を継続すると、報酬が入る)
- チューニングする(台数を減らし、コストを落とす)
- mod_perlで静的ファイルを扱わない
- mod_expireさせる
- Workerの利用 (使うモジュールを減らし、メモリ使用量を押さえる)
- 他、DBの非正規化
- Plackを使う → Noeを開発中
- 「hirataraさん、手を止めて下さい!」な内容なので略
- ルータの負荷が大きく、ルータを交換
- まとめ
- 小さいアプリの開発は面白い
- 最適化は奥が深いが、個人ならではの工夫ができる
- この内容は雑誌に載るかも
- シューマイ食べて下さい!!
懇親会
焼売を3個食べました!