Mark up, mark down, mark it all around
In my last post, Improving my Information Infrastructure, I wrote about my use of plain text files for capturing the different types of information that enters my life. The benefits of plain text being – portability, sustainability, small size, being human-readable and so on. While, switching over to plain text files instead of specialized database driven apps has made storing and accessing my information much easier, databases provide benefits of their own. The structured data in databases allows speedy information retrieval, and consistency in structure.
A database of recipes for lunch, for instance, is a lot more useful than simply storing said recipes in plain text files. If the database is well-designed, the user can search for recipes using patterns such as cooking time, or search for recipes that use specific ingredients. This is a lot harder with unstructured data in text files.
This is where mark up syntax comes in. There exist a range of plain text mark up formats that provide structure, allowing benefits similar to database driven applications. Here are a few of the formats I use. Some are mark up formats, while others are software that use plain text as their storage format.
Markdown – I use this format mainly for writing documents and articles, such as this post. Markdown lets you mark up your text with formatting styles such as titles, headlines, bold/italic formatting and so on using a lightweight, human-readable syntax. The output looks pretty much the same as a document created in a word-processor, without actually altering the original plain text source file. See the Markdown syntax here.
Org-mode – Org syntax is a mark-up language for Org-mode, one that I have written about before. I use org-mode for managing tasks, as well as to write elaborate outlines for complex documents (which I export to Markdown, and then to Google Docs). Before I encountered org-mode, I tried out a large range of task managers, none of which were satisfying. I’ve completely stopped looking now. Org-mode really is that feature rich! Read about org syntax here.
todo.txt – The todo.txt format created by Gina Trapani is a wonderfully creative take on a task management method, using the plain text format. I have written about my own take on the format. Today while Org-mode fulfills all my task management needs, I still find todo.txt invaluable for simple lists that I can filter through using contexts, dates and tags. Read about the todo.txt format here.
Maildir – I’ve gone into some detail about this in my previous post), so I’ll keep this brief. I use mbsync to fetch email and store it using the maildir format, which stores emails as plain text files in local folders. Read about the Maildir format here.
Cooklang – I discovered this format just a few days ago, and don’t use it yet. I do have a bunch of recipes stored as plain text files, completely devoid of any structure. When I have some time, I’d like to rewrite them using cooklang, to prepare for an upcoming Android app that uses these specs. Read about cooklang here.
GtimeLog – This is a simple time tracking software I use to get a sense of what I spend my days on. Having tried a variety of open source and commercial time trackers, I love the simplicity and practicality of this software. It timestamps each entry and then calculates the time between the stamps to chunk how I’ve spent my time. Because the storage format is plain text, I can add entries to it from anywhere and on any device. Read about gtimelog here.
Ledger Cli – Ledger is a plain text accounting format created by John Wiegley. This program reads plain text files with accounting entries listed in a specific format. Ledger is lightweight and fast, and I used it for about a year. I loved that I could generate personal finance reports within seconds, either within Emacs or in the terminal. However, Ledger turned out to be impractical, because my family members need access to the financial data as well, and Ledger turned out to be too technical. We use Homebank today, but now that Paisa is in play, perhaps I can try Ledger again in a few months. Check out the Ledger website for more information.
There are also a couple of other formats. I have thousands of files using the zim-wiki markup, for instance. However, since I rarely edit these files outside of Zim-wiki itself, I don’t have to remember the syntax. For the rest of them, I have memorised just a handful, and for those that are harder to remember, I use cheat-sheets, also stored as plain text files in org-roam.