JJUG CCC 2024 Springの懇親会LTで発表してきたので、
今回はその簡単な経緯と感想などを。
経緯
JJUGには参加するつもりで申し込んでいた。 LTがあることを知ったのはこのツイートだったと思う。ITエンジニアにとって、Twitterは大事な情報源だ…。 (今はXとかポストとか言うようですが、以下も旧称で。)
酔った勢いで、手が滑って、LT 申し込んだ!
— Masaki ASANO (@mackey0225) 2024年5月30日
タイトルは「技術カンファレンスをより楽しむためにやるべき N 個のこと(仮)」です!
対戦よろしくお願いします!
JJUG CCC 2024 Spring Lightning Talk スピーカー募集 https://t.co/KszP8R2QY8 #jjug_ccc @JJUGより
以前に、Server-Side Kotlin Meetup Vol.10 というイベントで外部LTは参加経験があり、
半年以上経ったしそろそろどこかで何か発表してみようか と思っていたところだったので、JJUGで話せるネタがないか検討すること数日。
最近は自分自身ではJava/Kotlinのコードをほとんど書いていなかったものの、同僚が最近ぶつかった問題を題材に話ができるなと思い、
その同僚の許可を得て(※本当はその同僚に発表を勧めたのだが外部はチョット..って感じだったので)、自分が発表することに。
5/30(木)にLT枠の存在を知り、6/7(金)に申し込み。
この時点で、10人中7番目だった。週末には埋まったようなので、わりと伸びが早かった。
この段階でタイトルを出す必要がある点が、意外とハードルだった。
内容練りと資料づくり
「和暦」の扱いがJavaだと (他言語よりは便利だけど)ちょっと罠がある
というのをテーマにするのは、申し込み時点で決めていたのだが、3分話すにはちょっと薄いなぁ ということで、話を膨らませるべく色々試したりする。
検討の結果
DateTimeFormatter
のデフォルト設定だと、元号の切り替わりの年だけ存在しない元号+月日の組み合わせでもパース成功する- 「年度」表記にする良い方法はない (& 自治体によって 平成31年度と令和1年度とどちらで表記するか変わる)
- 元号切り替わりの年は、"年末"の判定が狂う
の3本立てで話すことにした。
何かを話すときに、3つあるとちょうど良いとはよく言うもので。
だがしかし、発表時間が3分だったのと、
話の流れ的に建設業に絡めたかったので、話が収まらないことなんのその。
普段は社内で15分発表をしているものだから、普通に短めくらいで作っても5分以上にはなってしまい、
そこから頑張って削り、
さらにさらに削り、
さらにスラスラ良い感じのテンポで話せるように練習を重ね、、
気付いたら当日の朝4時ごろまで作業することに(:3 」∠ )
LTというのは、ほんとにLightningにトークするのは大変だということがよく分かったのであった。
当日
日中は普通に講演を聴き。
懇親会準備を少し待ったら、ビール片手に乾杯。
JJUGは何度か参加していたが、懇親会に残ったのは初めてであった。なるほどこういう雰囲気ね。
といっても、過去のLT資料を検索して参考にしていたので、雰囲気はおおよそ予想通り。
8番目で、良い感じに場が盛り上がっていてとても話しやすかった。
発表中のことはよく覚えてないけど、わりと盛り上がってた気がする。覚えてないけど。
発表直後に
和暦の扱いが良くないのは、日本のコミュニティの力が足りなかったから.. 的なコメントを言わせてしまった。
いやーそういう事を言いたかった訳では無いのです(‥;)ゴメンナサイ
その後
発表ネタで話しかけてくれた人が2人いらっしゃった。
ありがたや。
和暦に関しては結局、良い感じの回避策はあまり無かったりするんですよねー って話をしたのと、
日付や日時の扱いに関する苦労ポイントあれこれを話したりして楽しかった。
(パフォーマンス気にするところでは日付型ではなく数値型で値をもってたりする とか、 今時なら生成AIを使うとなんとかなるんじゃないかとか。)
発表してなかったらぼっち確定な場だったので、ありがたや(再)
翌日
発表資料をSpeaker Deckに上げ、Twitterに書き込んだところ、いくつかコメントが。
内容について補足してくださる人もいて助かる限り。
こんにちは!資料楽しく読ませていただきました。
— Naoto Sato (@naotoj) 2024年6月16日
後半のlastDayOfYearは仕様できっちり、
"It is equivalent to:
long lastDay = temporal.range(DAY_OF_YEAR).getMaximum();
temporal.with(DAY_OF_YEAR, lastDay);"
となってるのでいかんともしがたいのですが、
前半の平成33年をパースする件は、withResolverStyle(LENIENT)することでパースできると思いますので試してみてください。
— Naoto Sato (@naotoj) 2024年6月16日
前者のどうしようもない側はJavaDoc読んで(コードも読んで)いたが、
LENIENT指定する件は忘れていた(理由は後日調べようと思っていた)ので、ズバリな回答を頂いた。
本当はすぐに詳しく調べてZennかQiitaの記事にでもしたかったが、
今もまだ時間を取れておらず。取り急ぎスライドの方には追記としてスクショを載せさせてもらった。
これがその資料。会社の宣伝も追記しておいた 笑
感想
勉強会の本編は懇親会だ なんて言ったりして、それは7割は冗談だと思うけど3割は本当かもしれない。
というのも、懇親会に参加している方々の顔を見ると、「あれは、かの有名な○○さんでは..!」みたいになることがある。そんな人たちと会話をするのは、本編ではなかなかできない。
けど、自分は懇親会があまり得意ではないので、いつもそそくさと帰りがち。
そんなときに、発表すれば居場所と話題が自動で生成されるのだから、良いジェネレーターなのかもしれない。
(有名な○○さんと話せたとは言っていない)
というわけで、最近は後輩にも LT発表しなよ と何度もけしかけている。
今は会社でLT会をやっていて、月に1回くらいのペースで10分前後で発表をしているので、みんなもやってみたら話せるのではなかろうかと。
--
なおこの記事も、発表のノリが微かに残っているうちに書かねばと思って、なんとなく勢いで書いてみた。