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

YAPC:: Asia 2014 2日目レポート[更新終了]

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

本日28日から30日までの3日間,慶應義塾日吉キャンパス 協生館にてYAPC::Asia Tokyo 2014が開催されています。本日は2日目,最終日。本稿では,この2日目の模様を随時レポートしていきます(注:すべてのセッションをレポートするわけではありません)。

イベントホールの後方には,書籍販売ブースがあります。また,水やかき氷もあるのでぜひ受け取ってくださいとのことです。

画像

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

lestrratさんこと,Makiさんのセッションでは,Perl 5.20で実装された関数シグネチャの機能の開発の経緯をスタディケースに,老舗のOSS開発ではどのようなことが起こるかを学ぶといった内容でした。Perl5.20では本セッションの題材である関数シグネチャの他,後置のデリファレンスやレガシーモジュールの削除といった変更も行われました。

Perlに関数シグネチャが欲しいという要望は,昔からありました。しかし,実装や既存の機能との調停が難しかったりといった理由で,ずっと実現されずにいました。そのような状況で現れたのがMartini氏です。Martini氏は,OSSでよくある欲しい機能や気に入らない点を書くだけで自分では手を動かさない人とは違い,初めから自分で作るからPerlに関数シグネチャを入れたいと提案しました。そしてその数ヶ月後,宣言したとおりにプロトタイプ実装を開発してp5pメーリングリストへ投稿しました。

ところが,Martini氏の提案に興味を持っていた人が多過ぎて,プロトタイプ実装に対してあまりにも多くの意見が集まってしまいました。その中には,「今までの中で最悪のシグネチャの実装だ」とか「次はもう少し使えるパッチが書けるんじゃないかな」などと言った中傷や,「これができるならこういうこともできるよね?」といった本筋とは関係のない変更を促す投稿など,Martini氏のやる気を削ぐのではないかという返信が多数含まれていました。

Makiさんは,この時点で関数シグネチャは実装されずに終わると思ったそうです。しかし,Martini氏は中傷は受け流し,必要な変更は取り込みながら仲間を増やしていきました。こうして関数シグネチャの開発はMartini氏の努力によって粘り強く続いていたのですが,そんなこの機能にさらなる試練が襲いかかります。Martini氏の書いたコードをすべて捨て,書き直されたコードがPerlのコアに採用されたのです。そのため,引数の個数のチェックは静的ではなく動的チェックとなってしまい,Martini氏が実現したかったDesign by Contractは実現されませんでした。

Makiさんによれば,この件についてMartini氏は「関数シグネチャの構文がコアに入ることが重要で,実装は後からでも変えられる」と評価しているそうです。Martini氏は静的解析に必要となるprototype周りの変更も実は裏で進めており,自身のゴールをまだ諦めていないように思えます。今回のセッションを聞いて,OSS開発に関わるときは明確なゴールを持って政治的なことも含めた判断を粘り強く下していくのが大切だと感じました。また,このような人々の影での努力があってOSSが成り立っていることも,忘れてはなりません。

画像

画像

Yuichiro SAITOさん「突然ITインフラを任された人のための…監視設計入門」

「Webアプリエンジニア養成読本」の著者の1人である,ハートビーツのYuicihro Saito(@koemu)さんの発表です。なぜ監視するのか,何を監視するのか,閾値をどう決めるのか,障害通知が来た時の連絡体制はどうするのかについて話しました。

監視をする理由は,とにかくユーザに迷惑をかけないためで,いち早く対応を始め,いち早く復旧するためだと言います。

監視の設計の流れを,確認,設計,構築,運用に分け,デモ環境をもとに説明しました。監視の設計を行う際はシステムをサーバ,リソース,デーモン,外形の4つのレイヤーに分けて考えると良いそうです。サーバはサーバの生死,リソースはサーバのリソース,デーモンはミドルウェアの生死,パフォーマンス,外形はユーザの利用を想定した監視です。実際に,デモ環境で監視の設計を行っていく様子はとても参考になりました。その中で,監視サーバは別のデータセンターに置かなければならないということで,自宅のRaspberry Piを利用していました。業務では利用できませんが面白いと思いました。

全体的に監視の基本をわかりやすく説明しており,タイトルの通り,これから監視の設計を行わなければならない人にとって,とても良い発表だったのではないでしょうか。

画像

画像

Masahiro Naganoさん「Dockerで遊んでみよっかー」

Masahiro Naganoさんは,コンテナ管理ツールDockerについて発表しました。最初に「遊ぶ」というタイトルにしたことについて,Dockerはこれから洗練されていく技術であるとして,すぐに業務で使えるわけではないが,今のうちに手を動かして学んでみる=「真剣に遊ぶ」ということが大事なのでと説明しました。

DockerはNaganoさん曰く「アプリケーションの開発・配布・実行のためのオープンなプラットフォーム」で,アプリケーションの共有と配布を行うDocker Hub,アプリケーションのパッケージングを行う際に参照するDockerfile,アプリケーションの実行を担うDocker Engineからなるとのこと。

Dockerは一見するとVMに似ているように見えますが,VMがその数だけOSも起動するのに対し,Dockerのコンテナはアプリケーションレベルで起動するため,リソースの無駄が少ないとのこと。Dockerを利用するにはLinux Kernelが必要で,Macなどで使う際には仮想マシンを入れる必要があるそうです。Naganoさんは仮想環境構築ツールVagrantを使うことを推奨していました。

それから,Dockerfileの基本的な書き方や,Dcokerイメージの選び方,VagrantでDockerのインストールを自動化する方法などについて,それぞれ説明しました。

画像

画像

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

うずらさん(@uzulla)はPerl Monger向けに今日のPHP事情を発表しました。何かと槍玉にあげられることの多いPHPですが,今日のPHPは必ずしもそのイメージ通りのものではありません。

PHPはHTMLに入れるのが楽で,かつてはテンプレートエンジンとして活躍しました。PHPの存在がMySQL人気に少なくない影響を与えていると,うずらさんは考えています。

今まではだいぶ事情が変わり,規約を頑張って導入しようとしており,オブジェクト指向プログラミングも可能で普通のプログラミング言語のように書けます。また,packagistを中心とした豊富なパッケージもあります。このように今日のPHPは意外と怖くない言語になっています。もちろん,IDEによる補完やシンタックスエラーチェックもしっかりと効きます。PHP 5.6の解説も行い,安全な暗号化やジェネレータが話題になったことを挙げました。

PHPには主に3つの処理系があります。そのうちの一つ,Facebookが開発したHHVMは高速でhackの実行もできるという特徴を持っています。HHVMはPerlとのベンチマーク比較を行い,想像以上のPHPの速さに会場を沸かせました。

PHPの残念な面についても触れました。PHPが出自からも初心者が入門しやすい言語であり,かつWAFがなくても書けてしまうために,初心者がレールを外れてしまう危うさも持っていると言います。ゆるふわ暗黒PHPなどPHPの暗黒面を垣間見せる部分もあり,PHPの長所と短所を端的に示しました。

全体を通して,もはやテンプレートエンジンではない,現在のPHPの姿が明らかになりました。

画像

Naoya Itoさん「Google BigQuery で DWH 構築」

Naoya Itoさんは,「120億行を5秒でフルスキャンできる」というGoogle BigQueryについてどのようなものか,またKAIZEN platform Inc.でどのように使っているかを発表しました。

Google BigQueryは巨大なデータへのSQLなどを数秒で実行するクラウドサービスです。元々はGoogle社内で使われていたものがサービス化したもので,ログ解析やDataware Houseに活用できるそうです。速さは分散処理によって実現されているそうで,1TBのデータを1秒でリードできるI/Oが使われているとのことです。

同様の(あるいは似たような)サービスとしてMapReduceやPrestoなどがあり,Google BigQueryだけが特別ではありませんが,Google BigQueryはとても安くコスト面のメリットが大きいそうです。

KAIZEN platform Inc.では,Google BigQueryをログの保存,解析やABテストの有意差判定に利用していると紹介しました。一般的なRDBなどと異なり,集計を意識したテーブル設計が不要であることや,fluentdを経由した大量のログ送信ができるという利点があると述べていました。

画像

画像

著者プロフィール

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

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

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


日下部雄也(くさかべゆうや)

仕事はニフティクラウドのネットワーク関連の機能の企画・開発・運用で,運用自動化のためのプログラムを書いていることが多い。言語は,Perl,Python,Ruby,C,Goなど。最近,Vyatta CoreからフォークされたVyOSという仮想ルーターのユーザー会を設立し,第1回目のミーティングを主催した。

Twitter:@higebu
Web:http://www.higebu.com


滝沢玲美(たきざわれみ)

千葉県在住。仕事はITとは全く無縁な事務職だが,プログラミングに以前から興味があり。今回,Perl入学式にてプログラミングを初めて学ぶ。

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

神奈川県在住。仕事でソフトウェア開発をしつつ,余暇にも友人たちとソフトウェア開発をする日々。長くPerlを愛用している他,ここ数年はPerl 6にも挑戦している。

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


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

北海道苫小牧市出身のプログラマー。好みの言語はPerlやPython, Haskell, Scala, OCamlなど。在学中は数学を専攻しており,今でも余暇を利用して数学を嗜む。現在はFreakOutに在籍し,自社システムの開発に力を入れている。 共訳書に「実用Git」(オライリー・ジャパン),共著書に「FFmpegで作る動画共有サイト」(毎日コミュニケーションズ)がある。

Twitter:@hiratara
Web:http://hiratara.github.io/


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

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

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


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

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

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

コメント

コメントの記入