本を読む

読書やコンピュータなどに関するメモ

YAPC::Asia Tokyo 2010 2日目に参加

 Perlのイベント、YAPC::Asia Tokyo 2010の2日目に参加してきました。初日と同じく楽しく、あっという間の1日でした。あとLTレベル高くて面白いなぁ。

 以下、ほぼメモそのまま。

How Xslate Works (gfx)

  • 次世代テンプレートエンジンXslateのしくみ
  • Xslate
    • テンプレートエンジン
    • XSで書き始めた
      • makamakaさんがpure perl版も作った。XS版の速度は出ないけど
  • 特徴
    • 速い
    • 複数の構文。TT互換など
    • エラーが親切
  • なぜ
    • テンプレートエンジンはすでにたくさんある
      • TT互換のものも
      • Text::MicroTemplateも最近人気
    • どれも一長一短。完璧なものはない
      • TT2:機能が高い。すごく遅い、複雑すぎて同じことがいろいろな書き方になる、XSS
      • HTML::Template::Pro:速い、機能も必要なものに制限、Perlインターフェイスが使いづらい、貧弱、XSS
      • Text::MicroTemplate:十分速い、依存がらみがインストールしやすい、XSS対策、なんでもできすぎる、Perlプログラマ以外には使いにくい
    • Xslateではこれらの問題をなくす
  • Text::ClearSilverに影響を受けた
    • ClearSilverのPerlバインディング
  • Text::Xslate
    • 既存のものよりはベター
    • CPANでは一番速い
    • 安全性
  • 使い方
    • Text::Xslate->new()->render()
    • new()したインスタンスを再利用すると高速化
    • render_string()は遅い。サンプル向け
    • 行頭":"でテンプレート
    • #でコメント
    • メンバー参照は"->"じゃなくて"."
    • 依存は多い
    • xslateコマンドも入る
      • コマンドラインのときだけARGVが使える
  • ver 0.2010 さきほどリリースした
  • エラーのとき、該当個所とその前後の行を表示
  • -s TTerse でTT互換
  • TTの100~158倍ぐらい速い
    • Sam Grahamのレポートによると最速
      • キャッシュが効いていれば
  • XSS対策
    • 自動的にHTMLエスケープ
      • 値にエスケープされたかどうか表すフラグを持たせる
      • Text::MicroTemplateインスパイヤ
      • "| raw"もあるが、使わない方がいい
  • Multi-syntax
    • Kolon:デフォルト
      • いちばん最適化される
    • TTerse:TT互換
      • 強い要請により
      • TT2より制約が強い。サポートしていない機能も
      • Kolonに近いデキに
      • いまあるTT2のテンプレートを置き換えるのは苦しい。新規なら
    • Cleery:Smarty互換
      • あまりがんばってない
      • 配列やハッシュの扱いの違いでオーバーヘッド
  • Template cascading
    • テンプレート継承
      • Djangoから
    • いい感じ
    • Kolon専用
  • しくみ
  • 「私のほかにメンテナンスしたりできる人がいればいいなと思って、内部構造の話をしています」
  • Perlの中でXslateのVMが動く
    • テンプレートをいちどプログラミング言語ふうに変換
    • それをパースしてコンパイルして実行
    • パーサーは手書き
      • "Beautiful Code" のTDOPを参考に
      • 継承もできる:Kolon→TTerseで利用
    • symbol
      • std、ud、led
  • バイトコード
    • 保存できる
      • 重要
    • MessagePack
  • 速い理由
    • バイトコードの最適化
      • 定数畳み込みなど
    • 仮想マシン
    • Direct Threaded Code
    • HTMLエスケープ内蔵
      • 重要
      • テンプレートの実行時間は、実はこれに食われている
      • memcopy()に近い速度
    • 前回をもとに展開サイズを想定するのが効いている
  • WEB+DB Press Vol.59(10月発売)で記事
    • 使い方を中心に
  • Q: VM採用の理由。Perlのコードにする方法をとらなかった理由
    • A: Perlはテンプレート以外の処理もある。スコープの処理とか。Xslateはテンプレートに特化。文字列連結も速く、それがHTMLエスケープ高速化に効いている
  • Q: VMでPerl 6を実装できる?
    • A: できない。テンプレートに特化していて、変数の処理など簡略化しているので、普通の言語を実行するのは難しい
  • Q: ほかの言語からのバインディングは
    • A: あまり考えていない。Perl APIと密結合。移植が必要

Perl 5 is Alive! (Jesse Vincent)

  • 「スピーチ中に@obraにTweetしてみて」
    • (画面にTwitterから拾ったニコ動ふうのテロップが…)
  • "Pumpkin"
    • あとで説明する
  • Perl 5は16才
    • 「Perlは終わった」なんて勘違い
    • CPANにはおもしろいコードがたくさん
      • Moose - postmodern OOP system
      • Plack
      • cpanm
      • AnyEvent - このテロップでも使ってる
      • Devel::NYTProf
  • 6か月前
    • Perl 5.12
    • 致命的なバグは報告されていない
    • Happy
  • Perl 6は?
    • 別の言語
    • 設計、開発中
    • 「次のクリスマス」
    • 2010.7.29 rakudo.org
  • Perl6はすごい
    • これからはPerl6の時代だけど…Perl 5の時代でもある
    • 姉妹
    • 父親は同じですw (Larry)
    • 「5とか6とかはLarryの脳のバージョン」
    • Perl 6はPerl 5のかわりにはならない
  • 5.12の新機能
    • use 5.12.0; # use strictされる
    • 廃止されたものの警告
    • suidperlは死んだ。sudo使おう
    • package Foo::Bar;
    • 2038年問題対策
    • Unicode 5.2対応
    • プラガブルキーワード
    • 関数ルックアップをオーバーライドできる
    • Dtraceサポート
    • コアから削除されたモジュール
      • Switch、Shell、Class::ISA、Pod::Plainer
      • CPANにはある
    • yada yada ... 演算子
    • ほかperldoc perl51200delta
    • 多くは5.10.1にも
  • 新しいPumpkin
    • Pumpkinってなに?
    • Pumpkin King:かぼちゃの持ち主
    • ローテクな排他制御
      • トークン
    • 20年前はVCS使ってなかった
      • VCSを使ってないと、おかしな仕事を子供に教えなくちゃならないw
  • 5.10.0
    • 5年かかった
    • 2人のPumpkinが燃え尽きた
  • 5.10.1
    • メンテナンスリリース
    • 2800コミット
    • 2600ファイルの変更
    • 35万行の変更
    • 最新版のほとんどが5.10.1に
    • "don't break anything"
    • ひとりでこなす?
    • 「メンテナンス」リリースw
  • やることいっぱい
    • ハードコアCハッカー、パッチをあてる人、リリースエンジニア、言語デザイナー、PM…
    • そんな人そんなにいない
  • 歴代のPumpkin
  • 今は私
    • 燃え尽きたくはない
  • これまでは
    • CPUやOSやコンパイラを知り尽くしたハードコアハッカー
    • 強烈な責任感
  • 最高のハッカーをつれてきてマネージャーをやってもらう、という方針?
    • 才能の無駄遣い
  • 複数のバージョンでPumpkinをやった人はいない
  • システムに問題がある
    • 一から作り直す?
    • でもこれからはPerl 6の時代
    • ではリファクタリング
  • 私はハードコアCハッカーじゃない
    • パッチをあてる人、リリースエンジニア、言語デザイナーなどは、ほかの人にやってもらえばいい
  • 私がやること
    • 趣味の問題の裁定
    • 議論の裁定
  • 5.11、5.13 開発版
    • 短い期間でマイナーバージョンが進んだ
    • 毎月リリース
    • 5.11.0のリリースは4日しかかからなかった
    • マイナーバージョンはそれぞれ違う人がリリース
    • 開発版のリリースには数時間しかかからない
    • 手順は明文化された
    • "bleed" releaseでも安心して使える
    • 既存のものを壊すことはある
    • バグレポート
  • メンテナンス版に含める変更点は最小限に
    • 移植性の問題
    • ドキュメント
    • クラッシュ
    • セキュリティパッチ
  • メンテナンス版でやらないこと
    • メッセージ変更、
    • 機能廃止
    • CPANモジュール
    • 新機能
  • 5.12.1、2…
    • バグフィックス
    • 3か月ごとにリリース
  • 5.14
    • 2011.4.20
    • 例外機構の信頼性向上
    • package Foo { } スコープ
    • パフォーマンス
    • メモリ使用率
    • あとはわからない
    • ほしいもの
      • ASTのラウンドトリッピングの改善
      • CPANモジュールのインストール改善
      • HTTPクライアント
      • IPv6
      • SSL?
    • なにがほしい?
  • まず5.12を試す
    • perlbrew ホームディレクトリ下にPerlをインストール
  • Q: Uniccode 6.0は
    • A: 動きはある。問題はいまとの互換性
  • Q: 速くリリースするのはいいが、Linuxディストロとかはテスト期間の問題がある
    • A: 話をしているUbuntuに関していうと、11.04に5.14を入れることは可能と考えている。できるだけ新しいPerlを入れてほしい。が、リリースされたばかりのは避けてほしい
  • Q: JSON::PPがコアモジュールになると聞いたが、JSON::XSがコアモジュールにならないのはなぜ?
    • A: コアには、ほかのモジュールをインストールするための最低限なものを入れて、あとはCPANで。JSON::PPはシンプル、ポータブル。必要なのは動くもの、super fast JSON supportはCPANで。

Perlで自然言語処理 (overlast)

  • 元blogWatcher ver.3の開発メンバー
  • スライドは飛ばします
  • 自然言語処理とは
    • NLP
    • 人工知能+言語学
    • 統計学
    • Google日本語入力とか
  • 必要な知識
    • 言語
    • プログラミング
    • できれば確率・統計
  • 勉強のはじめかた
    • 日本語の教科書
      • 「自然言語処理の知識」(奥村学)など
      • 生駒日記を半年ぐらい読む
    • 英語の教科書
    • 勉強会・研究会・学会
    • ほか
      • 「集合知プログラミング」など
  • 簡単な方法からやって、洗練する
    • 簡単で効果のある技術から
  • 機械はミスする
    • 最初は夢をみがち
    • 人間のほうが優秀
  • 日本語の口語テキストは難しい
    • 形態素解析
  • データは自前で集めて自前で持つ
    • 自然言語処理はメインではない
    • 時間をかけられない
    • ローカルで
  • 自然言語処理は最初は簡単
    • MeCab+カウントとか
    • 次にアルゴリズムを考える
  • 課題
    • データの獲得
  • Webサービスにありがちな悩み
  • WebAPIを使って悩み解決
  • ユーザーの回遊性をあげる
    • レコメンド
    • 例 Twitterのおすすめユーザー
    • 協調フィルタリング
    • Algorithm::NaiveBayes
  • データはあるけど検索できない
    • 検索機能をつける
  • 正規化、名寄せ、データクレンジング
    • 電話番号っぽい数字
  • アンカーテキストでユーザーの回遊性をあげる
    • キーワードリンク
  • ユーザーが全アイテムをみてくれない
    • ランダム表示、ログ
    • N本腕バンディット問題
  • ソートの方法を変える
    • 利便性に直結
    • 機械学習技術で並び順
    • Algorighm::SVMLight
  • 文書分類
    • サンプルからモデルファイルを作成
    • 事前に何個に分けるか考えて、素性でラベル付け
    • Text::Bayon

「映画にでてくるハッカーになりたい」(cho45)

  • 最近はScalaが好き
  • DSi Browser JSの実装に詳しい
    • textareaでキャレットを表示させる裏技
  • Text::Xatena はてな記法
  • git-branch-recent 便利
    • デモ
    • 顔文字プロンプト
  • 映画にでてくるハッカーの例
    • よくわからない暗号を解くとか
    • いい意味でも悪い意味でも鳥肌
  • ハッカーっぽいツール
    • tail -f
    • でもそれは動体視力w
  • 可視化
    • tail -f | realtieresponsegraph.pl
    • グラフに
  • はてなではログをHadoopで解析してグラフをはてなフォトライフにあげている
    • 1日かかる
  • リアルタイムで
  • デモ
  • use OpenGL;
  • select();
  • 機能
    • グルーピング
    • Apacheのログフォーマットのパーサー
  • もっとハッカー的なこと
    • すごい可視化
    • realtimeaccesstrach..pl
    • デモ
    • ユーザーごとのアクセスを図に
  • さらに
    • 原点にかえって
    • tail -fは画面に何か流れてカッコいい
    • Devel::KYTProf
    • memcachedやDBのクエリとか
    • デモ

History tells us ある連載の舞台裏 (charsbar)

  • 「自分のスライドには日本語を入れ損ねました」
  • gihyo.jp連載「モダンPerlの世界へようこそ」
    • なぜ連載を始めたか
    • 現在36回
    • ギークにはスルー
    • もめごととかの話が多い
  • 経緯
    • Mojo、Mojoliousの連載が終わったときに「モダンPerlでなにか」のオファー
    • 隔週
    • ニュースとかトレンドとか
  • モダンPerlとは
    • 20世紀のPerl以外のもの
    • 古いPerlを打ち切るためのBuzzward
    • ourとかwarningsとか
    • Modern::Perlというのもある。5.10以上
  • いいPerlを使いたい
    • Perlは後方互換性を重視
    • 古いPerlを使う理由があるのでそれはそれでいい
    • 新しいPerlを使いたくなったら
    • みんなで直していきたい
  • 建築
    • モダニズム:すっきり、機能重視
    • ポストモダニズム:
  • スーツのPerl vs. ギークのPerl?
  • 広くとった企画に
    • ネタリストを出した
  • それをどうやって見せるか
    • tokuhiromさんのブログは早くていい内容
    • それには勝てない
  • ギークの流行は変化が早い
    • 今年のYapc::AsiaはMoose、Catalyst、DBICなどのネタない
    • それとは違うところで
  • ギーク向けに特化しない
  • 入門チュートリアル?
    • POD等充実している
  • 日本人が関与しているプロジェクトは本人が紹介してくれるからやらなくていいかな
  • では何を書くか
    • キレイなコードは重要だけど、それだけじゃない
    • Modern Perlとして共有する
  • 仕事を得るため
    • Perlへの偏見
    • 古い人と新しい人は問題ない
    • Perl/CGI世代、ITバブル世代の人がPerlに偏見
  • 偏見を払う
    • 10年前との比較も入れる
    • いいことも悪いことも入れて、偏見を持つ人に聞いてもらえるようにする
  • Perlでは古い情報がWebで多い
    • ググるよりCPAN
      • 検索Tips AllじゃなくてDistributionやModuleで絞る
      • Changesで更新状況
      • MANIFEST
      • POD
    • backPAN
      • CPANにもうないモジュールのバーオン
    • YAPC::*などのイベントのサイト
    • 各プロジェクトのサイト
      • noc.perl.org
    • メーリングリスト
      • MarkMail
    • IRC
    • irc.perl.orgの一覧
    • ブログ
  • 1本の記事のために調べるのに1週間ぐらいかかったり
  • 歴史を調べることでいろいろなことがわかる

Let's database testing!! (xaicron)

  • DeNA
    • DeNAでは生DBIをゴリゴリやってる
  • DBのテスト
    • マッチしない
    • 文字化け
    • updateやdeleteの対象が間違え
    • triggerミス
  • MySQL
  • 鉄則
    • ローカルでテスト環境
      • データが変わるとテストにならない
    • 同じDBMSで
  • 流れ
    • Test::mysqldでクリーンなmysql
      • newするだけ
    • Test::Fixture::DBIでテストデータをつっこむ
      • データをYAMLにはきだすスクリプトも
    • テスト
  • DBIを使うときに便利なもの
    • SQL::Abstract
    • DBIx::DBHresolver
      • 複数のDBに接続するのに便利
    • DBIx::Connector
      • dbhを局所化できる
  • テスト
    • SELECTした値が正しいかチェック
    • INSERTのテスト
    • ほか
  • Test::mysqldの問題点
    • 毎回起動させると時間がかかる
    • Makiさんがブログで回避策を公開
    • モジュール作った
    • socket指定して接続

Perl6正規表現プログラミング楽土入門 (takesako)

  • (emasakaは遅れて参加)
  • Perl6
    • sigilの扱い
    • if や whileの () を省略できる
    • Neko Operator(範囲演算子)
      • 1^..^5 # 2~4
    • ZIPでくれ → zip
    • <==、=>
      • シェルのパイプみたいな処理の流れ。逆向きも
    • // 演算子
      • Cではコメント
      • JSでは//は正規表現? コメント?
        • コメント
  • 正規表現 5→6
  • 繰り返しと選択は同じ
  • マッチ演算子
    • =~ → ~~
    • 左右どちらでもよい
  • 修飾子
    • /m廃止
    • \A \zの廃止 ^と$に
    • /xがデフォルト
    • スペースは <' '>で指定
    • /eが廃止、/{code}/で
    • m/pattern/i → m/:i pattern/
  • キャプチャ
    • \1, \2 → $0, $2
      • 「ドル決済でゼロスタート」w
    • (?:pattern)) → [pattern]
    • → <>
    • [^] → <-[]>
    • <space>など
    • 変数展開 /$var/x → /<$var>/
    • リテラル展開 \Q$var\E → <'$string'>
    • マッチ失敗 {fail}
  • Perl 5互換の正規表現もあるが、まだRakudo Starで実装されていない

省サーバ運用 (nekokak)

  • 「ゆるい話」
  • 小さなWeb系の会社で一人システム開発部
    • インフラから開発まで
    • それまでは外部
  • 「大規模サービス技術入門」
    • いい本だけど、自分たちの仕事に必要か?
    • 1,000台以上のサーバー?
  • NoSQL
    • はいはい
    • その前にRDBMSのチューニングとか
  • カンファレンスで大規模な事例
  • 最新技術のキャッチアップは悪いことではない
  • 落ち着こうよ
  • 「情熱プログラマー」を読んで考えた
  • 大企業で働くとわからなくなることがある
    • 自分の仕事でどのぐらいの利益をあげているか
    • サーバーの運用費用はどれぐらいかかっているか
  • 一人システム開発部
    • インフラから
      • IDCの選定、サーバの選定
      • オフィスはマンションぐらいの規模
      • 法定停電
    • やったことない
    • 前職では言えばサーバ使えた
  • インフラは地味
    • 下っ端あつかいされがち(な気がする)
  • ちなみに保守も地味
    • 動いて当然とされる
  • これからのエンジニア
    • 開発能力はもちろん
    • インフラへの理解
    • 利益やインフラ費用を意識した開発
  • 「ここからエンジニアリングの話」
  • 構成
    • サーバ6台、1/2ラック
  • サーバ6台
    • がんばって勝ち取った
    • DB×2、Web×3、開発×1
    • メモリDBで8G
    • 「メモリは最低16GB」という声にはカチンときた
  • MySQL
  • LBにPerlbal
    • 安定性
    • Perl製。必要ならプラグイン書ける(実は大変)
  • なぜnginxじゃないのか
    • x-reproxy-cacheさせたい
    • 対応したらnginxにいくかも
  • Perlbal
    • シングルスレッドのソフトウェアLB
    • SSL使える
    • 自分のノウハウ
    • Webサーバー機能も
  • AppサーバーはStarlet
    • Apacheは好きじゃないので
    • kazuho製で安心感
  • PHPのコードをPerlに書き換えた
  • あるとき、ユーザのアップロードした画像を管理することに
    • htdocsに置く?
      • サーバーが複数
      • rsync?
      • ないわー
    • DBのBLOB?
      • Web 1.5
    • MogileFS?
      • おすすめ、Web 2.0
  • MogileFSを使うには
    • フロントのサーバーがx-reproxyヘッダを解釈
    • データ管理用にMySQL
    • 分散管理するには物理的に2台以上のサーバー
      • でもアプリケーションサーバに同居はやりたくない
  • 将来はMogileFSとして
    • MogileFSに移行しやすい形に
    • ファイルの分散管理はミドルでなくていい
  • MogileFSのしくみ
    • x-reproxyヘッダを付けて返す
    • キャッシュされる
  • MogileFSの部分を静的配信サーバーに
    • x-reproxyの先をPerlBal自身に
  • サーバが増えた場合は、バックエンドをMogileFSにすればいい
  • エンジニア急募の時代→飽和→とんがった技術力じゃないと厳しい→コスト意識を持ったエンジニアもウリに?
  • Q: コストは見える。利益は事前にわからないのが難しい。どう意識しているか。
    • A: うちの場合、事業計画や、プロジェクトの目標やコストの見込みを全員で共有している。一人で上げた計画を全員で詰める。ただ詰めすぎもよくない
  • Q: 開発者でない人に理解してもらうためには
    • A: 難しい。説明して理解してもらうしかない
  • Q: 監視とか24時間体制
    • A: 一人。tokuhiromのApp::Mati(?)を利用して監視して異常を携帯に通知
  • Q: 専用レンタルサーバとかを使わなかった理由
    • A: 個人的には、自分で見ていないサーバーを信用したくない。インフラを自分で把握。自分でサーバーを設置してわかったこともある
  • Q: それでコストがかかる可能性も
    • A: 営業を受けた範囲では、レンタルサーバもあまり安くなかった
  • Q: 8GBメモリというとデータ圧縮の必要も出てくるのでは。InnoDBの圧縮プラグインとか。MogileFSではどうするか
    • A: うちの規模では問題ない
  • Q: 今後、人が増えたら
    • A: 全部扱える人が望ましいが、そのときの状況しだい。少なくとも異常の通知は全員が受けるようにしたい

LT:Top 10s/100s (charsbar)

  • 恒例
  • 日本のCPAN author
    • 1.HIROSE
    • 2.MORIYA
  • (客席のリクエストでいろいろな国ごとをデモ)
  • Douch 0人
    • Acme::CpanAuthor::Douchに事情w
  • 人口一人あたりだと日本は6位に

LT:opts.pm (ふしはらかん)

  • 勝手に後夜祭やります
  • 「以下おまけです」w
  • opts.pm
    • コマンドラインオプション
    • GetOpts 覚えられない
    • 作った
    • 自動変換も

LT:Vim&Perl (c9s)

  • 多くのVim Perlプラグインは古い
    • 補完
    • Perlの文法の変化についていけてない
  • perlomoni.vim
    • デモ
      • Mooseのisaでの補完
      • など
    • githubからインストール
    • Windowsもサポート
  • cpan.vim
    • モジュール名
    • POD search

LT:もっとMySQL (上田智)

  • 規模による要求の差異
  • 小規模なら3層構造である必要はなかったり
  • WebサーバーもMySQLで(え?)
    • HTTP Plugin
    • ストアドでController
  • 今後
    • ストアドでO/Rマッパー w
    • ストアドでPerl→ストアドでCatalyst w

LT:There are so may ways to shuffle it (nipotan)

  • コードレビュー
  • 担当を決める
  • 「シャッフルのお時間」
  • 1. rand使用禁止
    • md5sumの値を16進値
  • 2.
    • zipかっこいい
  • 4. タイムトライアル
    • Fisher-Yates法
    • カーネルモジュールで書いた人
  • 5. 週ごとに使用禁止文字が増えていく
    • dieで出力
  • (早口で途切れることないスピーチ。メモ追いつかない)
  • ライブドアではシャッフルの名人を募集してますw

LT:ページャ実装マニアックス (hakobe932)

  • さまざまなところで使われている
  • はてなの108のページャ実装
  • はてぶ
    • Data::Pageに機能追加
  • はてだ
    • HTMLを直接生成
  • うごめも
    • データを生成する方法をページャに渡す
    • items、next、prevのメソッド
  • ちなみに、ORMにpager_serchをつけたり
  • ページャに関わる要素がいろいろ
    • 対象、基準、性能など
  • (画面にずらずら)
  • うごめも、Merged
    • 複数渡せる
  • うごめも、Arrayref
    • クエリじゃなくてArrayref

LT:(tokuhirom)

  • 手ぶらで
  • 速いHTTPクライアントがほしい
    • RPCとか
    • LWP遅い
    • CURLも最適化の余地ある
  • 今朝新しいの作りました
    • WWW::Curl::Easyより速い
    • デモできないんですが
  • 日本のPerlMongerはそれぞれの得意分野がある
    • 力をあわせればもっと速いのができるんじゃないか

LT:岡山.pm / 都会.pm (かなだまさかつ)

  • 岡山.pm主宰
  • 岡山
    • 「だいたいこんな感じです」(SFふうイラスト)w
  • 2回開催
  • 問題点
    • 人が集まらない
    • いろいろなところで告知
      • 怒られたり
  • 今後の展開
    • 人を増やす

LT:Perl同人誌の宣伝 (まかまか)

  • 飛び込みLT
  • 「Acme大全2010」
    • あまってます
  • 2009とのちがい
    • ダラクが大きくなった
    • 用語集つけた
  • デコシール
    • おでこに貼る

LT:草とPerl (dameningenn)

  • 草植系男子
    • wwww
    • 草キーボード
  • Grass言語
    • 物足りない
  • GrassとPerlとあわせて「Werl」
    • 99% perl
    • 予約後のかわりに草植える
  • デモ
  • 予約後といえばppencode
    • 予約語をwとWにすれば、wとWだけでプログラミング
    • wwencode
  • デモ
    • echo 'Hello YAPC::Asia' | wwencode | werl

LT:Test::Apache::RewriteRules (id:onishi)

  • mod_rewrite
  • はてなでのmod_rewrite
    • ほぼreverse proxy
    • URLで振り分け
    • 異なるURLを書き換えてSquidでキャッシュ
  • 行数がふくれあがる
    • 何百行
    • メンテ大変
  • Test::Apache::RewriteRules
    • Rewrite関係だけのconfを作ってApacheを起動して(system())リクエストを投げる

LT:Facebookを流行らせたのは僕です (yusukebe)

  • ブログに書いた
  • はやった
  • Facebookというより「ゆーすけべー日記」すごい
  • 2001年、HNSではじめた
    • MTに
  • 「Blog Hacks」に遭遇
  • Perlへ
  • スクリプトを公開
    • dankogaiさんに勝手に添削される
      • 一瞬腹立つ
      • でもコード感動
  • 去年のYAPC::Asia
    • ブログを書いた
    • miyagawaさんがコメント
    • CPANのエコシステムについて考えた
  • ライブラリのユーザーも何かやれる
    • PerlCasual始めた
    • ユーザーも表現してみよう
  • Facebookやtwitterではできない

The Tale of Plack (Tatsuhiko Miyagawa)

  • six apart
    • 合併
    • SAY (SAYMEDIA.com)に
    • say perlのビルトイン関数
  • Plack
    • この一年で急速に使われている
    • PSGIとPlackがWikipedia(en)に載った
  • 1年前に開発始めた
    • 開発が急速に進んでいる
    • 今回もタイトルだけでも関係するセッションがいくつか
    • Joyent(node.jsの会社)でもつかわれている
  • Plackの成功要因
  • 1) あるものを模倣
    • HTTP::EngineはCatalystのコードベースにひきづられた
    • WSGIやRackをまるごと盗めばよかった
    • PlackはWSGIやRackをそのまま
      • 名前空間を含めて
  • 2) 後出し
    • WSGI 2003年
    • Rack 2009年
    • 鍋パーティーは遅れたほうがいい感じに煮えてるw
    • 試したことや成功したことや失敗したことがわかる
  • 3) JFDI
    • Just Fuckin Do It
    • やるしかない
    • IRCで2~3時間話して、翌日にできてた
    • やったもん勝ち
  • 4) stfuawsc
    • しゃべってる暇があったらコード書いたほうがいいよね
  • 5) TIMTOWTDIとBSCINABTE
    • Mooseの文脈で出てくる
    • PSGI
    • いろいろ×いろいろの組み合わせに対応
    • 1つのインターフェイスにより、よりいろいろなものができるようになる
  • 6) KISS
    • PSGIはcoderef、arrayyref、hashrefのみ
    • OOのAPIじゃなくてhashref
  • 7) Perlはグルー言語
    • PSGIはグルーインターフェイス
    • いろいろなものが使いたいインターフェイスはみんな違う
    • HTTP::Engineだとアダプターを書かなくちゃならない
    • バカみたいに単純な構造+グルーコード
  • 8) 名前づけ
    • いままでのCPANと違う名前のつけかた
    • 大きなフレームワークは"::"が多い
    • タイプするの面倒、話すの面倒、みんな省略して書くようになる
    • 入るときにわかりづらい
    • Rubyはトップレベルの名前を独自につける。それでいいじゃない
    • 名前で愛着がわく
  • プラス、重要だったと思うのは「人」
    • (世界のカンファレンスでの写真)
    • "Miyagawa rocks"
    • "You guys rocks"
    • Perlは人々のグルー
    • YAPC::Asiaも燃え尽きないようにサステイナブルに
    • 来年も会いたい

Closing Talk (941)

  • みなさんお疲れさまでした
  • 足を痛めました
  • カメラのS90がこわれました
  • 自己紹介
    • ライブドア 開発部
    • 一番好きなライダーはキバ
  • ぼくとYAPC::Asia Tokyo 2010
    • いけべさんに呼ばれて行ってみたらJPAの理事会だった
    • 「やるの厳しい」
    • カヲル君w
    • 「じゃあ俺やりますよ」とつい
    • カジュアルに丸投げ
      • 孔明の罠
  • 今回はスポンサがたくさんついた
    • 豪華な景品も
  • 謝辞
    • 東工大
    • キーノートスピーカー
    • スピーカー
    • Per Hackers
    • ボランティアスタッフ
  • ベストトーク賞発表
    • エンターテナー賞
      • 「映画にでてくるハッカーになりたい」cho45
    • 次点(口ドラムロール)
      • 「省サーバ運用」nekokak
    • 投票者賞
    • ベストトーク賞
      • 「モダンPrl5環境について」tokuhirom
  • YAPC::Asia 2011でお会いしましょう
  • 来年のスピーカーはあなたです

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/823-ef318822

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad