hamacoの日記

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

=ROUNDUP(2/0.9*1.35, 0) の結果が Excel だと 3 になるけど、PhpSpreadsheet だと 4 になるので、PhpSpreadsheet のバグを見つけたかと思ったけど単に浮動小数点の誤差だった件。

お仕事で PhpSpreadsheet を使って Excel からデータを取得しているんだけど、どうしても完全再現はできないからたまにおかしくなる時があり、今回も非対応のなにかを使ってしまったのかなーと思っていたら違った。 上の計算を電卓で叩くと 2.999999 になるから最初はなにかのバグかなーと思っていたんだけど、試しにふと psysh で叩いてみると 3.0 になったのでなんか気になり、これ丸められてるのかな?って sprintf 叩いたらビンゴ。

<?php

echo 2 / 0.9 * 1.35; // 3.0

echo sprintf('%.40f', 2 / 0.9 * 1.35); // 3.0000000000000004440892098500626161694527

なんかこの sprintf('%.40f') 忘れそうなのでメモっておこう。

Composer 2.0がでてDeployerでのデプロイができなくなった

Composer 2.0 がでたことで、古めの Laravel がのきなみダメになったらしいんですが、うちも同じ原因で Deployer でのデプロイがコケてしまったので対応内容のメモ。 といっても composer install する前にバージョンを落としているだけだけど。

<?php

task('composer:v1', function (): void {
    run('{{bin/composer}} self-update --1');
});
before('deploy:vendors', 'composer:v1');

もっとちゃんとした方法があるのかもだけど、どうせ Laravel のパッチバージョンを上げれば要らなくなると思うので結構テキトー。

Windows端末を買ってみた

f:id:hamaco:20201022003501j:plain

色々思う所もあり、WSL2 もなんか良さそうでタイミングも丁度良かったので久し振りに Windows を使ってみることにした。 最近の Lenovo だといつものことらしいけどめちゃくちゃ待たされたけどようやっと届いたので開封。 ところで久し振りに Lenovo で買い物をしたんだけど、入る口によってカスタマイズ時に英語キーボードが選べなかったり、英語キーボードを選ぶとカスタマイズがおかしくなったりして、めちゃくちゃめんどくさかった。

まだ WSL2 を入れて、docker-compose 試してみて… ってくらいしかしていないのだけど、思っていたのよりだいぶ体験が良くてビックリしている。 特に Ubuntu 側で code . ってやると、Windows 側の Visual Studio Code が立ち上がってくるのとかよく意味が分からない…。

アプリのインストールもまだまだ未対応は多いけど winget なるもので簡単にインストールできるし本当に便利になったなぁ。

まだまだ、Karabiner-Elements とかを筆頭にカスタマイズ系のアプリが Windows だとなに使えばいいのか分からないので調べつつセットアップして、はやく仕事でまともに使える状態にしたい。

やった

やりたい

iOSDC Japan 2020にコアスタッフとして参加してきたよ #iosdc

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

iosdc.jp

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

iOS とか一切関係ない人間なんですが、、、から始まる例年通りの文章をコピペしようかと思ったんですが、今年はオンライン開催だったのでビール目当てでの参加って言えなくなってしまった… 悲しい…。
まあそれは置いといて4年目3年目のコアスタッフがどんなことやってたのか覚え書き程度に残しておくよ。

事前準備

今年はオンライン開催となった影響で殆どのものを作る必要がなくなったので、事前準備もその分やらなくて良い感じに。
その中でやったのは、

  • メタルステッカー
  • hamaco lint 業務
  • Twitter キーワード企画用のツイート収集プログラム

とかなのかな?

メタルステッカー

これは開催前にブログを書いたのでそっちを見てね。 現物を見ると結構カッコよくて、iPad とかもカバー外して付けたいなって気持ちになったよ。

hamaco.hatenablog.jp

hamaco lint 業務

例年、制作物とかメールとか動画とかの公開される物は一通り目を通しているのですが、今年はちょっと8〜9月バタバタしまってしておりあまりちゃんとは見れなかったですが、一応今年もある程度は目を通せたのかなと。
ただ、iOSDC はパンフレットなどを制作してくれるデザイナーの方がとても出来るお方で、とても安心感があるのでその辺りは今年は完全にスルーしてしまった感じ。

パンフとかメールとか見てなにやってんのって思うかもしれませんが、誤字脱字を結構見つけていたりする他、地味〜にパンフに載ってるトーク詳細の固有名詞の綴りなどが直っていたりしていたりするのですよ。

ツイート収集プログラム

これもギリギリまでやるのか確定していなかったんですが、プログラム作っちゃえばやるの確定するんじゃね? とか思って、開催4日前に #iosdc ハッシュタグのツイートを収集するプログラムをサッと書いて、自動でできまっせという感じでやることが確定したりとかなんとか。
今年の企画は去年のチャレンジと違って事前に各スポンサー側の準備が不要だったり、どこにもキーワードが公開されていないのでギリギリまでやるかやらないか決めれたんですよね。

Day 0(前夜祭)

リハーサルとかそういうのもあるだろうし…ということで例年通りの時間に集まったんですが、荷物もなにも届かないし、参加者がこないので受付作ったりとかの物理的なレイアウトの設計・実装もほとんど不要だしで、昼前には一旦やることがなくなってしまったので、急遽事前に作っていたツイート収集プログラムにWebからアクセスする画面をシコシコと作ってました。
(Webサーバー用意したりして外からアクセスできるようにするのめんどくさいし、最後に表彰結果だけ出せればいいやって思ってサボってたんや…)

初期バージョン

f:id:hamaco:20200922164743p:plain
事前準備で作っていたのはサーバーに入って直接コマンドを叩く必要があった

最終バージョン

f:id:hamaco:20200922165331p:plain
Webバージョン

Day 1

通常業務

今年は人数も不要ってことで当日スタッフを大々的に募集しなかったのですが、結局5トラック分あるので、ニコ生の配信と Ask the Speaker 用で最低2人ずつの10人、休憩での入れ替えとかを含めると倍の20人、それ以外の担当も必要なので… ってなると意外と人が必要になり、人数が不足していたので雑用しながら Track E の Ask the Speaker 担当に。
基本的には iOS 界隈の人間ではないので淡々と進めることしかできなかったので、この辺は可能であれば他の人に任せられると良かったかもな〜と思う。

LT 業務

AtS も終わり、あとはのんびりするだけの予定だったけど、LT での登壇者との Zoom でのやりとり担当がいなかったので急遽 Zoom 用の PC で登壇者に流れの説明とか LT の運用などのお仕事。
事前にスタッフ内で Zoom の画面共有をしてもらってそれを配信に乗せる部分だけは練習をしていたんだけど、どうやって次の人に切り替えるのかなどなにも決まっていなかったので直前にバタバタ。
ただ、画面共有のテスト用に、開始の1時間前に集まってもらうようにしていたのでギリギリなんとかなったのかな…という感じ。

LT 中も色々と合ったんだけど、一番辛かったのは、司会進行の tomzoh さん、LT の登壇者の方々、登壇者連絡用の私、のそれぞれが聞こえている物が違い、やり取りが難しいのと、私が話し掛けるとそれがニコ生に乗るということでいきなり喋れなくなってしまったのがキツかったかな。
LT の登壇者の方々も、自分が今どうなっているのか確認できない中、tomzoh さんの声を一方的に聞くだけなので、上手くコミュニケーションが取り辛く大変だったかと思うけど、なんとかやっていただき本当に助かった。

会期後

そしてご飯を食べてホテルに帰ったらなんと21時とかでめちゃくちゃ時間に余裕がある!
特にやることもなかったので、最初は Twitter をダラダラとやっていたんですが、なんか酔ってた勢いでニコ生主が使ってそうなコメントビューワーことを調べてコメントの取得ってどうやってるのかなー。 とかやりつつ、コメントの収集プログラムをセコセコとやっていたらなんと26時…。 おかしい、早くホテルに帰ってこれたから早寝して次の日に供えるはずが…。
ちなみにこれも最初 PHP でやろうと思ってたんですが、XML でコメントが取得できる古い?ニコニコの仕様とかはネットを見るとすぐでてくるんですが、その方法だと上手くいかなかったので PHP を諦めて普通に JavaScript でどうにかしました。

Day 2

通常業務

今日も昨日と同様に Track E の AtS... と思いきや、リモートスタッフの @nakajijapan が担当してくれるとのことで、午前中のトークだけ対応して後はフリー枠として雑用係。
トークをニコ生で流しながら AtS タイムまで待機していたんだけど、ちょっと Wi-Fi の接続が切れたタイミングで追っかけ再生になっていたみたいで、トーク終了のタイミングを見逃がしてしまいちょっと焦った。
Discord も片耳で聞いていたので、登壇者の方が移動しますね〜といってパブリックビューイングチャンネルから移動してくれて、そこで気付けてギリギリセーフ。

AtS が終わったあとはなにもやることがないので、ツイート収集プログラムの集計バグ修正とか、個人別ツイート数ランキングの実装とかそういう方面での裏方業務。 それ以外はあんまりやることがなくて、こんなになにもしなくていいのかな…って思うほどにはカンファレンス中とは思えないほどにまったり。

LT 業務

昨日に引き続き LT での登壇者とのやり取りを。
前日の反省を生かして、私の声が配信に乗らないようにしてもらったんだけど、今度は登壇者の声がエコーバックしてくるらしく、また LT 前にバタバタと。
LT が始まってからは Day 1 と違ってマイクも使えたし、運用もある程度はこなれてきたので Day 1 ほどは大きな問題も発生せず終わったんじゃないかなと。

会期後

家に帰って( ˘ω˘)スヤァ…

まとめ

初のオンライン開催でのスタッフだったんですが、色々とオフラインと違って楽しかったです。
特にニコ生を使ってやるってことで、コメントが流れているのを見るのはすごく良かったですね(一部弾幕とかでスライドが見辛いとかはあったでしょうが)。 やはり動画のコメントはリアルタイムに画面上に流れてくれないとコメント感がないですよね!

スタッフ業としては、スタッフも現地組とリモート組になったので少し寂しい感じもしたけど、大きなトラブルもなく上手く回ったんじゃないかなーと思います。
ただ、この形になってしまうと私が巻き取っていた当日業務のほぼ全てがなくなるので、若干不完全燃焼感がありますね。
その代わりに今年はツイート収集したり、コメント収集したりと会期中に色々とプログラミングをしていた気がします。

やっぱり個人的にはオフラインのバタバタ感が好きだし、色んな人に会えて会話もできるので、来年はまたオフラインでやりたいなー!!

iOSDC Japan 2020でメタルステッカーを作ったよ #iosdc

f:id:hamaco:20200917212842j:plain

みなさん、元気ですか! 私はコロナの影響でオフラインカンファレンスが軒並中止・オンライン化になったので元気ではありません!
そして、今週末に開催される今年の iOSDC Japan 2020 も例に漏れずオフラインでの開催ができず、オンラインでの開催となってしまいました。
カンファレンスでは基本的に当日メインで頑張るマンなのでオフラインじゃないとやることがあんまりなく、まったりした日々を過ごしていたのですが、なんか突然メタルステッカーを作ることになったのでその時のことでの軽く振り返っておこうかなーと筆を執った次第。

ふりかえり

8/3 夕

メタルステッカーの話がでたのは、そう、大体1ヶ月前のことだった。色々な他のノベルティが発注始まっていたりデザイン作っていたりといった、発注タスクも佳境に入っていた時…

f:id:hamaco:20200910204520p:plain
全てはここから始まった…。

f:id:hamaco:20200910204515p:plain
金額的にもいけそうで俄然乗り気に。

f:id:hamaco:20200910205736p:plain
そうだよね、今年やりたいよね。

8/3 夜

夜中に見て、業者のサイトを確認した感じ納期以外はなんとかなりそうだったので…

f:id:hamaco:20200910205717p:plain
やっていきだ!

まあ、こんな感じで急遽作成する事が決定。
デザインについても今からデザイナさんに頼んで仕事を増やすのも厳しそうだったのと、今年のロゴがそもそもメタルステッカーに合っていてとてもカッコよかったので、ロゴをそのまま使う形で行くことに。

8/4 朝〜

夜中に問い合わせしてみたら、翌朝すぐ返事が返ってきた。(これ以降も何度かやりとりをしたんだけど、レスポンスが早くてとても助かった)

f:id:hamaco:20200910204509p:plain
ギリギリ間に合いそう(ただしお盆進行など忘れていた)

納期的にも大丈夫そうとのことだったので、見積り依頼を投げ、デザイン・サイズに問題ないかの確認(結果 i の間の所とかに細い連結線が入ってます)など全部おまかせで一気にゴールまでレッツゴー。

8/5 朝〜夕

工場での確認が取れたのが昼過ぎ、デザインとサイズが確定した代わりに、個別裁断をすると納期が追加されるとの新情報が…。
ただ、デザインは OK がでているので、ここからはひたすら予算を考えつつメールとか電話とかで特急対応の話とかしつつ納期の調整をして、夕方に、

f:id:hamaco:20200910204512p:plain
発注完了!!

完成

そんなこんなであっという間の2日間が終わり、それから1ヶ月後… 皆さまの元にこんな感じのメタルステッカーが届きましたとさ。

_DSC1941
カッコいい! (photo by @TAKA_0411)

(貼るのを失敗してしまったので、綺麗に貼って撮ってもらった写真お借りしました)

終わり

そんな感じでまあ結構バタバタしつつも、やるなら今年だよね!ってことで勢いだけで一気にメタルステッカーの発注済ませましたよって話でした。
ある程度の慣れもあるだろうけど、ほぼ全部私が勝手に決めれる状態だったのでめちゃくちゃスムーズ作業できたのがとてもよかったですね。
あとは貼ってみて思ったけど、もうちょっと大きくてもよかった…のか?

これで今年の iOSDC Japan でニート説が流れずに済むぞい…。

なんか今日はボーダーが結構動いてたのと夜遅くなってしまったので、終業後ミリシタを起動したら82位とかにいてビックリ。  

ちょっと今日もボーダー以下の走りしかできなかったのと、最初に突っ込んだジュエルが溶けてしまったのでつらい…。

f:id:hamaco:20200708021439p:image

今日から後半戦。ということで、3倍消費お仕事ができるようになったんだけど、100位狙いのまったりPなので速度よりもオートパスの方が欲しいので、1倍お仕事中心にやってて前半戦とほとんどムーブが変わらない。 お仕事で450チケ貯めて、おすすめ楽曲やって、余ったオートパスでイベ曲やってって感じ。ブーストのときは10連続おすすめ楽曲なので、パスが溢れそうな時だけ3倍お仕事したけど。 しかし3倍お仕事はジュエルが一瞬で溶けていくのでやばいですね。上位陣凄い勢いでジュエル溶けていってるよあれ。 f:id:hamaco:20200706021043p:plain

ところでフルコンでパフェ率高かったやつ記念に貼っておきますね。 f:id:hamaco:20200706020629p:plain