hamacoの日記

どうでもいい日常をたれながす日記だと思う

PHPerKaigi 2022でコアスタッフをやってきたよ #phperkaigi

2022年4月9日(土)~4月11日(月)に開催された PHPerKaigi 2022で今年もコアスタッフをしました。

https://phperkaigi.jp/2022/

今年は(tomzohカンファレンスでは)初のオフラインとオンラインのハイブリッド開催!ということで久し振りに現地がありとても楽しかった! けどとりあえずコアスタッフ業の振り返りを覚えている範囲で…。

ノベルティ制作

今年はパンフレット周りと、例年通りギリギリに差し込んだどら焼きが私の担当。

パンフレット & 現地用タイムテーブル

写真取り忘れました

今回私はパンフレットの担当になったのですが、オンライン化してからの PHPerKaigi のパンフレットは100P とかそのくらいのページ数になり、流石に現地で持ち歩くのはキツい… しかし現地でタイムテーブルは見たい… ということで、オフライン時代にやってる年があったので壁に貼る A0サイズとかのデカい紙を用意しようかと思ったりもしたけど、最終的には初開催の頃みたいなタイテのみのペラ紙を作ることに。
どういう感じのが良いか暫く悩んだりしたけど、最終的に3日分別々にポケットに入れれる感じの B5サイズで作成。
どの程度役に立つのか分からなかったけどそれなりに使いやすかったって話も聞けたので作ってよかった。

…パンフレット本体については基本的にデザイナーさんがバリバリやってくれるので、あんまり力を発揮できる所はなかった。
誤字脱字のチェックとかトークンの埋め込みとかそのくらい? あとは言われるがままに発注しただけ。

どら焼き

例年通り?最後のコアスタッフMTG で折角のオフライン開催だし現地参加者へのお土産がどうとかそういう話になり、最初はカステラとかを考えて探していたんだけど、実行委員長の「PV に来る人数も読めないし、余った時がめんどくさい」との一言で、お土産ではなく現地用おやつになり最終的にどら焼きに決めた。
期間もあまりなくて殆どの所で納期に間に合わないし、正直どら焼きは PHPカンファレンス福岡(2022年の開催まだかなー)とかでもでてくるし結構普通かもなーと思ってしまい、どうにかそこと違うことできないかなーと調べていたら1箇所焼印制作込みで納期に間に合う所があり、どうせ何ヶ月か保管して捨てられるだけだろうし、焼印も一緒に送ってくれ!とお願いしてみたら一切そこについては返事がないまま当日焼印が届き、少しは変わったことできたかなと。
最初まったく使い道を考えてなかったけど、朱肉を買ってきたら結構色んな人が焼印を押してくれていてまあよいネタにはなったかな?

事前準備

今年他にやったことと言えば、チャレンジのトークン管理くらいかな?
きっとギリギリで誰かやるような気はしていたんだけど、丁度パンフレットの担当だし、スポンサー様のトークンが結構パンフレット内にちりばめられていたので勝手にトークンのチェックとかを担当した。

今年は fortee に仕組みがある程度ちゃんと用意されていて、スポンサー側でトークンと場所を報告できるようになっていたので探す事自体は結構楽にできてよかった。
ただ、PHPer チャレンジのトークンは世間一般で言う「ハッシュタグ」という物と酷似しているため、報告されたブログ記事のページなどにチャレンジとは無関係なハッシュタグという名のトークンが存在しているため地味に難しかった…。
Fusic さんの迷路とか、デジタルサーカスさんの toquine.php みたいに(多分)意図せず # 始まりのものがでてきたり、そのブログでのハッシュタグっぽいんだけど見た目上 # の後に空白が入っていたりしてどこまでがトークンなのかの線引きががが。

あとは普通に PHP のクイズが何社かあったり、開催前日の深夜に「トークン隠した!」って言ってインフォメーション動画を上げてくるスタッフがいたりして地味に時間かかりましたね。

当日

当日は例年通り雑用しながら HQ(Head Quarter)業なので特に目新しい事はなにもない…かな?
Twitter / Discord / ニコ生のコメント収集してクロージングに備えたり、チャレンジのグラフ動画とかも例年通りやってたけど、こっちも今回新規で増えたものはないしなぁ。

どちらかと言うとカンファレンス筋を取り戻す準備期間って感じだったので次回はなにか新しいことやりたいわね。

ちなみに今回の会期中の歩数はこんな感じだったよ。ハイブリッドで減るかと思ったけど意外とあんまり変わらなかったね。

会期中の歩数

Oura Ring Generation 3を買った

Oura Ring Generation 2を持っている人経由で買うと割引があったので、前から気になっていた Oura Ring Generation 3 を買いました。
前のを持っていないので月額7ドル掛かるんだけど、結構名前見かけるしそのくらいならまあいいかなと思い11月2日に注文して、15日に届いたサイジングキットでサイズ測ってサイズ確定させてから1ヶ月、ようやく届きました。

f:id:hamaco:20211219174901j:plain

今左手の中指に着けてみていて、サイズは全然問題ないけどサイジングキットと違ってそれなりに高い機械が指にあると思うとなんか注意力とかがそっちに取られてしまい微妙に集中力が落ちてしまっている気がする。
まだ初日だからだと思うけど、アクティビティと心拍数くらいしか数字がでていないので、明日以降コンディションとか睡眠のスコアがどうなっているか楽しみ。

PHP Foundationに会社で寄付をした

f:id:hamaco:20211212214955p:plain

色々あり想定より時間がかかってしまったけど Big Wave に乗り遅れてはいけないと思い、なんとか社内調整を行なって PHP Foundation に会社で281ドルの寄付をした。
トップの財政的なコントリビューターに載りたいなーと思いつつも流石に現状1,500ドル超えの金額を支払うのは厳しかったので、よくある50ドルとか100ドルに埋もれないよう101ドル以上でなにか良い金額ないかなと社内調整していた間に色々考えた結果、281ドルの寄付となった。

最初はPHP 8.1に絡めたり、Nikita に絡めたり、他のなにか…みたいな事を考えて、「Fibers -> 繊維 -> せんい(ち) -> 1,001ドル」とか、「8.1だし81ドル」とか、「Enumだから76が付くなにか」とか、「Readonly property って日本の PHPer 的には新潟だし21X(がたって数字いくつ?)」とか、「Nikita で2XXドル」とか、「Performance Improvements に絡めた数字」とか、「Nikita のコミット数とかのコントリビューション関係」とか色々と考えたのですが、どれもいまいちしっくりくる数字にならずどうしようか悩んだ結果、PHP の RFC で Implemented になっている数 が数え間違いがなければ281個と予算的にも丁度よいし、8.1的な数字も入っているしで他に思い付く気がしなかったので281の寄付となりました。

また余裕ができたら来年とかも寄付できるかな?

Vivo! で桃ヴァイツェンを飲んできた

ヴァイツェンが開栓したって聞いたので今までのリベンジ兼ねて飲んできた。

1杯ちゃんと飲めたの多分3年ぶりとかじゃないだろうか。

 

f:id:hamaco:20211015185117j:image

ヴァイツェン(清水ver)

 

f:id:hamaco:20211015185136j:image

オーロラホッピヤリスIPA

 

f:id:hamaco:20211015185143j:image

果物生活

 

iOSDC Japan 2021でコアスタッフをしてきたよ #iosdc

f:id:hamaco:20210920193155j:plain

まったく iOS 関係ない人間だけど、9月17日(金)~9月19日(日)に開催された iOSDC Japan 2021 にコアスタッフとして参加しました。

iosdc.jp

この書き出しももう6年目ですよ皆さん! 6年も経つのにまーだ iOS やってませんよこいつ! ちなみに最近は Android でアプリ作っていたりします。

なんでスタッフなんかやってるの?

iOS とか一切関係ない人間なんですが、主催者の @tomzohPHP / Beer 界隈でよく会う人だった(以下略 いつもの)。
でも今年はこのご時世なので No Beer で過しました。なんとただ普通にスタッフ業をしただけ!

~Day0

ノベルティ作成

今年は普段あんまりやってこなかったノベルティ作成を色々とやり、一般向け T シャツ、スタッフ用ラインストーン T シャツ、ボトルオープナー、缶ドロップスと色々なノベルティを作りました。
それについては別途ブログ書いたのでそっちを見てね。

hamaco.hatenablog.jp

Discord 用 bot 作成

Discord を見ていた人は #announce チャンネルと各パブリックビューイングチャンネルに Next up を投稿しているボットアカウントを見たかと思います。

f:id:hamaco:20210920192256p:plain

去年の iOSDC Japan 2020 で Twitter#iosdc ハッシュタグのツイートとニコ生のコメントの収集を、今年の PHPerKaigi 2021 で Discord の投稿の収集を作っていたので、もう今年は事前になにかツールを作ることはないと思っていたんですが、開催1週間ほど前に実行委員長が「Twitterに流してる Next up を Discord にも流したいよね~」とか言い始めたので、急遽 Discord に Next up を流す bot を作成。

会期中

今年は「HQ / 遊撃 / 配信助手」っていうまあ例年通りのとりあえずなにかあれば対応しますっていう雑用係でした。
ただ、ある程度スタッフの人数も確保されていて、なんと HQ には私を除いて3人もスタッフがいたので私がやらなきゃいけないことってあんまりない感じ。

そもそも HQ のリーダーの @kikoando が歴戦のスタッフで有能 of 有能だし、他の HQ スタッフの @kiwi@blue-goheimochi もめちゃくちゃできる2人だしで本当に安心の塊でした。

なので、Twitter / Discord / Staff Slack を眺めつつもしなにかあれば誰かに対応をお願いするって感じで、ただそれも他スタッフが済ませてしまうのでほとんど私がやる必要もないし、その辺をうろちょろしても他スタッフも優秀でトラブルなどもないので本当に平和な3日間でした。

Day0

カメラマン業

iOSDC にはカメラマンが多く、みんなよい写真を撮るので私はあんまり要らない子なんですが、カンファレンススタッフをやっていて、カメラ持っている人たちに憧れてカメラを買ってしまったので一応写真撮影をしていたりました。
ただ、オンラインになると大きな動きもなく基本代わり映えのしないスタッフを撮るくらいしかなく、撮った写真のほとんどがグリーンバック前の実行委員長みたいな感じになってしまうので今年は最初にちょろっと撮っただけで撮影を諦めてしまいました…。
そもそもコロナ禍でカメラを使うことがなくなり、写真撮るのがヘタクソになり、億劫になり、と負のループに入ってしまっている気もするので、オフライン開催までにはもうちょっとやる気を出していきたい感じ。

Day1

LT 初日

レギュラートークは事前録画の配信なんだけど LT はやっぱり雰囲気とか大事にしたいよねってことで、今年も LT は生配信。
生だとイレギュラーなども起きるので、ここは流石にある程度分かるメンツがやる必要があるので、去年同様にスピーカーとのやり取りを担当しました。

オンラインでの LT はこれが3回目なんですが、これが結構構成が複雑で、しかも前回の反省を生かして毎年変わるので今回もちょこちょことトラブルが。
特に今回はタイトルと登壇者名の読み上げを立木さんの音声を流す形にしたため、配信には立木さんの声が流れるけどスピーカーには聞こえないので喋り始めるタイミングが分からないという問題が…。
これのせいでスピーカーがいつ話し始めればよいか分からなくなってしまいグダってしまったりでバタバタ。

LT 反省会

LT で色々と問題があったので LT 終了後に iOSDC の配信システムを作った @tomzoh@rela1470 が2人で構成の打ち合わせ。
私は途中で打ち合わせに気付き、一応配信システム構築のお手伝いくらいはしていてなんとな~く2人の話している構成も分かったので、一緒に混ざって Today's Update ギリギリまで構成の打ち合わせ。
Today's Update 直前に構成が決まったので、2人は Today's Update に行き私は残って運用についておおまかな流れを作り、Today's Update が終わった2人と最終詰めして実際に組んでみて一通り動作検証。
みんなで考えたおかげで構成がシンプルになり、立木さんの声がスピーカーに聞こえない問題も解消したので安心して明日を向かえることに。

Day2

データ収集

今年も去年に引き続きニコ生での開催ということで大きくは去年と変わらずなので、特に新規でなにかすることはないんですが、他の HQ スタッフがなんと、ニコ生・Twitter・Discord のコメント数集計をグラフ化してくれたので、LT 前にデータを渡してモリアガリトーク賞の集計とデータのビジュアライズ化をしてもらいました。
作業としてはそんなにめんどくさいものではなかったんですが、Discord だけ UTC で渡してしまったり、ニコ生だけ他と別端末で収集していたので若干めんどくさかったりとバタバタしつつなんとかグラフ化してもらえたのでヨシ!

チャレンジ動画

引き続き平和だったのでまったりしていたんだけど、12時過ぎに突然実行委員長が「iOSDC チャレンジうんたら」と言い始めたので、HQ の中で一番暇だった私がなにかしらの方法でビジュアライズ化することに。
最初は実現方法が一切分からなかったのでランキング画面をアニメーションもなく切り替えるか、せいぜい簡単なアニメーションを付けるくらいかなー?と思ってたんですが、別のスタッフが Racing bar chart と言う名前を発見してくれたので、今回クロージングで流したようなよく見るやつを作る事ができました。
やっぱり何事もまず名前を知るというハードルを越えると一気に進みますね。

15時過ぎには LT の準備があるので、生データの加工からチャートの作成までをそこまでに終わらせる必要があり結構焦ってたんですが、若干手抜きしつつなんとか間に合ったのでセフセフ。
使ったライブラリの都合上、最初から最後までデータ配列の中身の個数と順番が変わってはいけないとか、これは当たり前だけど1以上の数字が入っていると全員グラフにでてきてしまうので上手くデータを作らないといけなくて地味にめんどくさかった。
あとはちょこちょこ SQL ミスったりしてギリギリまで時間がかかったけど、なんとかできたのでよかった。

LT 2日目

昨日リハーサルまでしてもうなにもこわくない状態で始まり、めちゃくちゃスムーズなスタートを切れたんですが、なんと会場に置いていたスピーカーが @tomzoh の iPhone とペアリングしていたせいで音がたまに消えて立木さんの声が聞こえないというトラブルが…w
一応昨日と違ってスピーカーには立木さんの声が聞こえていたし、タイマーも出していたので大きな問題はなかったんですが、地味にドキドキしましたよね。あぶない。
でもまあ昨日と違ってほぼトラブルも起きず上手くいったのでとてもよかった。

Day3

会期中はオフラインと比べるとほとんど動いていないはずなのに、翌日ほぼ死んでいたのでオフライン開催がこわい…。

おわり

いやー、今年も無事終わってよかったですね! 去年は開催するのが第一目標だったので安定を選んだりしましたが、今年は2年目だし色々とやりたいこともできたし、色々と安定もしたのでハチャメチャに大成功だったんじゃないでしょうか。

今年は事前にコードを書いていたので、当日はもっとのんびりできると思っていたんですが、結局やっぱり当日なにか思いついちゃうのでドタバタとコードを書くのからは逃れられないんだなって。
ちなみに、iOSDC Japan の裏側で作られているツールはなんとちゃんと iOSDC らしく Server Side Swift(という名の PHP)で作られているんですよ!

f:id:hamaco:20210920192610p:plain

f:id:hamaco:20210920192615p:plain

来年がどういう形態になるのかは分かりませんが、もっと楽しく、もっと盛り上がれるような iOSDC Japan 2022 をやっていきたいですね!

iOSDC Japan 2021 で色々とノベルティを作ったよ #iosdc

こんにちは! もう明日が iOSDC Japan 2021 の開催日ですね!
2021年9月17日(金) ~ 19日(日)に開催される iOSDC Japan 2021 で例年通り今年もコアスタッフをしていて、今年はノベルティを色々と作りましたよって話です!
他のことについては開催後にまた書くと思うけど、ノベルティだけでそこそこ書けそうなので先にノベルティの話を。

一般Tシャツ

_DSC0879
(photo by @TAKA_0411)

なんだかんだでカンファレンススタッフ人生が10年近くになるんですが、地味にTシャツ制作というものを一度もやったことがなかったんですよね。
特定の人に依存するようなタスクじゃなければ、大体いつも空いてるタスクがあればやる感じのスタンスで例年やっていたのでなかなかやる機会がなかったんですが、今年はとうとう花形?のTシャツ担当に。

カンファレンスのTシャツってざっくり「UnitedAthle 5001」か「Printstar 085-CVT」の2強になっていて(hamaco調べ)、もちろんどこでも選ばれているから物はとてもよいんですが、 折角自分で好きに作れるんだし、他と同じなんてそれじゃつまらんよねということでその2つを選択肢から外して、Tシャツのベース探しの旅へ。

数年前にユニクロでもオリジナルデザインのTシャツを作れることを知り、ずっと気になりつつ毎年イベントが終わってから思い出す生活をしていたんですが、Tシャツ悩んでいる時にふと思いだし、ユニクロのTシャツがカンファレンスのTシャツになっているって響きだけが面白そうだったので、今年はユニクロにすることにしました。
響きだけといいつつも、ユニクロなら参加者の皆も馴染みもあるだろうし、あれだけ有名な所だし肌触りとかも良い感じだろうと思って作りましたがどうでしたかね。私も当日着るのを楽しみにしています。

ボトルオープナー

_DSC0980
(photo by @TAKA_0411)

iOSDC Japan といえば…そう!ビールですよね(最近は茶会のオシャレドリンクもあるけど)! そんな iOSDC では懇親会で樽のビールと一緒に瓶ビールがでたりしますよね? ということで、ボトルオープナー欲しくない?とふと思ってしまったので突如追加で作りました。 このコロナのご時世使うことがあるのか…? とも思いはしましたが、来年はきっとオフライン開催になり茶会なり懇親会なりも復活するだろうしあってもいいよね!ってことで!

ボトルオープナーは携帯できるやつがあると便利だなーとたまに私が思っていたので、半分趣味で作ってしまった感じではありますが、きっと持ってると便利な時とかあるので是非使ってください! お酒飲まなくても瓶のドリンクを飲む時とか、缶ジュースを開ける時とか、iOSDC Japan 2021 ノベルティの缶ドロップを開ける時とか(!)にも使えるので是非普段から鞄に偲ばせておくと便利かと!

納期にも余裕があり、物的にもこだわれる所も多くなかったので、今年作った中では比較的サクッと作れたので特に書くような苦労話がないな…。

缶ドロップ

_DSC0977
(photo by @TAKA_0411)

iOSDC の C は Candy の C(嘘です)。

今年はサポーターも復活し、スポンサーも去年と比べて増え、参加者の皆様に送るノベルティボックスの設計もなかなか大変でした(設計したのは別のスタッフ)。
その際、事前に箱のサンプルを作った時、スポンサー水やタンブラーを入れる部分の仕切りによい感じの空白スペースがあるのに気付いてしまい、そうなったらもうなにか作っていれたい気持ちが溢れてしまって、なんかここに隠すようにものを入れたいねーって言ったら OK がでたので、折角だしついでにトークンを隠そうということでなにか小物を作ることに。

流石に偶然できたデッドスペースだったので、あまり大きなものが入りそうになかったし、とりあえずフリスクみたいなのを入れようかな? フォーチュンクッキーだと中に紙が入ってるしトークンによいかもな? 小さいものなら個包装の飴玉みたいなやつとか? でもトークン入れれるかな… と思いながらふと飴玉のついでに缶ドロップのサイズを調べたらめちゃくちゃ隙間にピッタリサイズ。
その時点では缶ドロップも面白いなーと思いつつ納期も本当にギリギリだったし、ネタ枠のくせにそこまで予算(とデザイナーさんの工数)使っていいのか? という気持ちだったのですが、委員長からの OK がでて、デザイナーさんも作業できる余裕があるとのことだったので Go。

で、箱のサンプルができている = 送るノベルティが大体固まっているってことなので、つまりもうノベルティが着荷し始めてたりする時期なんですよね。
なので納期がめちゃくちゃギリギリでなんなら最初に問い合わせをした時点でちょっとアウトな感じだったんですが、直接電話したりしつつ先行して制作を始めてもらったり、デザイナーさんに急ぎ目で頑張ってもらったりしてなんとか作れたので、是非箱を隅々まで探してみてもらって当日飴を舐めながら iOSDC を見てもらえればと。
デザインもデザイナーさんが頑張ってくれたので可愛い感じになっていて、個人的には今年作った中でも結構お気に入り。

しかし、思いついちゃうんだから仕方ないけど、去年のメタルステッカーに引き続きギリギリの動きばっかりしていて心臓に悪い…。

おわり

思い付きとネタで動くタイプの人間なので今年も突如ノベルティ増やしたりして色々あったけど、どれも無事に作れてよかった!
思い付きでノベルティ増やしてはいますが、それでも色々考えたり頑張って作ってはいるので #iosdc ハッシュタグを付けて私が担当したやつだけじゃなく、ノベルティの感想とか沢山貰えると嬉しいなって!

Docker のコンテナ内で Control-P をちゃんと動くようにする

Docker 使ってて地味に不便だったのが、C-p を 1 回だけ押しても見た目上反応せず、その後他のキーを押すとようやく 1 つ前の履歴が表示されることだった。
どうせコンテナで使ってるシェルがおかしいんだろと思ってたけど、よく考えたら bash でもおかしいし、Docker の設定とかなのかなと思って調べたら C-p が DetachKey になっているのが問題らしく、~/.docker/config.json を弄って設定を変えてあげればよいとのことなので設定したら快適になった。

{
    "detachKeys": "ctrl-@"
}

元々ファイルがあったので、detachKeys の行を 1 行追加して絶対に使わなさそうなキーを指定しただけ。
こんなに簡単に解決するならもっと前にやっておけばよかったですわ。

WSL2 に割り当てるメモリを減らした

Windows を開発に使ってると、夜中にはめちゃくちゃ重たくなって辛かったので、タスクマネージャーを見てみると Vmmem ってのがメモリを 12GB くらい使っていた。Windows に 16GB しかメモリ乗ってないのに…。 調べてみると、どうやら搭載メモリの 80% を WSL2 が確保するらしく、そのせいで Windows 側がメモリ足りてないっぽくてモッサリするのかなと(最近は 50% になってるらしいが)。

流石に Windows 側で使えるメモリが 4GB しかないと、ブラウザが 1GB とか余裕で持っていくこのご時世では生きていけないので、.wslconfig に以下のように書いて Windows でメモリを沢山使えるようにした。

[wsl2]
memory=6GB
swap=0

スワップを 0 にしているのは、メモリが 6GB もあれば充分だろうし、スワップしまくって SSD の寿命とか縮んでもなんかやだなーって思っただけなので、これは書かなくても別に問題はない。 もっとメモリ少なくても良いんじゃないか? という気もしなくもないが、また困ったら減らせばいいやってことで一旦このくらいにしている。

こんな感じに書いて wsl --shutdown をしてあげればOK。 普通に Windows を再起動でも良いんだけど、私の使ってる ThinkPad がどうやらシャットダウンしてもちゃんとシャットダウンしてないっぽくて、設定が有効にならなかったので wsl --shutdown を叩いている。

WinGetが動かなくなったけど最新版に更新したら動いた

Windows でのアプリケーションインストールに WinGet を使っているんだけど、最近久し振りに使ったらなにをやっても下記のような感じで、エラーがでてしまうようになった。 (パッケージによっては違うエラーだった気がするけど大体このエラー)

PS> winget install XXXX
...
コマンドの実行中に予期しないエラーが発生しました:
0x8a150004 : Opening manifest failed

よく分からんので仕方なく普通に昔ながらのインストーラーをダウンロードしてインストール… ってやろうかと思ったんだけど、ふと WinGet のバージョンを上げたら解決するんじゃね? と思ってやってみたら無事解決。

https://github.com/microsoft/winget-cli/releases