Fragments #3

日曜日

  • 04:59. Python の async/await を復習したのち webhook 実装します。
    • 自分の理解のために書いておく: Python Async/Await のいまいちさ
    • Webhook. Cloud Function HTTP, 引数に flask.Request が降ってくるって雑すぎじゃね?
    • テストを書いているはいいが、いつも fake している実装の中にバグがあるのだった。他の部分のバグをキャッチしてるおかげだから文句いっても仕方ないんだけど、型が合わないエラーが辛い。Mypy つかうべき?
    • WebHooks 動いた。もう理論上バッチはいらないはずだが、一日一回に頻度を落として残しておく。といったところで時間切れ。
    • FaaS, WebHooks を受ける口としては完璧以上のハマりぶり。
  • 招待された baby shower の potluck が豪勢で、つい大量の sugar を摂取してしまう。
    • その後食べすぎで気持ち悪くなる。すごい久しぶりの体験・・・。
  • HotOS - XVII
    • 軽薄な paper が多いが、それがよいとも言える。
  • Cloud Build - Automated builds for continuous integration 
    • 眺めている。GCP の Managed CI. CI サービスってなにげに serverless だよな。

土曜日

金曜日

  • 05:24. 目覚ましつけ忘れ.
    • テスト書きつづき. 昨日は Web 側のテストを書いたので今日は importer 側を書く.
    • テストで database に副作用があるのはさすがにいまいちなため適当に functional なかんじに書き直したのち副作用を fake する。この手のバッチなコードはフレームワークとかないのでやりやすい。一方で Flask 側グローバル変数にべったりなので若干だるい。しかしそれをベタに testable にすると Flask の簡潔さが失われいまいち。たぶん上手にフックする方法があるんだろうけど。そのうち調べます。
  • この最適化いれてくれ、と自分が前にファイルしたバグのリンクが送られてくる。カンで優先度きめるのやめてくれ他に速くなりそうなネタやってるんやで・・・と押し返すのもかったるいので先に片付けることにする。Sigh.
  • スマホは視界に入っているだけで気が散るというが視野内のデバイスが 5 台を超えたあたりからどうでもよくなる。
  • 最近仕事中はおおむね YT Music Christina Perri を聴き続けている。購読数をみるとメジャーな人っぽいが、なぜ聴きはじめたのか覚えていない。それでも発見されてしまうのがメジャーというものなのかもしれない。飽きる前に同系統で適当にメジャーなアーティストを労せず開拓したいのものの良い方法がわからない。YT Music の Radio を聞けば良いのだろうか・・・。
  • 加齢のため 16 時にして out of 気力.

木曜日

  • 05:01.
    • バグがあったのを直して OAuth つけたらとりあえずは完成かな。Draft でない状態の公開は年末にでもやりましょう。CI/CD とかはやりたい。
    • 動いた。よしよし。自分のコード規模だと手間は IAP 導入と大差なし。
    • CI にむけちょっとテストでも書こうかなと思うが CI 前提だと現状まったくテスト不可能であると気づく。なぜなら CI 環境に Firestore アクセスのための credential が無いから。しかしこの理屈だと CD もできないので、なんとかして crednetial を渡すのが正しい。逆にテストは Firestore に依存してよい。
    • テスト書き途中だが時間切れ。
  • Where the Good Jobs Are - The New York Times
    • 高卒、短大卒だと地方都市の方が食ってける仕事あるよという話。
  • Webhooks — Support — WordPress.com
    • WordPress, Webhooks あるじゃん! Cron いらなくね?ためしに Cron の頻度を下げて webhook を足すべし。
  • Jupyter/Colab/IPython は関数の中とかで唐突に output = !adb shell ... とか書けるのが狂っているが、まったく便利。Ruby にも backquote があることだし Python に backport してほしい。
  • Build が 5/6-8, I/O は 5/7-9. WWDC 6/3-/7. WWDC 行ってみたい。
  • Desktop Chrome で久しぶりに標準の NTP に戻してみたら検索ボックスが鎮座している。しかしフォーカスは omnibar にある。意味あるのかこれ・・・。NTP に何がほしいか考えてみる: 履歴、ブックマークなどがほしい。
  • 自分よりだいぶ rating のよい社内知り合いが出世に失敗したと嘆いており、5% くらい残っていた出世したい欲が 0.5% くらいまで低下。出世、金を(すごく)稼げるのはいいがそれ以外マジでいいことなさそう。会社の景気がいいうちに全てを犠牲にして稼ぐだけ稼ぐ、というのはそれなりに合理的な戦略だと思うもののそんなガッツはなし。
  • ふと思うに、これが世に言う「出世競争に破れた」なのではないか。自分、破れてたか。納得。

水曜日

  • 05:17. 猫を撫でながらダラダラしてたらこんな時間。
    • 管理画面サービスつくるべし.
    • サービス追加、すごい簡単。これ色々便利なのでは・・・。しかし手順どおりにディレクトリわけるサービス間のコード共有がかったるい。同一ディレクトリに複数のサービスを突っ込む方がラクそう。
    • 一般論として monorepo 的にプロジェクトのコードを管理するとき Python のコード共有をどうすればいいのかよくわかんない。Requirements file 仕様 によれば git repo のサブディレクトリとかもインポートできるっぽいので自分自身の git repo から pip install すればいいのかもしれないが、そもそも monorepo という方針が世間に逆行している感。おとなしくレポジトリいっぱい作れということか。というか Microservices なんだから API 公開すべき?まあねえ・・・。
    • サービス増えたら手動デプロイいよいよかったるくなってきた。CI/CD 必要。あとそろそろ若干テストも欲しい・・・。
    • がー IAP はサービス単位では適用できない!ダメじゃん!がっかり・・・。OAuth 実装するしかない。面倒・・・。
    • singingwolfboy/flask-dance: Doing the OAuth dance with style using Flask, requests, and oauthlib. 明日これつかう。やれやれ。
  • F8 Keynote Day2
  • Tiller Money - Automated Personal Finance Spreadsheets
    • Spreadsheet  に収支履歴をインポートしてくれるサービス。Spreadsheet 上にサービス構築しちゃうとは大胆な。
  • クレジットカード新しいのが届いたので各種支払い設定を更新。11 箇所あった。
  • 子供向けの日本語の月刊誌(こどものともなど)を届けてくれるサービス。400 円の本に 800 円の送料を払う。それが二冊、三日のあいだに届く。まとめて送ってくれ・・・。こAmazon が参入してこういう不自由な業者を撲滅してくれればいいのに。
  • Rails 6: B-Sides and Rarities — Martian Chronicles, Evil Martians’ team blog ときどき Rails 勉強しなおしたい欲が湧くが、色々 Python が事足りすぎるためもはや Ruby を書く気が起きない。

火曜日

  • 05:00. 細かい修正をして、あとは適当に newsletter service でも試してみるかな。
    • 細かい修正終了。あとは実際に draft ではないものを publish する仕組みが必要だが、当面はいらないので保留。
    • そのほかやりたいのは CI/CD と Stackdriver の instrumentation. 前者は gcloud SDK のコマンド覚えるのかったるいためで、後者は単なる好奇心。だがまあ明日以降。
    • CI, GitHub Actions を使おうとしたが Limited Beta なので諦めて CircleCI のドキュメントを眺める。が、手を動かすのはまた今度。
    • Newsletter, Tinyletter は死にかけ疑惑らしいので Mailchimp か Revue の二択。
    • Revue, 編集画面で日本語 IME が全然ダメ。そして WISYWIG なのに箇条書きができない。アホか・・・。
    • Mailchimp はどうかというと・・・これは基本的に広告的なのを送る仕組みなので大げさすぎ。
    • いちおう Tinyletter も試すと、これが一番近い。ただ Newsletter をプライベートにする仕組みがない。
    • そのほか substack というのもあるらしいが・・・おとなしく Gmail から送りつけるのよい気がしてきた。そうします。新しいものを使ってみたかったが自分がやりたいのは本質的にメールを送ることなのだった・・・。

月曜日

  • 04:52. 久しぶりに 5 時前。やはり 9 時半前には寝ないと無理だな。 #MN
    • とりあえずテンプレートをつけるべし。
    • だいたい動いた気がする。まだ細々問題あるけど newsletter 送りつけられるくらいにはなった。
  • Opinion | Can We Please Relax About ‘Socialism’? - The New York Times
    • アメリカ人は社会主義を毛嫌いしすぎ、という話。自分はアメリカ的価値観では完全にコミュニストだ気づいて以来コミュニストを(心の中で)自称するようになった。個人の自由、そんなに重視してない。
  • そろそろ Snippet Train (aka 週報)に復帰したい機運。来週からかな。
  • I/O の時期は道が混むからよろな、というメールが・・・てか来週 I/O なの?時の流れは早いね。そのせいでゴミのような bureaucracy bug が回ってきたのか・・・。なお徒歩通勤者なので道が混むのは影響なし。
    • I/O 来るひと茶でもしましょう、とかどっかに書きたいが当てがないな。とりあえず Twitter に書いてみたが・・・。
  • Letters のドラフト URL リストスクリプトを手元の Jupyter から Colab に移行。
    • 物事をコード共有ではなくコピペで済むくらい仕様を単純にするのが重要。その点 SQL のようなコピペ言語に育てられたエコシステムは強い(気がする)。