Qushot’s blog

anything

Firestore EmulatorとGoで開発する際に指定するプロジェクトIDはdummy-emulator-firestore-projectがいいかも

はじめに

本記事で指している Firestore Emulator とは gcloud components で提供されているエミュレータではなく、Firebase の Local Emulator Suite から提供されている方です。 また、実行環境の環境変数FIRESTORE_EMULATOR_HOST が設定されている前提で話を進めます。

何をすればいいのか

  • Firestore Emulator 起動時に --project=dummy-emulator-firestore-project フラグを追加する。
  • Firestore のクライアントライブラリで NewClient を行う際に DetectProjectID を利用する。

Go 側の解説

Firestore のクライアントライブラリで NewClient を行う際には引数で ProjectID の指定が必要ですが、私は DetectProjectID という定数を利用しています。(余談ですが Datastore のクライアントライブラリでも同様の定数が利用できます。) DetectProjectID を指定した場合、実行環境の認証情報からプロジェクトIDを取得してくれるのですが、ローカル環境で特に認証情報を設定していなかった場合、プロジェクトIDにはdummy-emulator-firestore-project という文字列が設定されます。なので Firestore Emulator を起動する際のプロジェクトIDも dummy-emulator-firestore-project に合わせてあげるとシームレスに接続できるようになります。

おわりに

Local Emulator Suite の UI 機能が便利そうだったので gcloud components 版のエミュレータから移行しましたが、 移行前はアプリ側の環境変数FIRESTORE_EMULATOR_HOST を設定するだけで接続できており、Local Emulator Suite 移行後にアプリから接続出来なくなったため意外なハマりポイントかな?と思って記事を書いてみました。

Windows 10 起動時に前回のタブを復元した状態で Google Chrome を自動的に起動させる

まずは Google Chrome を自動的に起動するようにする

Windows を起動するたびに Discord や Logicool のソフトが勝手に起動していたが、これは Windows スタートアップという機能らしい。 最近あまり使っていないソフトまで起動していて邪魔だったため、無効化するついでに Windows 起動時に毎回手動で起動していた Chrome を自動的に起動するよう設定したので備忘として残しておく。

まずは、Windowsキー + R で「ファイル名を指定して実行」を起動する。shell:startup と入力してOKを押すと、Windowsスタートアップ用のフォルダが開くので、ここに起動させたいソフトのショートカットを配置すればいいらしい。

早速このフォルダに普段使っているアカウントプロファイルのショートカットを追加し、Windows を再起動してみた。 すると、Windows のデスクトップが表示されると同時に Chrome が起動した。

前回のタブを復元した状態で起動させる

Chrome が起動したのはいいものの、新しいタブが1つだけの状態での起動だった。 手動で Chrome を起動していたときは基本的に Ctrl + Shift + T で「最近閉じたタブ」を復元させていたので、これもどうにかできないか調べてみたところ、 Chrome の起動オプションを設定しておけばよいことがわかった。

先ほど配置した Chrome のショートカットを右クリックし、「プロパティ」を選択。

「リンク先」に --restore-last-session と追加すればよい。私はプロファイルを指定しているので全体ではこのようなリンク先となった。 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Default" --restore-last-session

動作確認のために再度 Windows を再起動してみると、無事に前回のタブを復元した状態で Chrome を起動させることができた。

REALFORCE RGB TKL購入

REALFORCE RGBのテンキーレスUS配列モデルを購入した。

購入前はLogicoolG Pro Xキーボードを利用していたが、ゲームでよく使っていたWASDあたりのキーのチャタリングが気になり始めたためキーボードを買い換えることにした。 G Pro Xキーボードを再度購入することも検討したが、以下の2点からREALFORCE RGBを購入することを決意した。

  • Logicoolのゲーミングキーボードは(並行輸入を除いて)JIS配列しか販売されておらず、仕事でUS配列のキーボードを利用している私としてはUS配列に統一したかった。
  • カニカルスイッチで再度チャタリングするようになって買い換えるのも面倒なため、静電容量無接点方式のキーボードにしたかった。(HHKBを使い始めて7年ほど経つが未だ壊れる気配が無い)

以降、購入後に行った設定を備忘録として記載する。

REALFORCE CONNECTのインストール、及び設定の変更

REALFORCE CONNECTとは、REALFORCEのデバイス設定を変更するためのソフトウェアであり、APC(キーが反応する深さ)、発光パターンの設定、キーを無効化するためのLock機能、CtrlとCaps lockの切り替えなどを設定できる。 download link

今回はCtrlとCaps lockを入れ替え、APCを2.2mmに設定した。(今まではCaps2Ctrlというソフトウェアを利用していたが、これを機にアンインストールした)

Windows+US配列キーボードの日本語入力切り替え問題

今までJIS配列キーボードを利用しており、変換/無変換キーに日本語入力と直接入力の切り替えを割り当てていたが、US配列キーボードには変換/無変換キーは存在しない。 また、JIS配列利用時はCaps lockで切り替えることも可能だったが、US配列キーボードを利用している場合はCaps lockでの切り替えは出来ないらしい。

一応 Alt+` で切り替えが可能だが、切り替えのたびにこのショートカットを使うのは面倒に感じたため、色々調べていたところ、PowerToysというMicrosoftが公式で出しているユーティリティツールのKeyboard Manager機能の「キーの再マップ」を設定することで、US配列キーボードでもCaps lockでの切り替えが可能であることがわかった。

以下の画像のように、Caps lockをAlt+`のショートカットに再マップすれば良い。

f:id:qushot:20220306192736p:plain
Caps lock to Alt+`

使ってみた感想

REALFORCE RGBの打鍵感は気に入っており、US配列にしたことでテキスト入力時の記号周りのタイポをしなくなった。これから長く大切に使っていこうと思う。 また、逆にG Pro Xキーボードの良かったところの気付きも得られた。G Pro Xキーボードでは、Aキーの左にあるCaps lockキーを間違えて押してしまわないように、少しスペースを空けて作られており、その点は非常に優れてるポイントだったな、と改めて感じた。

iPhone 13購入

iPhone 13を購入した。

今まで使っていたiPhone 8は2018/04/13に購入していたので、4年弱使っていたことになる。 2-3年周期での買い替えは早すぎるという思いや、Touch IDの復活やUSB Type-C対応などに期待してなかなか買い換えずにいたが、 iPhone 12のiPhone 4を思わせる角張ったデザインには前々から惹かれていたため今回購入してしまった。

実はiPhone 12にしようか少し迷っていて、理由はパープルの色味が結構好きだったためである。 ちなみにiPhone 13 Proについては普段あまりカメラを使わないため最初から候補には挙がらなかった。

購入したもの

当初は本体もケースもブラックを購入するつもりだったが、近場のApple Storeで当日受け取り可能だったのがレッドのみだったため、レッドを購入。 ケースはレッドの本体と合わせても違和感が少なそうなゴールデンブラウンにした。 画面保護ガラスは以前からずっと使用していたが、今回はカメラ周りを保護するガラスキャップも購入してみた。

商品 URL
iPhone 13 128GB Product Red https://store.apple.com/jp/xc/product/IPHONE13_MAIN
MagSafe対応iPhone 13レザーケース ゴールデンブラウン https://store.apple.com/jp/xc/product/MM103FE/A
画面保護ガラスシート https://www.yodobashi.com/product/100000001006411285/
レンズ保護ガラスキャップ https://www.yodobashi.com/product/100000001006411263/

ガラスシートは綺麗に貼るための色々な仕組みが用意されており、手順は若干複雑だったが結果的にかなり綺麗に貼れてゴミも入らなかった。 出っ張ったカメラを守るためか、レザーケースのカメラ周辺も少し盛り上がっていた。 レンズ保護キャップを貼ってもケースより高さは出なかったため、相当なことが無い限りはカメラが破損することは無いかと思われる。

設定とデータ移行

設定やデータ移行にはクイックスタートという機能を利用した。2台のiPhoneを近づけるだけでアプリや設定、写真なんかも移行できてかなり楽だった。 QUICPayやLINE、Googleアカウント、Google Authenticatorアプリ、Suicaあたりは個別に移行する必要があったが、やり方を解説しているサイトはたくさんあったため特に困ることも無く移行完了。 以前データ移行時にLINEの過去メッセージを消してしまったことがあったので少し警戒していたが、無事移行できて安心した。

使用後の感想

数時間しか触っていないためホームボタンが無い操作にはまだ慣れていないが、Face IDによるロック解除はとても楽だなと感じた。 Touch IDも悪くはなかったが、ホームボタンが汚れていたり、指先が荒れていると何度も解除に失敗して、会計時などにもたついて困ることがしばしばあったのを思い出す。(とはいえ現在もマスク生活は続いているため、会計時に毎回パスワード入力する羽目にはなると思うが)

iPhone 12が発表されたころからiPhoneを買い替えたい気持ちはあったので、今回のiPhone 13購入はとてもよい買い物だったと思っている。 あとは次期iPhoneにTouch IDの搭載やType-C化が無いことを祈るのみである。