私が歌川です

@utgwkk が書いている

シルバーウィーク1日目

間に有休を入れたのでシルバーウィークは9連休です。


昨日の夜は東方紅魔郷 New ClassicでExtraを通したり、スペルカードの獲得に苦戦したりしたのち寝まくって、昼前に起きた。

ブルーアーカイブ 〜秋風ふわり、もぐもぐドタバタ 大阪さんぽ♪〜 | ブルーアーカイブ 5周年スタンプラリーに行くために昼から大阪に向かった。阪急と地下鉄堺筋線が直通しているので日本橋が近く感じる。ざっくりと日本橋・なんば→天王寺・新世界 という流れでまわることだけ確認した。京都の限界修学旅行よりはだいぶまわりやすい。しかし人が多い!!

パネルの写真を上げてもいいような気もするけど位置情報スタンプラリーの位置付け的に微妙な可能性があるとか、画像加工が面倒とかあるので上げない。イブキはかわいいですね。無事に購入特典のノベルティステッカーが一巡するぐらいの買い物をして*1、おたくショッパーを獲得したまま続きへ。

これは通天閣のてっぺんでゲヘナ学園の旗がはためいている様子。ブルアカとは関係なく通天閣を見にきた観光客は、あのてっぺんの旗がなんなのか分からないまま写真を撮っていると思う。

無事に通天閣下でスタンプラリーを締めくくった。そろそろメシを食べないと死ぬ状態が近づいてきたのでどうしたものかと思いつつ、近くにあったスパワールドに行き、完成させた。これは岩塩。

有意義ポイントが高い過ごし方になった。あとの連休を惰眠で潰してもよいと思える。それはどうかな?

*1:自分の買い物だけでなくおつかいもあったが

Go Conference 2026に参加した #gocon26

参加しました。聞いたトークのメモはCosenseに残してあります。

scrapbox.io

goccyさんの発表が一番よかったです。「cgoを使わないFFIの実装にWASMを使ってみる」にとどまらない、FFIの可能性を広げるためにあらゆる手を尽くす、という圧倒的なパワーが伝わってきました。この発表が聞けてよかったと思います。まさに夢が広がりますね。

また、懇親会でmazreanさんとkessokuの機能要望について id:walnuts1018 と一緒にディスカッションできたのもよかったです。プロダクトの開発にライブラリを使っていること・もっとよくしたいと思っている人がいること をライブラリのメンテナに伝えられ、尊い機会だったと思います。

ディスカッションする用に行きの新幹線で急いで起票したのが以下のissueです。

github.com

Go Conference 2027はまだ詳細未定のようですが、来年も万難を排して参加しようと思います。皆様ありがとうございました。二次会・三次会はもうちょっと長くいたかったけど、翌日に予定があったので早めに切り上げることになりました。いろいろな人と話せたと思います。

来年こそはプロポーザル採択されるように頑張りたいけど倍率がめっちゃ高いよ〜。普段から活動を積み重ねて、ここぞというときにまとめて出せるようになっているときっといいと思うので、頑張ります。

第1回 Goのメソッドをあたかも関数のように呼び出す書き方の使い道について考える

このツイートおもしろかった。そして、確かにGoの言語仕様にこのような書き方ができることがはっきり書いてある*1。

The expression
T.Mv
yields a function equivalent to Mv but with an explicit receiver as its first argument; it has signature
func(tv T, a int) int
That function may be called normally with an explicit receiver, so these five invocations are equivalent:
t.Mv(7)
T.Mv(t, 7)
(T).Mv(t, 7)
f1 := T.Mv; f1(t, 7)
f2 := (T).Mv; f2(t, 7)

これの使い道についてちょっと考えていたけど、関数の引数として関数を渡すところで、メソッドを呼ぶだけの関数でラップして渡すのをやめることができそうだな、というのに気づいた。以下のコードはGo 1.27で問題なく動作する。

package main

import (
    "fmt"
    "strconv"
)

func Map[T, U any](xs []T, f func(T) U) []U {
    ys := make([]U, 0, len(xs))
    for _, x := range xs {
        ys = append(ys, f(x))
    }
    return ys
}

func ToStringSlice[T fmt.Stringer](xs []T) []string {
    return Map(xs, T.String)
}

type MyInt int

func (i MyInt) String() string {
    return strconv.Itoa(int(i)) + "!"
}

func main() {
    xs := []MyInt{1, 2, 3}
    fmt.Println(ToStringSlice(xs))
}

ところで、世の中のGoのlinterは、こういう形でメソッドを関数として使う書き方をどれくらい正しく解釈できるのだろうか? (次回に続く)

■

なんか話せることがないか必死で考えてみたけど、話せる中でうまく学びを持って帰ってもらえそうなものがまったく思い浮かばなくて、強迫観念みたいになってもよくないな、と思ったのでタブを閉じた。年に何度かはこういう時期があるものだと思う。無理してひねり出そうとしてトラウマになるよりは、一度深呼吸しておく。

長崎

二日酔いのまま飛行機を乗ったあと、私を優しく包み込んでくれたのはデカい茶碗蒸しであった。

tabelog.com


翌朝、デカい太麺皿うどんを食べた結果、朝からドカ食いが成立してしまったのであった。太麺の皿うどんって福岡に住んでた頃は見たことがなかった (細麺の皿うどんは身近にあった) ので、長崎固有の食文化なんだろうか。

tabelog.com


大浦天主堂に行き、「隠れキリシタン」と「潜伏キリシタン」が学術的には異なるものを指すということを学んだ。

iPhoneケース交換日記

iPhone 17 Proの音量ボタンが凹んで押しづらくなっていて、落としたときに傷ついたかな~Apple Careを発動するか~と思ってApple Storeに持ち込んだけど、傷ついていたのはケースだけで本体は無事だった。ケースを買い替えて全てが解決した。ケースが本体を衝撃から守ってくれたんだと思う。それがケースの役割だから……。

30歳

7/28で30歳になりました。ついに年齢の10の位がインクリメントされましたね。

10年前はわけも分かっておらず将来どうなることやらという感じでしたが、なんとかなっています。10年前というか大学にいる頃は自分がどうにかなるということを信じきれていなかったと思うんですよね。これって生存バイアスですか?

そろそろ若者ロールを主張するのに無理が出てきていそうです。人間ドックで検査項目が増えた結果、目や胃腸の課題がどんどん明らかになってきています。

仕事については、だいぶAIコーディングエージェントとの対話の割合が増えました。やりたいことを日本語で整理して伝えるとか、エージェントにうまく動いてもらえるように場を整えるとか、そういう仕事の比重が増えました。手でコードを書くことが完全になくなったわけではないけど、かなり減ったと思います。結局、仕事をやる上で何らかとの対話は逃れられないし、相手の特性を理解してうまく動いてもらえる場を整備するのが大事だろうとか、そういう向きの悟りがあります。こういうことを大学生の頃の自分に聞かせると、信じられないという顔をされるでしょうね。

あと今日ちょうど昇給の通知を見ました。会社の人事評価の時期と誕生日シーズンが被っているのでこういうこともあります。

引き続き京都にいて、たまに東京やソウルにいることがあるので、飲みに誘ってください。ソウルのビアバーのポイントカードのスタンプが貯まっているのでどこかで飲みに行かねばな……。

30歳の抱負みたいなコンテンツは予定されていません。

ここで宣伝

8/16に開催されるコミックマーケット108で、Goに関する薄い本を出します。2日目 東V44b (東7ホール) です。なんとまだ入稿できておらず絶賛執筆中です!! 頒布価格は500~1000円のうち都合がいい値段をあとで決めます。

以下のようなコンテンツを予定しています。

  • Goのlinter史
  • golangci-lintに搭載されているlinterを全部見る
  • 令和最新・modernizeパッケージ早見表

「Goのlinter史」の本文見本をCosenseで公開しています。また、「令和最新・modernizeパッケージ早見表」は過去に書いた modernizeパッケージをモダンなGoの書き方早見表として活用する - 私が歌川です という記事を一部加筆修正しつつGo 1.27の情報を書き足したものになります。

当日は熱中症に気をつけつつ、午後ぐらいにまったりブースまで来てもらえればと思います。また、booth.pmにて電子版 (PDF) や、在庫があれば物理本の事後通販も予定しています。

繰り返しますが、C108 2日目 東V44b (東7ホール) をよろしくお願いします。ブースがあるのに頒布物が何もないのは明らかに気まずいので、さすがに何らかが出るはず……。続報をお待ちください。


とりあえず欲しい本のウィッシュリストを貼っておきます。ほかにもオススメの本がありましたらウィッシュリスト外から送ってください。

読書カテゴリやScrapboxにある本は、読んだことがあるか、もしくは持っています。

blog.utgw.net

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