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

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

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

27日から29日までの3日間,東京大学伊藤国際学術研究センターにてYAPC::Asia Tokyo 2012が開催されます。昨日は前夜祭で,本日は1日目ということになります。ここでは,1日目の模様を随時レポートしていきます。

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

受付が伊藤謝恩ホール前に移動しています。もうすぐオープニングです。

画像

941さん「オープニング」⁠

櫛井さんがオープニングの挨拶を行いました。今年は参加者数が過去最多となり,発表の応募も数多くあったと話します。

また今年も遠方からの参加者制度,個人スポンサーの募集(120名180口の応募があったとのこと)が行われました。今年の新しい試みとしては,ぼっちとオサラバ!できる「ランチ交流企画」⁠LT-thon」⁠物販ができないため「立ち読みコーナー」などがあると紹介しました。

そしてYAPCを楽しむために,トークを見よう,交流しよう,投票しようと呼びかけました。

画像

画像

Larry Wallさん「What Does Your Code Smell Like?」

オープニングトークの次はご存知Perl の生みの親であるLarry Wallさんのトークでした。⁠おはようございます」と流暢な日本語の挨拶とともに「練習しました」とはにかみながら言うと会場が笑顔で包まれました。

「What Does Your Code Smell Like?」と題されたこのトークは,Perl5で記述されたソーティングプログラムをライブコーディング的にPerl6に翻訳しつつPerl6の構文や新しい機能の紹介するというスタイルで行われました。まず手始めに「インデントが深すぎる」としてインデンテーションの深さを改善した後に,Perl6で導入された仮引数のシステムをソースコード中に記述していました。また「Explicit Reference」として,Perl6は変数がリファレンスとして扱われるため,Perl5にあったような変数前のバックスラッシュやデリファレンスが不要になることを示しました。さらに配列の添字に対する負数は廃止されて"*-1", "*+$_" に置き換えられることや,矢印演算子 (->) はドット (.) に置き換わることについても紹介しました。

トークは関数プログラミングを強く意識した内容となっており,関数の末尾のreturnを排除できるイディオムや,gather..takeを利用した遅延評価処理の実現など,関数プログラミング的な手法についても紹介しました。

質疑応答では「Haskell のような静的型およびチェッカが導入される予定はあるのか」という質問が挙がり,それに対してLarryさんは「導入は可能ですが,Haskellのように厳格かつ難解にしてしまうとみんながPerlを嫌いになってしまうのでは」との見解を示していました。また「Perl6は最初から完璧な言語を目指すのではなく,あえて改善の余地を残して色々な人の意見を取り入れていきたい」と答えました。

Larryさんは最後に「Perl5とPerl6はこれからも共に発展してゆきます」と非常に頼もしい一言でトークを結びました。

画像

画像

HASEGAWA Yosukeさん「Web::Security beyond HTML5」

はせがわさんのお話はwebセキュリティ,それもajaxに伴うあまり知られていない脆弱性についてでした。

まず触れたのはcontent-typeレスポンスを無視して独自の極めて複雑なロジックに基づいて判定するIEでのみ起きる脆弱性です。この判断ロジックはドキュメント化されておらず,簡単なヒントがあるだけだそうです。はせがわさんはこのロジックを独自に分析したのですが、複雑なだけでなくパッチの影響で挙動が簡単に変わってしまうことから,マイクロソフトも全体像は把握してないかもしれないと述べていました。

さらに,ブラウザ特有の挙動やxhr2のクロスドメイン通信によって引き起こされる脆弱性を取り上げ,締めくくりにリソースの共有を厳しく制限するcspといったブラウザ側の取り組みを紹介しました。

画像

画像

bokkoさん「pixivのサムネイル事情」

1日あたり約2万枚のイラストがアップロードされるという巨大画像SNS「pixiv」のサムネイル生成の舞台裏を,同社のbokkoさんが発表しました.

1作品あたり生成されるサムネイルが十数枚から数百枚というpixiv。元画像と生成したサムネイルの両方をストレージに保存しているのですが,NFSは使わず,自社開発のWebDAVクライアント「ImageClient」を使用し,複数のサーバに対してWebDAVメソッドを透過的に実行しています。

ユーザーがアップロードするファイルを選択して送信ボタンを押し,画像情報入力欄に遷移する裏側でサムネイル処理のロックファイルを生成。ユーザーが情報を入力しているあいだにサムネイル処理を走らせることで,比較的時間のかかる処理を速く行なっているように見せているそうです。

サーバサイドでは,静的/動的ふたつの種類別にシステムを用意しているとのこと。

静的サムネイル生成はImageMagickを使用。高速ではないものの,生成される画質の良さから採用しているそうです。ライブラリとしてx86系CPUに最適化された「libjpeg-turbo」の使用で速度を10%向上。マルチコア向けの並列処理機構「OpenMP」を無効にすることで150-200%のCPU負荷軽減,LoadAverageを6から1未満に激減させることに成功しました。

動的サムネイルの生成においては,NHN等でも使用されている「mod_small_light」をカスタマイズして導入。URIのパラメータとしてサイズを指定することでリサイズされた画像が返り,かつよく使うパラメータに名前を設定できるため柔軟な運用な可能となっています。

画像の処理は最適化が重要と語ったbokkoさん。処理のチューニングや非同期化を積極的に行い,静的なサムネイルと動的なサムネイルと生成手段を分けることで高価なストレージ資源を節約し,またアプリケーションやサイト構成の変更に強いシステムを構築できると語りました。

画像

画像

著者プロフィール

天谷窓大(あまやそうた)

SNS運営会社に勤務の傍ら,フリーのライターとして活動。大好きなラジオの世界をPerlでハックし尽くすのが夢。

twitter:@amayan


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

北海道函館市出身。高専卒業後,大学に編入。現在,大学院生業務をこなしつつ某企業でパートタイムエンジニアとして活動中。ソフトウェアのテストやCIといった,ソフトウェアの品質担保に関する話題に強い興味を持っている。

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


中村文子(なかむらあやこ)/Ya-ko

大学卒業後大手ISPのコールセンター業務・ネット企業の企画職・広告代理店プロデューサーなどを経て, 現在「cyclo-PR」の屋号でフリーランスのソーシャルメディアプランナーとして活動。Web業界や広告業界の境目をさまよいながらさまざまな企業のマーケティングやPR,執筆活動を行う。

Twitter:http://twitter.com/ya_k0

LinkedIn:http://jp.linkedin.com/in/ayak0


萩原崇之(はぎわらたかゆき)

自宅警備の傍らコードを書く毎日。最近は電子工作にも心が傾いている。夢は誰もが宇宙旅行に行く世界。

twitter:takayuki_h
blog:http://d.hatena.ne.jp/kagigotonet
google+:https://plus.google.com/115287053726902051396/


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

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

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

twitter:@hiratara
blog:http://d.hatena.ne.jp/hiratara/


東聡志(あずまさとし)

北海道函館市出身。都内大手IT企業でプログラマーとして勤務。Perl Beginnersという勉強会を主催。

休日には,PerlやForthなどでのコーディング以外にも,板につかないロシア語の学習やバイクでのプチツーリング,バドミントン,Arduinoを使った電子工作等など,だいぶカオスな時間の使い方をしている。

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

コメント

コメントの記入