このブログは更新を終了しました。移転先はこちらです。

2023-10-06

ファイルというモノから解放されて漸くデジタルがデジタルになった

 Denoを使って、指定したディレクトリ内に存在するプレーンテキストのファイル(txt,md,js,css,html,...)とMicrosoftWordのファイル(docx)を自作ツールにまとめて取り込むスクリプトを作った。


アプリケーションへの依存

 ツール開発への挑戦以前は、情報管理に関する誰かのアイデアを見聞きしたりふと何かをひらめいたりする度にメモを書きたい場所が変わり、その結果色々な形式のローカルファイルが生まれていった。例えばObsidianにハマればmdファイルが大量に発生するし、いや階層付きテキストだと思えばtxtがメインになるし、Officeソフトも捨てがたいとなればdocxが増殖する。スマホアプリのバックアップとして生まれたcsvファイルやjsonファイル、SQLite形式のファイルもある。

 いずれも中身はただの文字情報だし、やっていることは単純なことだ。しかしプログラムを自分で書いてファイルを弄るということができなければ、それぞれのファイルの中身にアクセスするためには特定のアプリケーションの力を借りる必要が生じる。一応プレーンテキストはテキストエディタですべて開くことができるが、専用アプリケーションならできる操作が他のテキストエディタではできないということにもなる。

 そして操作というのは大抵の場合「現在開いているファイル」に対して行うものだろう。100個のファイルがあった場合、普通にやるならそのアプリケーションで100回操作しなければならない。とんでもないアナログ作業である。アプリケーションによっては条件を指定して一括で操作できるようになっているものもあるが、条件の指定や操作の種類はユーザーが自由自在にデザインできるようにはなっていない。


 ということは、ローカルファイルとして存在している各ファイルは、基本的にそれを扱うアプリケーションに紐づいており、それぞれのアプリケーションでできることに縛られるということになる。ファイルの中身は単純な文字列であるにもかかわらずである。

 なので、後々困ることのないように「これぞ」と思うアプリケーションに決めなくてはとか、まとめてインポートする機能をアプリケーションの製作者に要望しようとか、そういう不自由極まりない話になってしまう。自分の未来を縛ったり他人の動向に依存したりする羽目になるのである。


ファイルという縛りからの解放

 サーバーサイドの言語を勉強すると、ローカルファイルの操作は割と簡単なことに気がつく。といっても、例えばある形式からある形式への変換(例えばdocxからmdへ)をするにはライブラリなどの使い方がわかる必要があるので、誰でも簡単に即日実践可能!とは言えないが、別にプログラマーでなくてもできる程度の難易度であることは確かだ。

 ローカルファイルの中身を自分が作ったプログラムで操作できるとなると、特定のアプリケーションへの依存から解放され、手作業でやらざるを得なかった処理を一瞬で片付けられるようになる。テキストファイルの中身をシンプルにテキストとして扱うことができる。ローカルファイルというモノ的な縛りから解かれて、デジタル情報をデジタルらしく取り扱えるわけである。言い換えれば、パソコンやスマホの中にあるのはデジタルデータなのに、全くデジタルらしく扱えてなかったということだ。


 冒頭に書いたように、ローカルファイルを自作ツールに取り込むスクリプトを作ったのだが、これでいつでも集約できると安心し、実際には作業を始めてはいない。いつでもコマンド一行でガッと処理できてしまうので、別に今すぐにやらなくてもいい。

 もし手作業でやるとなれば、早く始めないといつまで経ってもごちゃついたままだ、という話なのだが、スクリプトができてしまえばもう「やるか、やらないか」の二択であって、「やり始める」という選択は不要である。


いつでもどうにでもできるという余裕

 で、まだやっていないので、ローカルファイルのごちゃつき自体はなんにも変わっていない。しかしいつでもどうにでもできるとわかったので、もうごちゃごちゃは気にならなくなった。

 結局問題は実際にごちゃごちゃしているかどうかではないのだ。ごちゃごちゃに対処するためには労力が必要だという予測こそが自分を苦しめる。(なお日頃メインで使っている作業場のごちゃつきはまた別の話である。今まさに使っているものは視界良好にした方が良いと思う。)

 ノートテイキングアプリケーション全般についても同じである。エクスポートしたデータや提供されているAPIを自由に活用できるなら、それらのアプリケーションに溜め込んでいるデータが混沌としていても気にならなくなるだろう。必要が生じた時にちゃちゃっとコードを書けばいいのだ。

 実際に存在するモノや人との関わりはどう工夫しても労力がコンパクトにならない可能性はあるが、しかしデジタルデータは違う。取り出し方と加工の仕方がわかればもう手作業は(ほぼ)要らないのであり、表面上のごちゃごちゃ感の一方で必要な労力は限りなくゼロに近づけられる場合がある。そうとわかれば、デジタルデータのごちゃつきは「やろうと思えばいつでもさっと片付けられる程度のもの」になる。


 過去に作成したローカルファイルのごちゃつきはずーっと気になっていたことで、自分の認知資源をちびちび削り続けていた。しかしもう気にする必要のないことになった。

 自分にはこれらをいつでもどうにでもできるという余裕が生まれ、何の葛藤もなく堂々と後回しにできる。むしろ、今やってしまうよりもっとスキルを得てからの方が良い結果になる可能性が高いわけで、なるべく後にやった方が良いとさえ感じている。これは非常に気楽である。

 自作のノートテイキングアプリケーションを作ることはもちろん私にとって大きな豊かさをもたらしているが、それと同じくらい、これまでに作り出したデジタルデータを自在に取り回せるという感覚は私を自由で豊かにしていくと思う。

 このことが情報の死蔵をすべて解決するわけではない。しかし「手間」に阻まれる世界よりは遥かに晴れやかである。


関連