自作メモツールについての現状をまとめてみる
昨日作った、てきすとTLからTeFWikiへのpublishスクリプトが凄くいい感じだ。 このいい感じさは、それぞれが自分が自分のために考えたツールである、というのも重要なポイントに思う。
自分はメモツールについては本当にいろいろ作っているよなぁ。 今アクティブに使っているのだけでも以下がある。
自分のメモのためにAndroidのアプリをこれだけ作っているという人というのもあんま居ないんじゃないか。 しかもいつなに以外はElectron版も作っている。
また、少し違うが以下も関連したものだ。
それぞれ作って感じた事をもとに次を作っていった結果ここまで来たので、 なんというか、正しい進め方で進められていると思う。ドッグフードドリブンというか。 こういう風に進むものはうまくいっているものなんだよな。自分的にはかなりの手応えを感じている。
全体としてはなにか数年間の自分の人生を代表しているような気もする。
Wikiとブログもいい感じに連携出来ているし、Wikiはかなりたくさんのメモが蓄積されて有効に活用出来ている。 間がいろいろな書き捨てスクリプトでつながっているので第三者が使えないという問題はあるが。
いい機会なので、それぞれのツールについて簡単に解説してみようか、と思う。
TeFWiki
TeFWikiはマークダウンとWikiLinkで構成されてるパーソナルwikiのアプリ。 今となってはObsidanでいいかもしれないが、当時はAndroid版が無かったので、 この程度のアプリ自分で作る方がいいだろう、と思って作った。
インターネット権限もマイクとかの権限もファイルの読み書きの権限も無しで、SAFのみで動く。 そのかわり外部のリンクは表示出来ない(外部ブラウザでたどる事は出来る)。
運用
フォルダごとに独立したWikiを作る機能があって(サブWikiと呼んでいる)、 これで公開用のWikiとプライベートのWikiを分けている。
SyncthingでPCとsyncし、PC側の定期タスクで公開用Wikiをgithub pagesに自動で公開している(RandomThoughtsというのがレポジトリの名前)。
プライベートの方は公開してない。口座の情報とか住所とかバイクのナンバーとか仕事の事とか、私的な事が書いてある。 こちらも結構使われている。
様々な小物のメモツール(後述するいつなになど)のハブとして使われているツールでもあり、 また、ここに書き溜めたものをブログにExportしたりもしている。
また、画像はMdImgrで相対パスの適当なフォルダに置いている。 単に直接貼るが出来ないのは不便もあるが、直接貼る場合のWikiNameの変更などでの取り回しの不便さを考えると、 一長一短だなぁ、とも思っていて、これはこれで直接貼れるよりよいかもな、とも思っている。
感想など
TeFWikiはかなり上手く行っていると思う。 RandomThoughtsもかなりたくさん書かれているし、自分も良く参照しているので、 書いただけでは無く結果をあとで活用する事も出来ている。 また、ブログとの連携も結構うまく行っていると思う。
プライベートな事も結構書いていて、プライベートな事を安心して書ける場所が作れたのは良かったと思っている。 こういうのはやはりクラウドサービスは駄目だな。 誤操作で間違って公開する危険性もほぼないので、フォルダで分けるというのはいいアイデアだと思う。 投稿の都度公開-非公開を分けるというのは上手く行かなさそう。
MFGという自作言語のシンタックスハイライトが自分には必須だったので、 自分で小回りの効く形で作っておいたのは結果としては良かった気もしている。
スマホからも編集は出来て、たまにするけれど、スマホからの編集はかったるいなぁ、とも思っている。 sync漏れとかでconflictするのもかったるいし、 書く対象のページまで移動するのもかったるい。
スマホからの編集にはMDTouchという自作のMDエディタを使っていて、これは普通のMDエディタよりはずっとスマホで楽に追記は出来るけれど、 それでも多少の面倒は感じる。
一方でスマホから見る機会は多い。出先で「あれってどうだっけ?」となった時にプライベートなメモを全て見る事が出来るのは良い。 この手のものはあらかじめ必要かどうかがわからないので、必要になった時に見れる、というのは大切だと思っている。
以前はOne NoteとかGoogle KeepとかEvernoteとか使っていたが、これらのサービスはなんかバグってたり調子が悪かったりして見れない、 という事がちょくちょくあったので、この手の用途でネットワークを使うツールは駄目だな、と確信している。
てきすとでっき
てきすとでっきは、適当なテキストファイルを2改行で区切ってデッキとして表示する、というもの。 PCとスマホで、ちょくちょく私的ななにかを一時的に共有したい事があるのだが、 いい方法がないなぁ、と思って作ったもの。
ようするにtwitterとかslackみたいに入力出来るテキストファイルがあればいいんだよな、と思って作った。
テキストファイルはSyncthingで共有する。てきすとでっき自体はインターネットアクセス権限なども無く、 SAFで必要なファイルにアクセスするだけで、何の権限も必要としない。
私的なものを共有したいので権限が少ないのは重要だった。
てきすとでっきの良い所、悪い所
改行2つ、というのは、ソースコード片を共有するときには勝手に区切られていまいち、という時がある。
また、1ファイルなので、syncがうまくいってないとconflictする。 出先でちょっとなにかを書き留めたいと思った時に立ち上げて、あれ?さっきPCで書いたのが入ってない、 となるとconflictになるので入力したくない。
Mac版のSyncthingが、なんか定期的にログインしないとsyncしなくなる事があるのと、 Android版でサービスが変に残ってて通知は出ているがsyncはしていない、という事にハマる事があって、 2〜3日syncされてなかった、というのがちょくちょくある。
一方で1テキストファイルなのでPC側からの取り回しは良い。 Electron版を作っていてそれで普段は入力しているが、なにかあった時にPC側でエディタでさくっと編集出来るのは良い。
また、古くなったデッキを別のテキストファイルにアーカイブする書き捨てスクリプトも併用しているが、 これはかなりいい感じだ。 こういう追加機能をアプリの外に作っていけるのも、プレーンなテキストファイルを使っているというメリットに思う。
アプリが単純なのでPCとAndroidの両方がメンテ出来ている。
一方で、テキストファイルが長くなってくると取り回しは良くなくなってくるので、 定期的にアーカイブしていく、という整理をする必要がある。
Wikiと違って、起動してすぐメモ出来るのは良い。 ダイソーのレジ待ちでなにかをメモしないといけない、みたいな時に、てきすとでっきなら間に合う。 TeFWikiでは間に合わない。 メモをする時に必要な前準備の時間の短さは大切だよなぁ。
このテキストファイルはプライベートにしていて全く公開していないので、 プライベートな事を少し書き留めたい時に良く使っている。 PCとスマホでプライベートななにかを一時的に共有したい、という問題についての、自分的な答えにはなった。
てきすとTL
てきすとTLは、てきすとでっきの1メモ1ファイル版。 ただ現状はスクリプトで自動で公開しているので、使い方には結構な違いがある。
当初は、twitterにうんざりしていた時期で、でも何かちょっとしたどうでもいい事は書きたい、 そんなに広くみんなに見て欲しい事ではないのだけれど、 誰の目にも触れない所でやっているのはむなしいので、 一応見られているかもしれないくらいの場所でやりたい、 と思って作ったもの。
だいたいtwitterにつぶやくのと同じ感覚でつぶやいて、ブログのトップのサイドバーに表示される。
twitterの代わりになるか?
twitterにつぶやきたくない時になにかつぶやきたい、という衝動をおさめるのには機能している。 ただ、twitterにつぶやきたくない、という思いが弱い時には別にtwitterでいいか、となっていて、 完全にとってかわった感じではない。
やはりtwitterは、見てもらいたい事もあるんだよなぁ。
使われていない期間も結構長い。ただたまに使われ続けてもいる。
意外なメリット、デメリット
作ってみて思った事として、コンフリクトしないつぶやきツール、というのは、思ったよりも良い、というのがある。 てきすとでっきよりもいつでもすぐ使える感じがする。 コンフリクトしないと不定期なsyncと相性がいいなぁ、というのを身をもって体感した。
勝手に流れていってファイルがデカくなりすぎる問題もないのでメンテもいらない。 勝手に流れていくというのは管理がいらないというのは楽でいいな、と思った。 価値のあるものを残すという事が出来ない、という問題と裏表ではあるが。
また、テキストなのでリンクとかを残すにはいまいちだな、という気はしている。
デメリットという訳ではないが、気付いた事として、 いつも自動で公開されている、というのが、てきすとでっきとの使い分けで結構重要な役割を果たしている。 プライベートな一時的なメモには使えないので、 そこがてきすとでっきとの使い分けになっている。
これはツールの性質では無く運用の違いなので、公開してないてきすとTLと公開するてきすとTLを作ろうかなぁ、 とかも思ったが、そういう使い分けを考えずにぱっと起動してすぐつぶやける、 というのがてきすとTLの良い所なので、そのままにしてある。 複数アクティビティで切り分けるようにするのはやる価値はあるかもしれないが。
いつでも一瞬で起動して書いてconflictフリー、というのは快適で良いな〜、 というのが、てきすとTLの意外な発見でもある。
MDDeck
MDDeckは、てきすとTLのマークダウン版。 ファイルの中にタスクリストを書いたりリンクを貼ったり、といった事をちゃんと出来るように作った。
1ファイル1マークダウン。
作った時のモチベーション
TeFWikiでいちいちどこに書くのか考えるのが面倒だなぁ、と思う事が結構あって、 残したいのでは無く一時的にメモしておきたいだけの情報を置く場所がほしかった。
仕事でGithubのissueにいろいろメモをしていて、こういう感じの、どこに追加するかとかを考えずに、 単に末尾にmdのセルを追記していくだけのツールはいいよな、と思っていて、 こういう感じのローカルで動くツールが欲しいな、 と思って作ったのがきっかけではあった。
ただ考えていくと別にissue idとかで分ける必要はないよな?という感じになり、 結果的にはてきすとTLのマークダウン版、というツールになった。
使っている用途
例えば大掃除とかでなにかやっておくToDoがいくつかあるが一ヶ月後にはもういらない、 みたいなToDoリストなどをメモしておくのに使っている。
一ヶ月以内にやらないといけないが、やってしまえばもう要らない、みたいな。
また、たぶん要らないが一応残しておきたい、みたいな事をメモしておくのにも使っている。 勝手に流れていって視界には入らなくなるが、あとでgrepでは引っかかるので。
あと、PCからちょっとしたリンクを貼ってスマホで開いたり、という用途にも使っている。
PCから体裁を整えたものを作っておいて、スマホからは基本的には何度も見るだけ、みたいな用途には良い。
使ってみた感想
マークダウンは一長一短だなぁ、と思う。ちょっとした事をメモする時にいちいちフォーマットを考えないといけないのは不便だ。 てきすとでっきの単に改行で複数行に書く方が便利な事も多い。特にスマホからの入力ではマークダウンの入力は面倒。 ただ改行2つで意図せずデッキが分かれるような事がないのは便利で良い。
PCから書いてスマホで見るような用途には良い。てきすとでっきよりも見た目を良く出来るので、 何度も見る用途には見ていて気分が良い。 例えば健康診断の当日の注意などを書き留めておくのにはリストが使えて良い。
これは運用の問題だけれど、てきすとTLは自動で公開されてMDDeckは公開しないようにしているので、 私的な事を書き留めるのにはMDDeckを使っている。マークダウンでなくても良い事もここに書いている。 私的なメモをconflictを気にせずにとりあえず書いておけるのは良い。
てきすとでっきは短期に双方で編集するような時に使っていて、 MDDeckは書いたり編集する回数よりも、見る回数が多いようなメモに使われている。 例えば統計グラフ!などでソースコードをPCで書きつつスマホでデバッグ、みたいな事をしたい時などはてきすとでっきを使っている。
あとこれは本質的な問題ではないが、Android版の起動が遅いのが結構不便。 ちょっとした時にさっとメモしようとした時に立ち上がりに待つので、てきすとTLやてきすとでっきでは間に合うシチュエーションで間に合わない。
これはマークダウンのパースなどが遅いからで、もう少し非同期性を高めて追記は全部終わる前に出来るようにすれば解決出来るとは思っているが、 まだやってない。
使ってみた結果として、issue idのようなもので分けられる必要は無かったな、と思っている。 雑多になんでも突っ込める所、というのが良さだな。
見た目を良く出来る、というのはmdの良い所ね。見た目が良いデッキが並ぶのは気分が良い。
なお、一旦MDDeckに書いておいて気が向いたらTeFWikiに移す、という用途で使う事も多いが、 移す事はほぼない。 こういう、結局残さないものを一時的においておくのは、自分的にはかなり改善に思う。 迷わないでとりあえず置いておけるし、あとからやっぱり必要になった時にgrepで探せる。
いつなに
いつなには一言をリストとして残しておくツール。基本的にはスマホからしか入力しない。 でも数年に一回PCから古い範囲を移動したりはする。
結果はTeFWikiの適当なWikiNameに書いている。
浄水ポッドのフィルタを交換した時とか髪を切った時とか花粉症の薬を飲んだ時などに記録している。結構気に入っている。 本当はToDoアプリみたいなのもこういう入力方法にしたい。
小さいアプリの功罪
基本的には全てAndroidアプリだ。一つ一つは小さく、単機能に近い。
結果としてメンテが楽で組み合わせが出来る。 反面、アプリだけで全部楽に使える訳では無く、Syncthingは必須だし、 その先でPC側でいろいろなスクリプトが必要になるので、 他人が同じ事をやりたいとしても全部自力で頑張る必要がある。 これは他人に使ってもらうのには欠点が多い。
でも細かいスクリプトとかを書いていくのは苦ではない、という人も世の中には結構いると思う。 そういう人にとって、スクリプト以外の面倒な所がアプリとして提供されているのは、 悪くない形態ではないか。
他人の事はおいといて、小さいアプリの組み合わせというのは、 長期間メンテするには良い。 特定のアプリがいまいちだな、と思えばそれはディスコンに出来る。 そうやって良い物だけが残っていって、いまいちなものが消えていくのは、 良いシステムを作っていく、良い戦略に思う。