The Joys of Plain Text Data

I really enjoy having my data stored locally in a plain text format:

Today I wanted to experiment with adding a timer to some of my obsidian entries. So I added a timer line to the top of the entry, a timer tag to the bottom, and the wrote a quick shell script that finds all entries that have a timer tag, tosses that into fzf to let me pick which entry I'm working on, opens that entry in Obsidian, and then starts a timer. When I'm done doing whatever, I end the timer and it updates the timer entry at the top of the file (via sed) with the new amount of time I've been working on this project. I could do all of this in 30minute because it's my data, on my machine. I didn't need to ask permission to use my own data, I didn't need to sign up for an api key, and I didn't need to go find whatever library is needed to access it (or figure out their object format).

And next week, I don't have to worry about the service shutting down, the api changing or being just being turned off without notice, or having to install all new javascript library dependencies because they have all changed yet again.

The current version of my blog is just entries in obsidian. I have yet another really simple shell script that parses through them, converts the markdown to html, and then uses rsync to send them up to the cloud. Again super easy because everything is just plain text that I can use simple tools to modify.

I use syncthing to sync my plaintext data to all my machines. This also means my Pi server has access to the plain text data, and if it wanted to run a cron every night to update my blog it can (and does).

Things are so much easier when your data is in a format you can easily read and write and have access to.