koboriakira.com

NGSLのリストをNotionに移す。覚えたかどうかを確認する欄もつくって、すこしずつチェックをつけている。

こんな感じでドップリNotionにハマっている。これまでやりたかったことが結構できている感じがして、アイデアを試している。

すでにバレットジャーナル、GTDのテンプレートが公開されているものの、Notionの本文は自分でテンプレートを試行錯誤できるところだ。そういう意味でバレットジャーナルと相性がかなりいい。

まだ単なるノートアプリだけど、たぶん来月の終わり頃にはかなりいいのができていそう。


バックアップが終わったので、再インストールを実行。1時間強で設定も終わり、昨日とほぼ変わらない使い心地でブログを書いている。

とくにbash_profileとVSCodeの設定ファイルをgit管理しているおかげで、ターミナルやエディタまわりがいつも通りに使えるのが大きい。


New General Service Listの単語リストをダウンロードしてきた。NGSLってのは日常でよく使われる単語を集めたリストで、この2800語をおさえれば90%以上の単語は知っていることになる。

「2800」というとさすがに覚えている気がしてけど、意外と知らない単語も多かったのでこの機会に覚えなおそうかと決意。ちょうど下のような動画も見つけているので、リスニングもふくめて復習しよう。

ちなみにもともとダウンロードした目的は、日常で読む英文について「NGSLの単語かどうか」を判定するライブラリを作ろうかと思ったことから。いま作っているTODOリストのアプリの実装が終わったら試してみる予定。


2020年に入り、一度Macbook Proの再インストールをしたくなって準備。

昔と違ってクラウド上で使うサービスが増えたので、かなり気楽に再インストールができる。ダウンロードしないといけないアプリケーションを集めたら15個ぐらいだったのに驚きだ。音楽制作をしていなければ多分10個もいかないだろう。

実際、ChromeとVSCode、1passwordを入れれば、あとはほぼ「欲しいときにインストールすればいい」程度のものだし。とんでもなく便利。


今日ふと「オブジェクト志向プログラミング」と「関数型プログラミング」の違いが自分の言葉で明確にできたのでメモしておく。

オブジェクト志向はオブジェクトの「状態」を活用して行うプログラミングで、関数型は名前通り「関数」を活用するプログラミングである。

この違いが明確になるのが「インプット」と「アウトプット」の関係だ。

関数型はあるインプットを与えれば必ず同一のアウトプットを返す(べきである)。一方でオブジェクト志向はインプットだけでなくオブジェクトの状態の加味したうえでアウトプットを返す。

一度実例も書いておいたほうがいいかな。GreetingとかCalculatorでまとめてみよう。


こういったメモ程度の思考は最近とくに活発で、たとえばハロプロのことを結局いまだに考え続けている。 これはファンじゃないから出せる発言だけど、モーニング娘。は「道重さゆみの呪縛」をとうとう乗り越える最初の段階に来ている。

いまが呪縛の最も強い時期だ。そしてそれは今後は弱まっていくことを意味している。新メンバーの、名前がわからないけど一番ブッ飛んでいる娘が、その未来を引っ張っていくことだろう(完全に負けの見えている賭けだけど、意外と当たるんだから侮れない)。

そしてずっと分からなくて今も分からないのがJuice=Juiceだ。宮本佳林の無双を当然のように思っていたけれど、そんなことはなくて、「実はすごいバランス感覚の良い方なのかしら、、、?」とすごい悩まされる。

そう思いながらBEYOOOOONDSの「元年バンジージャンプ」を聴いていたら、次の自動再生ではじめてインディーズ時代のMVが目に入った。

31歳になったって、何もわからないものはたくさんあるのだと改めて認識。


2020/01/16

2020/01/17

昨日やっていたGoogle Sheets APIを活用と、パッカーズのブログを更新した。


前者のほうは、RDBから取得したデータをcsv形式で保存して、これをGoogleスプレッドシートに連携するシステムを作った。

以前よりDBの内容を抽出して同僚に見せたかったのだが、これを自動で準備できるようにしたかった。構想1日、実現2日、その間のサボり半年、ぐらいで完成。

ポイントはやはりスプレッドシートの連携だった。昨日書いた通り認証がらみをクリアしたことで、一気にモチベーションがあがって、あとはスムーズに完成できた。

今頃もバッチ処理として動いていることだろう。エラーになっていたりして。

---パッカーズのブログは、時間が経ってしまって書く気力が落ちそうだったが、なんとか最後まで到達。 明日は49ersのプレビューを書かないと。ガッツリ時間がかかりそう。


OAuth2

2020/01/16

最近は仕事が落ち着いていて、これまでやりたかったスカンクワークに手を出しまくっている。 そのなかでGoogle API、とくにSheets APIを使ってみたくて、何度も転びながら最後にはcurlでシートを操作することができるようになった。パチパチ(昔読んでいた森博嗣の日記を思い出した。この擬音語、今も使うのだろうか)。

何が難しかったかというと「認証」で、恥ずかしながらこれまでまったく勉強したことがなかった。とくにOAuthは触れたことがなくて、今回の遊びではじめて認可コード、アクセストークン、リフレッシュトークンの意味合いを掴みはじめたところだ。

以下、正確ではないことを承知で残しておく。


そもそもOAuthを使う背景は、自分が持つ権限をアプリケーションに「移譲」することである。外部のアプリケーションがGoogleのサービスに対してなにか操作をする場合に必要となる。

APIを操作するにはアクセストークンが必要となる。Googleでは、アクセストークンを入手するには2種類の方法がある。

  1. ユーザが直接承認することで取得した承認コード(認可コード、authorization_code)を使って取得する
  2. 1の方法で合わせて取得しているリフレッシュトークン(更新トークン)を使って取得する

簡単なイメージとしては、はじめての実行には1が必要だ。しかしアクセストークンはすぐに利用できなくなってしまうので、新しいアクセストークンを取得しなければならず、毎回ユーザの承認をして認可コードを取得するのは面倒だ。

そこでもしリフレッシュトークンを取得済であれば、ユーザの操作をスキップしてアプリケーションとAPIだけでアクセストークンの再取得ができるのである。

今回はGoogleで試していたが、個人ではTwitterのOAuthも触ってみれればと思う。これは先の話かな。

---グリーンベイ・パッカーズのブログ用に、先日のシーホークス戦のふりかえりとチャンピオンシップで戦う49ers戦のプレビューを書いている。 プレビューのためにWeek12の49ers戦も見返したが、やはり圧倒的に負けていて、正直いって勝ち目が見当たらない。

何度もフィルムを止めたりしながら見て感じたのは、とにかく相手のディフェンスラインが強いこと。

真正面からの攻略は難しいのでクイックスクリーンやエンドアラウンドなどでサイドを突きたいが、これも結構な頻度で止められていた。

ほかのプレビューではどう語られるのか楽しみにしつつ、早めに自分の感想を書かないと。


2020/01/14

2020/01/15

日次で実行していたGASが止まっていたので調べてみたら再認証が必要らしい。たまに手動で実行して認証してあげないといけない、ってことかしら。よくわからない。


PWAのほうはQiitaでも書いているが、とりあえず認証機能をもったアプリをリリースするところまでは成功した。

[https://qiita.com/kobori_akira/items/fcda7629edba8042493a]このあとメモのCRUDを実装するところ。モックまではなんとか完成したけど、きっとFirestoreを利用するところでまた転ぶことだろう。そういうことが好きなのでいいけれど。