Yokohama.pm出張版 - YAPC::Asia2009前夜祭に行って来たのでメモ
- 初めてのYAPC参加、Yokohama.pm参加。
- 記念にTシャツと手ぬぐい買いました。
- 手ぬぐいの方が原価かかってるらしい。
- あとは今日の目的のbtoさんとid:clouderさんとの名刺交換もできたのでよかった。
はじめの挨拶 - id:clouder
- YAPC::AsiaのTシャツと手ぬぐい1500円
- トイレがどこだとかそういう話
Schenker - PAUSE(id:JIRO) id:spiritloose
- 自己紹介
- Image::ObjectDetect
- 顔認証とかできる
- Image::ObjectDetect
似たようなフレームワーク
- Mojolicious::Lite
- Dancer
中身
Routing
- get '/' => sub {};
- get,post,put,deleteが使える
- バーチャルホストみたいなこともできる
- UAを見て分岐みたいなこともできる
パラメータ
- params->{a}とかparam(a)みたいに書ける
- ネストなパラメータも取れる
- entry[title],entry[body]の2つのnameがあるとすると、params->{entry}でtitleとbodyがkeyのハッシュが取れる
- pathinfoも取れる
- get '/user/:name' => sub { $args = shift; "$args->{name}" }
- set encodeでEncodingもできる
View
- Template-Toolkit
- get '/tt' => sub { tt 'index' } でindex.ttを使う
- ファイル使わなくても__END__以下に@@ indexとか書けばtt 'index'で呼び出すことができる
- ちょっとプロトタイプ作るときに便利
- Text::MicroTemplate
- get '/mt' => sub { mt 'index' } でindex.mtを使う
ヘルパ
- 簡単なのがあるけどあんまり意味ない
- helper foo => sub {} で get '/' => sub { foo('bar') }としたときにfooが使える
- こうしなくても関数定義しておけばいい
Before filter
-
- Beforeに書いておくとstashでそれを使い回せる
- 現在日時を出すnowを定義しておけばstash->{now}で呼び出せる
- Beforeに書いておくとstashでそれを使い回せる
定義済みの関数
- 色々あるよ
- request;response;でHTTP::EngineのRequestとResponse
- headersを使ってヘッダに何か加えることも可能
- 例:画像を返す
- content_type 'image/png' 指定して画像を返せばいい
- 例:画像のダウンロード
- send_file 'image.jpg' で画像のダウンロードをさせることができる
処理の中断もできる
- halt;を実行すればそれ以降は何も処理されない
- redirectでリダイレクト処理もできる
- その後の処理はされない
- エラー処理も
- defene_errorでエラー処理を定義
- raiseでエラー処理を実行
- その後は実行されない
セッション機能もある
- HTTP::Sessionを使ったもの
- getとsetで使える
サンプル置いてある
- DBIx::Classを使ったサンプルをgithubに置いてある
質問
- 質問じゃないけど今Plackで動くようにしました(id:miyagawa)
- pmをplに変えないといけないけど
YAPC::Europe参加報告 - id:kawanet
- まずは自分がお天気お姉さんのように発表しながら映れる方法
- 会場広いとスピーカーの顔が見れないでしょ?
- でもActionScriptなんだけどね
本題
まとめ
- 日本と海外のカンファレンスの違い
- 勉強しにくると交流しにくるの違い?
- LTは日本が学んだ物の一つだけど、それ以外でもまだまだ学べる所がある
- 奥さん方が交流できるパートナープログラム
- send-a-newbleという若い子を呼ぶための支援がある
- 海外のYAPCにも出かけよう!
PerlのWAF今昔 - ドワンゴ id:k-z-h
- WAFの役割
- 面倒なことを片付けてる
- セッション管理
- ユーザ管理
- ルートディスパッチ
- 面倒なことを片付けてる
遷移
- 暗黒時代
- cgi-lib.pl
- 領主の時代
- CGI.pm
- クッキー処理やらパラメータ処理やら
- CGI::Application
- パラメータをキーにしたディスパッチを行う
- plugin機構はないが、みんな勝手に生やして作ってた
- CGI.pm
- 帝王の時代
- Catalyst
- おそらく
- $cでコンテキストを使うのが便利
- Sledge,Mojo,Boofyもある
- Catalyst
WAF今
- 大体の「WAF像」ができている
- Catalyst
- Contextがんばりすぎ
- plugin使うな
- Contextの問題点
- 依存し過ぎ
- Catalyst::EngineをHTTP::Engineへ
- Configが必要
- Bread::Boardにしてみる
- Contextからこっちに依存がうつっただけで問題解決しない
- MooseX::Bread::Boardを開発中
- makiさん(id:lestrrat)に聞きましょう
- PSGI/Plack
- ここ最近出て来た
- id:tokuhiromさんに聞きましょう
みんなHTML5やろうよ! - id:amachang
HTML5
- 新しいHTMLの仕様
- 独自仕様の再定義
- 新しい要素、属性、意味の定義
- API仕様
- 独自仕様の再定義
- document.write,canvas,contentEditableなど少しずつ違うものを共通化した
新しい要素
- 色々あるけど書けばわかる。
DOMツリーとは違う、もう一つの木構造
- セクションツリー
- DOMとは関係ない
- 表立て表示ができるもの
- セクションツリーを作る要素
- blockquote,body,figure,td,section,asie,nav,article
- sectionとarticleの違いはHTMLコーダで議論されているがプログラマにとってはあんまり興味ない
セクションツリーで重要なこと
- 全ての要素は、必ず単一のセクションに関連づけられる
- 同じHTMLなら誰でも同じ構造
- 既存のHTMLもキレイな構造になる
HTML5の仕様書に沿って安直に書けば簡単に書ける
- ifの分岐など、プログラムに落とせる形でそのまま書いてあるので、それをそのまま実装すればいい
- 仕様書はネタの宝庫
Smoker - pluggable frame work モバイルファクトリー id:nekokak
- Smoker
- WAFだけでなくCLIで使うことも想定したフレームワーク
- Smokerの名前の由来
- タバコが灰皿にたくさんブッ刺さってる状態
- 特徴
- ぷらっがぶる
- Componentをたくさん作る
- webで必要なcomponentを作る
- CLIで必要なcomponentを作る
- githubにソースとサンプルあるから使ってみて
PHPとの付き合い方 - bto junichiro
エロサイト管理者の憂鬱II - yousukebe(id:kamawada)
- YAPC本編ではKailasというフレームワークについて話す
- 今回は自分のwebサイトについて
- 10個のwebアプリケーション+10個のエロサイト=60万PV/日
- スモールwebアプリケーションを作る理由
- 楽しい
- セルフブランディング
- 勉強
- お金
- 全て一人でできる
- どうやって作ってる?
Catalystのディレクトリ構造
フロント
- JavaScript
- jQuery,jQueryUI,Shadowbox
- CSS
- jQueryUI,YUI
- できないHTMLデザインは他の人で解決しよう
- twibはHTMLテンプレートを買ってる
- 無料ならOpen Source web design
運用
チューニング
他のtips
- ec2ならmemcachedでなくファイルキャッシュする
- DBの非正規化
- mod_perlの親子間でもメモリ共有
- 国内でエロサイトができない
- 国際間リバースプロキシ作ってる