昨日、
※セッションすべてをレポートするわけではありません。ご了承ください。
本日はあいにくの雨模様ですが、開始時間にはやんできたようです。雨にぬれてしまった方は、もしよろしければ着替えにTシャツを買ってみてはいかがでしょうか、との話がされていました
Kazuho Okuさん「Unix Programming with Perl 2」
2日目の最初のトークは、
まず、
次にシグナルのレースコンディションに関しては、
masahiro naganoさん「運用しやすいWebアプリケーションの構築方法」
masahiro naganoさんによるトークは、
運用しやすいアプリケーションとして、
ログを適切に出力するという観点では、
さらに、
Kazuhiro Shibuyaさん「おたくのIPv4まだ残ってますか? - PerlにおけるIPv6への対応状況」
渋谷和弘さんによるPerlのIPv6対応状況に関するトークです。 実は筆者が個人的に興味のある分野であり、発表を心待ちにしておりました。
はじめに、今年の4月にIPv4アドレスが枯渇したことを話題に上げ、既存のIPv4を有効活用しつつIPv6への移行を視野に入れる必要があることを主張されました。
そして、World IPv6 Dayの紹介があり、Perlの対応状況の話へと議題が移ります。
また、とあるブログで
後半は、PlackにおけるIPv6の利用実験についての成果を発表。
Plackそのものについては、plackupのipv6オプションでIPv6に対応するものの、SSL非対応であること、StarmanではNet::Serverのバージョンを0.
最後にまとめとして、IO::Socket::IPを使うとIPv6/
tagomorisさん「Whada: Multi-Protocol Authentication/Authorization Tool」
以前、ISUCONの企画運営をされたtagomorisさんは、ご自身で開発された、マルチプロトコル対応の認証ツール
まず、Whadaの概要と名前の由来を簡単に説明。 作った理由については、社内向けWebサービスにおける認証まわりの面倒事(認証システム自体のばらつきや管理上の問題など)などがきっかけと語られました。
次に、社内認証によく使われているものの代表としてActive Directoryを挙げ、大抵は人事部などのエンジニアがあずかり知らない所で管理されているために、指摘や変更に伴う手続きが面倒と主張。
そしてWhadaを使う理由として、エンジニア側で権限付与・
また、権限や認証情報などのデータの流れを細かく解説し、実績として社内プロキシでの利用を例にあげ、実際の利用方法などを説明していました。
今後については、OpenIDやOAuthへの対応などを挙げ、チューニングへの意欲も見せました。
質疑応答では、LDAPサーチでの属性情報取得の可否や、アカウントが複数フィールドを伴う場合の対処法についての質問が寄せられました。
kentaroさん「DISられないCPANizeを目指して」
CPANモジュールリリースでの悩み事と解決案をkentaroさんが紹介してくれました。CPAN Authorになるための道筋を示した、興味深い発表でした。
はじめに
そして、私的および公的な動機と阻害要因がそれぞれ多数あることを説明。
このうち阻害要因についてスポットを当て、問題解決の観点から分析、阻害要因は主に知識や技量などの
この不安について、ご自信の経験談
その解決案として、CPANにモジュールをアップする前に見てもらう場所として、ご自身で開発/運営されているサイト
それまでの
Tokuhiro Matsunoさん「Hacking with metacpan」
和やかな雰囲気の中、松野徳大さんによる、metacpanの活用法に関する発表が行われました。
最初からいきなり
そしてmetacpanについて、
また、最初の
最後は、残った時間を利用し、UkigumoというCIツール(継続的にテストを実施するためのツール)を紹介。 同様のプロダクトとしてJenkinsが挙げられますが、アプリケーションを作り捨てするような開発状況では使いにくいことが開発動機の1つだと説明されました。
質疑応答では、Amon2で作られたWebアプリケーションをCPANにアップしやすくなる仕組みを用意したいと、語られました。
Ricardo Signesさん「闇のEメール伝説」
このセッションは、Ricardo SignesさんによるEメールの仕様周辺に関する発表でした。英語での発表でしたが、非常に共感できる部分が多かったです。
Ricardo Signesさんは、CPAN上にEmail系のモジュールを多数リリースされている方ですが、優先されてきたのはいつも互換性だと語ります。
そのようなことを語る理由を彼は、
彼が携わるPerl Email Projectでは、Email::SimpleをはじめEmail::MIME、MIME::Entity等、たくさんのモジュールを輩出しており、 その経験から、Eメール関連の仕様についてうんざりしていることが山ほどあることを強調していました。
それらを表現する言葉として、
次にSMTPを取り上げ、
その他にも、Content-Transfer-Encodingやエンコード済みのヘッダ情報についても仕様の問題点を指摘しており、添付ファイルの心痛、悲しみのネスト、SMTPはシンプルではなく単細胞など、おそらく考えうる問題箇所をことごとくこき下ろしていました。
Masahiro Honma(執筆者)「Monads in Perl」
このトークに関しては、
トークの前半では、
後半ではAnyEventで使われるcondition variablesが、
選んだ題材の割には多くの方に熱心に聞いていただき、
SKYARC System presents 招待 LT
SKYARC Systemさんの
papixさん「Cコンパイラ用テストスイート自動生成システム」
K&RとC89コンパイラのテストを支援する、
hkataokaさん「僕とPerlとYAPCAsia」
PerlやYAPC Asiaとの出会いについて話されました。今回始めてYAPCに出席し、
shinpei_cmykさん「プレNiigata.pm活動報告」
これから活動予定のNiigata.
lapis_twさん「Perl meets C++」
Sapporo.
1VQ9さん「Plack::Middleware::Auth::SAML2」
蜘蛛の遺伝子の解析をPerlでしている職場に勤めているという1VQ9さん。シングルサインオン技術としてSAMLを使おうとしたときに、
Eikichi Gotohさん「仙台で1年間 PM をやってみた」
Eikichi Gotohさんのセッションでは、昨日のLTと同じテーマを少し掘り下げてお話しされました。
昨日のLTでは公開されなかった仙台の被災状況の写真も交え、震災で町の半分がなくなったと生々しい状況を語られていました。その中で、エンジニアが復興のために奮起する様子を目の当たりにし、今こそSendai.
トークの最後にはPMの作り方を説明し、英語が苦手でも大丈夫と自らの体験も交えて説明されていました。
Takatsugu Shigetaさん「Evolution of API With Blogging」
このセッションは、Takatsugu Shigetaさんによる、ブログ関連APIの進化に関するトークです。
今年のYAPCのテーマは
最初はブログの歴史について簡単な説明があり、過去のことを学ぶことで、新しいものを見つけたいと語られました。
そして、そもそもブログとは、元々HTMLを直接記述していたものを、統一されたデザインで、本文を読み書きできるようにしたものであると語り、 トラックバックやフィード、HTMLのメタ情報、XMLRPC、AtomPub、RSD、weblogUpdates Ping、PubSubHubBub等について、手書きのフロー図などを交えて矢継ぎ早に解説されました。
途中で小休止をはさんだ後、今後のAPIについて、APIを自分で試しやすい等の理由から、データ形式にJSONを利用することを勧めていました。
さらに、リクエストにかかるコストの軽減に期待し、HTTPリクエストにPATCHメソッド利用すること等を提案。
BlogのAPIは大きく進化していないので、これから進化する必要があると思うという考えを説明していました。
また、大御所と触れ合うことが出来るようになったのは、プログラマ冥利に尽きると語っていました。
aloelightさん「少人数でのWebアプリ開発 - CGIからPSGIまでの変遷」
このセッションでは、aloelightさんがこれまで経験してきた開発スタイルの変遷について発表されました。
まず前置きとして、実装の話については出てこないことを説明。 そして、開発スタイルついて、開発に使うOS、バージョン管理システム。実行環境等の変遷について解説しました。
最初は環境がCGIで、その頃は趣味グラマからプログラマになったばかりだったことや、主にオライリーの動物本を読んで情報収集した事を語られました。 その中で、人力によるバージョニングや表計算ソフトによるタスク管理を不満だった点として挙げていました。
その後、YAPC::Asia 2007に参加してからは、RSSを利用して情報収集をするようになり、環境もCGIからmodperlへと変遷、CPANモジュールを利用するようにもなったと言います。 また、それまでの問題だった人力によるバージョニングや表計算ソフトによるタスク管理を解消する手法として、TracおよびSubversionを導入。業務上のストレスが軽減したことを解説していました。
それからしばらくして、インフラ担当者が退職した事を受け、ログの出力やコード保守性の重視、負荷の高い仕様についての再検討提案など、DevからDevOpsへ変遷したと語りますが、 それでもテストコードに関する不満などが残っていたことも併せて説明していました。
最終的に現在では、Plackベースの独自WAFを使って開発し、開発環境もVMware上のLinuxへと変化、テストも慣習化されたと語り、今後はgitを使う方針だと説明していました。
まとめでは、結果的にYAPC::Asiaがきっかけとなって、開発スタイルの改善を意識したと言い、YAPC::Asiaは定期的に開発スタイルを見直す良い機会である、と締めくくりました。
akiyamaさん「なぜ、高校生がPerlを使うのか?」
札幌在住の現役高校生であるakiyamaさんは、
akiyamaさんがプログラミングPerlをamazonで購入されたのは、
RubyやPythonなどの言語があるにも関わらず、
minemazさん「PerlでJCL、基幹バッチをダウンサイジング」
OpenCOBOLのことをつぶやいているのは自分だけだと言う峰松さんが、Perlを使って業務系システムのバッチ等をダウンサイジングした事について発表されました。
まず前提として、既存環境が国内メーカ汎用機と専用プリンタ等のシステムを、Linuxサーバを軸にしたシステムに移行することを説明。 COBOLのコードにしておよそ500万行のシステムをダウンサイジングした事になると解説していました。
次に対応方法を説明されていましたが、COBOLのコードをツールで自動的にPerlのコードへと置き換える等のステップを経ることを説明されました。
また、JCLの置き換えにPerlを使った理由に、構文JCL的なDSLを構成しやすそうだった事などを挙げ、実際にデモを動作させて、聴衆を驚かせていました。
主に利用しているモジュールとして、Parse::EYapp(Perlのyacc互換パーサPerse::Yappの拡張実装)やCIsam(vbISAM操作用)、PDF::Haru(libharuを使用した高速なPDF生成モジュール)を挙げていました。
今後の課題として、公開許可をとることやOpenCOBOLのSCREEN SECTIONの実装を拡張することなどを挙げていましたが、Nagasaki.
HIRATA Satoshiさん「Perlで仮想サーバ制御(ゆるふわ)」
このセッションでは、平田哲さんがPerlで仮想サーバ制御を行うノウハウについて発表されました。
まず本題に入る前として、Fukuoka.
本題に入り、聴衆に仮想サーバをどのように利用しているかを問いかけ、XenやVMware等のハイパーバイザ共通のインターフェースライブラリであるlibvirtに関する説明をされました。 その後、Perlからlibvirtを触る方法としてSys::Virtを挙げ、libvirtによってSys::Virtのバージョンを変える必要があることを解説しました。
また、自作のクラウド構築ツールであるBeccoameを紹介し、Amazon EC2やEucalyptusと必要最低限の互換性を持っていると語られました。
話題は仕事の話へと移り、複数の物理サーバ上に多数の仮想サーバを迅速に配備する仮想化環境の構築を依頼された時の事を話されましたが、
「Rubyで開発されていること」
Kazuhiro Osawaさん「Perl Hackers Hub の舞台裏」
Kazuhiro OsawaさんことYappoさんがお話ししたのは、
終盤、
最後にYappoさんは、
Lightning Talks
2日目のライトニングトークです。
kiwanamiさん「Perl, Emacs and Async」
手始めにEmacsで動作するマルチプレイヤー対応のFPSを披露したkiwanamiさん。EmacsからAnyEventで書かれたバックエンドを呼んでSQLを実行するデモの途中でトラブってしまい、
深町英太郎さん「Perl → Common Lisp → Perl」
Common Lispの経験が豊富ということで、
株式会社ガイアックスさん「Sponcered Session」
福岡の素晴らしい点を紹介するというテーマで話されました。中心部は都会であり、
azuma kuniyukiさん「bounceHammerその後、導入、これから」
bounceHammerとはリターンメールの解析を行う、
株式会社ライブドアさん「ロケタッチ」
今大人気のロケタッチ。参加者に挙手してもらい調査をしたところ、
Yappoさん「folkatdevs」
昨日に引き続いて登場のYappoさんのお話は、
Naoki Tomitaさん「This session is funny modules」
自らを
tokuhiromさん「File::Zglob」
File::Findを使う代わりにzglob('lib/**/*.pm')と書けるFile::Zglobを紹介したtokuhiromさんでしたが、
ミクシィさん「静的解析、しましょうか」
Kenichi Ishigakiさん「Top Ten 2011」
毎年恒例の
kamipoさん「MySQLでMessagePackの中身を検索」
kazuhoさんがMySQL上でJSONの検索を行うUser-defined functionを作ったことにインスパイアを受けて、
YUSUKEBEさん「ぼくのかんがえたさいきょうのえろさいとの舞台裏」
運営されているアダルトサイトの歴史についての発表でした。バージョンを上げて品質を良くする度に、
TAKESAKOさん「Perlで無理ゲー攻略2」
Acme::MineChanでマインスイーパーを解くという内容のLTでした。1分半という超高速のLTでしたが、
makamakaさんによるカードゲームの抽選
最後に飛び入りとして、
Hideo Kimuraさん「Managing A Band Of Hackers」
Hideo Kimuraさん
これまでのYAPC::Asiaで最後を飾るセッションとして、ゲストスピーカーによる基調講演が発表されてきましたが、今年のYAPC::Asiaを締めくくるのはhidekこと、DeNAの木村秀夫さんです。 ハッカー達を率いるマネージャーであり、またPerlを愛するハッカーでもある木村さんが、ご自身の経験に基づいてマネージメントの重要性を説く発表でした。
まず、JPA役員と運営スタッフ、そして参加者全員の疲れを労い、自己紹介とご自身のこれまでのキャリアについて説明されました。
そして、過去の基調講演を振り返り、現在業務でコードを書いておらず、専らマネージメントをしている事を土台に、エンジニアリングマネージャの姿についての説明をはじめました。
なぜマネージャが必要か
開発を1人でやってると、プロジェクトの規模に限界が出てくるという問題を示唆。しかし、開発者が集まるのに伴って規模が大きくなり、より良いサービスを作れるようになると語られました。
また、木村さんは以前、個人で会社を興していたとおっしゃっていましたが、サービスを作るのが好きなので、現在はDeNAに所属しているのだと言います。
しかし、誰かが指揮をする必要が出てくるので、それがマネージャーの仕事だと思っていると語られました。
そして、アリストテレスの名言になぞらえ、1+1=2ではなく、より大きくするためにはマネージャーが必要だと主張されました。
Perlは歴史が長い言語なので、Perlハッカー達の中にはマネージャー経験者が多くなってきているとの分析でした。
プロジェクトマネージメント
計画・
計画にはシステムの設計やリソース・
人事
人事面の業務としては、面接・
面接・
そして評価については、エンジニアとしての経験がないと評価自体ができない事を解説されました。
そのほか
事務処理はしんどいもので、淡々とこなすしかないと主張されていました。 しかし、出張準備や稟議などについての悩みを会社に打ち明けたところ、担当部署を作ってくれたという事を紹介されました。
そして、マネージャーになると会議が増えるということを説明。 サンフランシスコに子会社ができて、調整役としての働きをするようになった頃の話として、時差があるので、会議時間が非常に限られていたにもかかわらず、 図を描いたりして説明すると、1週間かかってた決め事が1時間程度で済んだりしたと語られました。
マネージャーに重要なこと
プロジェクトマネージメントと人事、そのほか事務処理などがマネージャーにとって重要なことであり、 これらのことをするには、エンジニアとしての経験が必要だと考察されていました。
ハッカーのマネージメント
木村さんが所属する部署についての説明があり、 主にMobageプラットフォームの開発・
最初はフィーチャーフォンだけが対象でしたが、時間を追うにつれ、PCやスマートフォンにも対応していったと語られました。
すべて自分達の部署が運用していて、スタッフが最初3名だったところ、現在では20名にまで増えたと言います。
ハッカーは一人では寂しくて死んでしまう
色々意見を言うけれど、一人では声が小さいのだと解説します。
しかし、人数が増えることで声が大きくなり、いろいろな事が変わったともおっしゃっていました。
ハッカーは飽きっぽい。
飽きっぽいので、面倒な運用を他の人に押し付けるのだと言います。
しかし、
ハッカーにとっては、重要業務より自分の興味が優先
大抵のハッカーは、退屈な仕事を先に片付けて、その後で自分の興味があることに手を出す傾向にあるとの分析でした。
それに基づき、重要だがつまらない仕事を与えつつ、興味を引きそうな仕事も与えるのだとおっしゃっていました。
ハッカーは朝遅い。夜遅い。
朝早く来て夜早く帰るのも変わらないという事を強調し解説されていました。
そして、裁量労働制なので、相談したいときにいつ来るかわからないのが悩みだと語り、いつ出社するかをわかる様にしてほしいと主張されました。
ハッカーはKY
ハッカーはすぐ悪乗りするので、どこかで目標を作ることが重要であると主張されていました。
仕事はほとんど任せるようにしている。
コードを書くのが楽しいので、自分のプロダクトばかり見ていた時に、ZIGOROuさんからコードを書かないように指摘されて落胆したというエピソードを交え、 結果的に情報展開を遅らせる結果になった事を解説されました。
そして、10人くらいのチームになったときに、コードを書くのをやめたと言います。 また、人に物を任せる事の利点として、その人が成長するという事を挙げていました。
しかし、任せるのと、丸投げするのは異なることで、バックアップしてあげるのが重要だと説明し、失敗したときはマネージャーが責任を負うべきだと語られました。
失敗の話
納期などのシビアな問題に関わると危険なので、悪い報告を先にするようにお願いしていると語られました。
また、Perlのモットーである
マネージャーになることはキャリアプランとして大きな選択
マネージャーはプロジェクトの健全性で評価されるため、エンジニアとしての経験が重要だと分析。 エンジニア以外はマネージャーになるべきでないとの考えを説明されました。
それをうけ、優秀なエンジニアでないとマネージャーになるのは難しい、と結論付けています。
最後に
締めくくりでは、I Love PERLと大きく書かれたスライドが表示され、若い人、学生の方にコミュニティに参加してほしいと語られました。 また、人脈が非常に重要であることを説き、人脈のお陰でエンジニアとして成長し、マネージャーという道を選んだときに糧になるという考えを伝えました。
最後に、DeNAで働けること、YAPCに参加できることへの感謝の意を表しました。
発表が終わると、聴衆の大きな拍手がなり響きました。 ほとんど全ての方にとって、この発表は大きな意味のあるものであったと感じられました。 また、Perlコミュニティに参加できることのありがたみを実感出来る総括となりました。
クロージング
牧さんによる、クロージングです。
まずはベストスピーカー賞を発表しました。
- 1位:FUJIWARA Shunichiroさん
「Perlで構築された中規模サイトのDC引っ越し記録」 - 2位:TAKESAKOさん
「Perlで無理ゲーム攻略」 - 選考外:Jesse Vincentさん
「Perl 5. 16 and beyond」 - 選考外:Tatsuhiko Miyagawaさん
「Carton: CPAN dependencies manager」 - 選考外:Ricardo Signesさん
「闇のEメール伝説」 - 3位:徳丸浩さん
「Webアプリでパスワード保護はどこまでやればいいか」
ゲストスピーカーのセッションは、ベストスピーカー賞の選考外のため、上記のような順位表となりました。受賞者の人には賞品が渡されました。次の写真は、1位のFUJIWARAさんの目録受け取りの模様です。
その後、今回のイベントは昨年を超えるものだったことを数字を挙げて示し、発表者、参加者に感謝の言葉を述べました。そして、スタッフに登壇してもらいイベント運営を参加者の拍手でねぎらいました。
最後に、次回のYAPCについて触れ、
お知らせ
本日14時半頃から、スイーツエリアにはそうそうたるメンバーが集まっていました。これは、11周年記念号の
※ブラッシュアップする前にあったメモ書きの一部は、