ローカルで使うタイムライン、てきすとTLを作っている
Twitterでtwitcle plusが使えなくなって、Twitterにまつわるゴタゴタから距離を置きたくなったので、 Twitterの頻度を減らそうと思った。 完全にやめるというよりは、他でもいいものを他に移していこう、くらいの立ち位置。
他でもいいもの、というのを考えた所、Twitterでなくてはいけないのはフォロー、フォロワー関係に対しての発言と広くアナウンスしたい事だな、 と結論づける。 逆にそれ以外のものはTwitterでなくてもいい。
だがTwitterでなくてもいいんだが、ではどこで書けばいいのだろう?と考えて、いろいろサービスとかも考えたのだけれど、 別になんかローカルに書いてブログのサイドバーに表示させればいいんじゃね?と思いつき、「てきすとTL」というのを作った。 これはTwitterみたいなUIで一つの発言が一つのテキストファイルになる、というElectronアプリとAndroidアプリ。 これでテキストファイルを作っていって、スクリプトで処理してブログのサイドバーに出している。 とりあえずトップページの所だけ出す事にした。>なーんだ、ただの水たまりじゃないか
各記事のページにも出すべきかはちょっと悩んだが、邪魔かなぁ、と思い消している。
アプリはリリースはしてなくてローカルでビルドして使っている。まぁ他に使いたい人も居ないかなぁ、という事でリリースは急がないつもり。 レポジトリ等はこちらを参照>てきすとTL
大雑把な構成
ElectronやAndroidのアプリでは、年、月、日でフォルダを掘って、その中に発言のDateのlong値をbasenameにしたテキストファイルを作る。 例えば 2023/01/23/1674457704457.txt など。
これを適当にhtmlに整形してgithubにpushするスクリプトを書いていて、それで公開している。 今の所は最新30件だけ表示しているので、過去の発言を見る方法は無い。 インターネットに公開したものが消えてしまうのはあんまり好きでは無いのでそのうちなんとかするかもしれない。
Android版とElectron版はGoogle Driveのフォルダsync系のアプリでデータを共有している。
開発がなかなかインクリメンタルにうまくやれた
最初は日付決め打ちでファイルを生成していくElectronアプリを作り、それをだんだんと発展させて、そのスクリプトをnodeとしてブログのサイドバーを整形をするのにも使っている。 個々の構成要素が小さく始められて、なかなかうまく作れたな、と思っている。 1日くらいでだいたい全構成要素が出来たけれど、これ1日って結構大したものじゃないか。
nodeというかnpmは雑用するのになかなかいい環境だよなぁ。 パッケージはグローバルには入れないので環境も汚さないし、パッケージは豊富で出来もいいし、async, awaitあるし、言語もそんなに悪くない。 Electronは快適で、それのコードがそのままシェルスクリプトの雑用にも持ってこれるのはいいよな。
Unix的なテキストファイルなのもなかなかうまく行っている所で、例えば編集とか削除とかの機能は無いが、別に困っていない。 また、複数デバイスで投稿してもファイル名がぶつからないのでsyncも簡単。 アプリとしてはネットワークは使わないのでオフラインでも普通に動くし、起動も速い。使っていて気分がいい。
意外とこれで良かった感
作る前は、そうはいっても自分一人で書いててあまり人も見てくれないのではSNSの代替にはならないかな、と思っていたのだけれど、 使ってみると意外と満足している自分がいる。 公開されるという事を感覚が納得すると、ローカルで書いているのとは結構違う感覚になった。 これまでSNSで満たしていたものの何割かが満たされる事を発見した。
また、これを作る前は、普段このブログでやっている「X月の雑記」と大して違いは無いのでは無いか、と思っていたが、 やってみると結構違った。 一行単位でどうでもいい事をバンバン書けるというのはどうでもいい事をより書きやすくて、それが記録としてより多くの情報を残すから価値がうまれるという部分がある。
また、他人の投稿が無いからつい何度も見てしまうとかそういう事も無い。周りからの反応も無いので適度に悪い所を軽減出来ている気がする。
あと、複数のデバイスでファイルがぶつからないのは意外と良い。TeFWikiなどで同じファイルを書く時には書く前にsyncされてる事を確認しないといけなくて、 これがちょっとのひと手間がある。 そういう事を気にせずぱっと起動してぱんと書けるのは、だいぶ気分が良い。
という事で思ったよりこれで良かった。