今日は YAPC::Asia Tokyo 2014 の2日目です

昨日HUBの閉店時間までのんびりしてしまいましたが、無事に2日目を迎えております。

本日も一部の内容は gihyo.jpさん にも掲載していますので、併せてご覧ください。

Daisuke Makiさん「オープンソースの開発現場 - Perl 5.20 のSubroutine Signaturesが来るまでの奮闘の軌跡」

  • 他人の言動について解説するトークなので、正確でない部分はご了承下さい
  • Perl5.20
    • Post fix Deref $r->@*、CGI.pm
    • シグネチャ sub foo ($foo, bar) { $hoo + $bar; }
  • シグネチャ
    • Sub::Signatures, Method::Signatures, signatures
    • ソースフィルタでもできるが、使わないほうがいい。またコアに入ってない
  • シグネチャの導入を巡る駆け引き
    • 新しいコードを入れたい人、機能を壊したくない人、機能には賛成だけどコードが気に食わない人
  • Perlの開発は27年間、ボランティア
  • signatures の開発にかかった時間は?
    • pecoの例。issue 171は3日
    • Perlのコード量はpecoの10倍
    • 開発期間は2年強。(pecoの20倍以上)
  • signatures はみんなが欲しい機能だった
    • 歴史的経緯、実装が面倒、p5pメーリングリストが面倒
  • perl5-potersという開発MLで議論、パッチのやりとりをする
    • pumpkinが最終決定権を持つが、分野のエキスパートの人々が議論
  • Martini氏の登場
    • OSSでありがちな、提案・苦情のみあげてコードを書かない、ではなく、書くと言っていた
    • C++チームの人々にPerlを使いやすくしてもらう、ってのが動機
    • 2ヶ月でプロトタイプ → 賛否両論がすごかった
  • OSSでありがちな、反響大きすぎ
    • 賛同が多くても、批判が多いとやる気がなくなる
    • 話がそれる(これができるならこれもできるでしょ)
    • 細かい部分のツッコミ
    • MLは戦場 : 英語圏の人々はツッコミが厳しい。老練
    • 「あれはだめ、これはだめ、価値はない、最悪だ」「ちょっとはよくなったかな。次は使えるパッチ書けるといいね」
    • こういうたいてい人々はいい人。MLだと攻撃的になる
    • 人格攻撃になることも多い
  • 今回もダメだな、と思ったら・・・
    • Martini氏は何回も何回もパッチを送った
    • 失礼なメールはうまく受け流す
    • 必要な変更を徐々に入れ、味方を増やしていった
  • 論点
    • @_ は使用禁止?
    • $_[0] = $foo した時の挙動 (呼び出し元の引数が変わるやつ)
  • 後方互換性が大切なため → 20年前のコードが動かないと怒られる
  • Martini氏のコードではなく、それを批判していた人が書きなおしたものが入った
    • 今のfeaturesの実装には Martini氏 のやりたかったことが完全にできてない
  • 現在のfeaturesの実装
    • 単なるシンタックスシュガー(動的チェック)
    • 関数はシグネチャの情報を持ってない
    • Martini氏は静的解析をしたかった(C++の人のため)
  • Martini氏「重要なのはsigunature構文がコアに入ることで、実装は後で変えられる」
    • 一旦入った機能がなくなることはない
    • 彼の勤務先が金融機関なのでこんなに大人なのでは
  • prototype をうまく使う
    • prototype : 関数と引数の情報を直接紐づける
    • Martini氏がどさくさに紛れて、すでにprototypeに変更を突っ込んでる(!)
  • 今後は、design by contract を実現すべき静的解析できる方向に進めたい
  • 歴史のあるOSSの民主主義は脆刃の剣
    • 政治力が重要になる(エンジニアとしては不満かもしれないが)
    • そのお陰で、強力な後方互換が担保できてるとも言える
  • 今は若いOSSでも、20年後は政治・人間スキルは必要になる
    • コミュニティで活動する限りはそのリスクについて考える必要がある
  • ゴール・プライオリティをしっかり持つことが大切
    • ただし、別の人は別のプライオリティを持ってる
    • 誰が書いたコードかより、うまく動くことが大切
    • ネガティブな話は、受け流す
  • 現在のp5p
    • pumpkin の RJBS は政治力がある
    • 「大人になれ」というルールを制定してる
  • 我々の使っている技術は、このような人々の地道な努力によるものであることは忘れずに
  • 質疑応答
    • Q. 新しいキーワードを導入するという話は?
    • A. 「新しいキーワード入れたら壊れるじゃん」で却下されたらしい
    • Q. martini氏の実装はメタ情報を扱えるものだったのか?
    • A. プロトタイプに情報を突っ込んで、prototype関数からとれるようにしてた(クソはクソでも入っちゃったクソは仕方ない)

うずらさん「半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情(5.6対応)」

  • ゆるふわ暗黒PHP?
  • PHPとは → LAMP、初心者でもできる
    • レガシーコードがやばい
    • PHP はテンプレートエンジン? → はい
    • カウンターとか超カンタンに作れる!(カウンター・・・?)
  • テンプレにとりあえずコード突っ込めば動かせる
  • MODERN PHPとは?
    • オブジェクト指向、ライブラリ、Heroku、CI
  • WEB 開発
    • composer (cartonみたいな) でWAFをインストール
    • Sinatraっぽい
    • PHPだけで開発サーバ立つ (5.4移行)
  • Macには初めから入っている。使える
  • クラスのロード
    • 昔はrequire_onceを大量に書いていたが、今はオートロード
  • 規約がなかった
    • Net_services_Twitter とか
    • ネームスペースはバックスペース区切り
  • PSR : PHPの規約
    • Loggerのインタフェースとか
  • クラス : namespaceを定義して、クラスを普通に定義。継承はextends
    • Blessはない。Javaチック
  • HTMLはどこに書くのか?
    • テンプレートエンジンであるPHPで書かれた安全なPHPエンジンで(!?)
  • 型ヒント : 引数に型を書ける
    • 補完がガンガンきいてよい。ただし、classとArrayのみ
  • 例外クラスがある。finallyもある
  • Standard PHP Library
    • イテレータや例外が定義されている
  • メタプログラミング: __set() __get()__toString() __clone
  • password_hash : 安全。MD5とか使ってる場合じゃない
  • Generatorもある
  • 配列リテラル [1, 2] (昔はarrayを直接書いてた)
  • IDE(PHPStorm)がよくできている
  • PHP5.6がリリースされた(Yay)
    • 余波でPHP5.3が終了
  • 最近のライブラリ
    • Packagist + Composer
    • packagist.org → RSSで監視すると便利
    • ACMEが多い(hello worldも上がる)
  • 良さ気なのを紹介
    • PhpMetrics
    • PHPCodeSniffer
    • PHP-CS-Fixer
    • bowerphp
    • pake : make
    • php-activerecord
    • php-SQL-Maker
    • react (AnyEventチック)
    • PHPPHP (PHPで実装したPHP)
  • 実行環境
    • 実装はたくさんあるが
    • 本家, HHVM(hip hop vmかっこいいけど、まだまだつらい), ZEND, くらいが使える
  • mod_phpとmod_rewriteは柔軟。Apacheは手離れがいい
  • nginxはネットワークが遅いモバイルには強い
    • htaccessを使いたいお客さんはいるので辛い
  • PHPは遅いのが欠点
    • plack 6225 #/sec (kazeburoパラメタ)
    • PHP 2943 #/sec
    • PHP(HHVS) 8132.90 #/sec
  • PHPはWEBなら手軽。今風にも使える(みなさんなら)
    • レールが一切ないので、初心者はあっさり崖から落ちる
  • php the right way : PHPのよい情報源
  • ゆるふわ暗黒PHP
    • 自動変換
    • splitの闇 : preg_splitを使う
    • 返値の謎 : exitに文字列を渡すと挙動が違う
    • php.net : 評価が低いものは薄くなるように改修
  • 質疑応答
    • Q. 例外のトラップは?
    • A. tryとcatch
    • Q. try catch finallyはあるけど標準関数は例外吐かないのは改善された?
    • A. スライド進めましょう
  • エラー処理の闇
    • 自前のエラーハンドリング関数を使って例外化する
    • FATALやPARSEなどはトラップできない
    • register_shutdown_function() → FATALで死ぬときも呼ばれるので、そこで回復しちゃう
  • ¥を織り交ぜた名前空間を作れる

地域.pmミートアップ 2014

  • 山手線沿線、または新宿まで20分の方々は、帰って下さい
  • 参加しているpm
    • Hokkaido.pm, Hachioji.pm, Fukuoka.pm, Kansai.pm, Kyoto.pm, Niigata.pm, Yomitan.pm, Mishima.pm, Hachioji.pm, Yokohama.pm
    • (Kokusaitenjijomae.pm)
    • Kamakura.pmとかKushiro.pmとかSendai.pmとかShibuya.pmもある
    • Yomitan.pm, Mishima.pm, Hachioji.pmはpm.orgに未登録
  • PMとは、Perl Mongers
    • Perl Moduleが.pmファイルであることもかけてる
  • 自己紹介
    • Hokkaido.pm : aloelightさん
      • hokkaido.pm casualもやっていて毎月やってる
      • 札幌に来るとラーメン食べられる
      • 活イカを食う(イカも予約)
      • 帰省に合わせて、年一回から二回、開催することが多い
    • Hachioji.pm : uzullaさん
      • 開催前のハッカソン
      • 居酒屋でLTするのがメイン
    • Yokohama.pm : yusukebeさん
      • ラーメン食べ過ぎて中性脂肪を抑える薬をもらった
      • 懇親飲み会前にラーメン行くメソッド
      • 3ヶ月に一回開催
    • Mishima.pm : dockechinさん
      • ゆるキャラ「ミシマルクン」(銀杏らしい)
      • こじんまりとした人数で距離感が近い
      • 6人席に9人が参加
    • Kyoto.pm : shiba.yu36さん
      • 寺っぽいとこ
      • 東京からJPA経由で講師を呼んでテックトーク
      • 町家の貸し切ってハッカソンすることが多い
      • 寺も貸しきれるらしい
      • 観光地多い
    • KANSAI.pm : 若林さん
      • yusukebeさんのベストトークショーで開催した
      • 夜の接待もある(?)
      • ブログに書くまでがKansai.pm
      • 大阪のYahoo!さんで開催した
      • 阪神百貨店のイカ焼きを是非
    • FUKUOKA.pm : 津留さん
      • perl入学式、天神perl、が定期的に開催されている
      • YAPC::Asiaレポートを発表する場にしている
      • 0次会(勉強会)より1次回がメイン
      • charsbarさんがすごくかっこよく映ってる
    • Yomitan.pm : 横田さん
      • メインはちゃたんちょう
      • 主催は斉藤さん
      • 一回のテーマは「system perlは使わないようにしよう」
      • 二回のテーマは「インフラ関連の監視」
      • 三回のテーマは「機械学習関連」
      • 来月あたり第四回をやりたい
    • Chiba.pm : PGRTさん
      • ちばぴー
      • 開催は不定期、元八幡(新宿から30分)
      • 土曜日開催。全員LT。Perlの話3割
      • Perlの話をしますというとざわつく
      • マグロ、肉
      • 10月11日土曜日(三連休初日)
      • 「MySQL casualじゃないんですよね?」「それでもいい」
    • Gotanda.pm : かるぱねらさん
      • 3ヶ月に一回。6月に立ち上げ
      • 平日の夜に集まって軽くトークして軽く飲みに
      • 9/17 に第二回。 #gotandapm
    • Niigata.pm : shinpei0213さん
      • 新潟市より長岡市の開催が多い
      • CPAN Author(HAYAJOさん)を擁する
      • 魚も日本酒も美味しい
  • 自慢できること
    • Perl入学式はKansai.pm発祥。世界進出するはず
    • Niigata.pmは高専からの受け入れが多い大学があり、新潟出身の若いhackerは多い
    • Fukuoka.pmはコアユーザがヘビーなやりとりをしている会だったが、初級中級上級にうまく別れた
  • Perl casual (ゆーすけべーさん)
    • ハッカーだけじゃなく、俺トクなもの作った人でも出てこれる場
    • ドメインが失効して出会い系サイトになったけど
  • JPAとは
    • YAPCを個人でやると、赤字・黒字の時に面倒だから作った箱でもある
    • JPA講師派遣精度 : 地方で呼びたい人が居れば、旅費を補助
  • JPAに一言
    • Kyoto.pmは2〜3回使ってる。発表者を集めるのが大変なので
    • Hokkaido.pmはクリスマス、お盆の時に帰省のときに合わせることも。講師派遣も便利
    • 「地方PMから東京などの勉強会に参加して、戻ってシェアするような制度はどうか」「検討する」
  • ライバル視してるPM
    • Niigata.pm は Hokkaido.pm をライバル視してる (美味しいものは対等。観光資源が負けてる)
      • Hachioji.pm の緩さにはかなわない
  • 次回開催と野望は
    • Hachioji.pmは毎月開催なので安心(今日も実はHachioji.pmです!)。野望はPHP化
    • Yokohama.pmはまこぴーさん任せ。実験的な試みをやりたい
    • Hokkaido.pmは11月くらいに開催したい。帰省日に合わせたりします
    • Niigata.pmは年内に
    • Mishima.pmは年内に。地元の人をもっと増やしたい
    • Kyoto.pmは京都に来たいという人がいれば。寺ハッカソンを開催したい
    • Kansai.pmは9月はダメだったので、ベストトークショーの人を狙う。YAPC::Asia Osakaやりたい
    • Chiba.pm は10月11日。5:5くらいでPerlを話を
    • Fukuoka.pm は9月20日14時から。
    • Yomitan.pm は9月下旬くらい。pmでの勉強会で得られた知識をgithubなどでシェアしたい

Andy Delcambreさん「Changing the tires on a moving car: a case study in upgrading legacy architecture」

  • 30万行がruby、perlは179行程度
    • ただ、Perlは重要なscript
  • 「git、githubを毎日使ってる人?」「すばらしいですね」
  • githubのシステムは新しくしていっている
  • git
    • 高速に扱う必要がある
    • DAG (directed acyclic graph)
    • commit, tree, blobオブジェクト
    • cat-fileでデリファレンスすると中が見れる
    • ポインタを辿らないとコンテンツを見つけられない
    • 反復的lookupが効率の障害となる
  • github で新しいリポジトリを作る
    • ローカルで作ったリポジトリをpushする
    • これだけだとただのgit
    • github の面白いところはforkとかcollaborateだけど
    • 担当しているのはデータのフェッチ
  • 1.5millionのpush、100million pull、27のファイルサーバ、100TB
    • シンプルってレベルじゃない!
    • 方法は常に変化していってる。マイグレーションを終わらせようとしているところ
  • Grit
    • githubのリリースの10日前に開発された(2007年)
    • Rubyのgitラッパー
    • ローカルでしか動作しない(今は27台サーバがある)
  • GFS
    • すべてのサーバが同じファイルサーバをシェアしているイメージ
    • スケールしない
  • Smoke
    • cloud上のGrit
    • Chimmney : どこにファイルサーバがあるのか
    • Chimmney はスケールしない
    • アプリは書き換える必要がない修正だった
    • 複数のblobの転送が致命的となる
    • Gritは毎回サーバに接続する
  • ラウンドトリップとサーバへの接続の問題したい
  • gitの歴史
    • Bitkeeper : gitの前のLinuxのカーネルのバージョン管理。OSSでない
    • LinusがGitを作った
    • linuxの管理に使ったので普及した
  • Cだから共有ライブラリで簡単にリンクできるのでは?
    • gitはコマンドラインを前提
    • そのため、エラーハンドリングやメモリ管理が手抜きでヤバイ
    • gitはライセンスの問題もある
  • libgit2
    • きちんとしたshared libraryにしたい
    • LGPLでクリーンなライセンスに
    • すべて1から書き直した
  • JGit
    • libgit2の勢いがなかったので、Java実装が
    • こちらのほうが充実してしまった
    • githubはRubyだし・・・
  • libgit2にフルタイムでコミット
    • マイクロソフトもメンテなで参加している(visual studioとか)
  • Rugged
    • Rubyのラッパー
    • Gritと構造は似ている
  • Git-Raw
    • Perlのlibgit2バインディング
    • パっと見だとうまく動きそうだけど、よく知らん
  • GitRPC
    • Ruggedに対するSmoke的なもの
    • cachingができる
    • pluggable wire protocols : 正しくタギングする
    • Encodingの問題を解決する
    • gitはエンコーディングを無視する(stupid!)。Smokeも
  • 旧システムから新システムへシステムを入れ替える
    • ディスクアクセスの方法は同じなので、SmokeとGritRPCで分けなくていい
  • Graphite : ラウンドロビンデータベース
    • すべてのコールの統計をとってる
    • 最初は、Smokeが50万コールでGitRPC20万コールほどだった
    • 最近では99.9%がGitRPCをコールするようになった
  • 残っているのはロングテールの部分
  • Backscatter
    • モード1: コールされたメソッドの回数
    • モード2: 少なくなったとわかったら tracing する
  • 新・旧を並列に走らせる
    • 推測ではなく計測していく
    • 最後の0.1%になったら、丁寧にtracingする
  • Git for Computer Scientists - gitがデータベースレイヤーでどう動いているか

Tatsuro Hisamoriさん「YAPC::Europe 2014 に行ってきました」

  • 暑いですね → YAPC Europe Tシャツになる
  • yusukebeさんがJPA理事になったため、繰り上がって海外に行くことになった
  • ブルガリア。8/20出国、8/26帰国
  • 滞在中5日間、毎日同じメニューだった
  • 地下鉄はきれいな雰囲気。まだ伸ばしそう
    • 70円程度
  • ネフスキー大聖堂 (撮影禁止)
  • 路面電車。電気で動くバス。
  • KARAOKE YESTERDAY
  • 銀行が並ぶ雰囲気。600〜700円程度でビールも飲める(安い)
  • 生活用品 : the MALL (イオンモール的なもの。中は栄えている)
    • ハリーポッター的なもの
    • キッコーマンも売ってたり
    • トマトがキロで1レフ(70円)とか。激安
    • ペットボトルでビール2L(181円)
  • KURUBOTO : pre conferenceの会場
    • フリービールの会場。100人くらい。寒暖
    • @kolcon、ddmitov 現地の人。家賃安いトーク
  • YAPCはSocialカンファレンスなんだけどぼっち
    • Makiさんが紹介してくれたので、ぼっち脱出した
  • 無限コーヒー、お茶、コーラ。無限朝食も
    • 昼食も振る舞われた。ランチをとれる場所がなかった
  • オフィシャルディナー
    • バスをチャーターで移動。オランダの人とgoogle翻訳経由で会話
    • オープンな会場。
    • Soyerさん、ovidPerlさん : Perlのカンファレンスの話とか
  • 本編とサブ会場1(100人)とサブ会場2(50人)
  • ソーシャルカンファレンスだった
    • トークの最中にツッコミが多い
    • フリーハンドのマイクが多い
    • トーク終わった後の議論が多い
  • Ukigumoちゃんと自作サーバの話がウケた
  • おもしろLT → OAuthの認証のデモを5人で小芝居
  • 英語について
    • EUは母国語が英語じゃない人も多い
    • 英語ができないことについて寛容。コミュニケーションしてくれる
    • もっと英語を勉強したくなった
  • 英語できないこととYAPC::Europe 行けないこととは別
  • 来年は Granada(Spain)
    • ルーム貝が。「観光地です」
    • 行ったらきっと楽しいので、ぜひ行ってみて欲しい

hitode909さん「Perlの静的解析入門とPerlリファクタリングツールApp::PRTのご紹介」

  • リファクタリング : 振る舞いを変えずにコードを綺麗に
    • 名前を変える、実装の場所を変える
    • 変更場所を考えるのは難しいけど
  • Javaだと、EclipseのRefactor機能がある
  • Perlの場合は頑張るしかない
    • 書き換えながらテストが通ってうまく行ってればO.K.
    • Padre → 変数名変更できるらしいけど、クラッシュする
    • Devel::Refactor ってのもあった → 正規表現してevalしてうまくいったか見るだけ
    • App::EditorTools → Emacs / Vim 用。うまく動く
    • sedでやるといいのか → 文字列変更では当然精度が低い
  • 静的解析が必要
    • 実行して調べちゃうと動的解析になる
    • シンタクスハイライト、構文チェック、規約、脆弱、リファクタリング
    • wc も立派な静的解析だけど、命令数とかも知りたい
  • 構文木が必要
    • PPI で作れる
    • Perl Document Object Model を作る。パース難しいからすごい
    • Compiler::Lexer → moznionさんの発表を見て下さい
    • PPI::Dumperを使うと色々見れる
    • findがあるので、ステートメント数を見れる
    • 構文木があれば、安全にFizzBuzzを破壊できる
    • 構文木を書き換えて保存して保存
  • git grepのいいやつを
  • App::GitGrepPerlStatement - トークン単位でgrepできる
  • Perl::Critic → コーディングスタイルのチェック
  • App::PRT (Perl Refactoring Tool)
    • リファクタリングの時によくある操作をまとめたもの
    • トークン置換、クラスや名前空間のリネーム、メソッド削除、移動
  • Omikujiアプリのリファクタリングのデモ
    • prt replace_token uranau tell みたいな感じで実行できる
    • move_class_method
    • rename_class
    • delete_method
    • rename_name_space
  • Plack::RequestをPlack::Kudasaiにするデモ
  • 使うコツ
    • 使うファイルが減ると速い (先にgrep)
    • テストを通してからコミット
  • 2000行程度のリファクタリングも成功した

LT

Yappoさん / 1min「リクルーティング」

  • Web DB Press の Perl Hackers Hubの12月分を書いて欲しい

tatsuro.hisamori@facebookさん「YAPC::Asia Europa 2014に行ってきました 超濃縮版」

  • ブルガリア
  • 先週やった
  • 市街探索 → ビール41円
    • 生活用品としてビールを買ってきた
  • makiさんのお陰でぼっちを脱出した
  • 休憩スペース、無限コーヒー、無限朝食
  • いいところ : ラフ、ピンマイク、トーク後の議論
  • Ukigumoちゃんは世界でウケる
  • 英語できなくてもできるので、Europe行きましょう

Yudai Suzuki@facebookさん「TDD」

  • TDD = Twitter Driven Datsu-Syosinsya
  • 仕事中に普通にやってますか? → 手を上げないほうが
  • Twitterで有名な人をフォローしたほうがいいよと言われた
  • すごい人たちが注目している技術がわかる
  • すごい人たちの思考、思想がわかる
  • OSSコミッターのやりとりが面白い → fluentdとか
    • closedソース野郎と罵ってたり
  • 質問に答えてもらえる
  • 世界がズレて見える
    • gitは使えて当然
    • githubでcontributeするのはあたりませ
    • CI
    • 自動デプロイ
    • インフラとアプリの教会内
    • Hipchat
    • Slack
    • 言語はすぐアップデート
    • 勉強会
  • 転職した現実は違う
    • Twitterの人たちがすごい人だと気がついた
  • 「Twitterで有名な人をフォローしたほうがいいよ」
  • 「すごいエンジニアっぷりをTwitterで発揮してね」

libitte@twitterさん「画像ファイルに色名を割り当てたいときに便利なモジュールのご紹介」

  • アバターとは : 理想の自分を作り上げる
  • アイテム数が多すぎて探しにくい
    • 色検索とか
    • うん十万件あるし人力は無理
  • Image::ColorDetector
    • 要件 → 検索ニーズのある色に割り当てる、あいまいなのも無理やり色を付ける
    • HSVの色空間で色相で割り当てる(人間との親和性)
  • 色名を使うサービスなどで作れる
  • 高速化(ピクセル一個一個見ない)、色名を指定可能にしたい

タケウチさん「脱北者より怒涛の研修日誌」

  • 4月から7月の3ヶ月が研修
  • 経験者2名いた
  • サービス内容は、前夜祭で話したgeek dojo
  • 勉強会、ぬくもり、継続
  • 東京と北海道の違い
    • 東京は、回数が多い、参加者が多い、関わりが薄い
  • ggrks文化をどうにかしたい
  • 師匠と弟子 → 継続性
  • ユーザーストーリー、バックログ、スプリント
    • スクラムもアジャイルもやったことなかった
    • うまくいった
  • 寝坊した同期を起こすのに Yo を使った
  • GeekDojoで師匠を見つけて下さい

issm@twitterさん「初めてリリースしたCPANモジュールのおはなし」

  • 欲しい機能 →文字のインクリメント。インクリメントルールを決められる
  • String::Incremental
    • 文字列を++していくと、IDが変わっていく
  • なんかポジティブっぽいコメントをもらった
    • 7/18にリリースした(広末涼子さんとご自身の誕生日のため)
    • 時差のせいで 7/17 に

hoto17296@twitterさん「運用で爆発四散しないためのメタプログラミングとの付き合い方」

  • メタプログラミングがわからなかった
    • プログラムを作るプログラム
    • つまり魔法
  • evalは危険なのでsymbolicリファレンス
  • 変更の局所化、動的にコード生成、DSL作ったり
  • 例: PostModelからAPostModelとBPostModelを作る
    • 共通な部分をif分岐とかコピペとか
    • 中途半端なメタプログラミングは死を招く
  • 設計が大事。どこに書くべきかを考える
  • メタプログラミングは協力、楽しい、言語の理解が深まる
  • 「メタプログラミングRuby」 PerlもいいけどRubyもやろう

glkame@twitterさん「I began perl」

  • Perlを再び始めた
  • 5.18.1 → そんなに昔でもなかった
  • perl入学式 → 知り合いが増えた、挫折したままにならなかった。Perl面白い
  • geekdojo → 少数、遅れない、ぬくもりがたくさんある
  • perl入学式とgeekdojoのいい循環
  • 挫折をそのままにしない。きっかけは大事

zakzakzak333@facebookさん「フィリピンでCTOを名乗り始めて焼く2年が経った」

  • Selfieの棒が運搬中に壊れた
  • 15人程度。資金調達(複雑な関係)
  • フィリピンは海もお姉さんも綺麗
  • 平均年齢23歳、スマートホンの普及率が高い、android
  • マーケットとしても開発拠点としてもいい
  • 英語はどう?
    • ネイティブじゃないので、理解がある
    • アメリカ英語に近い
    • Skype、セブ留学
    • コミットメッセージを読む、文字ベースで
    • (ゴーン) join us

Sawyer Xさん「YAPC::Asia」

  • WEB開発は大変
    • mod_perl、CGI.pm
    • Catalyst, Dancer2, Amon2, Mojolicious
  • Dancer2
    • use strict, use warnings 内蔵
    • テンプレート変えたり
    • Text::Xslate対応
    • JSON serialize
    • Plack::Middlewareと合わせて使える
    • Plack::App::URLMapとも
    • 美しい構文、Mojoliciousテンプレートも使える。seissionとかも

941@twitterさん「5分でわかる!技術系イベント運営のコツ」

  • こういう場慣れて無くて
  • YAPC楽しんでますか
  • 941::6109でスポンサー登録したらパーカーもらえなかった
  • 色々なイベントやってる
    • 小さいイベントもやってる
    • YAPC 2013は1000人以上
  • 業界の技術力が上がると自身のバリューにもなる
  • イベント運営は大変
    • イベントの数だけ運営の方法はあるが
  • 覚えるべきポイント
    • 会場
    • 話す人
    • 聞く人
    • オプション: 懇親会、エントリ、写真
  • 一人で頑張り過ぎない
  • 時系列リスト、準備が8割
  • レスポンスは速く
  • ネガティブと向き合う
    • 参加者のもっと良くしたいという気持ち
  • いいイベントあった!「ISUCON」
  • (ゴーン)

sojiro14@twitterさん「PERLで世の中の問題を解決するぜ」

  • 法律を勉強していた
    • 法律は使えないツール
    • 仕事で使うときは無駄にめんどくさい試験が必要
    • PERLは誰でもできる素晴らしいツール
  • ジョークです
  • 捕鯨問題 → 日本人くじら食べる
    • reduce_intelligence でくじらの知能を下げれるので食べられる
  • 議員のモラル低下問題 → 耳が手より後ろにあるのが問題
  • おにぎり2万個作ったら進学コースから普通コースになってしまう問題
  • PERLで世の中をよくして行きましょう

nekokakさん「YAPC::Asia Ramen Challenge」

  • ラーメンを食べるかOSSに貢献する
    • ラーメン食べた!貢献した!
    • @miyagawaさん@shiba_yu36さん@kamipoさん

Daisuke Muraseさん「キーノート : エンジニアとして生きる」

  • オンライン上ではtypester
  • Perl, C, Objective-C, Goをよく使う
    • なんでもやる
  • ディアブロ、ingress
  • Ingress → Googleが開発している位置取りゲーム
    • ぜひ緑で初めましょう
  • (株)メイク・イット・リアル
    • 技術顧問も : Wellstyle corporation、iichi Inc
  • 2004年(23歳) クーピー (カヤックの子会社)
    • 歯医者、絵画、などのサイト
    • 受託開発の知識を得た
    • 全案件の情報を見れた
  • 2005年(24歳)
    • カヤック
    • Shibuya.pm を聴講
  • Shibuya.pmの衝撃
    • miyagawaさんのコミュニティが楽しそう
    • 懇親会とかがないので、その輪に入れない
  • 2006年(25歳)
    • YAPC::Asia 2006 スピーカー : Catalystの話
  • YAPC::Asiaの衝撃
    • Audrey Tang → 同い年なのにレベルが違う
    • Audrey TangはIRCで英語を覚えたと聞いた
    • Hackathon を知った
    • miyagawaさんと椅子を並べて開発 → コード書くの速い(Emacs)
  • shibuya.pm tech talk
    • 無事スピーカーとして登壇
  • 以降のOSS活動は割愛
  • 2007年 BM11(ブッコミイレブン)の初代メンバー
    • 「仕事いっぱいいっぱいだけどぶっこんでこ」
    • TTYShare (ttyrecをWeb上で再生できるサービス)
    • im.kaya.com (Jabberへの通知。Growlとか直接使えない時に浸かってた)
    • Hatena FileSystem
    • PSPSlidePanel
  • 2008年 (27歳) BM11 こえ部の運用、アップデート
    • Kamaitachi : FMS実装。Danga::Socket仕様。イタリアで開発
    • 中2フィルタ : 年齢を閲覧者が中二の時の相対値にする
  • 2009年
    • Ark : Catalystライクなウェブアプリケーションフレームワーク
    • im.kayac.com のiPhone対応
    • emacsのパッチ
  • 2010年 子供用のアプリがラボのテーマ
    • 安心レーダー → ペアリングした端末のバッテリー残量などを追跡
    • 笑い袋 → 連打するとすごいことになるらしい
    • 縁起物 → シルバー世代向け。apple TVとwiiの抽選に当たるくらい効果ある
  • 2011年
    • Reengo → FBの電話
    • VQチェッカー → 声診断。大学の先生と開発
    • 音声の知見をたくさん得た(今の仕事につながっている)
  • 2012年(31歳)
    • MusicParty : iPhoneの音楽を1つのiPhoneで(カーステレオよう)
    • Pabrish : ブログを書くように電子書籍を
  • 2013年 独立
    • 趣味と仕事の関連。人生を賭けるか、収入を得られるか
    • 人生を賭ける方向に多くの時間を使いたい
    • 「自分が使うアプリを作り続けること」
    • 自分が使わないとメンテできない
    • 自分が困っていることは他人も困っている
    • 「自分がやりたいことを、仕事にしたい」
  • エンジニアは楽しい
    • エンジニアは楽しいと思うエンジニアを増やす
    • 「技術の力で生活をより良くする」
  • 好きなことだけでは行きていけない?
    • NO
    • 自分の生活をよくするアプリ開発、技術を提供、エンジニアを増やすための登壇
    • 受託50%、自社50%
    • 受託は稼げるようになったらやめよう、と思ってた
    • 受託枠は残そうと思いだした → 受託開発は楽しい。出会えない技術、出会えない人に出会える
    • 壇上さん、nihenさん、charsbarさんと協業 → Solr
    • ユカイ工学さんと協業 → P2P技術
    • iichiさんと → iOSアプリ
  • 受託開発スタイルのいいところ
    • 元手が要らない(貯金はあったほうが)
    • スキルが必要(仕事を選ぶ)
    • ノウハウがいる(契約書とか)
  • 20代でやることが、今後の原動力になる
    • 10年後が想像できなければ、ロールモデルを見つける
  • 一度の人生を楽しまないと損
    • 好きなことを仕事にする。エンジニアであればそれができる
  • (最後に、お子さんも壇上に)

Yusuke Wadaさん「クロージング」

  • Perlの話は少なかったけど面白かったのでは、というコメントが
  • みんなで作っていくものなので、運営側から聞くものではないよね
  • 寒い。夏終わった・・・
  • HUBで1000杯フリードリンクです
  • 来場者数: 1,361(昨年1,131) → 世界最大を更新
  • ベストトーク賞
    • 3位 : tcnksmさん「コマンドラインツールについて語るときに僕の語ること」
      • 初参加でしゃべろうと思ってしゃべって、賞までもらえて嬉しいです
    • 2位 : tagomorisさん「そんなにビッグでもないデータ処理手法の話」
      • 2006年のYAPCが初めて出た大きいカンファレンスだった。嬉しい
    • 1位 : うずらさん「半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情(5.6対応)」
      • 投票有難うございます。「すごいな。すごいな」「歴史の転換点見てますよ」「大丈夫なんですか」
      • 「PHP!」「PHP!」「PHP!」
    • uzullaさんにサーバへのアクセス制限ありません(PHPerがよみかきできるわけないじゃないですか)
  • スポンサー企業の皆様に感謝
  • スタッフのみなさんに感謝
  • アンケートもありますよ。ブログ書いて
  • 次回のYAPC::Asiaは?
    • 来年もやるのかって思うとぞっとする
    • たぶんやる
    • 運営に濃密に関わりたい人は、@yusukebeまでメンションを
    • Tokyoでやる必要もない
  • 終了!