0027. 振り返りつつ、あけましておめでとうございます

みなさん、あけましておめでとうございます。
本年もなにとぞよろしくお願いいたします。

いやはや2023年、あっさり迎えてしまいました。
今年は少しずつでも前進していきたいものです。なんせ「TOEICを昨年度より下げない」という後ろ向きな計画はバッチリ5点後退したので、進むつもりじゃないと何も維持できないなと思った次第で。

ということで、前進するため、ひいてはみなさんにコントリビューションするためにはまず自分の足下を確認させてください。ほんとは振り返りは別の記事で書いておかないといけませんでしたね。

昨年の草はこんな感じ。
Pasted image 20230101174611.png
やはり伏せっている時の空白が目立ちますね。自分だけではなくて、マイキッズが入院したところなんかもぽっかり開いてます。体は資本……。このあたりはしっかりやっていかないといけないです。まず痩せないとな。

Self-hosted LiveSyncも振り返ってみましょうか。

まずスター。もうこれは感謝感涙で、コンスタントにスターをつけて頂いてます。愛されプロジェクトとして頑張っていきたいです。Screenshot_20230101-221803.png

思えばこの1年で相当いろんな機能がつきました。
0.4.1を1/5にリリースして、11日には0.5.0をリリース。ここで、プラグインとその設定の同期をリリースしてます。
当初は非公開APIっぽいものはあんまり使ってなかったので少し抵抗があったのですが、実装してしまうと実に快適で……。「ちゃんと動くかはしっかり確認しよう」という感じに今では堕落してます。このあたりの事情で、基本的にSelf-hosted LiveSyncはstableだけの対応になってます。(Catalystではありますよ)

その次はHistoryダイアログですね。これも実に便利。この時点ではオプションでオプトインしないといけない機能だったのですが、今ではデフォルトONです。Self-hosted LiveSyncに最近ついた自動マージはこのあたりの機能が礎になっていますね。PouchDBの良いところを、diff-match-patchでさらに強くしてるような感じです。

4月の0.8.0、この新しい接続方法は、PouchDBと相性が悪くて、特にLiveSyncができなくなるというトラブルが起きました。毎回、新機能をつけると「元の動きをさせる」という意味合いのスイッチをつけていて。こういう風にオプションつけるのは設定難易度ばっかり上がるので考え物だと思ってたものの、つけてて良かったと思いましたね……。ただまぁ、最初から動くようにしようぜと言う感じもあります。この接続方法、多少早くなって、CORSの制限をうけなくなるのですが、今はCouchDBを自動設定するためにだけ使ってます。

その後はしばらくパフォーマンス関連が続きます。実際、めちゃくちゃパフォーマンス上がりましたね。多分去年のLiveSyncを使うと皆さんめちゃくちゃびっくりするんじゃないかなって。重いから。起動にすごく時間がかかったり色々ありましたね…。

次のバージョンまでに一回入院。脇腹に穴を開けて沢蟹の爪みたいなのがついたΦ2ぐらいの棒で肝臓を取って検査してもらいました。すっっっごい痛いです。みなさん肝臓はお大事に

6月の0.11.0で、設定のエクスポート・インポートができるようになりました。これはもうめちゃくちゃ便利で。こういうのがないと設定は大変だよなって思ってます。次はQRコードにして表示したい。

そこからはまたしばらくバグフィックスと速度改善ですね。e2eeを同期中に自動的に行うようにして、シンプルにしたりしてます。

7月の0.12.0では、隠しファイル全般を同期できるようになりました。プラグインとその設定、冗長では?という声があって、雑な方を作ってみるかと思って作ったのがこれです。実際これでいいケースの方が多分多いです。僕もこっちを今は使ってます。

この後は低空飛行ですね。最大に甲状腺が悪かった時期です。本当に集中力が無かった。疑おうと思わないとわからない場所という事で、みなさん気をつけてください。集中力が無い、異常に疲れる、痩せる、汗で服がいたむ、etc…。気になったら病院でお医者さんに言ってみた方がいいですね。
一応、8月には隠しファイルを同期したときに該当のプラグインを再読み込みするかどうかのポップアップが出るようになったりしてます。

あ、ここでGitHub Actionsでリリースビルドを行うようにしてます。もうこれが画期的でした。Jenkinsおじを調教するより遙かに楽で、もっと早く使えば良かったと思ってます。今では全プラグインこうしてますね。このサイトもですが、このサイトは最終的にNetlityでもビルドしてます。

その後はちょっとした機能追加が続きますが、地味に改善されてます。ファイルの変更履歴を、ファイルを開かずに表示出来るようになったので、隠しファイルを元に戻したり出来るようになりましたね。あとは「いくらなんでも英語があかんと思う」みたいなissueとプルリクをいただいてめちゃくちゃ直ったりしました。こう言うの、全然気にせず出してくださいね。めっちゃありがたいです。まぁ、Self-hosted LiveSyncやり始めた頃って本当に英語下手で。特にGrammarlyが指摘してくる英語が全然ピント来てなくて、壊滅的でした。そこからロケールをen-GBにしたりして、だんだん改善してきてやっと今なので、ここからが伸びるときだと思っててください。

そして8月末に0.14.0。このあたりでどうやら投薬治療が功を奏してやる気に満ちあふれてがっつり直してます。

この後は改善が続いたり、ビルドターゲットを上げたりしてて。いやはやビルドターゲット上げるだけでかなり速度も変わるもんですね……。今ももう少し上げたい(具体的にはiOSでBigIntegerが使いたい)のですが、ObsidianがiOS 12系をまだサポートしているため、ES2018+αでとどめてます。

9月には0.15.1で設定ダイアログを大手術しています。ぷーおんさんとの対談ででた、設定画面がいささかややこしすぎる、というお話があり、確かに……という感じでこれも瞬発的に直しました。Webと全く同じなのでやりやすいですね。ただ設定画面は作り直したい。Obsidianのコントロール使わないと駄目かな? という感じがするのですが、ほかのプラグインで設定画面をハックしたりするものがあった時に食い合わせが悪くなる一方だと思うので、現状の形になってます。
元の挙動に戻すスイッチがややこしさを上げる一因かも。

10月に0.16.0ですね。ここで隠しファイルを、スキャンから内部APIを使った検出に変更してます。これはめちゃくちゃ効果ありました。
イシュー報告用のツール作ったりもしてますね。設定項目が多すぎるので
その後はまた改善に明け暮れてます。

0.17.0は12月ですね。ここではチャンク保存を少し触ってます。データの前方・後方互換性を保ちつつ、そこから生まれるデータは改善されている、という姿に出来たのは嬉しかったですね。
0.17系では、自動的にマージする機能をめちゃくちゃ勇気を出して実装しました。今までは基本的にデータが消える可能性のある行為は全部使う側任せだったので、煩雑だよなぁ、と……。自動マージはその極みなので、めちゃくちゃ怖かったですね。でも今のところ元気に動いてます。

さて、こうして振り返ってみると、1ヶ月に1回メジャーバージョンアップしていたということに実は自分で驚いています。あとは体調につられて結構浮き沈みありますねやっぱり。やりとりのトゲも全然違って、体調病んでるときは普通にメンタルも若干病んでて振り返ると冷や汗が出ます。

ということで、今年の抱負は「体調管理に努める」としようとしましたが、こんな後ろ向きだと絶対に達成できないこともわかったので「筋トレする」にします。あとは英語もやりましょう……。「BBC聞きながら筋トレする」です。

ではスクワット20回とプランク20回から始めてまいります!
改めて、皆様今年もよろしくお願いいたします。