ぱすたけ日記

日記っぽいのを書きます。

Kyoto.jsの出張版としてToKyoto.js #02 を開催しました #kyotojs

再びまたやりてぇと思ったので、先日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でも紹介してもらったりして、機運は高まりつつあるが、意外と最近小さいツールを作る機会がなくてチャンスが巡ってこない……

感想 & まとめ

id:ymrl をはじめfreee社の方々のサポートのおかげで無事開催することが出来ました。ありがとうございました。個人的にもこういう感じの勉強会を東京で開催するのどころか参加するのもかなり久しぶりだったのですが、発表者・参加者の皆さんの協力で非常に楽しい時間を過ごすことが出来ました。ありがとうございました。

懇親会パートでもほぼ全ての皆さんと会話できて良かったです。参加してくださった方の中には今回のToKyoto.js初のオフライン勉強会参加な方もいらっしゃいました。初めての勉強会にToKyoto.jsを選んでもらっただけでも光栄なのですが、話を聞いていると、これまでのKyoto.jsの発表内容などを見て「変なトークが並んでるな〜」と思っていたということをおっしゃっていて、まさにそういう方に遊びに来てもらえただけでも、京都の勉強会を東京で出張開催して良かったなとヒシヒシと感じました。

GCからParserそしてコード変換が会の全体を横串で貫く会になるとは予想もしていませんでしたが、このトリッキーさも参加者の皆さんには楽しんでいただけていたようで良かったです。

京都観光の際には、是非Kyoto.jsにもお越しください!お待ちしております!!

(宣伝パート)そうそう書き忘れていたのですが、今回出張開催出来た要因の1つに僕の所属している株式会社Helpfeelが勉強会参加・登壇に出張費を出してくれたおかげであることを記しておきます。一緒に各地の勉強会などで登壇したい人を積極採用中です!よろしくお願いします(宣伝パート終わり)

次のKyoto.jsは春頃に、次のToKyoto.jsもそう遠くないうちにまた開催できればと思っています。またよろしくお願いします!!!

あ、東京在住の方でToKyoto.jsをやりたい方いればご自由にやってください!必要であればKyoto.jsのconnpassの権限も差し上げます!

2023年に出た1巻を読んで選んだ「私的新作マンガ単行本ガイド2023」で紹介したマンガの一覧を公開します

先日のコミックマーケット103で「私的新作マンガ単行本ガイド2023」を頒布しました。

紹介したマンガ自体は良い作品で広まって欲しいと思っているので、インターネットからオープンにアクセス出来ないところに閉じているのもなと思ったので、一覧を公開します。

本誌の方では、作品のあらすじbyChatGPTや作品の寸評、付録としてその他の1巻の一覧などを掲載していますので、「私的新作マンガ単行本ガイド2023」の方も購入してご覧いただければと思います。

電子版の購入はこの記事のcodocから出来ます。書籍版が欲しい人は遭遇する機会がある人には手売りしますので、お声掛けください。

作品選出のレギュレーションは2023年1月〜11月末頃までに出た「1巻」またはナンバリングの無い商業単行本で成人向けを除くです。掲載順は本誌の掲載順と同じですが、順番に意図は特に無くて、順不同です。

この復讐にギャルはいらない (まの瀬)

試し読み

ガレキ!-造形乙女の放課後- (ヨゲンメ)

試し読み

宙-CHUU- (手原和憲)

試し読み

みょーちゃん先生はかく語りき (鹿成トクサク / 無敵ソーダ)

試し読み

つばめアルペン (南文夏)

試し読み

まみちゃん (横山旬)

試し読み

私をセンターにすると誓いますか? (若月ジュン )

試し読み

何も知らないけど、キミが好き。 (きし晴護)

試し読み

スクールバック (小野寺こころ)

試し読み

RTA走者はゲーム世界から帰れない (小出よしと)

試し読み

https://comic-walker.com/detail/KC_003956_S?episodeType=first

ナッちゃんはテンションで水深が変わる (中原ふみ)

試し読み

8月31日のロングサマー (伊藤一角)

試し読み

だれでも抱けるキミが好き (武田スーパー)

試し読み

君のラブを見せてくれ! (リムコロ)

試し読み

https://comic-walker.com/detail/KC_004982_S?episodeType=first

赤羽骨子のボディガード (丹月正光)

試し読み

人生最大の嘘ついた (梅サト)

試し読み

陰キャギャルでもイキがりたい! (かしわぎつきこ)

試し読み

ハネチンとブッキーのお子さま診療録 (佐原ミズ)

試し読み

あくたの死に際 (竹屋まり子)

試し読み

獣王と薬草 (艮田竜和 / 坂野旭 / ももちち)

試し読み

珍獣のお医者さん (二宮香乃)

試し読み

君と宇宙を歩くために (泥ノ田犬彦)

試し読み

吹部やめたい萩野さん (桃原)

試し読み

いやはや熱海くん (田沼朝)

試し読み

コミックマーケット103で「私的新作マンガ単行本ガイド2023」を頒布します / 電子版はこの記事から買えます!

お品書き

前回のコミケで味を占めたので、今回はサークル申し込みをしました。

頒布物についてざっくりと紹介すると、前回作った「2023年の良かった新作マンガ Ver.C102」をベースに今年の後半分の作品を追加して、ついでにシリーズ名を「私的新作マンガ単行本ガイド」に変えたという形です。

紹介作品数は24作品になりました。実験的にいくつかの作品に「この作品・作者が好きな人にオススメ」という欄を用意しました。個人的には感想コメントとかよりもこっちを充実させたいという気持ちなので、次回はもう少し充実させたい。

スペース情報

「日曜日 東地区 “ノ” ブロック 43a」です。評論島の中のマンガ評論っぽいところに居ます。

決済手段としてSquareを導入したので、当日なんらかの失敗が無ければカード決済が可能です。

【追記】2023/12/30: Squareの申請が通ったので、カード決済に加えて、iDとQUICPay交通系ICカードが使えるようになりました(が、動作確認はしてませんので、誰か当日お願いします)

表紙とページサンプル

表紙

本文ページサンプル

電子版について

この記事の有料部分に含まれているgistから諸々辿れるようにしているので、電子版をご利用の方はcodoc経由でお願いします。あと、個人的に繋がりある人は言ってもらえば他の手段でも可です。その場合はさらに何らかの手段でgistのURLをお教えします。

この続きを読むには
購入して全文を読む

ISUCON13でNode.jsへの参考実装移植のお手伝いをしました

先日開催されたISUCON13で、Node.jsへの参考実装移植の担当の1人として参加してきました。

個人としては今年も選手としてISUCONに出る気が満々だったのですが、やんごとなき事情により当日参加は厳しい感じになったところに、ISUCON13 Node.jsの参考実装移植をお手伝いいただける方を募集します : ISUCON公式Blog を見つけて、当日居られなくても良いなら…という感じで応募したところ、お誘いをもらったので、Node.jsへの参考実装移植のお手伝いをする運びになりました。

Node.jsへの移植についてはメインの実装作業をYutaUraさんに行って頂きつつ、僕は方針の相談やコードレビュー、ちょっとしたコードの改善を担当しました。ほぼ8割以上の作業はYutaUraさんにしていただいた形になり、感謝感謝です(個人的にもちょっと色々詰まってたので助かりました……)。

個人的には、移植に関わることが決まってから、honoを使うようにして、bunやその他のランタイムに切り替えることも選択肢として取れるようにするということを出来るとISUCONの競技の上で参加者の人々にチャレンジを提供できるのではないかというアイデアを持っていました。また、若干個人的な感情も籠もっていますが、hono自体にも何か還元できることがあれば良いなと考えていました。

実際の作業を始める前に、YutaUraさんの方から方針としてhonoを使いたいということとBunでも動く参考実装を提供したいという点を共有してもらいました。個人的には前述通り、expressよりもhonoで提供したいと考えていたので、honoを使うことには特に反対はありませんでした。

2点目のBunでも動く参考実装は結果的に動作保証などをする時間もなかったので削って良かったなという感じですが、まぁRubyを使う時に-devに切り替えるとか、Node.jsもバージョン上げてV8の高速化でちょっとでも速くなるのに期待するみたいな感じとある程度同じ範疇かなというのと、提供するとBunを使うことで必要以上にハマる参加者がいるんじゃないかということでbun向けのコードも一部あったのですが、その辺は含めないことにしました。

どうやら、参加者の皆さんの言語選択を見ていると、1チームはBunを使ったチームが居たようでこの辺は移植時の大きな狙いの1つだったので嬉しかったです。

これまた個人的な話ではありますが、自分が過去に出場した際によくやっていた手として、チームとしてはGoで挑むのだけど、問題理解・整理フェーズではTypeScriptでコードを追うということをよくやっていたので、そういうときに障害が出来る限り少なくなるようにということを意識していました。YutaUraさんには頑張ってもらうことになりましたが、各ファイルの関数の並び順や、最初の main.ts を見ると main.go 同様にルーティングの一覧が目に入るようになどを考慮してもらうようにお願いしていました。問題の構造の把握などにおいて、Node.js実装を選んだことが妨げになることを防ぎたかったからです。同僚からもNode.jsからGoに切り替えたときにほぼGoの経験が無いけど、スラスラ読めたと言われたので、そこを揃えたことが少しでも効いていたなら嬉しいです。

そういう点では、Goの strconv.Atoi を使ってパラメータチェックをしている箇所をちゃんとIntegerとして同様にチェックしたり返す関数をJSで書いて置いておいたりしていました。

一方で競技当日にNode.js実装を選んだ皆さんにはパッチを当ててもらうところから始めてもらうことになってしまったのは、申し訳なかったです。もう少し早く気付ければ良かったのですが、見落としてしまっていました。すいませんでした。

普段はJSを書いて暮らしている身として、もっと身近な人々にもISUCONに挑戦してもらいたいと思っていて、そのためには門戸を開け続ける必要があると思っていて、そのまず1つがその言語で参考実装を提供することだと思っています。そういう意味でも今年はNode.jsでの参考実装提供に関われて良かったです。

他の言語は昨年などから引き続き関わってらっしゃる方も居て、その皆さんと同じ程度の参考実装が提供出来たかは分かりませんが*1、もしお気づきの点などがありましたら、(来年は誰が担当するか分かりませんが、)アンケートなどを通じて、フィードバックをいただければと思います。

例年は出場者として参加しているISUCONの裏側を覗き見れて、改めて運営・出題チームの多大な努力と貢献を実感する日々でした。ありがとうございました。来年は出場者として参加したいと思っていますが、Jリーグの日程次第ではまたお世話になるかもしれません。その際はよろしくお願いします。

そういえば先ほど、コードも公開されていましたので、お楽しみいただければと思います。

あと、@hono/node-serverが2.7倍ほど速くなったそうです。めでたいですね。

ちなみに、当日のやんごとなき用事こと、予想通り残留を決めるかどうかの試合となった、京都サンガF.C. vs セレッソ大阪の一戦は無事に京都サンガF.C.が勝利し、自力でのJ1残留を決めました。やったぜ!!!!!

*1:初期スコアが他の言語よりもわずかに低かったのはいくつか聞きましたし、事前にも走らせた段階で分かってはいました……

ラーメン屋で無料ビール!CS突破記念に嬉しいサプライズ! #ラーメン #無料ビール #CS突破記念

最近買いてなかったので、たまには日記を書いてみます。

金曜日

野球のセ・リーグクライマックスシリーズの第3戦のチケットを知人が取ってくれたので、阪神甲子園球場に観に行った。雨が降るかという予想で、雨は降ったものの屋根のある席だったので、試合も開催され快適にビールも飲むことが出来た。

試合結果は阪神が勝って、日本シリーズ進出を決めた。めでたい!

帰宅する直前に家の近くのラーメン屋に立ち寄ったら、CS突破記念にビールが無料だった!嬉しい!!

土曜日

金曜日は野球だったが、土曜日はサンガスタジアムに京都vs湘南戦を観に行った。勝ったら残留確定の6ポイントマッチ。

結果的には0-1で負けだった以上に内容がイマイチだった。中断明けの試合はこういう感じで中断中にどういう練習してたんだ?と思う試合が多い気がする。

ラブライブ!コラボ試合の日だったので、なんらかの声優の人が来ていた。

試合後にPub Karrに行ったところ、店主とお客さんも観戦に行っていたようで、店舗内は若干どんよりモードだった。来週は僕は行けないので、代わりに応援お願いしますと伝えて帰った。

日曜日

昼間に久しぶりにmoznionとにゃんこ酒場を収録した。多分近日中に公開されるはず。

その後はT−JOY京都に行って、『ガールズ&パンツァー 最終章』第4話と『北極百貨店のコンシェルジュさん』を観た。

ガルパンはなんか個人的には盛り上げ李に欠ける感じだった。体調的に眠かったというのもあるかもしれない。

『北極百貨店のコンシェルジュさん』は冒頭からアニメーションが良くて、ストーリーも魅力的で惹き込まれたのでオススメです。tofubeatsが担当する劇伴も最高でした。

その後はイオンモールに最近生えているIKEAのポップアップショップを見て、京都駅の京アニグッズストアを見て帰った。当時買い損ねた中二病のグッズとかを買ったりした。

この記事のタイトルはAIが考えてくれました。

コミックマーケット102で「2023年の良かった新作マンガ Ver.C102」を無料頒布します / 電子版の販売を開始しました

前々からコミケでなんか本を出したいな〜と思っていました。書くなら何があるかな〜と思った時に、最近書けてない「良かった新作マンガ」シリーズを締め切りドリブンで書こうと7月末に思い立ちました。で、さっきガーッと書き上げたので形上は完成したので、こうして告知しています。

内容について

いつもの「良かった新作マンガ」シリーズを極力そのまま紙面に置き換えた感じです。紙面ということで、Amazonへのリンクや1話試し読みなどはQRコードで掲載しています。後述する電子版ではQRコードをクリックするとリンクを開くことも出来ます。作品数としては12作品取り上げているのですが、普段のブログよりも少し多めに文字を書いている感じです。

表紙とページサンプル

2023年の良かった新作マンガVer.C102 マジカルペンネくん
表紙ページの画像です
ページサンプル

スペース情報

こういう感じで、本がデータ上は出来たので、id:utgwkk のサークル「文化的生活」に委託して、無料頒布させてもらうことにしました。思ったより勢いよく書けたのでもう少し足しても良いかもと思ったのですが、折本にするつもりなので4ページ単位にする必要があり、1ページに2作品紹介しているので、8作足すのは辛い…というわけで、キンコーズなりセブンイレブンなりで印刷したりして製本したりして会場に持って行くことに失敗しなければ、会場にあると思いますので、よろしくお願いします。

「文化的生活」のスペースは日曜日 (8/13) 東地区 “フ” ブロック 21aです。僕も会場には居るので、時間帯によってはブースに居るかもしれません。

電子版について

数もそんなに刷らないつもりなので、電子版を用意しておきました。この記事の有料部分に含まれているDropboxのリンクからPDF版とEPUB版がダウンロード出来ます。EPUB版は色々あり固定レイアウトなので、PDFの方が取り回しが便利かと思います。書き足したくなったら、電子版には書き足したりするかも。

というわけで、よろしくお願いします。

更新情報

  • 2023/08/09 23:00 本文を更新しました
この続きを読むには
購入して全文を読む