私が歌川です

@utgwkk が書いている

韓国で開催された同人イベント「Comic World 2024 SUMMER」に一般参加してきた

7/19 (金) から7/22 (月) まで韓国に行って、7/21 (日) にソウルで開催されたComic World 2024 SUMMERという同人イベントに一般参加してきた。この記事はそのレポになります。

なぜ参加しようと思ったのか

筆者はブルーアーカイブの同人イベントを見にいくのが趣味でやらせてもらっている。日本の同人イベントはそこそこ行ったことがあるけど、海外には行ったことがない。そもそも4月までパスポートを持っていなかった。

ブルーアーカイブの同人活動は日本だけではなく韓国などでも盛んだし、Twitterでよく韓国方面の二次創作イラスト・漫画が流れてくる。自分の好きなジャンルの活気があるうちに一度行ってみるのがいいんじゃないか、ということで行くことにした。

裏の理由としては、パスポートが取れちゃったのでなんかちょうどいいイベントがないか探した、ぐらい。

事前準備

パスポートを取る

そもそもパスポートがないと何もできないのでここから。最近はインターネットで戸籍謄本を請求できるところが増えているようなので、がんばってください。

blog.utgw.net

一般参加チケットを購入する

たぶんここが一番のハードルになると思う。以下の記事にあるように、通常は日本で発行されたブランドのクレジットカードを使って一般参加チケットを購入することはできない。韓国発行のカードを使うしかないように見える。

note.com

が、1つだけ*1例外がある。それはUnionPay (銀聯) カードだ。

UnionPayブランドのカードであれば、チケットの購入に使うことができる。そして、UnionPayのカードは日本国内でも発行できる。もうわかりましたね?

www.cr.mufg.jp

www.smbc-card.com

ということで、UnionPayのカードを発行してただちにチケットを購入した。他のイベントでも同様の手段が使えるのかは分からないけど、参考までに。とりあえず最初に運営に問い合わせてみるのがいいと思う。あとは韓国にいる知り合いのサークル参加チケットを譲ってもらうとか……。

航空券・ホテルを手配する

楽天トラベルとかで取るとよさそう。

当日

入場

日本の同人イベントに参加したことがある人ならだいたい流れは想像できると思う。一般参加の待機列に並んでいるとスタッフの方がやって来るので、スマホアプリでチケットを見せるとリストバンドと引き換えられる。あとはそのまま入場を待てばよい。「前に進んでください」的な案内がされるので従うぐらい。

いろいろ入手する

入場したらカタログとジュースをもらえるのでもらっておく。

韓国の同人イベントでは事前入金での取り置きが主流である、ということを聞いていたのだが、いざ当日行ってみるとわりと普通に購入できた。Witchformの案内をしていないサークルならまあいけるでしょう、と読みつつ行っていたけど、とくに関係なく購入できた。事前入金にどれくらい重きを置くのかはジャンルやイベントによっても変わるのかもしれない。

日本の同人イベントとの違い

日本の同人イベントに比べると、大きな違いがいくつかあった。

  • キャッシュレス決済が浸透している
  • 同人誌よりもグッズの頒布割合が多い
  • 成人向けの頒布ブースがしっかり隔離されている
  • 同人イベント以外も開催されている
キャッシュレス決済が浸透している

先の記事でも挙げられたように、どのサークルに行っても個人間送金用の番号やQRコードが案内されており、多くの人がそれを使っていた。これは日本の、とくに二次創作系の同人イベントとは大きく雰囲気が違うと思う。

同人誌よりもグッズの頒布割合が多い

これもまた新鮮だったが、ほぼ全てのサークルがグッズを頒布しており、逆に同人誌はたまに見かける、ぐらいだったと思う。日本の同人イベントだと、本が最初にあって気合があったらグッズもできる、という構図が多いように思うけど、ほぼ全てのサークルがグッズをメインに頒布していた印象がある。アクリルキーホルダーやクッション、カードゲームのプレイマットなど、いろいろな種類のグッズがあった。

成人向けの頒布ブースがしっかり隔離されている

日本のイベントだと、成人向け頒布物があるブースもとくに隔離されることもなく配置されていることが多いと思うけど、韓国のイベントではしっかり隔離されている。塀で囲まれた空間の中に配置されており、入場するには出入口にいるスタッフに年齢確認ができる身分証を見せる必要がある。外から成人向けブースの様子が見えないようになっている。ここは日本のイベントよりもかなり厳格だなと感じた。

同人イベント以外も開催されている

これはComic Worldだけなのか? と思ったけど、似たようなイベントであるILLUSTAR FESも雰囲気は似ていそう。今回のComic Worldでは、DJイベントやアイドルライブ、痛車の展示、お祭りっぽい屋台などいろいろなイベントが開催されているように見受けた。ライブもやるのはなかなか見たことがないと思う。DJブースで猫ミームやワザップジョルノ*2のBGMが流れていてウケちゃった。

で、どうだったの

めちゃくちゃ楽しかった……。

普段はブルーアーカイブをほどほどに追いかけており、ブルアカの同人イベントがあったら行けたら行く、という暮らしをしている。国内のイベントならフットワーク軽く行っていたけど、海外は初めてだったもので緊張感もあったけど、やっぱりよかった。活気も熱量もある。

薄い本もグッズもそこそこ買った。自分は個人間送金できないので現金を払いつづける、ということでここだけ日本の同人イベントと変わらなかったけど、キャッシュレスで払いたかったなーーー。

だいたい勝手知ってる空間のような気がするけど、周囲の人は誰も馴染みのある言葉を話していない、というのがよかった。帰る頃には足がヘトヘトになっていた。

これは끾뀪이先生のブースで入手したグッズです。個人的に「イズナのバケモノ」って呼んでるけど正式名称は괴즈나らしい。

これはSechi (ブルーセチ)先生のアロナクッションです。Sechi先生は今度のコミケにも来るようなのでまた見に行きたいですね。

語学レベル

どれくらい韓国語ができるといいのか、まともにコミュニケーションできるのか?? というのはずっと不安だった。結論から言うと、以下のような感じなので心配せずに早く行ったらいいと思う。

  • 観光地なら英語が通じるし、なんなら日本語も通じることが多い
  • 翻訳アプリを駆使したらいける

英語が通じる件については言わずもがな感もある気がする。ホテルのコンシェルジュの人とは最初英語で話そうとしたけど、ふつうに日本語が通じるし日本語のほうが手っ取り早いので、最後は諦めて最初から日本語で話していた。身の丈ですね。明洞で行った焼肉屋には日本人のスタッフがいたので、ふつうに日本語でいろいろ聞いていた。

観光地以外、とりわけ市街中心地から離れたお店や同人イベントなどでは、まあ少し準備するほうがいいと思う。準備といってもPapagoといった翻訳アプリを入れるとだいたい事足りると思う。Google翻訳でもいいかも? とにかく音声や画像を翻訳できる仕組みが用意できていたらなんとかなります。

同人イベントの間は、欲しいものを指さして This one please. って言うぐらいでだいたい間に合う。たまにオプション (Tシャツのデザインとして、文字入りがいいか、文字なしがいいか、など) を聞かれたときだけまったく分からないので翻訳アプリを通してもらうぐらいでいけた。イベント中に「日本の方ですか?」って話しかけられたこともあった。

なかなかすごかったのは、江南のほうのレストランに行ったときで、英語が通じるか非常に微妙な感じでずっと店員さんの韓国語を浴びるという感じだった。メニューに写真もなくて、なんかおすすめが来るっぽいので待ってみる、ビールだけ欲しいので맥주 주세요って発話する、ぐらいでなんとかしていた。ご飯はどれもおいしかったので万事オッケーです。あとトイレの場所も聞けたのでもう生きてはいけると思う。

全体的に、基本的な単語・フレーズぐらいは分かるけどちゃんとした会話はまだ無理だなーという感じ。聞き取りはけっこう難しい。こういう感じでもなんとかやっていけるので、韓国は海外旅行先としてはかなり行きやすいほうだと思う。そういえば入国審査ではなにも質問されずに顔写真や指紋採取に応じるぐらいで全部終わった。

写真集

ここから雑多な写真が並びます。

ブルアカコラボをやっているGS25

おたくのポケモンパン

딸기우유

www.youtube.com

清渓川

すいません肉見てください

空港鉄道A'REXのゆるキャラ

おわりに

まとまりがない感じだけど、なんか思い出したら追記します。楽しかったので機会を見てまた行きたい。向こうのブルアカの周年イベントとか行けるといいかもしれない。もうちょっと韓国語が分かるようになっているといいかな……。

*1:ちゃんと見てないので複数あるかもしれないけど

*2:ワザップジョルノではないと思うけど、そうとしか言えない。あの曲の正式名称って何ですか?

「爆走できますか?」という問い

「困っていますか?」と質問するよりは「順調ですか?」と聞いたほうがいい、という話はけっこう聞くと思うけど、それを更に推し進めることで「爆走できますか?」「爆走できていますか?」というところまで持っていけると思う。

何も困っていること・障害がなく、真に爆走できている状態なら自信を持ってイエスと答えられるだろうけど、実際には何かしらつまずきポイントがあることのほうが多い。そういうときに、どこで詰まるか・詰まりうるか考えたり、みんなで議論したりするのを促進するため、「爆走できる」という状態を最初から理想として持っておいて問いかける。本当に爆走できるならそれに越したことはないだろう。

「爆走」というと全てを無視して最高速で走りつづけるというニュアンスがあるかもしれないけど、本当に全てを無視しているのではなく、取り組みたいことの障害となることが全て解決されている理想形のことを指して「爆走できる」と呼んでいる。本当に全てを無視しているのだとしたらそれは暴走である。いったん立ち止まってみるのと素早く走るのを繰り返せるとよいのではないか。

大吉祥寺.pmに参加し、登壇し、DJをやった #kichijojipm

大吉祥寺.pmに参加しました。この記事の公開をもって吉祥寺からの帰還といたします。

登壇した

speakerdeck.com

タイトルは「君たちはどう生きるか」をモジりました。

コードレビューの目的は「コードの品質を保つこと」「知見を共有すること」である、という観点を踏まえ、自分がどのようにしてコードレビューに向き合っているか・向き合うべきと考えているか を話しました。発表後や懇親会などでポジティブな感想をいただいたり、コードレビューの難しさや向き合い方の話をしたりできて、自分が当初思い描いたよりもいい発表ができたんだろうな、と思っています。

実は、発表のテーマ自体はすぐ思いついたのですが、何をどう話すか・正解をどこに置くべきか など非常に悩みながら発表資料を作りました。弊社の人は知っているかもしれませんが、発表資料を一度レビューしてもらったあと、ほぼ全てのスライドを書き直して再構成しています。

発表原稿とか用意してなくて当日出たこと勝負なので、だいたい普段の話し方で登壇しています。id:kushii さんからは「エンジニアっぽくて安心する」と評判でした。何がパワーワードになるのかはちょっと気をつけてみるか、と思ったけどすぐには直らないかも。

DJした

id:stefafafan に誘われて、きちぴーナイトパーティーでDJをやりました。セトリはしっかり組む派です。ブルアカ率は 8/21 でした。

事前の打ち合わせで、テーマは「フューチャーベース」でいいですか、と id:asumiso さんから質問されていましたが、実は普段のDJでテーマを真面目に決めたことがないんですよね *1。まあでもおもしろいから他の人に提案してもらったテーマに乗っかってみよう、ということで今回は比較的ちゃんとテーマに沿ってセトリを組みました。このセトリがどれくらいフューチャーベースだったのかは誰かあとでこっそり教えてください。

Get Over the Worldは技術カンファレンス向きの曲で、きちぴーナイトパーティーにぴったりだと思ったので*2ねじ込みました。歌詞を検索してみてね。

Get Over the World

Get Over the World

  • Veritas
  • アニメ
  • ¥255
  • provided courtesy of iTunes

DJ中に身体を揺らしたり観客を煽ったりするのが好きなんですよね。高度なエフェクトとか滑らかな転換とかができないので、パフォーマンスで底上げするスタイルに振っています。爆音と低音が好きです。

終わって外に出たら朝5時で、しっかり空が明るくなっていました。空の明るさとは対照的に体調はグロッキーで、死ぬ!! と何度も口に出しながらホテルに帰り、そして気絶しました。6時半起床だったのでギリギリ24時間稼動を回避できたか?

起きたら本来のチェックアウト時間を過ぎていました。

ビール飲んだ

前夜祭や本編の昼休みにP2B Hausに行き、いろいろビールを飲みました。CTO IPAのほうも飲ませていただきました。こういったお店が駅近くにあり、吉祥寺は非常にいい街だと思います。あとHUBもある。

ビールは場合によっては食べ物です。

おわりに

全体的になんというか不思議な会でしたね。さまざまな界隈の人が吉祥寺に集まって俳句を鑑賞する、みたいな……。ゆるい感じだけどうまく成り立っていそうなのは id:magnoliak の力量がかなりありそうだな、と思いました。次もホールで登壇したいですね。

不思議な会ではあったと思うのですが、どの発表もハッとさせられるものばかりで良かったと思います。あとみんなトークが上手ですね。

だんだん分かってきたけど、Perl/Ruby/Go方面の知り合いはそこそこいるつもりだけどPHP方面のカバレッジが低いのでは?? と思ってきました。いったんPHPカンファレンス小田原2025の予定をカレンダーに突っ込んだけどRubyKaigi直前っぽい、行けたら行くのでご期待ください。

主催の id:magnoliak さん、DJイベントを企画していただいた id:asumiso さん、自分の発表を聞いていただいた皆様、現地でお話しした皆様、森羅万象の皆様ありがとうございました。

*1:これまでのDJのテーマを順に並べると「いいね欄」x6→「いつも通り」になります

*2:あとフューチャーベースっぽいから

プロフィールに私のいいね欄を掲載

like.utgw.net

プロフィールとはTwitterのプロフィールです。職場で閲覧した場合の責任は取れません。よろしくお願いします。

diary.sorah.jp

Twitterで流れてきた画像付きツイートをいいねする活動については一家言あって、あったのだけど、Streaming APIの終了と共に全てが終わってしまった。ふと自分のいいね欄を見にいくと「234,382 いいね」と書いてあった。

blog.utgw.net

Go Conference 2024 登壇した #gocon

Go Conference 2024に参加し、登壇してきました。

登壇しました

Dive into gomockというタイトルで発表しました。2トラックのどちらかで40分トークかな? と思っていたら2部屋ぶち抜きでトークだったのでビビっていました。

発表資料はこちらです。

speakerdeck.com

gomockの内部実装を見て、なぜライブラリの内部実装を見るのがよいことなのか、という話をしました。reflectパッケージが好きなので合間にreflectパッケージの話もしています。つまり主題が3つあるわけですね。

  • gomockの内部実装を見よう
  • リフレクションを知ろう
  • なぜライブラリの内部実装を見るのか知ろう

今回はgomockの実装を掘り下げることで、魔法のように見えるイディオムの裏にある処理を知ろう、という方向性でやりました。今回の発表でgomockの内部実装を全員が完全理解できたかは分かりませんが (理解できていたらすごいと思います)、これをきっかけにライブラリの実装を読むことの楽しさや効能について多くの人に知ってもらえたら幸いです。

ポスト見ました

自分の想像よりもXのポスト (旧Twitterのツイート) が盛り上がっていそうでしたね。いくつかお返事を書いてみています。

m.EXPECT().MethodName(arg1, arg2).Return(ret1, ret2) のうち .MethodName(arg1, arg2) の部分は、任意の値もしくはMatcherを受け付けられる必要があるので、パッと実現できるかは分からないですね。

.Return(ret1, ret2) の部分については、mockgenに -typed というオプションを渡すことで、メソッドの返り値をany型じゃなくて本来の型にすることができます。具体的には Do DoAndReturn Return メソッドに型がつくようになります。

モックするメソッドごとに *gomock.Call をラップした型をコード生成する、という仕組みで動いているため、代わりに生成されるコードの量は増えることになりますね。

github.com

Cond Matcherの String メソッドが返す値は adheres to a custom condition という文字列です。つまりカスタム条件であることしか分からない!! こういう場合はWantFormatterを通すほうがテスト失敗時のログが分かりやすくなりそうですね。

https://github.com/uber-go/mock/blob/893ee9cb6b098575f0bad39eaf4d02eeec917633/gomock/matchers.go#L109-L111

わかる〜うまくシグネチャを設計していくとジェネリックな感じにできるのかも。もしくはそういうライブラリがある?? 誰か知ってたら教えてください。

推測ですが、struct定義を関数内に閉じ込めることで名前を消費しないようにしているんですかねえ。これぐらいで済むなら自分でもこういう感じで書いて済ませるかも。

発表資料を作っているときはこの観点は抜けていたのですが、確かに!! 難しいことをやるからには相応の解説をコード中にコメントとして残して、なんとかメンテナンス可能にしていこう、という気概を感じますね。

Do メソッドが返り値を使わないのは過去の経緯があるようですね。godocにも「下位互換性のために返り値を無視している」ということが書いてあるので、基本的に DoAndReturn メソッドを使うほうがよさそうです。

おそらく昔は Do メソッドと Return メソッドを組み合わせる、という使い方しかできなかったのかも。DoAndReturn メソッドが追加されたときの様子を見るにそんな感じなのかな?

github.com

github.com

発表見ました

tenntennさんのイテレータの話は、Goの最新の言語機能を速習できるという感じでした。ジェネリクスを活用してよくあるスライス操作を簡潔に書くためのライブラリは既にありますが、どうしてもスライスを経由するので実行効率が気になるところでしたが、イテレータを組み合わせることで効率と書きやすさ・表現力を両立できることに期待したいですね。これは自分でもイテレータを駆使してなにかを作ってみることで知識が定着するのでしょう。

Iwaminさんのフィーチャーフラグを自動計装する話は、なかなか興味深い切り口でおもしろかったです。フィーチャーフラグとその運用には昔から今まで悩まされていたところなので、簡単に入れて外せるようになると夢っぽい。if文を起点とするほかにbuild tagsでファイルごと差し替える、みたいなアプローチもあるのかな?

karamaruさんの "Fixing For Loops in Go 1.22" を深く掘り下げた話は、よくあるイディオムとその修正というだけにとどまらず本当に深く掘り下げられていておもしろかったです。発表資料を拝見した感じだと、他にもいろいろなトピックや取り組みの話題がありそうで、枠が20分しかないのがもったいないぐらいでした。fmt.Println 関数で変数をエスケープさせられる例がよかったです。

ありがとうございました

参加者のみなさま、運営のみなさま、現地でお話ししたみなさま、ありがとうございました。40分トークで2部屋ぶち抜き、ライブラリの実装を読んでいく、というトークを聞いてもらうという感じで緊張感がありましたが、おもしろかったと言っていただけたのでよかったです。

次回のGo Conferenceでも何か発表したいですね。自分で作ったものの話とか、もうちょっと別のテーマで話せるといいかも。あるいは会社の人に登壇してもらうとか……。

Kansai.go #1 に参加してLTした #kansaigo

参加しました。サイボウズさんの大阪オフィスには初めて行きました。

umedago.connpass.com

LTのスライドはこちらです。リフレクションしたくなっても早まるな!! という話です。

speakerdeck.com

個人的にはリーンコーヒーがおもしろかったです。Goにまつわる話題を出しあって議論しあうという感じで、若者のキャリア相談っぽいことからGoのエラーハンドリングの話までなんでも話していたと思います。こういう話はふだん懇親会でしかやってない気がするので新鮮。

Go Conference 2024での登壇を楽しみにしていただいける方もいて嬉しい限りです。なんとか発表資料の型ができてきたけど、いろいろなことに対する準備をしないといけないスケジュール感になっているので、めちゃくちゃですね。

RubyKaigi 2024に参加した #rubykaigi

今年もRubyKaigiに参加しました。聞いたトークのメモはScrapboxにまとめてあります。いろいろ印象に残っているので箇条書きでいきます。いいですか、一気にいきますよ。

  • Day1 Keynote (tompngさん)
    • アニメーションQuineがベースラインに置かれているけど、そこはベースラインではないのでは?? と思いながら聞いていた。実際おもしろいし、ただQuineになるだけでなく、BMP画像になっているとかreactiveであるとか、そういう工夫が随所に散りばめられているのが美しいと思う。
  • Getting along with YAML comments with Psych (qnighyさん)
    • loadしてdumpするときにコメントの情報も残したい、というモチベーションの源流が分かったし、それを実践してみせているのもすごい、そしてYAMLは深淵すぎる!! こういうアノテーションみたいなのをやりたい場面って実は探せばありそうだし、それをライブラリの実装によって解決してみせているのが美しい。
  • hogelogさんのLT
    • アプリケーションコードに手を加えずにメトリックを取得する、というの、OpenTelemetry的なソリューション (自動計装とか) が近いか? と思ったけど、OpenTelemetryの自動計装だとcollectorや環境変数のセットアップぐらいは必要そうだな、と思った。
  • かねこさんのLT
    • 残り5秒は時間が余ったとは言わないのでは??
  • Ruby and the World Record Pi Calculation (Yuryuさん)
    • 最適化でここまで実行時間が変わることもなかなかないと思うので迫力あってよかった。手慣れた言語でオートメーションできることの良さが出ている。

また、今年もNOCとして参加しました。去年との差分は、KMCの後輩4人をNOCメンバーとして連れてきたことです。KMCのOB会というイベント (おおむね飲み会) でNOCの話をしまくっていたら何人か釣れたので、そのまま本番当日まで連れてくることに成功しました。

walnuts.hatenablog.com

手の数が多いというのは何よりも頼もしいことで、負荷を物理的に分散する効能があるようです。片付けのときは指示を受けて後輩くん達にプロキシするといった高度な活動をやっていました。カンファレンスのネットワーク設営ってなかなか学生のうちにできることではないだろうし、貴重な体験を提供できていれば何よりです。貴重じゃなかったらそれはそれで誇っておいてください。

あと人生初のサインを書きました。ブルアカのガチャを引くときも似たような感じで書いているつもりだけど、しかしどうやってサイン書いたらオシャレになるの? 誰か教えてください。

Ruby Music Mixinは3時過ぎぐらいまでいました。フィニッシュまでいれるとよかったけど流石に体力がもたなかった!! 基本的に飛び跳ねていたように思います。そろそろDJ応募するか……。

写真とか

写真以外にも、沖縄に対する感想とかもあります。

ルートビア飲みたすぎる。


「アイコンは見たことがある」と言われる率が高かったように思うので、これからもそのようにやっていこうと思います。


みんなRubyのことが好きで、Rubyを良くしたいのでさまざまな活動をやっている、というのが高い熱量で伝わってくるのがいい会だと思う。自分自身は普段Rubyを書いていないけど、近いコミュニティとして (あるいは将来的に仕事で書くことを見すえつつ??) 顔を出しておきたい。