rch850 の上澄み

技術的な話題とか、雑談とか。タイトルを上澄みに変えました @ 2020/09/02

MacBook Pro(14インチ、2021)に移行アシスタントで引っ越し(データ編)

ってことで M1 Pro デビューしました。移行アシスタントで M1 Pro の MacBook Pro に引っ越した記録を残しておきます。初めての移行アシスタントだったので、不慣れな進行です。

基本的には公式の新しい Mac にコンテンツを移動するを見ながら進めたいところだったんですが、説明がざっくりしてたので参考程度です。「MacBook Air (M1)をMacBook Air (Mid 2011)から移行する」という記事が、タイトルの通りかなり世代を飛ばした移行事例だったので、励みになりました。

まずは移行元と移行先の MacBook Pro を仲良く起動。ちなみに移行元は MacBook Pro (Retina 13-inch, Early 2015) です。OS は Monterey まで上げてあります。移行先は、これが初回起動。「こんにちは」とか「Hello」とか表示されるアレです。

起動して、移行元では Launchpad から「その他」の移行アシスタントを起動。移行先では他の Mac から移行っぽい選択肢を選んで進めていきます。移行するデータの選択では、ホームディレクトリのデータや、システム環境設定のネットワーク設定のみにしていた気がします。アプリケーションは明らかにハマりそうなので外しました。ホームディレクトリの容量ですが du -hs ~ してみたところ 159G という結果でした。これはすごそう。

そして途中経過がこれ。USB ケーブルで繋がってますが、接続方法が Ethernet となっていますが、これが Wi-Fi 接続と USB 接続のどちらを示しているのか、この時点ではよく分かっていませんでした。

なかなか「ユーザの書類を転送する準備をしています…」から進んでくれないところで、ふと、移行作業をしていたコワーキングスペースのネットワークが、端末間の通信に少し厳しかったようなことを思い出しました。

一応有線では繋いでいるものの、それが使われる保証がなかったので、一旦処理をキャンセルして、両方のマシンで Wi-Fi の AP 情報を削除し、再チャレンジ。ここでも接続方法が Ethernet と表示されていたため、どうやら AP 情報消さなくても USB 接続になっていたっぽいです。

30分ほど経過して、ようやく次のステップ「ユーザ "xxx" の書類を転送中」に進みました。この写真を撮ったのは3時25分でした。

AP 情報を削除する前に30分も待っていたのかというと、そんなことはなくて、元々30分待てば成功していたのかもしれません。

その後、表示が変わって、残り時間が出てきました。

f:id:rch850:20211120154407j:plain

残り1時間9分。撮影したのが3時44分。これならだいたい5時前には終わるかなといった感覚でいたのですが……

4時4分にはこのリンゴマーク。思ってたより速い!いつもOSアップデートで待たされてる身からすると、これはかなり嬉しい誤算でした。

そして無事起動。内部の諸々の引っ越しはさておき、大まかに引っ越しが終わりました。

ここまでの振り返り。

  • Keep
    • 移行アシスタントなかなか悪くない。数時間レベルかと思ってたけど、正味1時間程度で済んだ。
    • 移行するデータ選択からアプリケーションを外すのは間違いなさそう。
  • Problem
    • 有線接続を優先させるのに手間取った。
  • Try
    • node_modules のようにファイル数が異常に多い部分は、削除してから移行したほうが速かったかもしれない。
    • なんなら clone した git リポジトリ自体が移行不要だったかもしれない。

この後、アプリケーション編に続きます。ざっくり予告。

  • アプリケーションを引っ越したつもりがなくても引っ越されているアプリケーションたち。
  • iTerm2 か移行アシスタントか分からんけどシームレスすぎてすごい。

近況

気づいたら2ヶ月も何も書いてなかったのでざっくり近況。

ISUCON 11 に出て潔く散った

  • どれぐらい潔いかと言うと、最後まで負荷分散しなかった。
  • 今回のようにあまりにも DB 負荷が高い場合は、中盤で負荷分散したほうがいいかもしれない。最近は、負荷分散でのスコア上昇にあぐらをかくのが怖くて、17時のスコアフリーズ後という方針だったけど、負荷分散後に課題が見えるケースもあるので、柔軟に。

息子を連れて文殊山に登った

二上コース 〔約50分〕 福井市街地に近いこともあり人気コース。

というコースで、たくさん休憩したり、遊んだりしながら、1時間40分。途中、もう限界かな?って思うところがあったけど、最後はかっぱえびせんの小袋片手になんとか登りきってた。がんばったなぁ。

オンボーディング準備にチームで取り組んでいる

これは仕事の話。新卒対応してた人、したい人に声をかけて、チームを作って来年度新卒のオンボーディングの準備を進めている。半年前から動き始めるのは今回が初めて。技術面だけでなく、カルチャーをふりかえるいい機会になりそう。

ゆとりの法則を読んだ

こちらのスレッドを読んだのがきっかけ。

もう20年も前の本だけど、気付かされることが多かった。個人的には、ゆとりによるプロジェクトの成功やチームの成長といった話題より、リーダーシップの話が刺さった。まぁ読むきっかけがそれだったというのはある。あとでちゃんとまとめたい。

自分の勉強や開発をあまりしていない

konifar-zatsu.hatenadiary.jp

はてブすると同時にツイートしたつもりが、ツイートされてなかったので、ここで気持ちをまとめてみる。ちなみに田舎の核家族で未就学児2児の父です。

元記事では、時間がないことではなく、集中できないことに焦点を当ててるけど、自分の場合はたまに集中できることもあるので、論点がずれてるかもしれない。それでも、

自分が集中できないのは仕方ない。今はそういう時期なのだ。息子と妻に向き合って一緒にキャッキャウフフして過ごしていく方が今はよさそう。

という結びは自分の気持ちに合っていたので、大筋では一緒かもしれない。

平日の過ごし方が例として挙げられていたけど、休日のほうがこの選択をしたかどうかでの振れ幅が大きそうだと思った。休日に集中するための時間を作ろうと思ったら、自分以外全員で買い物に出かけてもらったり、逆に自分だけが出かけたりしてまとまった時間を確保することもできるだろう。でも自分は月2日程度を除いては、基本的にはしてない。どちらを選ぶのが良いとか、そういうことは考えてなくて、自分がそうしたいと思ってるだけ。

何かを作りたいという気持ちを、例えば料理方向で発散するのもいいと思ってる。

平日はどうかと言うと、寝かしつけ、家事などが落ち着くのが22時から23時頃なんだけど、気力があるときはそこから2時ぐらいまで作業してる。今日もそんな感じ。どちらかというと、勉強や開発でやりたいの方向性が自分の状況の変化とともに広がってきていて、全部できないことへのもどかしさは感じる。これについては時間があったところで起こることだろうなって考えで、もどかしさを鎮めている。

気持ちとしては、大体こんなところかなぁ。今週末は ISUCON 11 で、そこは何もできないよと妻には伝えてある。最近は、そこに向けて特段集中力が高い状態ってのはあるかもしれない。終わったら、しばらくは寝かしつけで一緒に寝落ちする日が続くんだと思う。

幼児の子育て中に色覚異常で困ったこと

まぁまぁな色覚異常色弱)持ちの自分が、子育ての中で困ったことをまとめました。子どもができて、パートナーがそういった状況だったら、参考にしてみてください。

注意:色覚異常は個人差があるので、個人の感想として捉えてください。

どれぐらい色覚異常かっていうと、このツイートの写真を見てもらえれば分かると思います。「みどり」と書いている本人は大真面目でした。

0歳、1歳ぐらいで困ったこと

  • うんちのいろが分からない。
    • 子育てしたことないと、なんでうんちの色?って思うかもですが、「赤ちゃんのうんちの色で成長と健康チェック!」(ムーニーのサイト。うんち写真あるので閲覧注意)といったサイトがあるぐらい大事なことです。赤色が混ざっていると注意みたいなんですが、赤とか茶色とか緑とか、あまり区別つかないので分からないんですよね。
  • 顔色が悪いかどうかがよく分からない。
  • 発疹が出ているかどうかよくわからない。アレルギー、突発性発疹、注射のあとなど。
  • 料理の火のとおり具合が分からない。
    • 子どもがいなくても困るといえば困るんですが、大人なら多少火が通ってなくてもお腹が強いのでなんとかなっちゃいます。でも赤ちゃんはちゃんとしたいんですよねー。
  • 洋服を買うとき、着せるときに、変な色、変な組み合わせを選んじゃってないかな?っていう不安感。
    • 自分の服は自業自得だからいいけど子どもはちゃんとしたい。

2歳から5歳ぐらいで困ったこと

2歳ぐらいになってくると、実害がある困りごとは減ってきますが、教育面で困ることがちょいちょい出てきました。

  • 子どもから色を聞かれて、まちがった色を教えてしまう。クレヨン、折り紙など。
  • 紅葉や虹などの美しさが分からないから伝えられない。

色覚異常の気持ちを知るヒント

※個人の感想です

いろいろと困ったことを挙げましたが、そもそもなんで分からないんだろう?と思う方が大半だと思うので、個人的な感覚を書いておきます。

初夏の葉っぱを指して緑色というとき、僕の頭の中はこうなってます。

  • 「この葉っぱは(緑色だから)緑色」
  • 「この葉っぱは(緑色のような茶色のような……でも秋じゃないしたぶん)緑色」

こうやって「緑色」と答えているので、なんだ分かってるじゃん。って思われがちなのですが、分かってるというか、予測している感じです。

だけど、うんちの色の場合は、こういった予測がほとんどできないので、分からない、となってしまうんです。

クレヨンの色などは、初見で分からなくても、何度も見て覚えることで正解率を上げられることがあります。でも、このトレーニングは特定のクレヨンのためのものだから、別のクレヨンが出てくるとまた分からなくなるかもです。

じゃぁどうしているのか

基本的には妻に頼ってます。ありがたや〜

色がわかるようなアプリを使うこともありますが、光の反射などでうまく働かないこともあり、参考程度という感触です。

世にも奇妙な Safari の audio 要素の挙動

audio 要素というか HTMLAudioElement ってありますけど、あれの play 関数の挙動が Safari だとえらい奇妙だったって話です。ちなみに macOS, iOS どちらの Safari も同じでした。

2回目以降の play の再生開始が遅延する

Safari で次の codepen の Play を押して再生すると「さん、に、いち、はい」と聞こえます。再生が終わってもう一度 Play を押すと「ぁん、に、いち、はい」と、最初の s が聞こえません。new AudioContext() ボタンを押すと、この問題が起こらなくなります。

See the Pen Safari HTMLAudioElement.play delay bug by rch850 (@rch850) on CodePen.

codepen にも書いてますが、StackOverflow の HTML5 Audio tag on Safari has a delay のコメントにこのソリューションが書いてありました。なぜ直るかはわからないそうですが、とにかく直ります。

ちなみに、AudioContext をいくつも new してるとエラーになった記憶があるし、そういったことを言っている2015年の記事もあって、無尽蔵に new するのはいけないと思っていたのですが、今は100個作ってもエラーにならないようです。とはいえ不必要に何個も作るのは避けたほうがいいでしょう。

多分 python -m http.server で立てたサーバが返した mp3 だと2回目以降再生されない

遅延どころか再生できないのかよって話なんですが、できないんです。じゃぁ最初の遅延に気づいたのはなぜかっていうと、そっちは npm run serve 的なもので見てたからです。

最初は localhost 限定の現象かと思ったのですが、ngrok を通してちゃんとしたドメインかつ https にしても変わらなかったので、これは python の http.server のせいだな、と勘付きました。

audio 要素の src に指定する URL を外部の URL にすれば鳴るので、src に指定するファイルの供給のされ方に原因があると推測しました。

python -m http.server する代わりに npx http-server したら直りました。

まとめ

  • Safari で HTMLAudioElement (audio タグ) の動作に奇妙なところがある。
  • 2回目以降の play の再生開始が遅延する → new AudioContext() すればよい。
  • 2回目以降の play で再生されない → python -m http.server を使っているなら npx http-server など他の手段にするといい。

Google Tag Manager のプレビューがポップアップになる件と最新の Chrome 拡張

プレビューがポップアップで出ちゃうのを別タブにする件

Google Tag Manager のプレビューの仕組みが変わって、だいぶ使いやすくなった。

のだけど、プレビューサイトがポップアップで開いてしまう。モバイルでの動作を確認したいのだけど、このポップアップで DevTools を開いても、モバイルエミュレーションを出す "Toggle device toolbar" のボタンが出てきてくれない。

困ったなーと tag manager preview でぐぐったら、この記事に行き当たりました。

ayudante.jp

文字通り新しいプレビューの話。Chrome拡張機能を入れましょうって話があって、メリットがこのように書いてありました。

  • プレビュー対象ページを通常のタブとして開ける(進む、戻る、URLの変更などの操作が楽)
  • プレビュー対象のタブでChromeのモバイルエミュレーション機能が使える「target=”_blank”」属性を持つリンクにより新たに開いたタブもプレビュー可能

そのとおりだ!と思いつつ、拡張入れてた気がするんだけどなーと思って確認したら、無効化してありました。Chrome の動作が不調だったときに無効化して、そのままにしてしまったと思われます。有効化したら、無事に別タブで出てくれました。

Tag Assistant Legacy ってことは最新版があるのか?

さて、気になったのはこの拡張の名前の "Tag Assistant Legacy"という名前。Legacy ってことは最新版があるのか?

探してみたところ Tag Assistant debug mode - Tag Assistant Help"Tag Assistant Companion" へのリンクがありました。これを入れて Legacy を無効化しましたが、プレビューは引き続き別タブで開いてくれました。ひとまずそこの要件は満たしてくれそうです。

ヘルプにあった Chrome 拡張の機能リストの和訳です。

  • iframe 内のグローバルサイトタグも検出します。
  • 現在のウィンドウから開いたポップアップやタブもデバッグできます。
  • デバッグウィンドウが、ポップアップではなく新しいタブとして開きます。これによってブラウザの URL を書き換えたり、リファラーに関するデバッグがしやすくなったりします。
  • 同じデバッグセッションで複数のウィンドウをデバッグできます。

新しい拡張は、ユーザー数も少なく、評価やレビューも散々なのが気になりますが、ひとまずこっちを使ってみて、不満があれば Legacy に戻すことにしてみます。

ユニコーン企業のひみつを読んだ

エンタープライズではない、かといってスタートアップというほど小さくも若くもない、そんな自分の環境に合った話だった。

www.oreilly.co.jp

内容

  • 抽象度が高めの目標(ミッション)と権限を与えた小規模なチーム(スクワッド)を作り、信頼する。
  • トライブなどの仕組みでスケールさせる。

大まかに言うとこんなところなんだけど、まず、それらの話の前にある、プロダクトとプロジェクトの比較、スタートアップとエンタープライズの比較が面白くて引き込まれた。プロダクトを作っている人にはそう思ってもらえそう。後半の「信頼してないの?」で出てくる例なんかも笑いを誘ってくる。

スクワッドの人数は8人以下(Two-Pizza Teams か?)と書いてあるのを見たときに、自律的なチームの人数としてはちょっと少なくないか?と思った。しかし読み進めていくと、データサイエンティストや、生産性改善など、スクワッドに含まれない役割もあるとのこと。ミッションに集中して自律するには、自己完結するより、一部の機能は外に出して人数を絞るのもありだなと思った。

10章のコラムでは「米海軍で屈指の潜水艦長による「最強組織」の作り方」と「モチベーション 3.0」が出てくる。前者は全然知らなくて、後者は動画で見ただけだから、どちらも読んでおきたいと思った。

今の環境と比べて

スクワッドとも言えそうな規模のチームがあって、それを横断するチャプターのようなものがある。フロントエンドとかサーバとか。そして、それとは別に任意参加のギルドのようなものもある。トライブが必要なほどの規模ではない。

だから、ここで書かれている構成はイメージしやすかったし、出てくる疑問、例えば「エンジニアのレポートラインは、スクワッドのマネージャーなのか、チャプターの誰かなのか」といった疑問も同じように感じていた。

自分がどうしているかというと、必要に応じてスクワッドのマネージャーとチャプターリードとの間で問題を共有するから、レポートラインはどちらでもいいよとしている。やりたい事の方向性はスクワッドで、実装はチャプターでといった割り振りがいいんじゃないか。

ミッションもあるし、権限もそれなりに与えられているので、あとは自律性を高めていくだけかな、と思っている。