今月の振り返り。
今月の投稿
今月からnoteにちょっとした記事を定期的に連載していくことに決め、4テーマ4記事を投稿した。とにかく継続するということが重要だと思うので毎週欠かさずやっていきたい。
一方で、ちょっと忙しかった上にそれらのための画像の準備が地味に手間なこともあり、しばらく通常のサイト更新は滞っていた。それでも下旬には思いのほか色々書けたし、自分の中で結構大事なことを言葉にしておけたと思う。
しかし「うちあわせCastノート」がどんどん溜まっている。まずい。(別に公開が目的ではないし自分との約束を破っているというのでもないが、単純に溜まると追いつかなくなるので。)
今月のノートフロー
いつもは後半に置いている項目だが今回は先に。諸事情により今回は結構変わった。
Capacities
タスク、プロジェクト、日誌
好きなもの、思い出
Dynalist
執筆拠点
人間・社会についての考え事
過去の日記・メモ
Obsidian
読書メモ
知識類全般
Webクリップ
Noratetsu Houseの用語集データ管理
Notion
家に関わる情報の管理
写真の管理
画像系のクリップ
A5綴じノート
雑記帳
単発の調べ物類
バイブルサイズ6穴システム手帳
- 参照用
諸事情というのはDynalistの通信量と挙動の重さの問題だ。最近通信量の増加とAndroidアプリの動きの悪さが気になっていた。
続きを読む(クリックで開く)
AndroidのDynalistアプリを一日あたり数十分程度で数日使っただけで800MBくらい通信していたので、PCのブラウザのデベロッパーツールで通信を調べたところ、Dynalistを開いた時点でそのファイル内に存在する画像をおそらく全て取得していることがわかった。PCブラウザであればキャッシュがあるので毎回毎回全部をダウンロードしているわけではないが、Androidアプリだともしかしたら頻繁に全ファイルダウンロードになっているのかもしれない。
また、PCのブラウザ版では気にならないもののAndroidアプリでは動作が妙に重くなっている実感があったのだが、それは単純に全体のノード数の問題があったように思われる。最近他のツールのデータをDynalistにガンガン取り込んでいたので、それに伴って何らかの処理が嵩んでいたのかもしれない。
そういうことがあったので、ノード単位の検索が便利だからといった理由で放り込んでいたようなものをDynalistから撤去することにした。同時に、Dynalistに置いていることによってDynalist(あるいはアウトライナー)特有の良さを感じるということができていない類の情報の置き場も見直すことにした。
つまり、先月まではDynalistを「Capacitiesで扱うもの以外」の場としていたのを、「Dynalistである必要があるもの」に絞ることになった。
CapacitiesではCapacitiesじゃなきゃいけないもの、DynalistではDynalistじゃなきゃいけないものを扱うとして、そのいずれでもない感じのものの受け皿がどこになるかというと、今のところObsidianが最適という結論に至っている。
Obsidianについては、オンラインのタイミングで自動でローカルのmdファイルを更新しておけば、その後オフラインを強いられても支障がないということも重要なポイントだ。ここ数ヶ月の間にDynalistのサーバーエラーに何度か遭遇したし、環境の都合でオフラインでしばらく過ごす必要に迫られたこともあった。その意味でObsidianは困ったことになるリスクが低い。
他に、画像の管理にしばらく迷っていたのだが、それはとりあえずNotionでやることにした。実はここのところDynalistとGyazoの組み合わせで管理することを進めていて、今回発覚した通信量の問題でその方式をやめざるを得なくなったのだった。Notionはここに書いているようなノートフローとは別の用途でなんだかんだずっと使ってはいたのだが、最近初めて存在に気がついた機能などが色々あって、今は楽しく触っている。
今月のプログラミング
なんかいろいろやった。
階層付きマークダウンアウトライナー(ビューワまで)
ファイルに親子関係を定義してアウトライン表示するObsidianプラグイン
JSXの自作componentのモジュール化とFreshプロジェクトのリファクタリング
Dynalistにあるサイト記事データをmdファイルに変換するプログラム
自作Chrome拡張機能のservice_workerとcontent_scriptsの役割分担の最適化
前項で書いたように、サーバーエラーの問題も含めてDynalistには若干の不安があり、更に開発自体がストップしているので依存していると危ないというのは前から考えていたことではある。しかし自分の中でDynalistの代わりになるアプリケーションが他にない。アウトライナーの候補がそもそも多くないし、APIで自由にデータを編集できるものでないと個人的にはわざわざ使う意味がない。
オフラインでも問題ないようにするには自分でローカルファイルベースの似たアウトライナーを作るしかないかなと思ったのだが、Androidアプリまで作るのはハードルが高いので(無理ではないけれど手間がかかりすぎる)、できれば専用アプリケーションを通さずに直にデータを編集できる形であってほしいと考えた。
それで思いついたのが、階層付きテキストにMarkdownを組み合わせた規格だ。これについては別途記事を書く(今月中に書こうと思いながら忘れていた)。
で、実際にビューワまでは作ったのだが、そこでふとObsidianのファイルをアウトラインで管理する方法を思いついてしまった。
https://bsky.app/profile/noratetsu.bsky.social/post/3ln3dekbfkk2j
これについても後で記事を書く(今月中に以下略)。これがそのままDynalistの代替になるわけではないが、Dynalistがまかなっていた一部の用途はこちらに移して問題ないという感じにはなった。Dynalistで扱うものを「Dynalistである必要があるもの」に絞ることに貢献するプラグインになっていると思う。
続きを読む(クリックで開く)
ここからはノートツールとは関係ない話。
Fresh(=preactで書く)のプロジェクトを二つ作っているのだが、共通して使うコンポーネントがあって、それがそれぞれにある状態に長らくもやもやしていた。今月になってふと気がついた。JSXもモジュールにしてGitHubに置いてそこからimportすればいいのではないか。
なぜか今まで全然思いつかなかったのだが、JSXのコンポーネントも当たり前にGitHubからimportできる。プロジェクトに固有のコンポーネント以外は全部そっちに置いてしまうことにしたら、コードがものすごくスッキリした。
何度も書いているが、このサイトの記事データは現状Dynalistにあって、更新したら手動でJSONに加工しておいてサイトに読み込んでいる。何百も記事データがあるとアウトラインはかなりの規模になる。それが膨張し続けるとちょっとどうかなという心配が募ってきたので、mdファイルでの管理に切り替えられるようにしようと思ってコードを書いた。
まだ現時点では移行はしていないが、mdファイルにしようと思った時にすぐできるようにプログラムを作っておいた。記事本文をHTML化するにあたってアウトライン構造を利用したやや複雑な処理をしていたので、そのデータをMarkdownにするのは結構大変だった。
あとChrome拡張機能について。拡張機能で動かすスクリプトは、ページ上で動くcontent_scriptsと、バックグラウンドで動くservice_workerとがあって、その二つの間でメッセージの送受信をして連携するのだが、どの処理をどっちに書くのかというのが今まで曖昧だった。どちらに書いても同じように動かせる処理が多いからだ。
大きな違いは、content_scriptsだとAPIを呼び出した際に今開いているサイトのセキュリティ設定によってはブロックされることがあるがservice_workerではそのような制限がないこと、逆にservice_workerでは今開いているページのDOMにアクセスはできないことである。
基本的にはservice_workerに全ての処理を書き、content_scriptsはサイト上の情報を取得する処理とサイト上で実行する処理だけにすればよいと決着がついた。役割が明確になり、コードも綺麗になった。
今月の情報整理
ここまで書いたように、今月の情報整理はDynalistの見直しが主になった。
あとはObsidianのプラグインを作ったこと、Notionの機能を勉強し始めたことで、それらのツールに対して感じていた「このツールはこう使うツール」というイメージが変わり、いろいろな可能性を思いつくようになった。
昔ならデータの移行というのが大変すぎて軽率に情報を分散させると後から困ったことになったが、今はいざとなればプログラムでガッと引っ越しできるので、気楽に複数ツールを使うことができる。
なので純粋に「この種の情報はどのツールが一番馴染むか」ということに集中して考えられるし、その模索をもうしばらく続けようと思っている。
今年の目標の進捗と再検討
今年の目標とそれぞれの状況はこんな感じ。
デジタルデータおよび紙類の整理
先月まで「これでよさそう」と思っていた仕組みが見直しを迫られたので、今月はドタバタとそれに対応することになった。新たに整理が進んだというよりはこれまで整えたものの移転がメインになった。
しかしDynalistに頼れなくなったことで他のツールの可能性に目を向けられ、結果的にはより洗練された形に近づいたように思う。
紙の整理は進まなかった。
二度手間撲滅
今回目立つものはJSXコンポーネントのモジュール化。他にもコードの合理化が進んだ。毎月いろいろやっている気がするが未だにやることがある。
あとは部屋の模様替えをして、物の配置などを合理的にした。前なら思いつかなかった(だからずっとそのままになっていた)ことについてあっさり解決策を思いついたりして、自分の頭の動きがだいぶ変わってきたような気がしている。
概念やシステムの明確化と各媒体に合った発表
大きいテーマではやっていないが、小さいことについてはいろいろ記事を書けた。
noteの更新は予定通りにできた。
どうでもよいことはどうでもよいとする
他の誰かが言ったどうでもいいことに感情が振り回される、ということはあまりなかった(とりあえず覚えていない)。
一方で、なんと言えばいいのか、「先んじて見抜けたぞ」みたいなアピールをしてしまいたくなるようなことがあって、それが自分で気になった(のらてつとして発信したことではない)。自分の見栄なんていうのはどうでもよいことで、アピールしたところで自分が思うような成果などはないのが普通なので、余裕をもって黙っているということができるように心がけたい。
この4目標は来月も継続するが、次から新たに「読書を楽しむ」ということを目標として加えたいと思う。
毎年のように「今年は本を読もう」と思っているし、真っ先に入れるべき目標ではあったのだが、そうやって毎度掲げていても読書体験が良くなっている感じはしないので保留にしていた。そして「読書する」ということを目標にしても多分一生駄目だなと思ったので(だって読みたくないし)、「読書を楽しむ」という目標に変えることにした。
本を読んでいないというのは、自分が考える「このくらい読んでいるべき」というラインまで達していないという意味で、本当の意味で一切読んでいないということじゃないのだが、まあ足りていないのは明らかなので改善したいと前々から思っている。
なんで読まないのかと言えば、「本を読む時間で別のことをしていた方が幸せだから」だ。本が友達というふうにはならない質だし、「他のことしたいんだけどな」と思いながら頑張って読書するというのは気力の消費が大きくてずっとは続けられない。
なので、もう「読むべき本を読まねばならぬ」的な発想は脇に置いておいて、楽しいとこだけ味わえたらそれでオッケーということにする。例えば読んだのが世間的に駄本と評価されているものだとしても「こんな楽しい気分になったからこれはこれでオッケー」ってなればいい。情報として古い本でも「当時はこうだったんだー」でオッケーにする。そうやってればそのうち読まねばならぬ本も自分から読むようになるだろう。多分。
今月はこんなところ。随分な量になった。