Diary of a Perpetual Student

Perpetual Student: A person who remains at university far beyond the normal period

最近聴いてる曲: Nov. 2025

prev:

blog.arthur1.dev

1年ぶりですね。

曲紹介

RUN / Doona

曲名通りの疾走感。サビのポルタメントがいい味出してる。

www.youtube.com

Farewell / Azami

良いシャウトだからこそサビのクリーンが映える。

www.youtube.com

キケンナアソビ / WurtS

クリープハイプトリビュートアルバムから。気怠げな色気。

www.youtube.com

Missing / Vaundy

こちらはELLEGARDENのトリビュートアルバムから。30代で学生の頃バンドやってた人全員この曲好きだから。そうかな?

www.youtube.com

丸の内ミゼラブル / Royz

「死んでほしい」からのラスサビの悲壮感。秒速5センチメートルのラストの展開を良いと思える人は好きだと思う。

www.youtube.com

Kid / シンガーズハイ

ゆるおもぐらいのロックが自分の耳に馴染む。

www.youtube.com

暴露 / ポップしなないで

キャッチーなメロディーライン。\モンスター!/

www.youtube.com

こっから / SixTONES

ミクスチャーロックっていうのかな。ワウギターが良すぎる。

ジャニーズ、、、じゃなくてSTARTO全然わかんないのでもっと布教してください。

www.youtube.com

鏡面に映す哀の容 / RETEMPEST

メタルサウンドへのピアノとストリングスの合わせ方が勉強になった。

www.youtube.com

花一匁 / スキュラ

↑のライブ観に行ったら対バンでたまたま聞いた。某高収入広告の音楽をMIXしたくなるイントロ。

毒蛇ニゲロの表情が良すぎるのでまた行きたいグループ。

www.youtube.com

芒に月 / 椎名林檎

2025年も一番良かったのは椎名林檎になりそう。3:50あたりから終盤にかけての盛り上がりの作り方がすごい。

www.youtube.com

DESPERADO feat. J-REXXX / ALI

呪術廻戦でお馴染み(?)なLost in Paradiseのカップリング。レゲエ好きなのでラテンな感じが好み。

www.youtube.com

モエチャッカファイア / 弌誠

カラオケで歌ったらtiktokの曲!って言われた。

www.youtube.com

哀悼、そして日常は続く / 宮下遊

卯花ロク ft.裏命による曲の歌ってみたver.。聴きすぎてメンヘラ悪化した。

www.youtube.com

地球の裏 / いよわ feat.裏命

これも裏命。変拍子・テンポ変化大好き。

www.youtube.com

この前DJで流した:

blog.arthur1.dev

最後の歌 / ドラッグオンドラグーン3

こういう曲好き(語彙力)

フローターランド / MARIO KART WORLD

マリオギャラクシーの時は壮大な楽曲だったけど、激カッコいいロックに変身。アレンジが良すぎる。

聴きたい人はゲーム買って聴いてください。

まとめ

これだけ紹介して2025年出た曲を5つしか載せられてないの、digり不足を感じる。

泥酔夜会 Vol. 1/Vol. 2 @ RIME セットリスト(おまけあり)

恵比寿RIMEというシーシャバーで最近「泥酔夜会」という名のDJイベントを開催していて、機材提供と演者をやっています。今回はその振り返りエントリです。

Vol. 1 2025-09-28

初開催なので自己紹介も兼ねて、自分の生き方の指針であるPop×Cool×Little Bit Sexyをイメージしてエレクトロサウンドの曲から選びました。

BPM128っていいですよね。ITエンジニア的にはそこそこキリの良い数字だし。

シャクシャイン→WORLD OF FANTASYの繋ぎが個人的には一番綺麗に決まったかなあと思ってます。

お店のエントリも出てるのでよかったらどうぞ:

note.com

Vol. 2 2025-11-09

PHPカンファレンス福岡2025の当日スタッフやった翌日に福岡から直行したのでだいぶ疲れていました。

今回はXでやって欲しいテーマをアンケートで募集した結果Vocaloidになったので、以下のようなセットリストで持って行きました。

音声はこんな分布でした。色々拾おうと思ったけど結局初音ミク多いがち:

  • 初音ミク 6
  • 鏡音リン 1
  • KAITO 1
  • GUMI 1
  • 重音テト 2
  • flower 2(Ci flower / v flower)
  • 足立レイ 1
  • 可不 1
  • 裏命 1

まず、お店の名前であるRIMEに掛けて音楽的同位体 裏命(RIME)の曲を選びました。これを最後に流すぞと決めて、そこに合うような、具体的には人間の声でないからこそ表現できるような世界観の曲を多く選んで構成しました。もちろん、みんなが知ってそうな曲も序盤はほどほどに混ぜました。

たまたま次のDJ妹子が流したのがr-906とかLeaFとかで似た雰囲気だったので、いい感じに繋がりました。

普段はBPM128固定することが多いので、BPMが違う曲の繋ぎ方を色々研究できたのがかなりいい勉強になりました。

Next…?

私は企画者じゃないのでなんとも言えないけど、次開催したらぜひ来てください。

おまけ

先週月曜日から禁酒を始めました。

始めて1週間の成績はこんな感じです:

  • 3(月) 🍺
  • 4(火) 🍺
  • 5(水) 🍺
  • 6(木) ❌
  • 7(金) 🍺🥃
  • 8(土) 🍺
  • 9(日) 🥃

1勝6敗

GoReleaserをgoreleaser-action経由で使うか、go tool経由で使うか

様々な環境(OS・CPUアーキテクチャ)向けのインストールパッケージやDockerイメージを提供しなければならない、例えばCLIツールのようなものをGo言語で作るとき、多くの人がGoReleaserを利用しているでしょう。

goreleaser.com

GoReleaserは動作検証のために手元で動かすこともありつつ、ほとんどのユースケースではGitHub ActionsなどのCIツール上で動かすでしょう。(リリースが手動の場合には手元で動かすのがメインの人もいるかもしれませんね。)

GitHub Actions上でGoReleaserを利用するとき、ドキュメントに従うとgoreleaser/goreleaser-actionというaction経由でGoReleaserをインストール・起動することになります。

一方、Go 1.24でgo.modにtoolディレクティブが追加されたことで、generate.goファイルを利用していたワークアラウンドに代わって、開発に利用するGo製ツールを管理できるようになりました。これでGoReleaserもgoのToolsの管理下に入れて呼び出す選択肢も浮上しました。

このエントリではGitHub Actions上でGoReleaserを利用する2つの手法を比較します。

goreleaser-action経由で使う

ドキュメント通りに以下のようなGitHub Actionsのワークフロー定義を構築するだけです。

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
      - uses: actions/setup-go@v5
      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v6
        with:
          version: '~> v2'
          args: release --clean

メリットは、公式で案内されている手法で安心感があることです。コンパイル済みのバイナリを持ってくるので、セットアップにかかる時間も比較的高速です。

デメリットは、利用するGoReleaserのバージョンの宣言がGitHub Actions側に寄ることです。CIで利用しているGoReleaserのバージョンと手元のバージョンを仕組みで揃えるのが厳しくなります。

go tool経由で使う

go.modのtoolディレクティブに以下のように記述します。GoReleaserは現在v2なのでメジャーバージョンの指定も必要なことに注意してください。

tool github.com/goreleaser/goreleaser/v2

go toolコマンド経由でGoReleaserを呼び出せます。

$ go tool goreleaser --version
  ____       ____      _
 / ___| ___ |  _ \ ___| | ___  __ _ ___  ___ _ __
| |  _ / _ \| |_) / _ \ |/ _ \/ _` / __|/ _ \ '__|
| |_| | (_) |  _ <  __/ |  __/ (_| \__ \  __/ |
 \____|\___/|_| \_\___|_|\___|\__,_|___/\___|_|
goreleaser: Release engineering, simplified.
https://goreleaser.com

GitVersion:    v2.12.7
GitCommit:     unknown
GitTreeState:  unknown
BuildDate:     unknown
BuiltBy:       unknown
GoVersion:     go1.25.3
Compiler:      gc
ModuleSum:     h1:C2EgMDSQQvFpaZwA4L7JuopZzrvvNuVvdHA52AyCT0M=
Platform:      darwin/arm64

あとは、CIで実際に利用したいGoReleaserの(go toolを経由した)コマンド呼び出しを、GitHub Actionsのワークフロー定義に入れていきます。

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
      - uses: actions/setup-go@v5
      - name: Run GoReleaser
        run: go tool goreleaser release --clean

メリットは、GitHub Actionsでも手元でも同じGoReleaserのバージョンに揃えられることです。

GoReleaserは2024年にメジャーバージョンがv2となり、このタイミングで破壊的な変更が入っています。また、現在も継続的に開発が続けられており、新たな設定が利用可能になったり、元々使えていた設定が非推奨になったりする変化があります。GoReleaserのバージョンをgo.modで宣言・集約的に管理できることには一定の価値があります。

また、GitHub Actionsに依存しないやり方なので、GitLabなど他のCIツールでも同じように利用できるはずです。

デメリットは、CI環境でのGoReleaserインストールが遅いことです。setup-go actionのキャッシュがツールのバイナリにも効くと期待していたのですが、そうではなさそうです。GitHub Actions上で実行したところ、installフェーズに1分30秒ぐらいかかりました。

さらにもう一つ致命的なデメリットがあります。go.modのtoolディレクティブで管理しているツールのgo.modに書かれているgoディレクティブは、自分たちのモジュールのgo.modにも影響を及ぼします。例えば、元々の自分たちのgo.modにgo 1.24と書かれていても、現時点で最新のGoReleaser v2を依存に加えてしまうとgo 1.25.1に勝手に上げられてしまいます。

これは、バイナリを提供しつつライブラリとしての機能も果たすようなプロジェクトで特に困ります。なぜなら、そのモジュールに依存したソースコードをビルド可能なGoのバージョンが引き上げられてしまうからです。Go言語では直近2つのメジャーリリースがサポートされていますが、先ほどの例だと、そのモジュールはサポート下のGo 1.24の環境では利用できなくなるということです。

go.modのセマンティクスとしては、goディレクティブはコンパイル可能な最低限のバージョン、toolchainディレクティブは推奨されるツールチェーンバージョンを表します。しかし、ツール提供だけを目的としたモジュールではこの区別をせず、単にgoディレクティブを最新に近いバージョンに設定していることがあります。GoReleaserもその一つです。setup-go actionでgo-version-fileにgo.modを指定するとgoディレクティブを読んでバージョンを決める機能があることもこの状況を助長していると感じています。

所感

特にこだわりがなければ、公式が案内しているgoreleaser-actionを利用するやり方が無難で良いと思います。

CIが多少遅くてもよく、ビルド可能なGoバージョンの下限が上がっても構わないなら、手元でもCIでも同じGoReleaserを使えるというメリットを取って、go tool経由で利用するのもアリかもしれません。

tools.goを利用したツール管理の慣習をgo.modのtoolディレクティブに置き換えるツールとその実装

Go言語のtools.goを利用したツール管理の慣習を、go.modのtoolディレクティブに置き換えるツールを作ったのでご紹介します。

前提知識

Go言語にはGoで書かれたバイナリをインストールできるgo installコマンドという仕組みがあります。golangci-lintなど開発に利用するCLIツールをバージョン固定して各開発環境でインストールさせるために、ビルドタグをつけたtools.goというファイルを作ってblack importし、go.modの依存管理に加えるというハックがありました*1

//go:build tools

package tools

import (
    _ "golang.org/x/tools/cmd/stringer"
)

github.com

Go 1.24からはgo.modにtoolディレクティブが登場しました。これにより、ハックに頼らずGo Modulesで正式に開発ツールを管理できるようになりました。

go.dev

先ほどのtools.goの例を置き換えるとすると、go.modに以下のようにtoolディレクティブの記述をすることになります。

 module sample
 
 go 1.24.0
 
+tool golang.org/x/tools/cmd/stringer

 require golang.org/x/tools v0.37.0

 require (
    golang.org/x/mod v0.28.0 // indirect
    golang.org/x/sync v0.17.0 // indirect
    golang.org/x/sys v0.36.0 // indirect
    golang.org/x/telemetry v0.0.0-20250908211612-aef8a434d053 // indirect
 )

また、登録したツールはgo tool stringerのような形で呼び出すことができ、バージョン管理とは別にインストールのためにgo installしていたのは不要になります。

tools.goからtoolディレクティブへの置き換えを自動化

以下のようなXのポストを見かけました。

この置き換えはそこまで大変なものではないのですが、自動化するツールがあったら面白いだろうなと思って作ってみました。なお、私は世の中に他のソリューションがあるかどうかを確認していません。

github.com

使い方としては、まずはgo-tools-migratorをgo installで導入してください*2

go install github.com/Arthur1/go-tools-migrator/cmd/go-tools-migrator@latest

go.modとtools.goがあるフォルダで、以下のようにコマンドを呼び出すと、tools.goの中身を見て、必要なものをgo.modのtoolディレクティブに追加してくれます。また、不要になったtools.goは削除します。

$ go-tools-migrator
✅ Succeeded to migrate.

ファイルが別の場所にある場合など、発展的な使い方をしたい人は以下のヘルプを見てください。

$ go-tools-migrator -h
Usage: go-tools-migrator [flags]

go-tools-migrator: a CLI tool that replaces tools management via tools.go with go.mod tool directive.

Flags:
  -h, --help                        Show context-sensitive help.
  -v, --version                     Print version and quit
      --dryrun                      Output the contents of the new go.mod without modifying existing files.
      --tools-go-file="tools.go"    tools.go file path (default: tools.go)
      --go-mod-file="go.mod"        go.mod file path (default: go.mod)

実装

まずはtools.goを読んで静的解析し、importしているものを取り出します。

📄 internal/gotool/gotool.go#L49-L70

import文の静的解析については以前もこのブログで取り上げています。

blog.arthur1.dev

ちゃんと実装するなら、importしているものが単なるpackageでなく実行可能なprogramなのかを判定できたら堅牢になるかもしれません。golang.org/x/tools/go/packagesを使ってpackage名を取得して、それがmainだったら実行可能である、という判定ができそうな気がしますが、未実装です。

次に、go.modを読んで、足りないtoolディレクティブを足していきます。go.modの構文を守って書き込む時にはどうしたらいいかというと、golang.org/x/mod/modfileという便利packageがあるので使います。

📄 internal/gotool/gotool.go#L72-L88

読み込んだgo.modをmodfile.File構造体に変換して、用意されているAPIを使ってgo.modを編集していきます。toolディレクティブの内容を追加するFile.AddTool関数は、すでに存在するものを再度渡しても何も起こらないとドキュメントに書いてあるので、細かいことを考えずにtools.goから得た依存関係を順にAddToolに渡すだけで良いです。

AddToolなどを呼んでも元のgo.modファイルが直接編集されるわけではありません。File.Formatを呼ぶことで、編集後のgo.modの内容を[]byte型で得ることができます。

あとは、go.modファイルの中身をFormatで得た新たなgo.modの内容に置き換えられれば良いです。しかし、go.modをtruncateした後にファイルの書き込みに失敗するとgo.modの内容が失われてしまいます。そこで、シェルの>リダイレクトのような操作をatomicに行えるライブラリを利用しています。

github.com

📄 internal/gotool/gotool.go#L31-L43

他にも、Immutable Releaseを採用したり、CI周りでこだわっていたりするので、本体の実装以外のコードも眺めてみてください。

最後に宣伝

2025-10-31(金)、弊社でGo言語の勉強会やるのでぜひいらしてください。公募LT枠もありますよ〜。

connpass.com

*1:ビルドタグ名もファイル名もパッケージ名も本質的にはなんでも良いはずなのですが、慣習として多くの人がこういう命名をしているという事実はあったはずです。go.devのWikiにも載っていた手法ですし。

*2:もちろんtoolディレクティブで導入してもらっても構いません。

大吉祥寺.pm 2025でマイクの話をして、ナイトパーティーでDJをしました

大吉祥寺.pm 2025

大吉祥寺.pm 2025に「【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方」という発表で登壇しました。ほぼ同タイトルのエントリを過去に書いていて、この内容を実演を交えて紹介するという内容です。

blog.arthur1.dev

実はプロポーザル形式で採択されたのPHP Conference Japan 2023ぶりでした。この話は然るべきところに出せば通るという自信はあったので、切り札をついに切ってしまったという気持ちです。

実演版ということで資料だけ見ても微妙かもしれないですが、置いておきます。

speakerdeck.com

LTの5分という制約のもとで実演するにあたって、手が足りないと感じたため、前夜祭でデロ(@dero1to)さんにお声がけし、実演の助手をやってもらいました。「機内安全ビデオみたいで面白い」と予想外に笑いをとれたのが良かったです。

嬉しかったことは、自分の発表の直後に発表したなってぃ(@natty_natty254)さんが早速完璧な形で実践されていたことです。その他の技術も合わさってとても聞き取りやすい発表になっていました。

また、Xやブログなどで、発表を見ていただいた多くの方に言及してもらっているのを観測しています。ありがとうございます。まだ全部追えてないので、一つ一つゆっくり確認させていただきます。

嬉しくなかったことは、クロージングのベストLT賞の発表のときに、マイクを叩かれてしまったことです。マイクを叩かないでと話した自分が選ばれないことを察してしまったので。まあ自分だけ時間が別枠だったのでそもそも選外だったかもしれませんね。

ベストスピーカー賞の投票は、ふわり(@Fuwari_WE)さんの「ChatGPT、Gemini、Claude は、なぜ似たようなUIを採用しているのか?」にしました。理由は、ELIZA効果・手続き的公正など私の知らない話が一番出てきて、なおかつその知識を仕事にすぐ活かせそうと思ったからです。

speakerdeck.com

きちぴーナイトパーティー 2025

前回はお客さんとして行きましたが、今回はDJとして出演できました。嬉しい!!!

このブログでは紹介してなかったですが、実は最近DJ機材を一通り揃えて家で練習できるようにしていました。

当初はMichael FortunatiのGive Me UpとBananaramaのI Heard a Rumorがめっちゃ似てるというのがテーマの原義ユーロビートMixをやろうとしたんですが、準備不足につき断念(これはまた別の機会に)。以前にSMTP++ #17や会社の年度末パーティでDJしたときに組んだ、80年代J-POPを中心としたセットリストを組み替えて流しました。

1. Give Me Up / BaBe 2. 心よ原始に戻れ~2012Version~ / 宮村優子 3. ビバナミダ / 岡村靖幸 4. 中央フリーウェイ / YOASOBI cheers 松任谷由実 5. OUTSIDER / 東京ゲゲゲイ 6. 淋しい熱帯魚 / ClariS 7. 君は1000% / SUPER★DRAGON 8. シャクシャイン / 水曜日のカンパネラ

最後のシャクシャインだけは予定していたプレイリストに入れていなかったんですが、思ったより尺が余ったので、BPMとキーが合う曲としてその場で突っ込んだのでした。

深夜帯だったので人が減っていたり、残ってる人にも疲れが見えたりしていましたところでしたが、そこから自分なりにうまく盛り上げられたな〜と自己評価しています。

最後に

個人主催の技術勉強会が発展して300人が集まるカンファレンスに!本当にすごい話です。id:magnoliak さん、スタッフの皆さま、そのほか関係した全ての皆さま、ありがとうございました!!

楽しい週末を過ごせ、さらに新しい出会い・交流の輪を広げられたことに非常に満足しました。またどこかでお会いしましょう〜〜

OpenTelemetry Collectorで教師なし異常検知ができるIsolation Forest Processor

OpenTelemetry Collector Contrib v0.132.0のリリースノートを眺めていたところ、面白そうなProcessorがalphaステータスで出ていたのでご紹介します。その名もIsolation Forest Processor。

github.com

Isolation Forestというのは二分木を用いた異常検知アルゴリズムで、多数のデータを入力しても計算量やメモリ使用量を小さく抑えられることが特徴のようです。大量で多次元なデータを扱うオブザーバビリティデータの処理に向いていそうな特性ですね。

en.wikipedia.org

Isolation Forest Processorは、テレメトリーを受け取った上で異常検知を行い、その結果を2つの属性として付与します。anomaly.is_anomaly属性は異常かどうかを表すboolean、anomaly.isolation_score属性は分離度を表すスコアです。なお、この属性名はconfigで変えることもできます。メトリックはもちろん、トレースやログにも対応しています。

試しに以下のようなconfigを書き、 トレースのパイプラインにこのProcessorを組み込んでみました。

processors:
  isolationforest:
    features:
      # スパン名とスパンの所要時間を特徴量とする
      traces: [operation.name, duration]
    training_window: 1h
    update_frequency: 1m
    min_samples: 500
    contamination_rate: 0.05

そして、普段は100msほどで処理が終わるものの、3%の確率で異常に所要時間が長くなるようなトレースを送ってみました。

すると、以下のようにanomaly属性が付与されたトレースデータが生成・投稿されました。

異常ではないと判定されたスパン

異常だと判定されたスパン。処理に7秒ほどかかっている

今回はたまたまうまく行った例を拾ってきましたが、精度についてはなんとも言えないところでした。少なくともサンプル数や異常度の期待値といったハイパーパラメータの調整を結構頑張る必要がありそうです。

お手軽に異常検知を試してみたい方はIsolation Forest Processorを試してみてはいかがでしょうか。

SRE NEXT 2025でOpenTelemetryセマンティック規約の紹介をしました

SRE NEXT 2025でOpenTelemetryセマンティック規約の紹介をしました

SRE NEXT 2025では、私が所属しているMackerel(株式会社はてな)がGold Sponsorとして協賛しておりました。その関係で、スポンサーセッションの登壇者として今回のSRE NEXTに参加することになりました。SREの哲学をenabledされたアプリケーションエンジニアとしてSRE NEXTに登壇するのは夢だったので、ちょっと違った形ではあるものの叶ったことになります。

今回は「OpenTelemetryセマンティック規約の恩恵とMackerel APMにおける活用例」という題で発表をしました。

speakerdeck.com

OpenTelemetryで様々なレイヤーでオブザーバビリティデータやその転送の標準化が行われる中、そのうちの一つであるセマンティック規約(Semantic Conventions)を取り上げて、その概観と役割について説明しました。また、セマンティック規約の役割として、意味の合意により実際のテレメトリーデータとオブザーバビリティバックエンドを繋ぐ目的があり、その結果としてMackerelのAPMではテレメトリーに付与された属性の意味を活かして特化した分析表示ができますという話をしました。

実はセマンティック規約は私がOpenTelemetryでかなり好きなものの一つであり、本ブログでもいくつかエントリを書いています。

blog.arthur1.dev

blog.arthur1.dev

スポンサーセッションという位置付けなんですが、プロダクトの宣伝マックスになってもなあという気持ちがありました。そこで、OpenTelemetryの知識が身に付き、その延長で自然とMackerelのAPMについて見てもらえるようなストーリーで作りました。国内でもなかなか他に事例がないオブザーバビリティプラットフォーム開発の裏側を紹介することで純粋な技術の教養欲を満たすこと、業務で使える知識を持ち帰ってもらうこと、プロダクトの認知を広めること、の3点をうまく両立できたんじゃないかなあと思っています。

以下のように私のセッションに言及いただき、想定した通りの反応を頂けてよかったです。

www.wantedly.com

とはいえ、前のセッションが押していた関係もあってかタイムテーブルが乱れてしまい、遅れを取り戻すために予定より2分ほど短い登壇になった関係で、自分がかなりテンパってしまいました。その結果、伝わりづらい、あるいはバランスの悪い発表になってしまったかもしれません。これは自分の力量不足なので場慣れしたいものですね。

登壇者としては、何より多くの方に発表を聞いていただけたことがとても嬉しかったです。現地やオンラインでいらしてくれた皆さま、ありがとうございます。Ask the Speakerも誰も来ないんじゃないかとヒヤヒヤしてましたが、来ていただいて安心しました。懇親会やその後のn次会(n = 2, 3, 4)でもたくさん交流ができ、新たな出会いもたくさんありました。

心残りなのは、2年間続けてきたSRE NEXTの当日スタッフに参加できなかったこと、Day 1のアンカンファレンスに参加できなかったことです。今回は他の予定が2つバッティングしてしまったため、そもそも参加すら怪しいという状況だったので見送っていました。登壇スケジュールに関して便宜を図っていただき、なんとか全予定を両立しフルではないもののSRE NEXTに参加できました。ありがとうございました。

改めて、SRE NEXT 2025に参加できてよかったと思いました。スタッフの皆さん、ありがとうございました。SRE NEXT 2026も何らかの形で関われたらと思いますので、よろしくお願いします。