再びまたやりてぇと思ったので、先日Tokyoto.jsの第2回目を6年ぶりに開催しました。
去年の10月に前回のKyoto.jsをやったときくらいに「そろそろTokyoto.jsやりたいな〜」という気持ちになったのと、その後に企業でのアクセシビリティ向上、「成果」をどう考える? - connpass に登壇した後の打ち上げかなにかでid:ymrlと「草の根勉強会やりたい」という話になり、ちょうどTokyoto.jsやりたい気持ちになっていたので、会場の調整をその場でざっくりとやってもらい、開催を決めました。
結果的には25名ほどの方に参加して頂きました。ありがとうございました。(ドタキャンというか来なかった人が登壇者1人を含めて5人も居たのはちょっと悲しいというか、これが東京だなという気持ちにはなりましたが……)
(from https://twitter.com/nagayama/status/1745756596121338041)
発表の紹介
今回も本家のKyoto.jsに負けず劣らずのJSに関連する振れ幅の広いトークを5人の方にしていただきました。
UserAgentに依存した分岐を捨てられるか (または何故捨てられていないのか) / pastak
トップバッターは自分が務めました。直前まで発表資料どころかテーマも固まってなかったのですが、なんかイマイチ色んな話題がパッとしないUserAgentに纏わるあれやこれやを雑多に話すトークをやりました。iPadの件は意外と知らない人も多かったようで紹介して良かったです。
大量の eslint エラーに対処する技術 / mizdra
2人目は id:mizdra くんが彼の作っているeslint-interactiveについて話してくれました。
実はeslint-interactiveが動いているところをなんだかんだで初めて見たのですが、激しく便利そうでもっと早くちゃんと試しておけば良かった・・・って思いました。fixerを書けるのとか便利で良いですね。たまに自前で書いたりしてるけど、こういうので雛形出したりして支援してくれると楽で嬉しい。
DOMのGCについて聞いてください / canalun
3人目はcanalunさんです。先日のJSConf.jp 2023でのトークに感激して懇親会でmizdraくんたちと突撃しに行ったりしたのですが、その流れで今回もDOMの話かと思いきや、DOMはDOMの話でも、V8やblinkにおけるDOMのGCの話というかなりディープな話で刺激的でした。僕はこのトークを聞いて、「そういえば、console.log
でDOMを出すと参照が残り続けるので、メモリリークするという話があったな〜」と思い出しました。
2月末にcanalunさんとmizdraさんと一緒に東京で今度はDOMにフォーカスしたイベントを開催予定ですので、続報にご期待ください。
Parsing Javascript / brn0227
GCの話に続いて、4人目のbrnさんはJavaScriptのParseのお話でした。arrow functionや分割代入など便利な機能ほどパースが大変という話を聞いて、確かにパーサーの気持ちになってみると凄く大変な気持ちになりました。Ruby界隈は最近新しいパーサーの話などで盛り上がっていますが、文法的にもパーサーが泥臭い実装になるしかないJavaScriptではさすがに難しいよな〜と思いました。
ありがとう、create-react-app / utgw
ラストの5人目は id:utgwkk がエモいトークをしてくれました。僕も過去にCRAで作った小さなアプリケーションたちのことを走馬灯のように思い出しました。
LTの紹介
LTも5人+飛び入り1人の計6人の方が参加してくださりました。5分では足りないもっと深掘りしたいトークも多かったです。
TypeScriptとDocumentaion tests / ssssota
ssssotaさんによるVitestのin-source testの仕組みを利用したDocument Testが出来るViteプラグインの紹介でした。in-source testを使えば、トランスパイル時にコメントからテストを抜き出してきて、コードの末尾にくっつければテストできるというのはかなり便利じゃんと思いました。
ESLintのときから色んなトークで登場していた、コード変換の話題がここにも。
Figma API + Cloudflare + Hono で画像共有 / hush_in
id:hush_in によるFigma APIで取得した画像が30日でexpireしてしまうのをCloudflareでキャッシュすることで防ぐという話でした。Cloudflareグッズとhonoでこういう便利グッズがシュッと作れるのは良いですね。
ts-morph と ast-grep でたくさんの TypeScript コードを書き換えた話 / tomoasleep
tomoasleepさんによる発表は、ts-morphとast-grepでコードを変換してライブラリのバージョンアップに追随するという話でした。ASTを利用したちょっとした書き換えは色々ast-grepを使えばAST自体の知識はあまりなくても書けそうで顧客が欲しかったもの感があるなと思いました。一方で、この辺使うと全てが釘に見えそうでもあるなとも思いました。
一人でも勉強会したいだけの人生だった / igrep
igrepさんが行われているオンライン勉強会の運営についてのお話でした。勉強会を定期的に開催し続けるのは難しいのは非常に同意という感じでした。Kyoto.jsはluccaさんが定期的にケツを叩いてくれるので助かっています。
Rubyで書いたテトリスをブラウザで動かしてみた / ledsun
id:ledsunさんのRubyKaigi 2023でのトークを聞いてすごい面白かったので、その後に廊下(概念)で30分近く話し込んだというハイライトがあったのですが、是非JavaScriptコミュニティでもruby.wasmの話をして欲しいなと思っていたので、LTお願いしてやってもらいました。表示部分の仕組みさえなんとかすればロジックなどはそのままで移植できるのはやっぱり良いな〜と思いました。
(タイトル忘れてしまいました) / mactkg
id:mactkg が飛び入りでdenoで作っている便利グッズについて紹介してくれました。たしかにこういう小さいのはdenoで動かすとTypeScriptのままとかで動かせて便利ですね。前回のKyoto.jsでも紹介してもらったりして、機運は高まりつつあるが、意外と最近小さいツールを作る機会がなくてチャンスが巡ってこない……
感想 & まとめ
Tokyoto.jsとかいう京都の勉強会を東京でやる酔狂な集いに協力してくださったfreee社の皆さん、登壇者の皆さん、参加者の皆さんありがとうございました。東京でやるのドキドキしてたんですが、皆さんのおかけでいつもと同じホームの気持ちで最高の会がやれたと自負してます。またやろうぜ! #kyotojs
— マジカルペンネくん🍝 (@pastak) 2024年1月12日
id:ymrl をはじめfreee社の方々のサポートのおかげで無事開催することが出来ました。ありがとうございました。個人的にもこういう感じの勉強会を東京で開催するのどころか参加するのもかなり久しぶりだったのですが、発表者・参加者の皆さんの協力で非常に楽しい時間を過ごすことが出来ました。ありがとうございました。
懇親会パートでもほぼ全ての皆さんと会話できて良かったです。参加してくださった方の中には今回のToKyoto.js初のオフライン勉強会参加な方もいらっしゃいました。初めての勉強会にToKyoto.jsを選んでもらっただけでも光栄なのですが、話を聞いていると、これまでのKyoto.jsの発表内容などを見て「変なトークが並んでるな〜」と思っていたということをおっしゃっていて、まさにそういう方に遊びに来てもらえただけでも、京都の勉強会を東京で出張開催して良かったなとヒシヒシと感じました。
GCからParserそしてコード変換が会の全体を横串で貫く会になるとは予想もしていませんでしたが、このトリッキーさも参加者の皆さんには楽しんでいただけていたようで良かったです。
京都観光の際には、是非Kyoto.jsにもお越しください!お待ちしております!!
(宣伝パート)そうそう書き忘れていたのですが、今回出張開催出来た要因の1つに僕の所属している株式会社Helpfeelが勉強会参加・登壇に出張費を出してくれたおかげであることを記しておきます。一緒に各地の勉強会などで登壇したい人を積極採用中です!よろしくお願いします(宣伝パート終わり)
次のKyoto.jsは春頃に、次のToKyoto.jsもそう遠くないうちにまた開催できればと思っています。またよろしくお願いします!!!
あ、東京在住の方でToKyoto.jsをやりたい方いればご自由にやってください!必要であればKyoto.jsのconnpassの権限も差し上げます!