YAPC::Asia Tokyo 2013 スペシャルレポート

YAPC::Asia Tokyo 2013 1日目レポート[更新終了]

この記事を読むのに必要な時間:およそ 9.5 分

19日から21日までの3日間,慶応大学日吉キャンパス 協生館にて「YAPC::Asia Tokyo 2013」が開催されます。昨日は前夜祭で,本日は1日目ということになります。ここでは,1日目の模様を随時レポートしていきます。

※すべてのセッションをレポートするわけではないことにご注意ください。

受付は,藤原洋記念ホール前に設置されています。

画像

オープニング

JPA運営事務局長の櫛井さんから,オープニングの挨拶です。今年の企画として,次のものを案内しました。

  • 遠方からの参加者支援制度
  • 懇親会無料化
  • ランチセッション
  • ランチ交流企画(くじを引いて4人一組のチームが決まる。抽選でお弁当ももらえる)
  • BOF・交流スペース(アンカンファレンス等で利用もOK)
  • Perl入学式

参加者には,「トークを楽しむ」「Perl Hacker達との交流」「ベストトーク賞への投票」を挙げ,今年もYAPC::Asiaを楽しみましょうと呼びかけました。

画像

Ricardo Signesさん「Perl5 ? Postcards from the Edge」

2011年に続き来日されたRicardoさんは,パンプキンと呼ばれるPerlのプロジェクトマネージャーを務めています。今回は最新のPerl5の情報や,今後の開発の展望について話しました。

Perlは5.18になり,スレッドに関する一部不具合の修正や,正規表現の文字集合に関する演算の追加,レキシカルなサブルーチンの採用,ハッシュのキーのランダム化など,実験的な機能も含めて多くの機能追加が行われました。しかし,Ricardoさんによれば「Perl5はあくまでもPerl5である」とのこと。Perl5の良さをそのままに,今後も開発を続けていくということをうかがわせました。

話の最後にはPerl5.20の新機能についての予告も。デリファレンスをもっと簡潔に書ける機能や関数で引数に名前を付けられる機能など,さらに多くの機能が入っていることを紹介しました。会場からはMOP::Reduxに関する質問もでましたが,こちらは5.20には入らないようです。今後のPerlの新バージョンも楽しみになるトークでした。

画像

画像

PSGI/Plack・Monocerosで学ぶハイパフォーマンスWebアプリケーションサーバの作り方

Masahiro Naganoさんは「PSGI/Plack・Monocerosで学ぶハイパフォーマンスWebアプリケーションサーバの作り方」をテーマにお話しました。livedoor blogも10周年を迎えて内部構造をmod_perlからPSGIベースに変更したこと。ご自身が作成されたprefork型でありながらready C10K であり非常に高速で動作されるというMonocerosのが解説。PSIGで簡単なStandaloneServerを作成できることや,簡易的に作成した場合どのような課題が発生しうるのかを解説しました。またPSIGサーバーの種類が沢山あるのでピックアップした上で簡単な使用のためのケース分類をしました。そしてボトルネックの検出方法としてDevel::NYTProfとstraceの例を使用して説明しました。ご自身はopen & shareを大事にされていて現在動いているほかのPSGI ServerなどにフィードバックしているのでPSGIそのものも以前より早くなっていますよという話もしていました。

画像

画像

Songmuさん「今時のカジュアルなデータベース関連開発」

今年はDB関連の話が他になく時代の流れを感じると語るSongmuさんのトークは,データベースを利用したアプリケーション開発のノウハウをまとめたものでした。

まずはスキーマ管理方法の紹介です。DBIx::Schema::DSL, GitDDL, GitDDL::Migratorといったモジュールを利用した管理方法をデモによる実演を交えて解説しました。スキーマ自体もSQLではなくPerlで書かれており,そのメリットとしてPerlモジュールと定数を共通化できるなどよりDryに管理できることや,シンタックスチェックが楽なこと,SQLの出力が統一されるためバージョン管理と相性がよい点などをデモによる実演を交えての紹介でした。

MySQL以外のデータベースとしてはRedisをよく利用しているそうです。SortedSetによるお手軽ランキングや,Setによりログインユーザを残しておいたり,Listをジョブキューとして使うなど,様々な型を組み合わて利用するのが面白いそうです。特にSetは和集合/差集合など集合演算を利用できることが魅力であるとのこと。ただ注意点としてExpireの設定が重要なことや,冗長構成が難しいこと,永続的なデータは置かない方がよいなどのアドバイスもありました。

その他にもUnicode関連や例外処理など盛りだくさんな内容で最後は駆け足となってしまいましたが,実践的なノウハウをたくさん得られる発表でした。

画像

画像

Kosei Moriyamaさん「BrowserStack を用いたクライアントサイドのテスト」

画像

画像

MoriyamaさんはJavaScriptのテストを自動化をテーマに発表しました。最近ではJavaScriptはクライアントサイドはもちろん,サーバサイド,ブラウザ拡張,スマフォアプリなど,様々なところで登場するようになりました。しかし,旧来のQUnitのようなブラウザでのテスト方法では,CLIでの扱いが難しく,テストの自動化が難しいという課題がありました。

Moriyamaさんの提案する解決方法は,BrowserStackというサービスを使ってそれらを自動化しようというものです。BrowserStackは複数の種類のWebブラウザをクラウド的に借りることができるサービスです。デモでは,実際にこの上でSeleniumを動かすことで,様々な実行環境においてJavaScriptのテストを走らせていました。

学術分野におけるPerlの活用例

企業でのPerl利用例は多く挙げられているものの,「大学や高専などの研究分野で道具としてPerlを利用している」という話はあまりうかがい知ることができません。このセッションでは,現在,大学院に所属しているpapixさんが,ご自身が在籍している研究室での取り組みや状況,同僚や教授陣へのアンケートの結果を紹介しました。また,GPGPU(General-purpose computing on graphics processing units)の研究でどのようにPerlを利用しているかを紹介しました。余談ですが,papixさんの画像はCreative Commonsで利用可能だそうです。

大学でのサンプル数を増やそうとしたそうですが時間の都合で所属されている研究室だけの紹介ですので以降そのあたり鑑みながらお読みください。

よくある話ですが,papixさんの研究室でも先輩からコードごと引き継ぐので強制的に多くの学生がPerlを利用しているそうです。しかしながら,経年による改善・改良によりコードの秘伝のタレ化・テストが無いなどの問題が発生しているそうです。この辺り大学でも企業でも同じ課題があるようです。

学生へのアンケートからは,授業ではC/Javaが多いため,「取りあえず動く」「型を意識しなくても良い」「正規表現などの機能・モジュールがよい」がメリットとして挙げ,「遅い」「コーディングルールが難しい」「変数の型がわかりにくい」などがデメリットとして挙げられていました。

最後に,GPGPUを扱うLLモジュールについての紹介と現在研究で開発中のPerlからGPGPUを扱うperCUDAというモジュールを紹介しました。

画像

画像

ランチセッション

お昼時にイベントホールでは,Six Apart社の高山裕司氏によるランチセッションAが開催されました。MovableTypeについて講演を行いました。

画像

画像

ランチセッション2つ目は,Microsoftの佐々木邦暢さんの発表です。Perl大好きと語る佐々木さんは,Perlとの関わりを述べた後,Azureを紹介しました。日本リージョンができるそうです。

画像

画像

大規模Perl初心者研修を支える技術

このセッションではDeNAに入社した71名(!)の新卒,中途採用に対して研修を行った「大規模な技術研修」について語りました。この研修での一番の目的は,1)変化に対応できる,2)主体的に技術習得できる,3)技術以外も成長できる,という「自走できるエンジニアを育てる」ということでした。そのために現場のエンジニアからの協力を仰ぎつつ,一番コストが掛かる「個別のワークショップ」を行ったそうです。その中で面白い取り組みに,早抜け方式で早く終わった方から研修を終わるという研修期間の採用でした。

研修の運営で大変だった課題として,1)人多すぎ:名前と顔が一致しない,一人あたりのコミュニケーションが減る,2)個々人の状況が把握が困難,3)講師間の意思疎通も大変,を挙げていました。これらの課題に対して,1)ランチや(安く挙げる宅飲みなど)飲み会を増やす,2)フォローアップ研修をマメにやる,3)毎日1時間MTGで講師間の課題の共有,を行って解決していたそうです。

技術的に研修で最も難しいのはそもそものプログラムスキルや,やはりオブジェクト指向とWeb Application Frameworkの理解だったそうです。これらの課題を解決させたのは,新人自体に勉強会の開催を促すことで,例えばSQL::BuilderやClass::Data::Inheritableのコードリーディングが行われたり,飲み会でできる同期に説明を受けたりといった,大規模だからこそ現れる「できる同期」の存在をうまく活用したことだったそうです。

大規模だからこそ,同じような急成長や同じような問題にぶつかる研修生が現れた場合に,そのノウハウや課題解決の方法を横展開することができたそうです。このようなことができたのも,71名と大人数だったにもかかわらず,フォローアップを含むできる限り濃密な時間を作るようにした結果ではないでしょうか。

画像

画像

著者プロフィール

東聡志(あずまさとし)

北海道函館市出身。都内大手IT企業でプログラマーとして勤務。Perl Beginnersという勉強会を主催。 最近では,麻疹にかかったようにWAFのようなものを書いている。

Twitter:@ytnobody
Web:http://ytnobody.net/


臼井洋文(うすいひろふみ)

京都府京都市出身のプログラマ。仕事ではPerlでサーバサイドを書きつつ,Objective-CでiOSアプリの開発をしている。週末はボルダリングに勤しむ日々。

Twitter:@usuihiro
Web:http://d.hatena.ne.jp/usuihiro1978/


川上大喜(かわかみたいき)

北海道函館市出身,Hachioji.pm所属。大学院在籍の傍らアルバイトとしてソフトウェア開発に従事。ここ最近の趣味はVimプラグイン開発とChrome拡張開発。今年から始まる就活のことを考えると胸が締めつけられる。

Twitter:@moznion
Web:http://moznion.hatenadiary.com/


藤沢理聡(ふじさわまさあき)

神奈川県在住。本業はプログラマーではないが,心はプログラマー。仕事でもプライベートでもプログラミングをする日々。 長くPerlを愛用している他,ここ数年はPerl 6にも挑戦している。

Twitter:@risou
Web:http://www.risouf.net/


本間雅洋(ほんままさひろ)

北海道苫小牧市出身のプログラマー。好みの言語はPerlやPython, Haskell, Scala, Objective-Cなど。在学中は数学を専攻しており,今でも余暇を利用して数学を嗜む。現在はFreakOutに在籍し,自社システムの開発に力を入れている。

共訳書に「実用Git」(オライリー・ジャパン),共著書に「FFmpegで作る動画共有サイト」(毎日コミュニケーションズ)がある。

Twitter:@hiratara
Web:http://d.hatena.ne.jp/hiratara/


森藤大地(もりふじだいち)

ISP勤務。卒研でPerlのプログラムを組んで以来, Perlを利用している。 CROSSというエンジニアイベントを主催していたりする。 d3の翻訳やひとりアドカレなど,解析・可視化業務を行っている。

Twitter:@muddydixon
Web:http://muddydixon.hatenablog.com


山中裕之(やまなかひろゆき)

ドラゴンズファン。某会社のプログラマとして活動中。好きな言語はPerl, Ruby, C, C++, Haskelなど。武術が好きで休日はいそしんでいる。

Twitter:@hiroyukim
Web: http://hiroyukim.hatenablog.com

コメント

コメントの記入