1115
昨晩はDjangoのコンテナをVPSにデプロイして、Let's Encryptで証明書とったりしました。いやー、こういうときフルDocker化しておいて良かったなあと感じますね。まあ証明書新しく取ることなんてそんなしょっちゅうあるわけではないんですけども。
仕事はまあ普通。ちょっと余裕あった、けどなんかXcodeのバージョンを行ったり来たりしているうちに時間が過ぎ去ってしまった。Swiftのバイナリの安定性のことは詳しくないんだけど、5.0時点ではまだ完全に安定というわけではないので(ABIは安定だけどまだ完全にバイナリ互換というわけではない?みたいなステータスだった気がする)、結局Xcodeが変わるたびにCarthageが走って、そしてそれがとても遅い。Carthageはどうしてあんなに遅いのか。githubからダウンロードしてきてビルドしてるだけのはずなんだが。そしてその点では結局CocoaPodsと大差ないはずなんだが。
Carthageは、ポストCocoaPodsになると期待されていたけれど、結局完成する前にSwiftPMがXcodeでサポートされるようになってしまったので別にいらなくなってしまった気配がある。アクティヴにメンテナンスされているライブラリはだいたいSwiftPMに対応しているし。まあパッケージマネージャを作るのってたぶん想像するよりずっと難しいんでしょうけど(依存関係の解決とかすごく大変だと聞いたことがある)。
夜はまたTypeScriptを書いたりしていた。画像の同時並行アップロード機構は、async/awaitだけだと書けなくて(for文とかで無理矢理書いてしまうと直列になってしまうようだ)、なのでそこだけPromise.all()を使うようにした。だいたいいい感じに動いたのでうれしい。ただエラーハンドリングをまじめにやっていないのでそこはあとで考えないといけない(まあ単なるアップロードエラーなら通知を出してスッと消せばいいように思う)。
やりたいことに対する技術的困難はおそらくほぼすべて解消されたので(パフォーマンスのことは一旦無視するけど)、あとは手を動かすだけのフェーズっぽい気がする。こうなってしまうと僕はわりと関心を失いがちなんだけど。それはよくないので、今夜は残りのタスクを書き出して優先順位をつける作業をしようかな。
週末だ!