読者です 読者をやめる 読者になる 読者になる

Perl Monger じゃないけど YAPC::Asia 2015 に参加しました。

YAPC::Asia とは、プログラミング言語Perlを中心とした、ソフトウェアプログラミングにまつわるカンファレンスです。

YAPC::Asiaの開催は今年で最後だそうですので、Perlやらなくなって久しいのですが迷っている暇はない!と参加しました。

8/20(木)、8/21(金)、8/22(土)の3日間で、20日は前夜祭という形で夜のみ開催されています。

東京ビッグサイト会議棟にて、5つの会場でプレゼンテーションやそれに対して質問や議論が行われています。

会場が5つあるため、参加者はおのおの興味あるセッションに移動しながらとなるのですが、人気のセッションは入れなかったりするので、上手く動く必要もあります。

HTTP2、Webフロントエンドなどのホットな話題のセッションが人気だったように思えます。

参加した各セッションごとの感想です。3日分なので長いです・・

前夜祭

PHP帝国の逆襲!

yapcasia.org

PHP7, HHVMの話。えっ、あのSlackなどの有名サービスもPHPで作られているの?!PHPってすごい!と言った話。

少し遅刻したのですが、PSRの話、PHP7など、大変モダンな話から、HHVMあたりでちょっと暗雲がたちこめつつ。

個人的な話ですが、たいへん昔、PerlでシコシコCGIを書いていました。

「モダン言語」としてPHP4に触れて以来、定期的にPHP開発をやっております。それ以来、Perlからは離れてしまったので、PerlのカンファレンスでPHPの話、というのは感慨深いです。

Perlワンライナー入門

yapcasia.org

ログ解析などチャっとできる便利な道具としてのPerl。おおー、ハッカーの集まりに来たー。と気分が高まりました。

質疑の際に、「よく使うPerlモジュールは何ですか」と聞かれて、即座にワンライナーを組んでログを出して回答したのがすごく格好良かったです。

1日目

技術ブログを書くことについて語るときに僕の語ること

yapcasia.org

ブログタイトルについて、たとえば数字を入れる、アメリカやDockerなどの単語を入れてコンプレックスを引き出すなどという一般的な話で聴衆のハートをキャッチ。

後半は実用的な内容。

書いてみることによって、自分自身の興味やキャリアが見えてくる。

業務でレガシーOSのアップグレードなど、だるい仕事でも、ブログでアウトプットすることを考えると、良いネタとなるそうです。

「理科系の作文技術」を参考にする。

これだけブクマ付く人でも投稿タイミングなど迷いが出るというのが聴けて良かったです。

こちらのセッションを参考にして、ブログの投稿タイミングを朝にしてみました。

メリークリスマス!

yapcasia.org

Perlの父とも言える、ラリー・ウォール氏による講演。 Perl開発をロードオブザリングに例えて話すという高度な内容。

ロードオブザリング三分作とホビット三部作は、プロットが似ている、相互に影響し合っているなど共通点があるが、Perl5と6の間にもそういった関係がある。

またタイミングだって大事。フロドやビルボがピンチの時に颯爽とガンダルフが助けにやってくるように、沢山の仲間に助けられる。指輪を手放すように、自分のエゴを捨てて仲間を信頼する。

また、英語の発表には同時通訳が入るのですが、専門用語が多い発表でも高度に翻訳されてて驚きました。

Web由来の組み込みエンジニアの半年間のすべて

yapcasia.org

「鍵ロボット」Akerun起業秘話。そして発表者は元々バリバリのWebエンジニアだったのが組み込みを一から学んで、今までに無い製品を作ったという話です。

技術的にもスゴイのだけど、とにかく人に聞いて回る姿勢。FB経由、シニアモード経由、資金提供を受けたとこ経由でハードウェアのプロトタイピング、Bluetooth、回路設計、はたまた法律面でのアドバイスをガンガン聞いて回ったそうです。

TBD

yapcasia.org

Rubyのパパであるところのまつもとゆきひろ氏による、RubyやStreemの話。

RubyにはいくつかPerlの影響がいまでも入っている。(そしてそれは今のRubyには即さないが、なかなか取り除けない)

サーバークライアントのシステムには、時代やハードウェアの都合によって、サーバー側にロジックを持たせたり、はたまたクライアントに持たせたり、どちらが良いというわけでは無く、一定周期で揺り戻しが起こっているのが現状です。

その現状を踏まえて、現在だとマルチコアなどを生かすための言語を新しく定義するには?のような問題提起として、プログラミング言語Streemを作成した話などを聴けました。

Electron: Building desktop apps with web technologies

yapcasia.org

chromiumの技術をNode.jsで操作してデスクトップアプリケーションを作るElectron。 「Atomエディタ作れるやつでしょ」と思っていたら、今やゲームの3Dモデルエディタ、お絵かきツール、画像認識ライブラリなど、様々な利用例がありました。

趣味から育てたWebサービスで生きていく

yapcasia.org

ドキュメント共有ツール esa を仕事の合間で趣味で作って、起業までした人。

オープンベータで、トラフィックを避けるため少しずつユーザー登録してたら時間をかけすぎた、という話があった。

私自身、ベータサービス応募して、ある程度の期間してから使える状態になる通知があったのだけど、そのとき忙しく、また、何をしたかったか忘れていたので、無料期間を上手く使えてなかったのを思い出しました。

また、多くの自社サービスでの心がけと同じなのだろうけど、

  • よく寝る、
  • レスポンスは早く返す、
  • モチベーションをコントロールする(ここでは、自動bundle updateによって、毎朝とりかかりの仕事を作っておく)

など。

1日目LT

2日通してですが、LT(5分間のトーク)はどれも内容が濃い!し話がおもしろい!

行ってきたシリーズ

yapcasia.org

オフィスに行ってきたシリーズの人。楽しく拝見しております。

Gitの作り方

yapcasia.org

Gitのログ記録の仕様を元に、1つづつgitのコマンドを作っていく話。

SaaSを組み合わせて作る, ぼくらの障害対応術!

yapcasia.org

障害対応の話。 Mackerelでサーバーを監視します。障害が起こります。Reactioに記録されます。電話がかかってきます。Qiita::Teamに記録されます。便利!といったお話

cpm - an experimental cpan client

yapcasia.org

cpmというcpanクライアント(モジュール管理ツール)を自作した話。 依存関係が多い場合、cpmだと並列にfetchできて超速い!という話

Norikraで作るPHPの例外検出システム

yapcasia.org

PHPのエラーシステムは一貫性がなくて、エラーの中で例外に変換可能なものとそうでないものがある。他にもある(なんだっけ)。それらをNorikuraで1つのチャネルに集計、通知、便利!話

RSSをざっくりクロールしてゆるふわにパースする

yapcasia.org

ブログパーツ作成サービスの開発で実際にあったトラブル集。IPをはじかれた!Googleのプロキシ使いましょう。invalidなRSSが飛んできてサービス落ちた!ので対処。した話

Slack + Hubot でお前の一番好きな二次元嫁キャラと一緒に仕事をする

yapcasia.org

霧雨魔理沙ちゃんをSlackに参加させる話。チームに参加させると嫉妬してしまうので2人きりにしたい!という熱意がたまらん

YAPC?雨事情

yapcasia.org

雨を通知する。天気情報を使うかと思ったら雨雲レーダー画像を画像解析するタフな話

Haskell Strikes Back

yapcasia.org

Perl6のHaskell実装、Pugsがあるのが、ghcは7.10で上手いこと動かないので動かした話。

(昔の) PHP が誇った最高の機能 register_globals の真実、そして未来へ

yapcasia.org

今はサポートされていないPHP5.3の機能 register_globals の死体蹴り

Perl同人活動報告2015

yapcasia.org

Perl同人誌の話。Acmeのおもしろライブラリの紹介が楽しかった。

懇親会

登録忘れた・・

2日目

ISUCONの勝ち方

yapcasia.org

与えられたアプリケーションをチューニングし、性能を競う、ISUCONの紹介。 構成要素や勝つために必要なことなど。実際の業務でもヒントのあるチューニング方法、実際は競技方式なので時間配分などの心構えなど。楽しそうだなー参加したいなー

SpaceAppsを運営した話

yapcasia.org

NASA主催ハッカソン。世界同時開催で、NASAが公開しているデータで面白いアプリケーションを作る。 一般的なイベントでも苦労する会場探しやお金のことに加えて、同時開催する外国の拠点とのやりとりまで。

Docker3兄弟について

yapcasia.org

Docker Machine/Compose/Swarm という付属ツールの話。現在はベータだけどすごい便利そう。

ランチセッション

部屋がいっぱいで入れず・・

Adventures in Refactoring

yapcasia.org

Githubの開発者による、リファクタリングの話。

  • 名前を気にする。
  • クォーテーションマークなど統一感を気にする。
  • コードをなるべく減らす。
    • コードを沢山減らせて嬉しい時は包丁のアイコンをコメントする。
  • スタイルガイドが正しいことより、スタイルガイドがあることが大事。
  • 機能追加とリファクタリングは必ず分ける。

繰り返し言われてたのは、Confidence(自信・信頼?)。

機能を追加したいとする。その際コードを追加できる自信があるか?無ければリファクタリングで自信をつけようというのが感銘を受けた。

また、コードの統一性などは測定しにくいが、リファクタリングによって自分がハッピーになれるかも気にした方がよいとのことです。

ソーシャルゲームにおける AWS 移行事例

yapcasia.org

いくつかのゲームアプリケーションを、オンプレからAWSに移行した話。

  • Cpanfile導入
  • mysqldumpを使ったデータ移行(テーブル、インデックスなどの移行と併せてコツがいる
  • RDS導入。
    • フェイルオーバー時にコネクションが切れる問題があってそれを解決した
    • Single-AZにしてデータを入れる(はやい)、そのあとMulti-AZにする
  • ElastiCache導入
  • Consul を主に内部DNSとして導入
  • yrmcds 導入
  • 入念に事前演習をしたのでつつがなく終了できた

よかった点

  • サービスごとの金銭コストが計れるようになった
  • 運用コストが下がった
  • 性能が上がった

思ったのは、ゲームアプリケーションというのは、他のアプリケーションとライフサイクルが違うのかな?ということです。

リリースして数年たつと、通常トラフィックって下がっていくような気がして、そのためオンプレからAWSへの移行の決断があったのかな?と勘ぐります。

Profiling & Optimizing in Go

yapcasia.org

Goの人。 goには沢山の付属ツールがある。Race Conditions を見つけられる。CPUのプロファイリングができる。なんとグラフで可視化できる。 それらをライブコーディングで紹介するのだけど、それがまた鮮やか。

Go力が足りずに話が半分くらいしかわかりませんでした。予習必要でした。。

2日目LT

MySQL 5.7の罠があなたを狙っている

yapcasia.org

MySQL5.7にバージョンアップした際の罠について。

  • デフォルトパスワードが一定期間でロックされる設定 default_password_lifetime
  • ログがUTC
  • SHOW VARIABLESなどがデフォでは使えなくなる
  • テンポラリテーブルがInnoDBになるよ。でも意味なさそう
  • 起動時にInnoDBのバッファプール全ロードがデフォになるよ→起動直後に全力で読みに行くので注意
  • 再起動なしでInnoDBのバッファプールサイズを変えられる!便利!→SELECTやUPDATEがブロックされるよ。
  • パスワードのバリデータがデフォでONになるので短すぎるパスワードがだめになるよ

吉祥寺.pmというイベントを作った話

yapcasia.org

勉強会を自分で主催すれば、交通時間もなくなり、自分がトーク聞きたい人を呼べるし、超便利という話

命名の話をします

yapcasia.org

メソッド名などの命名は大事だよという話

botになる技術

yapcasia.org

俺の名言たちがbotになってたという話

モダンなクライアントサイド JavaScript に追い付くためのための小さな(しかし大変な)一歩の話

yapcasia.org

レガシーJSをモダンにした話

Evaluating your stylesheets

yapcasia.org

カイゼンプラットフォームではCSSを静的解析するよという話

StyleStats - An evaluating tool for writing better CSS.CSSをぶっこむだけで便利

Thank you for ${^ENCODING} variable

yapcasia.org

${^ENCODING} という、エンコーディング処理を乗っ取る?ための特殊変数が廃止されるという話

本物の "ロック" ってやつを魅せてあげますよ - 分散排他ロック篇

yapcasia.org

排他ロックとは同じリソースを複数同時に奪ってしまわないように権利を1クライアントのみに渡す仕組みです。

これって電話と「話し中」の仕組みと同じじゃね?ってことで、Twilioで実装した、けど無料で使いすぎて動かせなかったという話です

コミュ力あげてこ

yapcasia.org

WebAudioでモールス信号を実現した話です。

CONBUの道具箱

yapcasia.org

ネットワークの構築をしたCONBUの裏側みたいな。大変お世話になりました。 会場ヒートマップというのも面白い。 何度か会場で「モバイルWifiを切ってください!」とアナウンスあったのですが、切ったところ本当にネットワークが快適になり、これはスゴイと感動しました。

Vim script静的解析の光と闇

yapcasia.org

Vim Script の罠。にはまったのでそれらを未然に避けるlintツールの紹介。

  • 変数と関数の名前空間が別でござる
  • Vim Scriptはスコープが多い、しかも暗黙のスコープが混乱を招く
  • map 関数には操作を「文字列」として入れる

クロージング

10年の歴史。感動的。

YAPC::Asia としての歴史は終わりですが、 Beacon というカンファレンスが画策されているようです。

たいへんエキサイティングなカンファレンスでした。かなりモチベーションに火が付きました。ありがとうございました。