私が歌川です

@utgwkk が書いている

Go Conference 2025に参加した #gocon

参加しました。最近はTypeScriptとNext.jsが主戦場になっており、Goを書く頻度が減っています。

例によって、聞いたトークのメモはCosenseにあります。

scrapbox.io

全体的な感想

testing/synctest

testing/synctestに関するトークを2つ聞きました。内部で何が起こっているのかはなんとなく分かり、testing/synctestのインタフェースも分かりはしたけど、しかし使い方をうまく見極めないと複雑になりすぎて人智を超えるんじゃないかな〜というのが現時点での感想です。実時間sleepする必要があるテストを直ちにラップして実行時間を短くできる、とかは分かりやすく導入しやすそう。あとは単一の非同期処理ライブラリのテストに使うとかがいいのかな。

黒魔術

speakerdeck.com

個人的にはkaramaruさんのトークが優勝です。40分枠あってもよかったと思う。

reflectパッケージだけだとメソッドを実行時に作成できないことはreflectあるあるの1つだったと思うけど、あらゆるズルを駆使することでその制約を乗り越えらえる、ということが分かって勇気づけられました (この勇気をもらうことが本当にいいことなのか、については目をつぶることにします)。

LT

盛り上がっていてこれぞLTじゃん、と思って好意的に受け止めていました。一方で、初めてのLT登壇だったり、コロナ渦におけるリモート中心のコミュニティしか見たことがなかったりすると雰囲気に圧倒されるかもしれない、というのも想像はできそう。

堂々と発表する、5分に収まりきらなくても駆け抜ける、拍手されてもヤジを飛ばされても構わず喋りつづける、とかを意識して登壇してもらえるといいのかな、と個人的には思っています。

タイピング

優勝しました。

トークの倍率とか、トークの色

トークの応募数の正確な数字がどこかに公開されていたと思うけど忘れてしまった……。1人3つまでトークを応募できるようになった影響がどれくらいあるかという感じだけど、かなり倍率が高くて熾烈な争いになっていたと思います。自分も応募したけど落選しました。

追記: 27/244 だったようです。10倍以上?

誰かと話していたと思うのですが、カンファレンスごとに採択されるトークの雰囲気ってけっこう違っていて、そこにスタッフが実現したいことのメッセージが表現されていると思うので、意図を汲みつつ自分が話したいことの価値をアピールする、みたいなことをうまくできるとよさそうですね。

トートバッグ

どこのブースでも、ノベルティとしてトートバッグが配られていなかったので、ノベルティの持ち運びに少し苦戦していました。複数ブースあってもいいので、次回はどこかのブースでトートバッグが配られていると助かりそうです。


Ask the Speaker・Official Party・二次会・三次会でいろいろ話せて、個人的にはホクホクした状態で終えられたと思っています。来年も参加したいですね。

Kaigi on Rails 2025 1日目に参加した #kaigionrails

2日目は別のイベント (Go Conference 2025) に被ってしまったので、1日目だけの参加でした。1年は365〜366日しかないのでそういうこともありますね。

聞いたトークのメモはCosenseにだいたいあります。特におもしろいと思ったトークについて個別に取り上げてみます。

scrapbox.io

speakerdeck.com

  • ハッピーパスに集中しよう、最適なコードの配置が分かるまでは「最もシンプルで、うまくいく」場所に置こう、ということが実践されている
  • 最初から作り込みすぎずに全容が分かってきてからコードを動かす、というスタイルは自分も好き
    • 一方で、忙しさが高まりすぎると全容が分かってもコードを動かす暇を作りづらい、みたいな構造になりやすい (なったことがある) のも気になる
    • フットワーク軽く動くのと、チーム全体の開発をブロックしないことをうまく両立できるようにありたいね

speakerdeck.com

  • 普段はReactやNext.jsを使いまくっていて、Hotwireはまったく触っていない、という立場の上で……
  • 高度なUIを作るときの本質的な難しさにうまく向き合えるアーキテクチャを実践しよう、という話だと理解した
    • 状態管理をうまくやってスパゲティ化しないようにする、とか
    • ReactだろうがHotwireだろうが変わらなさそう

speakerdeck.com

  • Railsには、リクエストのHTTPメソッドに応じて参照するDBをprimary/repliceで切り替える機能がある
    • read/write splitting
  • 一方で、GraphQL APIだと標準のread/write splitting機能が使えない
    • 参照系・更新系いずれもHTTP POSTだから
  • graphql-rubyのフックポイントで参照先DBを切り替える機能を実装した
    • query (HTTP GET相当) で更新しているクエリはDB切り替えの対象外とできるようにした
  • GraphQL APIをGETで叩けるようにして、クエリ文字列はpersisted queryでハッシュだけ送れるようにすると、標準機能に乗っかれるかも? とか登壇後に議論させていただけてよかった
    • persisted query用のクライアント・サーバーの実装も要るし、トレードオフがありそう

speakerdeck.com

  • Server-Sent Eventsのことはある程度知ってたけど、けっこう知らない仕様があった
    • Last-Event-IDとか
  • async gemの採用事例いろいろ見れておもしろかった
  • 長時間にわたる常時接続だとデプロイ時に接続が切れたときのハンドリングとかが要る? というのがちょっとずつ気になってきた
    • SSEのLast-Event-IDヘッダはこのあたりを意識した仕様なのかな

来年はもう日程が分かっているし、なんとかして両日参加したいな〜〜。

大吉祥寺.pm 2025に行った #kichijojipm

参加しました。ライブ感重視のため、トークのメモはTwitterの実況ツイートにしかありません。

id:arthur-1 のLTだけ午前中の早い時間帯なのは名采配だと思いました。LTってだいたいどこかの時間帯にまとめて全員一気にやることが多いと思うんですが、あのLTを午前中に見れたことで、会場全体のマイクに対する意識がぐっと高まっていたと思います。

キャリアから電子工作、生成AIとのつきあい方まで、いろいろなトークを聞けました。去年の大吉祥寺.pmと比べると、ここ1年で生成AIの存在感がもはや無視できないものになっていて、トークのラインナップにも反映されていたように思います。そのような時世でも、うまくもがいていく・乗っていくような雰囲気を感じていました。

DJした

今年もやりました。

「ふ・れ・ん・ど・し・た・い」や「ぼくのフレンド」、「Touch Tap Baby」はどこかで流しておきたくて*1、今回それを消化できたのがよかったです。あんまりアニメ見てなかったけど、数少ない学生時代に見てたアニメっぽい雰囲気があの瞬間だけありました。

ふ・れ・ん・ど・し・た・い

ふ・れ・ん・ど・し・た・い

  • 学園生活部
  • アニメ
  • ¥255
  • provided courtesy of iTunes
ぼくのフレンド

ぼくのフレンド

  • みゆはん
  • J-Pop
  • ¥255
  • provided courtesy of iTunes
Touch Tap Baby

Touch Tap Baby

  • ハッカドール
  • アニメ
  • ¥255
  • provided courtesy of iTunes

ジャンル・BPMの打ち合わせはとくにやっていなくて、出たとこ勝負でした。今回は途中でテンポを変えるのを初めてやったけど、変なことにならずにうまくいきました。まあ曲が最後まで途切れていないので常勝といえるでしょう。

何気にUSB DJは初めてだったのですが、どの曲もちゃんと認識されていて、会場でffmpeg地獄になることもなくてよかったです。ファイル形式とかサンプルレート・ビット深度は以下の記事を参考にしつつチェックしました。

note.com

去年に引き続き、夜の3時を過ぎると急激に体力がなくなり、宿に帰ってから昼まで寝て、スーパー銭湯で二度寝することになりました。体力づくりは今後の課題とします。

そういえば、これを当日やるの忘れてました。ごめんね > id:asumiso

おわりに

id:magnoliak さんをはじめスタッフの皆様、参加者・登壇者の皆様、DJを見にきてくださった皆様ありがとうございました。

次回の大吉祥寺.pmはどこで開催されるのか、現時点では決まっていないと思いますが、京都で開催される場合は万難を排して行きたいです*2

*1:なぜなら全員フレンドだから

*2:京都以外でもスケジュールが合えば行きます

QRコードおみくじができるまで

終業後、会社にインターン生が集まっている中で、確か id:Windymelt あたりと雑談していたと思うけど、なんやかんややっていたら「QRコード」「おみくじ」2つの要素が合体して、これは作ってみるしかないという流れになった。誰か詳しい経緯を覚えていたら教えてください。

0:22ぐらいに npm create vite でボイラープレートを用意して、

github.com

0:34ぐらいまでに、QRコードが高速に切り替わって読み取り結果でおみくじができることが確認されていそう。ReactでQRコードを描画するにはqrcode.reactというライブラリを使うと楽に実現できる。

github.com

しばらく、Xやはてなブックマークのシェアボタンを置いていたけど、QRコードを読み取ってただちにシェアできたほうがいいだろう、ということで試行錯誤していそう。ハッシュタグつけるのに苦戦している様子がわかる。

github.com

github.com

github.com

ここまでできたので、デプロイして告知を出した。これが1:12なので、作りはじめてから1時間も経っていない。動画を見ると分かるように、iPhoneだとQRコードの読み取り結果が高速に切り替わってタップしづらくておもしろい。

デプロイフローはひどくて、S3のコンソールをポチポチしてファイルをアップロードするぐらいしかフローが整備されていない。けどこれで動いているのでいったんいいと思う。不要なファイルとかCSSとか残ってるけど気が向いたら整理するかもしれないし、しないかもしれない。

インターン生の横で、深夜テンションで動くものを高速に作ってデプロイする、という喜びを久しぶりに味わうことができてよかった。どうぞご利用ください。

sugarheart.utgw.net

6泊7日の韓国旅行に行った

7/17 (木) ~ 7/23 (水) で6泊7日の韓国旅行に行ってきた。網羅性そんなにないけどいつまでも下書きのままになると思うので放流する。

7/16 (水・day 0)

朝9時の飛行機で関空から仁川に飛ぶ予定で、2時間前には着いて手続きを済ませたい、と考えると朝7時には関空に着いておきたい。始発のはるかに乗ると5:45京都駅→7:10関西空港駅なのでいけなくもない気はするが、安全を取って関空方面で1泊することにした。空港にファーストキャビンがくっついていて便利。

飛行機が30分遅れるよ~というメールが来た。

7/17 (木・day 1)

6時ちょっと前に起きて行動開始。関空はまあまあ雨が降っていた。7時まで暇をつぶして荷物を預ける。

11:30ぐらいに仁川に着いて、30分ぐらいで入国。この時間だとあんまり入国審査の列もなくてスムーズ。韓国に行くのはこれで4回目だけど、いまだに入国審査でとくに会話が発生していない (マスク外してね、ぐらい)。

宿のチェックインが17時からなので、それまでキャリーケースをごろごろ転がしながら暇をつぶすことにする。10000ウォンの買い物をするとエコバッグがもらえる、というのを空港鉄道の駅で見て、龍山のEマートに行ったけど、荷物が多い中でマートで10000ウォンの買い物をするのは難易度が高く、ウィンドウショッピングをするのにとどまった。

弘大方面のアニメショップを適当に眺める。ブルーアーカイブのコーナーはこっちにある。

17時になっていたので、荷物を宿に残してビールを飲みに行く。

7/18 (金・day 2)

レンタカーで爆走する日。

北朝鮮が見えるスタバのある場所こと、愛妓峰平和生態公園に行った。以下の動画を見ると雰囲気が分かる。

www.youtube.com

続けて、坡州のほうにも行った。いわゆるDMZツアーで行くところって言うとこっちが想起される人が多そう。なんだかんだで坡州に来たのはこれで3回目。

7/19 (土・day 3)

レンタカーで爆走する日その2。

ソウルから東に出発し、高速道路に乗ったら渋滞に巻き込まれた。

平壌冷麺の店で冷麺を食べた。

そのまま東の果てまで行って海を目指すことに。

ソウルへの帰りは雨がひどくて暗い中を運転してもらっていて過酷だった。無事に車を返却。

7/20 (日・day 4)

Comic World 2025 SUMMERに参加した日。バスは満員で積み残しが発生していたのでタクシーで行く。途中ちょっと渋滞に巻き込まれた。

大きなサークルブースにグッズがたくさん並んでいて、通路にも等身大パネルが置いてあったりして、知ってる同人イベントとは様相がけっこう違う。事前入金が前提なのもそう。事前入金テクニックについては別の記事に書いた通り。

blog.utgw.net

30万ウォンぐらい現金を出したけどほぼ使ってしまった。事前入金も合わせてどれくらい使ったのかは考えないことにする。韓国の同人誌や同人グッズってなかなか日本に出回らない (最近ちょっとずつ増えている) ので買い得なんですよ、と言い聞かせている。

帰りはGTX-Aに乗った。地下を最高170km/hで走っていて迫力がある。

7/21 (月・day 5)

とくに予定を入れていない、自由行動の日。

江南方面に行ってみよう、ということで前から気になっていたオタクショップを訪れる。

中国語版のブルアカグッズもあってけっこう収穫あった。荷物のほうがボトルネック。

7/22 (火・day 6)

とくに予定を入れていない、自由行動の日その2。ロッテワールド民俗博物館に行った。

いつも行ってるスンデの店に行った。

www.konest.com

最初に具材を追加するかどうか質問されていたのだけあまり分からなかったけど、ビールを注文しようとしたら身分証の提示を求められたり、ビールを飲み干したら店のおばちゃんにもう一瓶どうや? って煽られたりしたことは理解できた。これが成長……。

7/23 (水・day 7)

帰国日。

ソウル駅で事前搭乗手続を済ませる。空港まで荷物を持ち歩く必要がなくてあまりに便利なので、やっぱり帰りは仁川一択だなと思う。

最後の昼食ということで東大門方面のよく行くタッカンマリ屋に行った。

最後に明洞の観光センターで駅名標のキーホルダーを買ってフィニッシュとする。

帰宅したら日付が変わっていた。

総評

日本でもおたくのポケモンパン開催してほしい。

きのこカンファレンス in 関西に参加した #kinokokansai

luccafort.connpass.com

参加しました。様々な困難をなんとか乗り越えてきた話、以前ほどの体力がなくなってきた話、地方在住フリーランスエンジニアの現実の話など、いろいろな種類の生存バイアスの話が聞けてホクホクしました。

自分も30代が近づいてきていて、これからどうするのか全く考えないわけにもいかなくなってきている次第です。もうしばらくはコードを書いていきたいな〜と思いつつ、個人の能力をひたすら伸ばすだけでは開発がスケールしないとか、最近はAIコーディングをうまく取り入れると生産性が上がるんじゃないかとか、考えることはどんどん増えています。いろいろな発表内容を通じて、そういう時代を生きるヒントがずばり得られた……とは断言できないけど、考えを深めるきっかけにはなったかなと思いました。

僕ってどうしたらいいですか? よろしくお願いします。

時間のないサイト運営者リング