Mobile Factory Tech Blog

技術好きな方へ!モバイルファクトリーのエンジニアたちが楽しい技術話をお届けします!

The Perl Conference 2019 in Pittsburghに行ってきた

 こんにちは。ヒューマンリレーションズ部のエンジニアのid:kfly8です。

 少し時間が経ってしまったのですが、6月の16日から21日にかけて、The Perl Conference 2019 というアメリカのピッツバーグで開催されたPerlのカンファレンスに登壇をしてきたので、今回はその様子を諸々レポートをしたいと思います!

3行でまとめると、

  • 交流が盛ん!フレンドリーな人ばかりで、初めての海外カンファレンス参加でも楽しめた!
  • GEEKは国を越えてもGEEK。言語が違っても、技術の話ができて楽しい!
  • ピッツバーグ綺麗!

といった感じで最高でした。

カンファレンス開始まで

 ピッツバーグは水と橋の都と呼ばれ、昔は鉄鋼王カーネギーの街として栄え、今はテック系の街として発展しているそうです。到着した翌日、カンファレンス会場のDouble Tree by Hilton Hotel付近を散策すると、石造りのレトロな建物と高層ビルが同居する街並みが楽しめました。カンファレンスの参加者は、会場ホテルの特別割引もあるので会場のホテルに宿泊するようですが、自分は現地の人と交流したかったのでairbnbで民泊しました。家主は、内装、外装、庭をDIYするツワモノでした。

f:id:kfly8:20190621142547j:plain:w500
中心街の街並み

f:id:kfly8:20190621194018j:plain:w500
中心街の街並み

f:id:kfly8:20190614222740j:plain:w500
民泊先。ピッツバーグの川を眺めながら過ごす。優雅。

セッション1日目

オープニングトーク

 いよいよセッションが始まります。オープニングトークでは、カンファレンスの楽しみ方が共有され、日本で聞き覚えのある内容で早速テンションが上がりました。

f:id:kfly8:20190617101110j:plain:w500
The Perl Conferenceの楽しみ方

 話を聞くと、20年前、初めてThe Perl Conference(その時は、YAPC:Yet Another Perl Conference)が開催されたのも、ピッツバーグなんだそうです。その1999年開催のサイトはこちらで、とても歴史を感じます。

f:id:kfly8:20190617102636j:plain:w500
カンファレンス開催20周年記念Tシャツ。最高に可愛い。

Perl 5: The past, the present, and one possible future by SawyerX

 キーノートは、Perl5のメンテナンスマネージャーのSawyerで、Perl5のバージョンが上がるごとにどんな機能変更があったか、また今後どんな変更を考えてるか話していました。動画はこちら。わかりやすいのでオススメです。

f:id:kfly8:20190617112835j:plain:w500
頑張れば実現できる未来

 懇親会でSawyerに、この未来のことについて話しかけてみると「今後どの変更が優先されて欲しい?」と気さくに聞いてくれました。自分は「メンテナンスしやすいと嬉しいので、リッチなOOがビルトインされていて欲しい!それと初心者向けのドキュメントが欲しい!例えば、Perl入学式のようなドキュメントは参考になると思う!」と急に喋る人になりましたが、優しく受け答えしてくれました。優しい。後から、ああ言えば良かった、こう言えば良かったと後悔もありましたが、憧れの人と話せて良かったです。

A Neurobiologist's Guide to Effectiveness by kyloma

 次のキーノートは、元herokuのエンジニアで現在、脳神経学者の kyloma による話で、認知を「鍛える」話が面白かったです。例えば、感情を効果的に対処する為には「感情を表す語彙力を増やす」と良いそうです。言われてみると当たり前ですが、意識できていなかったです。他には心理的安全を高める方法など、実践的な内容が、こちらの サイト によくまとまっています。

Maintaining Code Quality at Scale by Jordan Adler

 PinterestのJordan Adlerの話では、SaaSの改善プロセスを、問題発見、デザイン、実装、デプロイ、メンテナンスについて端から端まで網羅的に聞け、勉強になりました。資料はこちらです。

  • Discovery Phase / 問題の発見
    • Problem Discovery
    • Problem Isolation
  • Design Phase / 問題解決のデザイン
    • Solution Design
    • Design
    • Design Review
  • Implementation Phase / デザインの実装
    • Solution Implementation action
    • Implementation Review
  • Deploy Phase / デプロイ
    • Delta Deploy
    • Acceptance Testing
    • Usage Monitoring
  • Maintenance Phase / 運用
    • System Operation

Interfaces in Perl5 by kfly8

 次は私の登壇でした。発表内容を簡単にまとめると「コード規模が大きくなると、コードの分割、依存コントロールがより重要になる。その為にInterfaceはいいパーツ。だから、Perl5にInterface作った」という話です。緊張でお腹が明らかにキリキリしていたのですが、登壇が終わり放心状態で会場を彷徨っていると「面白かったよ!」と何人かに声をかけてもらえて、ホッとしました。

 後日のハッカソンでは、作ったモジュールのデザインについて何人かに相談にのってもらえて、最高の時間が過ごせました。

speakerdeck.com  

Better testing with Test2-Suite by EXODIST

 次は、Test2のEXODISTでした。資料はこちらで、Test2のチュートリアルを40分で一気にさらう内容でした。Test2の日本語記事だと、Perl Hackers Hubのid:akiymの記事が分かりやすいです。

gihyo.jp

懇親会

 この日の懇親会は、会場のホテルで立食形式でした。ざっくり話したことはこんな感じで楽しかったです。

  • Sawyerにセッションの感想が話せた(上述)
  • アメリカ開催なのに、スタッフにフランスの人がいる
  • アメリカでは5Gが開始したんだけど、日本はいつ始まる?
  • 次の日本のYAPCはいつやるの?

 余談ですが、ホテルでのカンファレンスが良かったです。全期間に渡って、朝食、ブランチ、おやつ、コーヒー、紅茶などの提供をしてもらったのですが「コーヒー飲む?」「体冷えたから紅茶がいいかな」といったゆるい会話がしやすかったです。id:papix言及していたのですが、セッションとセッションの間の時間が長く、のんびり交流のために休憩時間を使いやすかったです。運営としても、ホテルに丸っとお願いできるのも嬉しいですよね。日本でどこかカンファレンス開催しやすい宿泊施設はないですかね?

セッション2日目

f:id:kfly8:20190616083435j:plain:w500
会場近くの道端にリスがいた。

Confessions of a Space Cadet by genehack

 2日目の最初は、genehackのキーボードの話を聞きました。資料はこちらです。前々日のランチで、Keyboardioを作っているのは、Perlのメンテナーだったobraだと聞いたので、キーボードに興味が湧き、ゆるっと聞きに来ました。案の定(?)キーボード沼の話でした。ひとまず、紹介されたキーボードを貼っておきます。

 蛇足ですが、キーボードをノートPCに載せる尊師スタイルでいると、7人くらいに話しかけられました。交流したい人にオススメのスタイルです。

Speeding up Perl test suites by Dimitrios Kechagias

 次は、Perlのテストの高速化の話でした。速度改善のデモが脅威的で、Mooseのフルテストを39秒→2秒にしていました。次のコードのようにTest2::Aggregateを利用して実現します。

use Test2::Aggregate;

Test2::Aggregate::run_tests(
  dirs => ['t'],
);

done_testing

 この改善の肝は、モジュールの読み込み時間を減らすことで、コードとしては、複数ファイルに別れているテストをまとめ(該当コード)、テスト実行する動作になっています(該当コード)。面白い。

Mocking the file system in Perl by TODDR

 cPanelのTODDRの話はTest::MockFileの話でした。資料はこちらです。後述のコードで、ファイル実体を開くことなく、ファイルの中身を指定できるのが旨味です。一筋縄でいかなかった罠、例えば、gotoがperl5.16未満だと期待通りに動かないといった話含め、面白かったです。

use Test::MockFile;

my $mock_file = Test::MockFile->file("/foo/bar", "contents\ngo\nhere");
open(my $fh, "<", "/foo/bar") or die;

Perl Out Loud by Emily Shea

 Fastlyのyomillyの話は、RSIでキーボード入力が難しくなり、色々試した結果、今、音声入力でプログラミングをしているという話です。話を聞くまで、正直音声入力でプログラミングはネタなのかと思ったのですが、全然そんなことなく、Talon Voiceを用いて、現実的なものに落とし込んでいて凄かったです。自分はTestの話を聞いていて、直接聞けなかったのですが、隣の会場で盛り上がっている声が聞こえてきました。話題になって、このカンファレンスで一番再生されている動画です。

www.youtube.com

LT & 懇親会

 このあと、LTの時間で一緒に来ていたid:karupaneruraが、Perl5でJSONを扱うときのハマりどころの話をしていました。資料はこちらです。

f:id:kfly8:20190618162348j:plain:w500
karupa!!

 そんなこんなで、2日目も終わり、懇親会です。懇親会では、遊覧船(!?)に乗りました。ピッツバーグの美しい街並みを見ながら、ビール片手に色々話せて最高でした。日本人の私よりアメリカ人の方が椎名林檎について詳しかったです。

f:id:kfly8:20190618184030j:plain:w500

f:id:kfly8:20190618204020j:plain:w500

f:id:kfly8:20190618205907j:plain:w500
Larry Wallと写真を撮ってもらい、浮かれています。

セッション3日目

Readin' Rust by spazm

 プログラミング言語のRustの紹介でした。自分が聞き取れた限りだと、Perlの話は一切なかったので、ある意味、私の知っているPerlのカンファレンスっぽかったです。 蛇足ですが、廊下で話した別のエンジニアにも「Rustはいいぞ。あと位置情報を扱うならPostGISがいいぞ。」と薦められました。GEEKは国を超えてもGEEKなのか、推しは全力で推す雰囲気が楽しめました。

Tidy (and Lint) All the Things with TidyAll! by DROLSKY

 DateTimeのDROLSKYの話でした。このセッションでは、Code::TidyAllの紹介でした。資料はこちらです。Code::TidyAllはプログラミング言語問わず、統一された使い勝手で、lint,formatするツールで、処理の並列化やキャッシュも面倒みてくるので便利だと思いました。ちなむとRustで再実装をしているみたいですが、まだ途中だそうです。

Overloading Perl OPs using XS by ATOOMIC

 cPanelのATOOMICの話で、ファイルテスト演算子を上書きするOverload::FileCheckの話です。資料はこちらです。ファイルテスト演算子の上書きは、XSでOPを書き換えて 、hackishでcoolでした。実際に使う時は、次のように簡単に使えます。

use Test::More;
use Overload::FileCheck q(:all);

mock_file_check('-f' => sub {
    my ($file) = @_;

    return CHECK_IS_TRUE if $file eq '/foo/bar';
    return CHECK_IS_FALSE if $file eq '/boo/bee';

    return FALLBACK_TO_REAL_OP
});

ok -f '/foo/bar';
ok not -f '/boo/bee';

done_testing;

Q & A with Larry Wall by Larry Wall and Jim Brandt

 Perlの生みの親のLarryと、The Perl Foundation代表のJim Brandtでの座談でした。要約できないので、動画を見てください!10分くらいまで音声不調ですが、それ以降は聞き取りやすいです。

www.youtube.com

LT & クロージング

 Sawyerが声をかけてくれ、ちゃっかりLTとLTの合間にYAPC::Japanの宣伝をさせてもらいました。

 そして、10年運営代表をしたDanを讃える場面もありました!今回カンファレンスを楽しむことが出来たのも運営のおかげです。ありがとうございました!  

カンファレンスに参加して

 初めての海外カンファレンス参加で、当初緊張していたのですが、蓋を開けてみると、カンファレンスの雰囲気は穏やかで寛容で、コミュニティに歓迎してもらえ、本当に楽しむことができました。また言語は違っても、技術の話、またはサブカルの話、文化の話など好きなことについて、コミュニケーションできたことが良かったです。GEEKは国を超えてもGEEK、という実感が持てました。参加の心理的なハードルは高かったかもしれないですが、参加して良かったです。また参加したいです!

PR

 今回のカンファレンス参加にあたり、移動費、宿泊費をモバイルファクトリーに全てサポート頂き参加できました。モバイルファクトリーは、こういった技術カンファレンス参加など、キャリア支援に取り組んでいるので、もし興味が湧いた方は、お気軽に面談してみませんか?

モバイルファクトリーは、技術好きなエンジニアを募集しています。