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

1日目レポート[随時更新]

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

Naoya Itoさん「Perlで圧縮」

株式会社はてなの伊藤直也(id:naoya)さんより,Perlでの圧縮技術についての発表がありました。 今回は主にテキスト圧縮の分野についての話でした。

CPANの圧縮ライブラリ

CPANの圧縮ライブラリにはCompress::*系があります。符号化まで含めて一気通貫で,汎用的に使えるそうです。 その中で下記のライブラリが代表的で使えそうなものとして紹介がありました。

  • Compress::Zlib オーバーヘッドが小さいので高速。これを使っておけば間違いない。ただし短かいテキストには向かない。
  • Compress::Bzip2は処理時間を少し犠牲にしても,zlibより高い圧縮率を得たいときに使える。やはり短かいテキストには向かない。
  • Compress::LZMA::Simpleは符号化は低速だが,圧縮率は非常に高い。
  • Compress::LZOは圧縮率は高くないが,非常に高速。頻繁に更新されるデータや,複合のオーバヘードを極力小さく押えたいときに使える。
  • Compress::PPMdはDmitry Shkarin氏によるPPMd(以前の文脈から次の記号の出現確立を予測するモデル)のバインディング。

以下,個人的な見解と前置きした上で,汎用的なテキスト圧縮にはzlibやLZMAを,整数列の圧縮には,速度重視ならpack,圧縮率重視ならδ(デルタ)符号やゴロム符号を実装する方法が向いているとのことでした。

最後には,現在発売中のWeb+DB Press vol.52の"Recent Perl World"というコーナで,データ圧縮についての記事を書いているので,興味のある方は読んで欲しいということでした。

画像

画像

Cristina Nunesさん「Booking.com & Perl」

ポルトガルのリスボンからいらしたCristina Nunesさんによる発表です。今回は彼女の勤務先であるBooking.comとPerlの関係についてのお話です。Nunesさんは,2007年からBooking.comに開発者として勤務しています。

現在,Booking.comで使われているPerl関係の技術は次のようなものです。

  • Perl 5.88
  • Class::DBI(frozen version)
  • HTML::Mason
  • HTML::Template

よく人から「どうしてPerlなのか?」という質問をされることがあるそうですが,シンプルで使い易いからと答えているそうです。

さらに運用面の技術としては,

  • Apache + mode_perl
  • MySQL
  • memcached
  • git

などが挙げられました。

なおgitについてはcvsから移行中ですが,まだデザイナーがgitに対応できないことがあるので,全員が使っているわけではないとのことです。

将来的には,Perlやそのモジュール,そしてApache,mode_perl,MySQLなど全体的にバージョンが古いのでアップグレードして行きたいということでした。

次にインフラについて説明がありました。 Booking.comでは,現在Webサーバーが100台以上,MySQLサーバーが100台以上,データセンターには総勢700台以上のサーバーが稼動しているそうです。

スタッフについて

Booking.comのスタッフは国際性豊かで,スライド中の国旗の数を数えてみると10ヶ国以上ありました。驚いたのは,そのスタッフの中に,下記のGreat Perl Hackerも含まれていることでした。

  • Rafael Garcia-Suarez
  • Elizabeth Mattijsen
  • Abigail
  • Philippe Bruhat
  • Yves Orton
  • Flavio Glock
  • Jouke Visser

次にBooking.comのオープンソースの支援ポリシーについてですが,同社は既に50,000米ドルをThe Perl Foundationに寄付していて,さらにPerlのオフィシャルgitレポジトリのホスティングも行なっているそうです。

最後に現在Booking.comでは,世界中に25のオフィスを展開し,1900人の従業員を抱え,70ヶ国約17,000のホテルの予約を24の言語で可能にしているということです。

画像

画像

Gosuke Miyashitaさん「ペパボでのPerlの使い方」

株式会社paperboy&co.(通称:ペパボ)の宮下剛輔さんと伊藤洋也さんのお二人によるセッションでした。

30 days Alubumでの事例

まずペパボが展開する「30 days Alubum」というオンラインアルバムサービスで使われているジョブサーバの事例について伊藤さんより説明がありました。 ジョブサーバーとは主に画像処理を請け負うサーバで,内部ではGearmanやTheSchwartzなどが使われています。Gearmanは同期処理をTheSzhwartzは非同期処理をそれぞれ担当しています。また実際の画像処理ではImage::Imlib2という非常に高速なライブラリを使っているとのことでした。

ホスティングサービスの裏側

次に「ロリポップ」を始めとするペパボのホスティングサービスで使われている技術について,宮下さんより説明がありました。以下のようなツールを利用しているそうです。

  • Sys::Statics::Linux (プロセス管理)
  • Archer (Perl製のデプロイツール)
  • HTTP::Engine
  • Any::Moose
  • Data::ObjectDriver
  • Kwalify
  • Func (Python製のシステム管理フレームワーク)
  • qpsmtpd (Perl製のSMTPデーモン)

qpsmtpdについては,プラグイン+フック機構なので,小さいコードで機能追加しやすいということでした。ただしドキュメントは日本語,英語ともに少ないようです。

画像

画像

Yusuke Kawasakiさん「Corporate Perl in Recruit, OpenSocial and Emoji」

石橋さん,川崎さんの2名で担当されたセッションでした。

まず,最初に石橋さんは,リクルートさんの複雑なDB設計をAPI化して整理して,利用価値を高めるという発表をされました。昔のER図だとスクリーンに映し出されたのは,テーブル定義がたっぷり詰まった2枚に渡るドキュメント。これを毎日二人で睨んで,必要なものを地道に抜き出していった,と当時の苦労を振り返っていました。

また,インフラや開発体制についても触れられていました。特に開発においては,アジャイル開発を実践しており,ペアプログラミングとテスト駆動に力を入れられているとのことでした。さらにこのアジャイル開発は経営陣から声がかかるほどうまく回っており,今後は全社規模でアジャイルに取り組めるようにするのが課題であると締めくくっていました。

次に,川崎さんより絵文字についてのお話がありました。日本のケータイの絵文字のコードポイントは,キャリア間によって違うそうで,これを扱うためのUnicode::Emoji::E4UとEncode::JP::Emojiが紹介されました。Googleの定義する絵文字のコードポイントもケータイの3キャリアとは異なるということでしたが,これらのモジュールでそこもカバーされているそうです。

また,リクルートさんはOpenSocialにも力を入れているようです。そして,オサピー(osapi)と呼んでいる,使いやすいAPIを搭載したOpenSocialのサービスを間もなく展開するとのことで,これは大変楽しみです。なお,リクルートさんのOpenSocial実装もShindigをPerlで大部分書き直しているということで,さすがPerlのイベントであると感心させられました。

最後に優勝者には賞金が出されるMashup Awards 5についての告知があり,国内でも最大規模といえるこの開発コンテストに多くの人が参加してもらいたいと,参加者を募っていました。

画像

画像

著者プロフィール

杉山誠(すぎやままこと)

企業やプロジェクト間を渡り歩いて仕事をしているフリーランス・プログラマー。昨年福岡へ移住したのをきっかけにFukuoka Perl Mongersを立ち上げる。デジタルハリウッド福岡校講師。山口県山口市出身。

blog:http://sugmak.com/
twitter:sugmak


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

北海道苫小牧市出身のプログラマー。好きな言語はPerlやPython,Java,Objective-C,Haskellなど。在学中には数学を専攻しており,今も数学好き。現在はオンライン不動産株式会社にて自社サイトの開発に従事している。

共著書に「FFmpegで作る動画共有サイト」(毎日コミュニケーションズ)がある。

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