YAPC::Asia Tokyo 2012の最終日です。電源ケーブルを忘れたので一度家に帰りますが、東大内の伊藤国際学術研究センターに向かいます><
今日もgihyo.jpさんの特集にレポーターとして参加します。@amayanさん、@moznionさん、ya_k0さん、@takayuki_hさんのメンバーによるレポートもいよいよ大詰め、暖かく見守って下さい!
Yusuke Wadaさん「「新しい」を生み出すためのWebアプリ開発とその周辺」
開始まで時間があるので軽くMCから。
- 歯医者の話。親知らず4本抜いた。銀の詰め物に3万かかった。歯は大事に。
- Twitterで#yapcasiaで呟くと盛り上がってる感が出るよ
- kazeburoさんと近藤さんの裏なので、溢れた人はこっちに来るようLINEで伝えて
- 後2分です
ここから本編です。
- YAPC初めての人は? → 多い。Perl書いたことない人は?
- Perlで新しいWebアプリを作る → HowだけではなくWhatも大切
- 企画を含めたサービス開発
- 規模 → 中の下の規模くらいまで(モバゲーみたいなとこは大規模)
- 大規模と小規模だと作り方がまったく違う
- 「Mobageを支える技術」は大規模だよね
- 想定聴衆 → 日曜大工的にWebアプリを作りたい、少人数でのスタートアップ、Perlで何作ろうかなって人
- 企画のプロセス
- いいサービス → 企画のプロセスが一気通貫。順番はバラバラでも。人に説明するとき楽
- リスク → 技術:世にあるか、スキル:自分ができるか、リソース:時間がとれるか、政治:人との関連、法的:法律
- sandboxディレクトリで技術検証。実装してみた方が速い
- 例: YourAVHost 2007年の年末リリース。日本で一番はてブのついたエロサイト
- WAF : Web Application Framework
- Mojolicious → 最低限の機能を使う
- 枯れつつあるものを使う → DBIx::Skinny/Teng、Mouse、MySQL、memcached
- O/R Mapperはモデルじゃない → MyApp::DB みたいな感じ
- スタートアップの場合には
- 既存WAF+O/R Mapper
- 最低限キャッシュ
- No NoSQL。運用が大変。MySQLで十分
- サーバも1〜2台で十分
- スケール
- スケールアップ : 性能を上げる
- スケールアウト : 台数を増やす
- 費用面では容易な時代
- マネタイズの時期である可能性が高い
- 他の人にお金回りを任せる
- 例2: bokete.jp
- スケール
- Catalyst+Pluginに依存し過ぎていて、他環境で動かなかった
- linode 1GB x 2 で運用してた
- Mojolicious × DBIx::Skinnyへ。一ヶ月程度
- 自作のDBI(Bokete::DBx)ラッパがSlave、更新はDBIx::Skinnyへ
- Bokete::DBx → HashRefベース、適切なjoin
- クエリごとによってキャッシュ。expireのタイミングはサービスの構成から決定
- さくら VPS
- 表示速度、PVは2倍
- 1700万pv/weekly
- キャッシュ作成が同時に走る問題
- キャッシュ作成中のフラグで処理を同期
- iPhone版は10/10リリース予定
- HALO、BraveSoftと共同開発。WebAPIだけ容易
- 他にもサービスにまつわる色々がある
- 質疑応答
Adam Kennedyさん「Padre - The Perl IDE for Normal People」
こちらはgihyo.jpさんの特集にも掲載しています。
- vim、emacs、他のエディタでの人数の違い → vimが多い
- Padre Perlのエディタ
- 構文チェック、ファイル、関数一覧の表示
- viやEmacsはギーク用のもの
- IDEを作るのは巨大で大変
- ECLIPSEもCPANも2000万行以上のコードがある
- "オープン"で"無料"ならできる
- PerlのIDEでJavaを使うのは間違い
- 力の入れどころを決める必要がある
- 8GBのメモリカードにIDEを入れて持ち歩いてる
- 現在Padreのコミット数はEmacsを抜いている
- CPAN, Perl(thread.pm)、wxWidgets、SQLite, scintilla
- 日本語もサポートしている。charsbarさん++
- #perl-casual に繋がるようにしてる
- Perl6もサポート
- ネット経由で1つのファイルをいじったり
- Perlを対象としていることが一番大事
- indentや=の位置調整もできる
- プロジェクトの位置は.gitやMakefile.PLを見つけてくれる
- アカウント登録により設定を複数マシンで共有できる
- 使いやすいデバッガ
- Q. 正規表現エディタを見せて下さい。教育用途で使える物か
- A. 正規表現のドキュメント(日本語)を見ながら入力できる。エラーが表示される。マッチしているかリアルタイムで見られる。教育でも勧められる。
- Q. Padreのコード何行くらいあるの?
- A. 60,439行。200万ドル程度(IDEに表示される)
- Q. プラグインはPerlモジュール?
- A. まだAPIが変わるので壊れているものも。1.0になれば安定させる予定。依存するAPIバージョンを記述できる
- Q. dankogaiさんのNexus7で動くのか
- A. 今は無理。Perlが動けばね・・・
Tomihisa Fuonさん「Perl 今昔物語」
- 自己紹介 miyagawaさん、nekokakさん、tokuhiromさん、naoya_ito
- f: 由来を聞きたい
- m: 2005年に台湾のYAPC Taipeiに招待され、翌年やった。Shibuya.pmは2003年くらい。アメリカに移ってからはリモートからShibuya.pm開催してた
- m: 2006年から来てる人も初めて来た人も多い
- f: YAPC::Asiaの歴史。URLが変わってきてる
- m: 元々PythonやRubyと一緒のLLイベントはやっていた。テックトークは面白いのでもっとやりたい
- n: miyagawaさんとかにあったことなかった。tokuhiromさんに発表させて見に行った
- t: 最初LTだった。面白い人ばっかりだったので緊張した
- i: 一日プログラミングのイベントはLL Sutterdayが最初。1つの言語は初めて。Audreyタンに感動した
- f: 2007年 ニコニコ、iPhone、gihyo.jp、Android発表、JPA発表
- m: もう自分から運営が離れていた。個人会計からJPAに引き取ってもらった
- f: 2009年 言語仕様の変化、miyagawaさんのクロージング
- m: それは2010年
- t: Perl5の進化がPerl6を止めてるという話があり、それぞれ独自に開発される流れになった。その変化の年
- m: 5.10から5.10.1までリリースに2年かかっててまずい。リリースが体系化され、毎年リリースに変更された
- f: 2010年 ハッカソン、サイン会
- ハッカソンは第一回目から
- m: はい。
- d: JPAができるまではうちが楽屋だった
- m: ホテルが高いので。martyとかに手伝ってもらえる
- f: みなさん参加??
- i: 去年初めて参加。黙々とhackして最後帰る
- t: 毎年参加。勝手にhack。YAPCに向けてネタを仕込むが終わらない。その分をhackathonにリリース
- m: 発表時点には終わってない
- n: 家族がいるので、参加したことがない。
- f: 交流の場として意味が大きそう
- 2011年、東工大でのイベントがクロージング
- ビギナーズトラックを準備
- miyagawaさんのクロージングってどうでした?
- m: 海外の人がやるのが定例だったので技術話になることが多い。眠い。他で聞けばいいと思ったので
- f: tokuhiromさんがLTでベストスピーカー賞を・・・
- t: 酔っぱらってLTしてベストスピーカー賞をとったわけではなく、初心者向けチュートリアルで
- n: Mac mini を頂きました
- i: 京都にいたので、年に一回帰ってきてた。お祭り要素が強い。弟とも年に一回
- f: 同窓会的ですね
- 2003年か2004年のblog hacks。産まれた経緯は?
- m: ブログを4個か5個書いてて、本を書く話が来た。全部書くのは面倒だった
- i: レビューをしに行ったら書く羽目になった
- m: 同じ業界で競合だけど、カンファレンス内では仲間としてやる
- f: Perlコミュニティはそれが強い
- i: 会社の中にPerlを書いている人は少なかった。Shibuya.pmを見つけた
- n: サラリーマンとしてコードを書いていたが、WEB+DBの会談記事を見てやりたいと思った
- f: githubの登場で何が変わった?
- t: CodeReposというのがもともとあった。githubによって海外の人とも繋がるようになった。初心者の人からpull requestも来るようになった
- m: 開発環境は変わってない。emacsを使ってる。vimにしようと10年。
- f: これって60分ですよね?? 40分じゃないですよね?
- n: 自分のコードで開発できる物はgithub
- i: githubは開発者がやってることがツールになったもの。GREE社でgithubエンタープライズを導入して標準化された
- i: 色んな物がスマートになった。ライブラリのデプロイなど、手でやってたのが自動化された
- f: インフラに関する発表も増えてきた?
- m: 日本人の発表でPerlそのものの発表が少ない。インフラ含め実用的な話が多い。
- 海外だとPerlのTips、実装方法、周りが多い
- f: 話したい内容ってどう決めてます?
- n: そのときに作ってて面白いもの。自分の体験。
- t: そのときに自分が必要なもの。他にやる人が居るべきなのに居ないトーク。
- i: 1年で仕事でやった中で、役に立ちそうなこと
- Perlという言語の強み。古くから大規模WEBで使われてた。
- m: 日本、Tokyoではそういう面が多い
- f: 2013年以降、どうなる。なぜPerlを使っている?
- i: 2005〜2007年、サーバサイドが全てだった。今はサーバサイドが減ってきた。言語もPerlだけに拘る機会は減っている。特にスマフォ関連。
- t: CPANの蓄積があること。困ったことは情報交換してモジュールを作って開発してきた。強みがある。
- n: 得意な言語。優秀な人が社内に集まっている。CPANも
- m: 仕事では書いてない。Perlは他の言語より自由な感じがよい。初心者には逆に選択肢が多過ぎる。が、好きなようにできるのはよい。変化の受け入れの懐が深い。厳密性が少ないのは作り手からのメッセージ
- i: 全ての言語において、どれを選ぶって理由がない。共感する所で選べばよい
- m: 互換性のない変更がない、のはわかりやすいメリット。エコシステムを破壊しない。他の言語は新しいものに
- i: 互換性だけ重要視だとJava。ビジネス的な観点だけだと
- n: Javaと比較するのは違和感。LLの中で互換性重視というのが重要では。互換の問題で壊れることはほぼない。安心して使える。
- f: Perlが今年以降どうなる
- m: 一年に一回必ずリリースがある。5.12で動いていた機能は動き続ける
- t: experimentalプラグマなど、いい方向の変更が
- 質疑応答
- Q. 2008、2009年にモジュールが入れ替わる時期だったのが落ち着いてきた。新しいものが出てきてもいい時期なのでは
- A. m: YAPCドリブンで開発が進んでた。Plackも似たようなものだが、今では当たり前に使っている。この数年トレンドがないけど、また来年あればいいかな
- n: 海外のマッチョだったものを日本人が使いやすいようにリメイクしてきた。一線を越えると何かが出るかも
- t: 2006年、海外の情報を受け止める時期があった。最近はトラフィックを捌けるミニマムなものを組み合わせる風潮。波がある
- m: カンファレンスに出てなくても使ってる人はいる。声の大きい人がいるだけ
- i: 他の言語でもそう。node.jsの後、大きなトレンドが見えない。
- f: 〆て
- m: Plackとかリリースの方針変えたり。一部の人がやってるわけでなく、ウェルカム。
- n: Tengとか使ってもらえてるけど、要望がもらえてない。今回もTengは他の方に発表して欲しくてお願いした。ブログとかにどんどん要望を書いて欲しい
- t: YAPCに初めて来たような方が来年以降の波を作るので、頑張って下さい
- i: CPANがすごいよい、ドキュメントが読みやすい、フリーなコミュニティ。毎年弟と再会したい
Dan Kogaiさん「Perl as a Foreign language」
こちらはgihyo.jpさんの特集にも掲載しています。
- use strict; use warnings の代わりに use v5.12 でよい
- 昔はPerl runs every where だったが、今は JS runs everywhere
- JSは皆嫌々書く
- JSは世界の半分
- Apple社のパーミッションの都合で流出したソース → "ダサ"いPerl
- ダサくても動く。KENTの人でも使える。Perlのいいところ
- Web Programmingの他の諸々
- one-liner、shell script → 日常の作業におけるPerl
- Perlは遅いのか
- PerlのTDD → "make test"が必ず
- 本物のテスト駆動。make test失敗したらmake installしない
- 他の言語ではここまで厳格でない
- Perl Mongerがテストを声高に言わないのは、当たり前のことだから
- 特定のプラットフォームでしか使わないもの
- Perlはサロゲートペアを正しく扱える(lengthなど)
- Perlのコミュニティ
- No language is an island
- 他の言語から色んな要素を持ってきた
- JSのもう半分を埋める言語として、なんらかの言語があればよい → Perlだと今日話した視点から便利
SKYARC presents 「遠方よりの参加者」発表
meru_akimboさん「Perlの会社に内的丸まで 」
nontan__さん「????」
@outerinsideさん(Satoh Koichiさん)「20年越しでperl 4 to 5」
k636174さん「Perl入学式に参加してみた そして奈良にも」
TAKESAKOさん「Perlで始める!? 初めての機械学習の学習」
こちらはgihyo.jpさんの特集にも掲載しています。
- 機械学習をやりたい
- 変数変換、極座標変換、線形代数の復習が必要
- 20代は乗り切れても30代になると苦しむ
- 光成さんのPRML用のアンチョコ
- 同人誌を出した → ランキングトップ
- Kinect → MS researchの論文
- 人間の動きを調べる
- Random Forest アルゴリズム
- 二分木の決定儀
- ランダムに線を引いて、うまくいくように切っていく
- 多数切って、多数決、合成をして領域を決定
- 奥行き情報をとって、リアルタイムで人間の姿勢を同定
- デモ → 3Dモデルを人の動きに合わせて動かす
- mikumikudanceも中の人はおっさんなので注意
- デモ → 3Dモデルを人の動きに合わせて動かす
- CPANにkinect用のライブラリがない
- Bit Backetで開発を進めている
- 例: Kinectで取得したものを
- DNS × Kinect
- 姿勢によってサイトにアクセスできるか
- まとめ
papixさん「Perl入学式をやってみた!」
こちらはgihyo.jpさんの特集にも掲載しています。
- 初心者向けの勉強会が欲しかった
- 環境、モチベ、教えることで勉強、関西のPerl
- KOF2011からの突然の牧さん
- ということで開催
- 内容
- 5時間 → 3時間
- 前回の内容を復習、項目ごとに練習問題をコーディングしながら解答
- サポーターがいて、マンツーマン
- 今まで8回。全12回。ゴールの設定でモチベを保つ
- こころがけたこと
- 極限までハードルを下げる → 環境構築から、質問を許容する空気
- コードを書くことを重視 → 解答も手を動かして
- 継続して参加できる環境 → 月に2回。どちらかにくればOk。資料も公開
- 評判
- ノウハウ
- 仲間を集める。背水の陣。
- 告知は1ヶ月前
- 失敗を恐れずにやることが大事 → 燃えたぎるほどのハートがあれば絶対できる
- Perlへのもう1つの貢献
- コミュニティの活性化は1つの貢献の方法
- 詳しくなくてもできる
- ありがたいなと思うのであれば、そういうところから
- 野望
Lightning Talks Day 2
こちらはgihyo.jpさんの特集にも掲載しています。
riywoさん「Most Powerful High Availity Load Balancing」
charsbarさん「Annual Report 2012」
- 毎年恒例
- MATTNさん、PAWAPAWAさん、初登場。xicronさん
- 日本の新規のCPAN Authorは減ってる。リリース数も落ちてる
- アクティブ作者も減ってる
- これを成り上がれるチャンスと捉えるかは皆さん次第
karupaneruraさん「Dummy data with Teng」
onagataniさん「スカイアークシステム - 帯広から、愛」
- 一軒家、トラクターで移動
- 競馬場 ジョッキーは馬に乗ってない
- クマに勝てる、マイナス20度にも耐えられる、屈強なエンジニアを募集
tagomorisさん「About our output」
kawamurayさん「Imager::HeatmapでVisualization」
turuginaさん「ほとんど同じ」画像ファイルを簡単に整理するために」
- 似たようなファイルが二つある場合、もう1つを消したい
- 手でやる → 量が多く無理
- Similar Image Search
- 領域分割して特徴点を出してやってみた
- Image::Characteristics
- デモ → RGBで特異点を抽出
- めでたしめでたし
Futoshi Koresawaさん「株式会社スターダストコミュニケーションズ - Introduce SDC」
do_akiさん「それ PHP でできるよ」
M_Ishikawaさん「おせっかい駆動開発のススメ」
佐藤さん「株式会社フリークアウト 続・平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用」
- 高度なテクノロジーが必須
- 1回ごとにオークション
- EmailやFaxでやっている人を入れ替える
- 数十万QPSをひたすらコンスタントに50ms
- フリーランチ、フリードリンク、フリースナック → Devる環境
Gosuke Miyashitaさん「How Perl Changed My Life」
- 基本的にはプログラマーではない
- インフラのレイヤの方が好き。ソフトウェアエンジニア
- 1998年 Yui Chat 奥さんと出会った → Perl changed my life
- テクニカルマネージャー
- 全社的に関わるものなんでもやる
- 採用、評価
- アーキテクト+実装
- 新技術導入
- 問題を拾って解決する
- 勤怠管理(Catalyst)、30days album(qpsmtpd+HTTP::Engine)
- 人事評価をgithubでやり取りしている
- 事前にコメントしたり、終わったらmergeしたり
- 1995 Perl CGI
- 1998 Yui Chat
- 自分用のCGIやutilityの作成
- 2004 "Sledge" → プログラミングは楽しい
- 2005 携帯ゲートウェイ
- WebService::Bloglines にパッチ。miyagawaさんにコンタクト
- ブログを始める。blosxom。
- "それPla" → 面白いソフトウェア
- YAPC → スピーカーになるとは思わなかった
- Plagger ConferenceでLT Speakerに
- Shibuya.pm、YAPC::Asiaとスピーカー
- 2012 Sappor RubyKaigiにて登壇
- Perl界隈での実績のお陰でCTOになれた
- 同僚を得た
- Shut the fuck up and write some code.
- コードが書けるのは説得力
- Perlで学んだことは他の言語でも役立つ
- Openness is our driver for excellence
- Openにすることで、素晴らしいことに繋がる
- "Open"をPerlから学んだ
- 子曰、知之者不如好之者、好之者不如楽之者
- Larry Wallさん、miyagawaさん、Perl Hackers、JPA、YAPC staffにThanks
- コミュニティがあって人があるのではない、人があってコミュニティがある
Daisuke Makiさん「クロージング」
- 会場が代わり、LTソンをやったり、スタッフが変わったり
- 子供も産まれた
- 33スポンサー数、スタッフ43人、トーク63、841名の参加者
- ベストトーク賞発表
- 3位. Tatsuro Hisamoriさん「平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用」
- 2位. Tatsuhiko Miyagawaさん「more things to be ripped off」
- 1位. Yusuke Wadaさん「「新しい」を生み出すためのWebアプリ開発とその周辺」
- YAPC::Asiaのあるべき姿
- @941さん、JPA理事、ボランティアスタッフに感謝
- ブログを描くまでがYAPC
- exit(0);
*1:これは読みたい。1日くらいで