Fragment #4
日曜日
- 昨晩は来客のため就寝が遅くなり、今日は母の日の備えが必要なため、なにもなし。
土曜日
- 04:57. GitHub に CI をつなぎます。
- GitHub Apps - Google Cloud Build
- これは・・・微妙だな。全てのコミットに対してデプロイが走ってしまう。しかし条件つきでビルドを促す方法はない。テストだけにしておくのが無難だが、一方で gcloud への依存こそローカルから手放したい。どうしたものか。
- push をトリガーする github repo を別枠で用意し、そっちにデプロイ用の cloudbuild.yaml を置く? プロジェクト毎に git repo が2つできる。かったるい。
- GitHub app を使う標準のインテグレーションは捨て, WebHooks を受け取ってビルドを開始する Cloud Function を書く?たぶん仕事ならこの路線が正解だが、仕事じゃないのである。保守がかったるい。
- 一方、仕事じゃないのでどのみちそんなにコミットしないのではとも思う。当面は適当に squash しつつ現状の設定を維持、Cloud Build がもうちょっとがんばってくれるのを待つとしよう。ついでに来週バグをファイルしよう。いち利用者としてフィードバックする口が見当たらないのはどうなんだと思うが・・・。
- つぎ。インポータの CF も CI します。
- gcloud functions deploy するには roles/iam.serviceAccountUser が必要らしい。権限まわりはいつも謎。
- うごいた。ここまで。
金曜日
- 昨晩は I/O にきているひとたちの接待(?)宴会に参加したため朝起きられず。
- 大量の肉を食べたせいか翌日の昼まったく空腹感がない。肉おそるべし。
- 自分のチームが興味のない数字をどこか(「インフラ」)の人々が勝手に図り、勝手に数字が下がったと文句を言い P1 バグをファイルしてきて、しかし regression range は一ヶ月以上。そんな bureaucratic の季節が来た。しかし今はチームの計測インフラが強化されたのでそのどうでもいい数字の計測も CI に追加してやんよ、と心の余裕が持てて良い。しかし BS である.
- わけもなく仕事のやる気が出ないときはとりあえず音楽をかけると良い。
- ふと昔使っていた耳栓型イヤホンが欲しくなる: ER4XR Extended Response Earphone $300. 高い... ER3SE Studio Edition Earphone 廉価版も $150 か。また今度。
- I/O のビデオを見る時間を作らないと。一日一本、仕事しながら見る?
- Youtube の watchlater リストがいまいち使いにくいので, YT 専用の watch later アプリが欲しい。
- Pragprog を読むうちに、自分が過去に読んだ技術書をリストアップして振り返りたい気がしてくる。しかし良いツールがないな。Amazon の wishlist でも使えば良いのか。
- 同僚と話していると自分はまあまあアプリのアーキテクチャに詳しいと気づく。しかしきみらそれ知らずに機能開発できてるのか。それはそれでエライ。
- 割と生産的な一日だった。
木曜日
- 05:15. 寝入りに Pragmatic Programmer 新版を読んでいたらイライラして眠りが浅くなってしまった・・・
- 自分をおちつかせるために書いた: Pragprog 20 周年版読み始め
- Security for Server Client Libraries | Cloud Firestore | Google Cloud
- datastore.owner というずいぶん強力な権限が必要らしい。Collection がなければつくる、という Mongo 的なつくりのせいか。いまいち。
- うごいた。今日はここまで。明日は GitHub 側のフックを足します。
- GCP の bill, 高いな色々遊んでるせいか?とおもったらむかーしつくった VM のディスクが高く付いていた! 削除. $100 くらい無駄にしてしまった OMG...
- 今日は仕事がおおい. こういう雑用やって成果を上げた気にならない用に気をつけたいが, それはさておき片付けないといけない。
- 仕事の Python コード、けっこうアグレッシブに list comprehension から generator への書き換えを勧められる。そしてたしかに良くなる。まだ generator が板についていない自分。
水曜日
- 04:46. 雑用のち CI つづき.
- Cloud build で GitHub repo を git clone したのち gcloud app deploy する。
- git clone の credential は、gcloud kms で暗号化した token の base64 を deployment.yaml にハードコードしたのち gcloud builder step で復号化し、結果のファイルを git builder から使う、という方針でがんばってみた。このくらいで許してくれ。
- Cloud build でテストを動かしたい。
- とりあえずテストのステップを足し、credential がなくてテストが失敗するところまで動かそうではないか。-> 動いた。
- さて GCP の credential だが...
- gcloud step から IAM で service account key を発行する? cloud build がそんな強力な権限を持ってしまってはダメ。
- テスト実行用に service account をつくり、その credentials を KMS で暗号化してコミット、それを を gcloud step で復号化する。
- Firestore の IAM role がわからん!で時間切れ。
- Cloud build で GitHub repo を git clone したのち gcloud app deploy する。
- ART のひとがとことこやってきて、おまえのベンチマークちゃんとネイティブコードにコンパイルされてる?というので調べてもらったらされてなかったうげー・・・。まあボトルネックはだいたい OS の中とか C++ の中なので全体像にはインパクトないと思うけど shame であることよ。お前はこのトークを見ろと言われる。明日じゃんか。
- ふとちょろいウェブアプリを作れる JS フレームワークないかなと Vue の blog を呼んでいたら 3.0 作ってるよ非互換だよ的ポストが目に入ってうんざり。やっぱ Web やりたくない。
- 今日は割り込みの相手をしていたら終わってしまったうんざり・・・しかしいくつか重大な発見があったのでよしとする。たまには社交(?)も必要。
- The Pragmatic Programmer, 20th Anniversary Edition: your journey to mastery by David Thomas, Andrew Hunt | The Pragmatic Bookshelf
- 義理で購入したが、Pragprog サイトの古臭さがなにかを物語っており寂しい。まえがきは 1/3 が新しい内容だと主張している。さて。
火曜日
- 04:43. CI つづき
- まず GAE をクラウドで gcloud app deploy してみましょう。このへん参照。
- Github から clone... するのに key を設定に書かないといけない?ドキュメントによれば... めんどくせー。とりあえず今は前に進むために personal access tokens をハードコードして動かす。
- つぎ。テストを動かすにせよ GitHub のトークンを隠すにせよ、なんらかのキーなりなんなりを取り出す手段が必要。やれやれ・・・。こういう時は専用の CI-aaS の方がちょろっと環境変数を保存できたりして便利な傾向。しかしそういう投げやりなショートカットを用意してるのが本来 AWS に対する GCP の良さではなかったか。
- 子が起きてきたので唐突に終了。
- 朝飯を若干たべすぎる。Sugar の引力に弱い。
- I/O
- Search with AR. どうでもいい...
- レストランで Lens なー...
- Google Go, $35 の電話で動く....のは $35 の電話の存在がすごい。
- サーチに予約 Bot が付いた! 便利かもしらんがこの仕事はやりたくないなー。
- Assistant が Always on になったの、デモはすごい。どうやってインテグレートするんだろうか。
- プライバシーまわり、昔会社がすごい真面目だった頃に溜め込んだものが dividend を払ってるようでありがたい。今日の我々は未来のために何を積み立てているのだろうか・・・。
- Android の "focus mode" はちょっといいかも。
- Beta3 やるデバイスの多さは Treble の成果か。世の中はちょっとずつ進んでいる。
- Pixel 3a, OnePlus でよくね...と思っていたが OnePlus より安い。頑張ったな。
- おわり。特に面白いものはなかったな。午後に期待。
- 午後は、特に exciting ではないが Android Studio が真面目にバグをとったのはいい話。
- Google Pixel 3A Review: The $400 Smartphone You’ve Been Waiting For - The New York Times
- メディアのレビューは概ね好意的。やはり安いのは大事。Snapdragon 670 は Big 2, Small 6 というコア構成で単に遅いのみならず割と性能特性が違うため、がんばってチューンしていきたい所存。
- 昼飯もたべすぎた・・・。
- チームの人が "onDraw() ではアロケーションを減らそうな" みたいなプレゼンをしていてウッとなる。このへんの溝はなかなか埋まらなそう。
月曜日
-
- 04:56 CI つけたい。あとそろそろ wrap up の方針を固めないとな。
- CI はとりあえず Cloud Build を使ってみる。
- Python GAE 用 Docker image というのがあったのでこいつでビルド(というかテスト)を動かせないか手元で評価しているが、むしろ普段の作業も pyenv でがんばるより Docker に統一した方が良い気がしてきた。あとでやる。
- Credential の置き場がないという当初の懸念までたどり着いた。GCP 的な正解は KMS を使えらしいが個人プロジェクトには大げさすぎ。Service Account の JSON をどこかから持ってきたいだけ。
- Git にチェックインしてしまう -> 人としてどうだろう。
- GCS に置いて pull する。これも微妙だが GitHub のパスワードではなく GCP の credential の裏にあるだけマシと言える。
- GCloud のコマンドでなんとかできそうなものだがわかんね。
- テスト動かすのはあとでやるとして、 git clone のち gcloud app deploy するところまでやろう。
- しかし GAE と Cloud Function のコードが同じ git repo に入ってると都合悪いので分離しなければ。Yak shaving は続く。
- Git repo を分離したところで今日はおしまい。
- Microsoft Build 2019 // Vision Keynote + Imagine Cup World Championship - YouTube
- キーノート 0830 からですか。早いな。
- 自分のデータを食わせた言語モデルに基いて音声認識できる!これはすごいよさそう。
- Microsoft Graph がなんなのかまったくわからないので調べる。Office 365 の API をかっこいいかんじに統合し、その上に色々付加的なサービスを乗っけたものらしい。いいじゃん。O365 つかってないので使いみちがないが、G Suite / G Apps の API がこういう風だったら使いたいことは色々ありそう。
- Edge, IE モードにシームレスに切り替わる... これほど unsexy かつ一部の人には超実用的な機能はない。そして ad blocker. これを tracker blocking と呼ぶことにしたのは発明。
- Case Study の多さに景気を感じる。そして Windows 全然でてこなくてすごい。明日以降なのかもしれないが。
- 良さそうという気持ちと根本的な無関心。Microsoft ecosystem と自分は距離がありすぎる。興味を持つにはもうちょっと接点が必要。どこかに Windows インストールしたい。
- Inside Microsoft’s surprise decision to work with Google on its Edge browser - The Verge
- いまいちやる気はないがユーザはいっぱいいる Windows 版を専門家が良くしてくれるのは Chromium 的に何一つ問題ない気がするが、他の会社のもってるコードベースさわるのはなんだかんだで面倒。がんばれ。
- 仕事でも家でも Python を書いている結果、少し習熟度が上がってきて楽しい。なにかが上達するこの感覚、ふだんは中々味わえない。
- 04:56 CI つけたい。あとそろそろ wrap up の方針を固めないとな。