Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

YAPC::2024 Hiroshimaにはてなパーカーで参加しました #yapcjapan

ついに広島で開催されたプログラミングの祭典YAPC 2024 Hiroshimaに参加し、さきほど帰宅したのでレポートです。2/19〜2/21までの各イベントに参加しました。いくつかのトピックに分けて、現場の熱量をなるだけ伝えようと思います。

ついにやってきた大規模カンファレンス

ついに、と書いていますがYAPCは例年ある程度安定して開催されています。ではなぜこう書いたかというと、COVID-19によりプログラミングコミュニティのカンファレンスが熱量を失ってしまっていたことが理由です。

COVID-19の猛威は日本中に襲いかかり、ありとあらゆるイベントを中止に追いやってきたわけですが、プログラミングコミュニティの集会も例に漏れませんでした。YAPC::2020はCOVID-19の打撃を受けて延期してしまいました。他のコミュニティも、2020年当時に同じような苦渋の決断を行っていたことと思います。先行きが見えない中、2021年にはJapan.pmとしてオンライン形式でスピンオフ、2022ではYAPCとしてオンライン開催、2020年にTryしようとしたYAPCをCatchした2023 Kyotoでようやく元気になってきた病み上がり(懇親会なし)という状態であり、ついに元気になった尾頭付きのYAPCが2024年になって(懇親会も)帰ってきた、という経緯が(自分の中では)あるのです。

blog.yapcjapan.org

blog.yapcjapan.org

↑ 読者になろう!!!

きっと参加者の皆さんも、ドキドキワクワクが戻ってきたという感想を抱かれる方が多いのではないかと思います。

開催当日は快晴、穏やかな寒い青空を銀色の雲が飾る中、YAPC::Hiroshimaの開催が宣言されました。

はてなパーカー

今回参加するはてなスタッフは全員白のはてなパーカー(ロゴ入り)で参加しました。会場で発見してくださった方もいらっしゃったと思います。懇親会などでお会いした方と、はてなではどうやってるんですか?といった話がいろいろできて良かったです。

時を巻き戻して荷物準備(裏目標)

さて永らく大規模物理カンファレンスに行かなかったせいでカンファレンス筋というかそのへんのノウハウが脳から揮発してしまったので、様々な過去のブログを読み漁って出張テクニクスを再確認した。特にuzullaさんの記事に大変助けられましたありがとうございます(こうして記事に書くことで知見が広まってみんな助かるわけですね)。

uzulla.hateblo.jp

特に参考になったのは以下です。

  • もらえる分のTシャツを差し引いて着替えを入れるべし
  • 軽い服で行くべし

これに触発され、自分もなるだけ最小限の荷物でYAPC::2024に挑むという裏目標を自分の中で立てることにしました。コートの代わりにライトダウンを着ていき、パジャマ代わりになるフリースを下に着るという作戦で2日分を節約。結果としては成功し、ノースフェイスのリュック1つでうまく乗り切りました(帰りはパンパンになったけど)。リュック自体が防水の代わりに地味に重いので改善ポイントかもしれません。

個人的に追加したテクは以下の通りです。

メガネケーブル短くすべし

充電器のうちAC100Vコンセントに差し込む側でおなじみのメガネケーブルですが、サンワサプライあたりが20cmくらいに縮めたやつを売っています。これを買うとリュックの中で無駄なケーブルがガチャガチャしなくなるので大変おすすめです。どうせ長さは要らないのでこれで十分です(たまに床にコンセントがあるタイプの会場がありますが、そうなったら現場で長いのを調達するか、1日頑張って耐えましょう)。安いので試しに買うくらいの気持ちで良いと思います。

靴軽くすべし

靴はねー重いんですよ。天気にもよりますがスニーカーの軽いやつで行くのがよいですね。自分はリーボックの爪先までメッシュになっているやつを普段から履いていて、軽いです。雨が降ったら死ですが、防水スプレーでなんとかできるので事前にまぶすと良いかもしれません。

名刺はステッカーにすべし

名刺のかわりに自分のアイコンとウェブサイトのQRコードが印刷されたステッカーを持っていって、それを配ることにしました。ラクスルというサービスで作りましたが、そこそこ簡単に作れて面倒もないので確実です。面白がってスキャンしてもらえるのでお得です。一番お得なのは登壇することですね。

ちなみに同僚の id:mizdra はアイコンを缶バッジにしていました。これも良いと思います。だいたいみんな人の名前は覚えていないけどアイコンは覚えているものです。次回は真似したい。僕は名札にステッカーを貼っていたけれど、名札はブラブラしているのでチラッと見るにはあまり向かない。

反省点

ここは反省点ですが、結局モバイルバッテリーはほぼ使いませんでした。バッテリー付属のQiでワイヤレスイヤホンを充電したくらいで、あまり活躍させられなかった。最近のスマホは1日くらい普通に耐えるのと、どの道ホテルでは充電器で充電するので、あまり使い所がないんですよね。なんなら、ノートPC自体がでかいUSB充電器だと言うこともできて(ACアダプタを使う僕のThinkPadの場合。Macbookだと逆にUSB充電器が全部を充電できる)、充電器すらそんなに出番がない。

ビニールのナップサックが家に無かったので持っていけず、結局でかいリュックで会場に行くことになったのも残念でした。どこかで見繕いたい。NANOBAGがリュックも出しているので、これも良いと思ってます。

(余談) ホテルめちゃ早めに取るべし

ホテルは早ければ早いほど安くなるので、参加を決めたら可及的速やかに確保するのがセオリーです。良いホテルから埋まります。

聴講した感想

自分が聴講した発表のうち特に気になったものについての感想です。時おり休憩しつつ聴講していたので、全部聞けたわけではないです。

あと、forteeめちゃ便利ですね。

入門EOL対応 ~SREが鉄板の流れ全部見せます編~

speakerdeck.com

何度もEOL対応をしているうちにフレームワーク化したくなり、EOL対応フレームワークとして結実したというのが尊い話ですね。

EOLに対してアップデートで対処するとして、先にステークホルダーを見付けておくと便利だよ、という話は実用的でありがたかったです。また、パフォーマンスまわりは非機能要件なので直接テストされているとは限らず、テストをすり抜けて本番のパフォーマンスなどにインパクトを与えてしまう、という点は確かになと思いました・・・

加えて、モチベを維持するためにジョブクラフティングという概念があり、これの紹介をしてくださったのが良かったです。

メタ的な話ですが、覚えて持ち帰ってほしいキーワードや概念を1つ設定して、それを軸にプレゼンを組み立てているのが良いなと思いました。真似したい。

What You Like May Not Be for Someone オープンソースとアクセシビリティ

www.docswell.com

NVDAと聞くと某GPU屋さんかと思いますが、Non Visual Desktop Accessのことで、アクセシビリティ(a11y)まわりの話題です。はてなでも id:azukiazusa がa11yに取り組んで頻繁に発信しているのと、個人的にも気になっている話題なので勉強になる話題が沢山ありました。

Accessibility Supported(AS) という概念があり、これに関する原則、そしてそれを達成する方法、という順で様々な支援手段、例えばalt属性が用意されている、という体系的な仕組みがあるという話がとても面白かった。

waic.jp

VISAカードの裏側と “手が掛かる” 決済システムの育て方

speakerdeck.com

これが今回のYAPCのベストトークでしたね。

shohei1913.hatenablog.com

個人的にもこの発表は白眉であり、我々が普段から利用している決済システムの裏側について、一般的に外から見える部分からどんどん深掘りしていくという構成がとても優れているなと感じました。真似したい。「この発表の後皆さんはレシートを見たくなると思います」と発表者の型がおっしゃっていましたが、まさにそうです。そもそもクレジットカードの仕組みってインターネット以前からあるわけで、すごいですよね。

あと、話し方もすごく良かったです。内容と表現の両方が優れていたので納得の受賞です。

My Favorite Protocol: Idempotency-Key Header

speakerdeck.com

安全にリトライをするにはどうしたらよいのか?という話題から開始して、ヘッダを利用してunsafeなHTTPリクエストの羃等性を保証しよう、というふうに話が展開します。現在Draft状態であるIdempotency-Key Headerは、サーバがヘッダを保存しておくことでリトライできるかできないかを判定できるようにする面白い仕組みです。ストレージをどこに配置すればよいのか?どこのレイヤーで処理するのか?といった実装上の疑問に丁寧に答えていく、面白い発表でした。

(再演) 関数型プログラミングと型システムのメンタルモデル

speakerdeck.com

個人的に関数型言語が好きであり(このブログの過去記事を見たらすぐ分かると思いますが・・・)、なおかつ既存のOOPや命令的なパラダイムを持つ言語との架け橋を作ろうと思っているので、非常に共感できる部分の多い発表でした。

発表を聞くうちに、手続き型のパラダイムでは処理フローが明示的に管理されて状態は暗黙の領域に隠れるが、関数型のパラダイムではこれが反転して状態が明示的に管理されて処理フローは(型クラスなどのメカニズムで)暗黙の領域に隠れるような、相互に補完的な関係にあるな、という直感が大きくなっていきました。

関数型が何よりも良いんだ!! という口調は今時あまり聞かなくなりましたが、関数型プログラミング(FP)言語とそうでない言語、「どちらが良いのか?」という切り口ではなくて、これら二者のパラダイム選択は、フローと状態のどちらを明示的に管理したいの?という選択の問題に過ぎないのだよな、という思いを強くしました。

その結果として、適切なパラダイムを柔軟に選択できる言語がこれから有力になっていくだろうと思いました(嬉しいことに、Scalaはこの特長を有しているわけですね:smile:)。

ランチセッション

企業がYAPCのようなコミュニティに小さいながらも協賛を続けることについて、「寒い環境でエンジンをかけ続ける」という表現をしていたのが強く印象に残りました。COVID-19でコミュニティ活動が弱まってしまっている現状も踏まえると、一度冷えてしまったエンジンはなかなか元の状態に戻らないんですよね。ひょっとすると永遠に停止してしまうことも少なくありませんし。

自分も小さいながらScalaわいわいランドというScala言語のコミュニティを主催しており、しばらく前にオフライン勉強会を開いたときに「永らくこういうオフライン開催を待っていたが、なかなか戻ってこなかった」という声を聞いたことがあり、熱量を維持し続けることが本当に大切なんだなと思ったのでした。

ワンショットでガツンと協賛するとその時は大いに盛上がるのですが、それが終わって冷えるとなかなか温まらないんですよね。細くてもいいので火を保ち続けるのが大切なんだ、というお話でした。

新任エンジニアリングマネージャーのための「ぼうけんのしょ」

speakerdeck.com

自分はEMではないですが、同僚がEMになったりして興味があったので聞きに行くことにしました。「マネージャは何をするの」という話で「結局なんでもやる」という話がなされており、社内でも同じような話をしていたのを思い出しました。マネージャの語源はmanageであり、そこには「困難な中でもなんとかする」という語義が含まれているんですよね。要するに責任と権限を委譲されて何とかする人*1。マネージドDBとかいう言葉を想像するとイメージしやすいですよね。勝手になんとかしてくれるDBです。

そういえば意思決定という文脈で、XことTwitterではこのようなリンクが貼られていました。

konifar-zatsu.hatenadiary.jp

ちなみに、このあたりでPCのバッテリーがダメになってしまいました。会場の様々な事情でコンセントがなかったのでしょうがない。次回はThinkPadにデカいバッテリーを装着しようかな。

PerlでつくるフルスクラッチWebAuthn/パスキー認証

speakerdeck.com

個人的にPasskeyに非常に関心があったので聴講しました。Perlでもフルスクラッチできるぞ!! というわけで会場でライブコーディングしてついに完成していたのが流石と思いました。Scalaでも書きます、とTwitterに書いたので、Scala + Scala.jsでやってみようと思っています。パスワードレス大時代の素振りをしておきたいですね。

ちなみにWebAuthn/PasskeyではCBORというバイナリシリアライゼーションフォーマットを使っているというのが意外でした。以前CBORについて調べていたので、より興味を持てました。

blog.3qe.us

キーノート(杜甫々)

インターネットレジェンドのとほほさんの実物が出現。会場はどよめいていました。まじで。

とほほさんと言えば『とほほの${something}入門』であり、Webにかかわる人であれば絶対に見たことがあるあのシリーズの著者です。

メモリが4KBだった時代からとほほさんのコンピュータライフは始まり、XHTML時代が来るかと思われたが結局より緩やかなHTML Living Standardに移行したのを目の当たりにしていたとほほさん曰く、「多少ルーズでもシンプルなものが普及しやすい」とのこと。説得力がある・・・。Scalaを広めたい活動をやっている自分としても、関数型言語とそのコミュニティが放ってしまいがちな厳格さをいかに吸収するかに腐心しているわけですが、普及のためのヒントをもらえました。「広まるもの」も「よい仕様」の必須条件ということでした。

「ずっとこうした(とほほの入門を執筆する)活動を続けられるモチベーションはどこから来ているのですか」という旨の質問に対して「好きだから」と一言答えていたのが心にじんと来ました。「パチンコとかと同じで、どちらかと言えばやめられない」と。

最近はアウトプットで一発当ててキャリアパスの足しにしようとか、発信力(?)を増やそうとか、バズってそれで食っていこうとか、そういうソーシャルにつなげるために書こうというコンテンツが流行りがちですが、結局好きだからやるんですよね。これが全ての基点なんだと思います。ハッカーかくあるべし、という基本姿勢を見せてくれたな、と思いました。会場の拍手が鳴り止まなかったのも、そういう埋もれつつあったハッカーの精神を聴衆が思い出したんだと思います。検索やバズの問題が世の中で取りざたされる中、好きを貫くことに不安があったのかもしれない。心配するな、好きを貫きなよという福音として、キーノートが聴衆の心に響いたのだと思います。

個人的には、とほほの入門シリーズがペライチの単体のHTMLページで構成されている、という点がすごく好きなんですよね。ページ増やしてPV獲得や、みたいな思想に真っ向からノーを突き付ける美しさがあると思います。なにより、素朴なHTMLは勝手に壊れたりしません。10年読まれる記事を書いていこうな。

yayapc

翌日、yayapcとしてSNSシェアできないような話での色々のトークがあった。楽しかったですが内容は紹介できないので、次回があったら皆様参加してみてください。

グッズ

写真

*1:ちなみにmanageの語源はラテン語のmanusであり、手という意味です。manualとかもこの系譜です。

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?