Thoughts vs Records as Notes
UPDATE: After writing this I realized what a jumbled mess it became. I’m posting it anyway because it really is intended as a way for me to think this through. I apologize for the rambling you’re about to be subjected to.
I work mostly with two kinds of notes: Thoughts and Records.
Thoughts are meant to be used as raw materials for new thoughts. Records are for logging events. Thoughts are most useful right now, but will also be used in the future. Records are only useful in the future. Thoughts work better as easy, visual notes. Records can be kept in a simple, permanent, plain-text format.
The difference here is that Thoughts should of course be as permanent as possible, but permanence is not their defining feature. Permanence is secondary to usefulness.
I struggle with note-taking tools because I always want it both ways. Bear with me while I think this through.
Here are the kinds things I write down. Of these, some are Thoughts and some are Records:
- What happened today? (Record)
- How am I feeling? (Record)
- Purchases (Record)
- Plans or ideas for the future (Thought)
- Project notes (Thought/Record)
- Notes about people (Thought/Record)
- Events related to people (Record)
- Notes on various topics (Thought)
Thoughts don’t work for me as a wall of plain text (Markdown, Org mode, etc). For example, while project notes usually contain Records, they are mostly Thoughts. I need to see them, sometimes one at a time and sometimes all at once. Ideally, I’m able to easily rearrange them. This is where plain text falls short. A bunch of short, specific notes (ala Zettelkasten) can be useful when kept as a folder full of Markdown files, but they don’t help me think. They don’t as often spark new ideas. I don’t learn as well. I become fatigued. They’re not as fun, you know?
Records, on the other hand, excel as plain text. I have text files that just keep growing with year after year of “Here’s what happened” notes. If I need to know when I last had a cold, a quick search and I’m done. And I know I’ll be able to look this up in 10 years if I need to. There’s no specific app needed. That’s comforting.
How does this relate to tools? Well now that’s the question, isn’t it? It’s the thing that causes me to waste inordinate amounts of time.
What about permanence?
Text files are permanent. They work with any OS and just about any app that deals in text. They’re easy to back up, version control, and manage using only the operating system’s file manager. They’re great! But, as I’ve described above, they aren’t as immediately useful for Thoughts.
So what formats or apps are most useful for keeping and managing Thoughts? Here are my favorites: Curio, Tinderbox, Roam, TheBrain.
I can open an area or document from any of those and quickly get a handle on everything about that topic that I’ve written. This is terrific and useful. But, how permanent are they? That depends on your definition of permanent. None of them are permanent in the their current form if the app goes away, but all of them can be exported to a format that I can use to find information using other tools if I had to.
All of this is great, but it means I should use different apps for Thoughts vs Records. I don’t want to do that. I want the One True Place™ for notes. If I prioritize permanance, that would mean Org mode or maybe Markdown text files. If I prioritize usefulness I’d want to use one of the others.
Do any of them work for everything?
Right now I’m going out on a limb and putting my money on Roam. Here’s why:
- Roam is designed as a place for everything. It works for both Thoughts and Records. It works very well for Thoughts.
- It’s browser-based so accessible from any device by default. Mobile app will come, but I’m not in a hurry for that. Roam’s author, Conor White-Sullivan, is not a fan of using mobile apps for writing or thinking, and neither am I, so we’re aligned there.
- Everything is easily exported to JSON or Markdown. Currently, neither of these formats are very useful, but I expect tools to be written that will do magical things with the JSON export.
- Some open source version of this will probably be released and I could potentially self-host, which would alleviate my privacy concerns.
- It’s said that they’ll be charging $12-$15 per month once it’s out of beta. That’s expensive, but could help with sustainability.
- Lots of very smart people are into Roam, and doing cool things with it.
Roam needs offline support, an API, and lots of refinements. I expect those to appear over time.
What about Org-roam? Org-roam is a fantastic pseudo Roam that leverages Emacs and Org mode. It’s very good and has been neck-and-neck with “real” Roam recently. The difference is that “real” Roam is simply easier to use and better at being Roam than Org-roam is.
So Roam wins this round of me searching for a “Second Brain”
Org-roam and aliases
I just learned that Org-roam supports aliases. This means that I can reference pages in my Org-roam database in more than one way.
For example, I might want to have a page for “World War II” but when mentioning it I would just use “WWII”. It’s done like this…
#+TITLE: World War II #+ROAM_ALIAS: "WWII" "World War 2"
This is really handy. Even “real” Roam doesn’t support this as easily yet.
It’s in the docs. I should read them more often.
Doom Emacs vs my custom Emacs config
I’ve become catatonic over whether to use Doom Emacs or my home-rolled Emacs configuration, so I’m jotting down a few notes to help me think it through.
Doom has very good defaults, looks great, and continues to fine-tune a bunch of behaviors in a way that I generally get along with. (I like it more than the other big contender, Spacemacs). On the other hand, Doom’s behavior feels out of my control and things change frequently, forcing me to pay attention to my editor in a way that I’d rather not. That’s not the way Emacs is supposed to feel. It should feel like it’s 100% mine.
So you can see the dilemma.
This also ties in to my Vim vs Emacs keybinding debate. I have (or had, at least) a decade or more of Vim binding muscle memory. Using stock Emacs bindings for the last couple of years has erased most of that memory. Now I suck at both.
Evil Mode in Doom works great. I want to use it. I tried adding Evil to my own config but its behavior was inconsistent and it would likely take me weeks to build something usable out of it.
Of course I can customize Doom, but in doing too much of that I feel like I’d end up with an unmaintainable combination of done-for-me config and my own tweaks. Worst of both worlds?
So right now I’m using Doom because it’s so very nice. My own config, as light and personal as it is, is missing a lot of Doom’s many niceties. Still measuring the trade-offs.
Post Title
It looks like Red Oxx is finally making their C.C. Rider messenger laptop bag a permanent part of their product list. Previously, it was released in short runs only. I was lucky enough to snag one after reading a glowing recommendation by Steve Hodgson. It’s a terrific bag.
C.C. Rider bag, unposed, on my home office floor.
I have long suffered from an addiction to new bags. I own messenger bags from Ona, Filson, Peak Design, and more. Great, high-quality bags, all of them. But, I’d still keep one eye open for something better. This stopped happening after I bought the C.C. Rider bag. It’s been six months and it’s still not happening.
I don’t want to write a whole review (here’s Hodgson’s), but I did want to let you know that I really like the bag and that it’s now generally available. Recommended.
Tot
When Tot was first announced, I rolled my eyes and dismissed it as yet another “minimal” note-taking app. I didn’t see any way it could be useful to me. If I want to hold some temporary text, I use Drafts or BBEdit’s Scratchpad or an Emacs scratch buffer.
But what the heck, the macOS version of Tot is free, so I gave it a look. After a week, I’m finding it to be a terrific solution to the problem it solves for me; a place to jot things down for later.
Tot works for me because it sets the right amount of constraints. BBEdit has only one Scratchpad, so keeping a bunch of unrelated text there can be confusing. Drafts can keep everything, so I end up dumping reams of text notes there and never doing anything with them. Emacs scratch buffers are ephemeral and I often lose track of them. The one permanent buffer I have configured suffers the same problem as BBEdit.
Tot, on the other hand, has room for just seven notes. Each note is represented by a circle. The circle is light gray if its note is empty. Once some text is entered, the circle turns color. It’s easy to see at a glance which notes contains text, and to pick an empty one. The clever bit is that once they’re all used, I know it’s time to clean things out and make room. Sure, this could be done in Drafts but the difference is that I don’t do it when using Drafts.
I’ve been using Roam for most of my notes lately, so why not just drop the text right in Roam? I could do that, but what I find is that it only adds noise to my notes. Tot is for text that may or may not be temporary. In many cases, I simply delete it. Otherwise, I use it as a starting point for notes that I want to keep.
There’s an iOS version, which costs an expensive-for-iOS-but-totally-fair $20. I’ve bought the iOS version because it’s a good app and a handy counterpart to the Mac version.
So this simple little notes app that I’d dismissed as unnecessary has quickly become a core part of my workflow. What a nice surprise.
My day so far in Roam and/or Emacs
A quick rundown the chaos in my head around Roam and Emacs and how it has affected my day so far.
6:00am Realize on the way to work that Roam just isn’t a great idea for holding my (hopefully) long-term “second brain”. $30/month forever in a proprietery blah-de-blah? Nope, and by the way org-roam is perfectly suited for this. I want long-term stability and control for this sort of thing and what could be more long-term-stable than Emacs and plain text files, right?
7:00am Tweak Emacs a little and settle in. Move some of the things I “accidentally” wrote in Roam yesterday into org-roam. You see? Now everything is in Emacs and I can stop thinking about it. This will be fine.
11:00am After spending 90-minutes down a rabbit hole trying to get better at managing tables in Org mode and then fumble-fingering a couple commands that messed up my file because my Emacs keybindings are a mess, I decided that NO! maybe Emacs isn’t the best tool for the job and Roam is made for this, for crying out loud. Also, Airtable is great at spreadsheets, why suffer the pain (and admit it, it’s painful) of tables in Org mode when I can just paste an Airtable link into Roam? Best tool for the job, yada yada.
11:30am Go to lunch and think about all this the entire time even though I just want to enjoy my damn lunch.
1:00pm Quit Emacs in anger and put all my notes from this morning into Roam and my tasks into OmniFocus where they belong. Right!? Tasks are way simpler in OmniFocus anyway and it hooks right into email and so on. My second brain is basically useless when it’s nothing more than a bunch of text files. Notes need to be used to be useful. They aren’t useful if they are just written once and forgotten. You know what makes my notes useful and is nice and easy to use? Roam!
2:00pm Realize I’m doing it again. I kind of knew I was, but now it’s become obvious so I jump into another tab and start writing so I can share this nonsense with everyone because everyone wants to read post after post of me whining about how indecisive I can be.
The Future No one knows, the day’s not over yet!
Early notes about Roam Research
Roam is “A note-taking tool for networked thoughts.”
There’s nothing better than trying a new tool and having it feel immediately right. Roam thinks the way I do. Or at least it behaves in a way that makes sense to me.
The world is short on tools with nicely-implemented bi-directional linking. I LOVE bi-directional linking. This is why I’ve continued using TheBrain for so many years. I connect two things and suddenly they both know about each other forever.
Roam handles this in a lovely way. I’ll probably have more to say about it some other time, but I love the way it pulls in context based on links/mentions. Here’s the bottom of my note on Roam (in Roam)…
Every time I’ve mentioned Roam while writing a note, it’s tracked and automatically included, with surrounding context, at the bottom of the target’s page. You’ll have to try it yourself to get a feel for how useful that is.
Anyway, this post was supposed to be a quick log of my impressions so far, so here they are.
What I like
- At first glance, it feels like Workflowy plus TheBrain plus TiddlyWiki.
- I love the Daily Notes feature. It’s not difficult to mimic this in other tools but it helps that it’s automatic and sort of forced on me. I always have a place to type.
- I can rename pages without breaking links! This takes so much overhead away I can’t believe it. No need to spend time over-thinking how to name things. I’ve already changed the way I’m naming pages in Roam several times and so what?! All the links are updated automatically. This is really great.
- I can copy a reference to any block and include it anywhere else. It’s transclusion at a nice, granular level.
- I’m not using it for research or study, which is what I suspect Roam is actually designed for, but I don’t feel like I’m fighting over it. I’m using it for project notes and topic journals mostly so far. I’ve been using Orgmode for this, but Roam’s bi-directional linking has me thinking otherwise.
What I’d like to see
- There’s no way to export single page. I’d like to copy the current page as Markdown or export as a nice clean PDF. (Update: Added markdown export in Dec 14)
- Editing is just a tiny bit weird. For example, I use the built-in Emacs bindings on my mac, but Control-a doesn’t go to the end of line if the line ends in double brackets “]]”. I have to hit Control-a twice. I’d also like the Control-N and Control-P bindings to move between nodes. Those only work within a node currently. I want to keep going up and down!
- I feel a little twitchy about privacy, since the notes aren’t encrypted.
- I struggle a little selecting nodes. Getting used to it, but still fumble a bit.
- Overall, I am very much enjoying putting my notes into Roam. I think they’re onto something. I keep the Daily Notes open in a tab and just type what I’m thinking, adding links where it might be appropriate. It feels like time spent entering notes in Roam is an investment whose returns increase with time.
It has some minor rough edges, but I consider that to be a good thing. To me, rough edges just mean that Conor (@Conaw) is focused on making Roam do the right things. Loose ends can be dealt with later. This is in contrast to the very polished and popular Notion. I wrote somewhere that Roam “…feels like it’s built to solve a real problem, whereas Notion seems built so that productivity bloggers have something to make youtube videos about.” That’s of course an exaggeration, but I’ve tried using Notion three or four times and I just don’t like it.
In my workflow, Roam competes with TiddlyWiki, TheBrain, and Tinderbox. Right now, putting things in Roam is as easy or easier than those, and it feels like I’m getting a nice return on my small investment. Stay tuned.
Sending the Leica M3 in for repair and CLA
Leica M3
The rangefinder in my 1960 Leica M3 needs repair. It stops moving when focused closer than about 4 feet. Time for a complete CLA.
I bought this M3 in 2013 and it had apparently been CLA’d by Youxin Ye in 2012. I guess it’s time for another. I’m sending it to the highly-regarded DAG Camera Repair. I’m including the 50mm Summicron, just in case he determines that could also use a bit of work.
It’s not inexpensive having these cameras taken care of like this, but a few hundred dollars every five or ten years ends up being a small investment. At this rate I should be able to get another 60 years out of it. Well, someone will.
Reining in Emacs
So far this year I’ve deleted Emacs from my Mac’s dock at least 4 times.
You know this story, but I’ll keep writing it anyway.
I’ve only been using Emacs seriously for five years or so, and in that time it has become the center of my text/information/editing/productivity/publishing universe. I’m not sure that’s a good thing.
For example, I spent a couple hours one weekend setting up Elfeed for reading RSS feeds. Why? Because it’s neat to be able to read RSS feeds right in Emacs. But, it’s not pleasant. It’s janky and not pretty and a little finicky.
I don’t know if you’ve noticed, but reading walls of monospaced text is uncomfortable. It is for me, anyway.
What about email? Mu4e is awesome. I can fly through my inbox with it. And editing email with Emacs is great. Searching in Mu4e is super fast and flexible. But, the rest of the experience is less great. Reading most modern emails requires proper HTML support and that’s not what I get with Mu4e. I can open the HTML version of any given message in a browser, but that’s certainly not ideal. I often need to deal with multiple messages at once, and Mu4e doesn’t make that at all easy. As bad as parts of Apple’s Mail app are, it’s a significantly more pleasant, easy-to-deal-with experience for how I use email.
Let’s talk about Org mode. Oh my. For me, Org mode is the best reason to use Emacs. It’s probably the most powerful thing on my computer.
I can do pretty much anything with Org mode. I can write and post to my blog, I can create properly-typeset PDF documents, I can manage my time, tasks, habits, schedule, journal, notes, you name it. Org mode can do it all!
You know what they say, “Just because you can, doesn’t mean you should.”
It’s time to take inventory of my Emacs use once again. Last time I did this I was waffling about a lot of this as well.
And what about now? I’m still thinking about it. Part of the problem is that I’m experiencing my regular bout of text file fatigue. I’m tired of staring at plain, monospaced text all day for everything.
Another issue is keyboard fatigue. I have a fantastic keyboard, and it’s great being able to do everything without taking my hands off it. But sometimes I want to take my hands off the keyboard. Sometimes I want to lean back, grab the mouse and drive with one hand while maybe occasionally typing something. I don’t want to sit up straight with my hands on the home row and remember complex and sometimes obscure keyboard combinations for every little thing. Maybe I just want to click a tab and start typing in, say, Roam.
Speaking of Roam, what a mess it’s made of my note-taking process. Roam is so good at being an intertwingled second brain that I don’t want to take notes anywhere else. Trouble is, Roam is going to be priced at something like $30/month and it’s a third party app, and who knows how long it will be around, and so on. There’s org-roam, which is quickly becoming quite good. But it’s not Roam. Org mode can be an outliner, but it’s not a very good one. Roam is a decent outliner, along with all the other things it does well. This is hard for me, because I’d rather take my notes in Org mode, but just knowing Roam exists causes me to second guess everything.
And finally, task management. Org mode is the most sophisticated, extensible, full-featured task management option I know of. It’s built for managing tasks. Once configured to my tastes, Org’s agenda is a fantastic way to keep on top of everything. The catch there is “once configured”. That process never ends. Go ahead, read the manual, I dare you.
I’m tired of thinking things like, “I wonder if I could make that heading show up over here instead.” and then spending hours making it happen. Or “How do I filter by category again?” Doing all this can be fun, but it’s not anything approaching productive.
You know what makes task management easy and pleasant? Things does. Things is just so very nice, you know? Hell, even OmniFocus, with it’s noisy UI and fidgety perspectives, and stupid giant round checkboxes, is way more pleasant to use in anger than Org mode. The overall superiority of Org mode is incontrovertible, but dammit it exhausts me.
So, where does this leave me? Here’s what I’m going to try using Emacs for.
Note taking “second brain”: Org mode and org-roam. I don’t know how long I’ll be able to resist putting everything into Roam instead, but what I want to do is keep it all locally in neat little text files forever. At the rate that org-roam is improving, this may just work out fine.
General text editing: When I need to process a bunch of text in multiple files, BBEdit wins for me, but otherwise I’ll use Emacs.
Journaling: org-journal. My use of Diarly or Day One is waning, even though they are nice and handle images wonderfully. My daily journal is 90% text and org-journal is terrific for that.
Code: Emacs (But who’m I kidding, I almost never write code these days)
And here’s what I’m taking (or keeping) out of Emacs…
Task management: This is a tough call, but I’m sticking with OmniFocus or Things for the time being. I expect this to get sucked back into Org mode before too long, but here we are.
Email: Apple Mail. It’s always there, looks good, and mostly works. I almost wish I could continue to use Superhuman but I’m trying to move away from Gmail and I don’t want to pay $30/month for a fancy Gmail wrapper. Mu4e is cool, but too much work.
Blogging: Ghost. Ghost is pleasant, fast, reasonably lightweight, and makes managing my blog generally hassle-free. I love the idea of a static site, and Hugo is great for that, but like I said, I usually just want to click a tab, start typing, and hit “Publish”.
Personal finance: I’m very tempted to restart my Ledger setup using Emacs’ ledger-mode but it’s so much work that I doubt I’ll stick with it for long so I’m back in YNAB and Banktivity for now.
So it appears that I’ve been able to rein Emacs in a little. Enough at least so that it doesn’t swallow everything I do and wear me out in the process. A little variety in apps keeps things interesting. None of this is set in stone, and who knows what moods will strike, but for now, I’ve got a plan and I can keep Emacs in my dock without it stressing me out.
TiddlyWiki and Roam and my Daily Notes
A few notes about differences between TiddlyWiki and Roam related to my daily note taking process.
In October, 2018, I created a wiki at rudimentarylathe.org using the wonderful TiddlyWiki. Since then I’ve written just shy of 1,000 “tiddlers” there and it’s been a totally pleasant experience.
The original intent of the wiki was to record notes about things or topics that interested me. I planned to keep notes on “Photography” or “Apple” or “Writing” or whatever. And while I do still create notes for topics, what ended up happening is that the whole thing turned into a sort of blog. The majority of new tiddlers were daily journal entries.
TiddlyWiki is amazing. Having everything in a single HTML file is simple and comforting and as future-proof as anything. It’s flexible and extendible. It has been a great tool for keeping public notes.
And then, a few weeks ago, I learned about Roam from Roam Research.
I try pretty much every new note-taking tool I run into, so I created a private Roam database and started using it for random notes. Roam presents a “Daily Notes” page for today’s date right off the bat, so that’s where I enter notes by default. Notes in Roam are created as outlines (similar to Workflowy). I love outlines. I’ve used tools like Tinderbox and Orgmode for years. I work best in outlines.
What happens when writing in Roam is that you link words with double square brackets. This is also how wikis like TiddlyWiki work, so that’s not what makes Roam different. What makes Roam different is that simply linking a word with brackets automatically creates a page for that word or phrase. Most wikis I know of require me to specifically create a new page from a link if it doesn’t exist. This is an important difference, because what Roam also does is include backlinks to each reference. Automatically.
This means that I can just type notes wherever I happen to be in Roam and, by simply mentioning something, that note (and a link back) is included on the page being mentioned. Here’s an example of the [[TiddlyWiki]] page in my public Roam database:
Notice that I haven’t actually taken any notes about TiddlyWiki on that page. What the screenshot shows is that I’ve mentioned TiddlyWiki a bunch of times, and it creates the page automatically and shows each reference, in context, with links back to where the mention happened.
This. Is. Amazing!
I don’t think most people realize how insanely valuable automatic backlinking is. Tools like TheBrain get it, which is why I’ve used TheBrain for years. Proper backlink handling pays dividends and Roam does it very well.
I can do backlinks in TiddlyWiki but not like this. It may be possible, but would require research and tweaking but Roam does it right out of the box.
Notice also the “1 Unlinked Reference to ‘TiddlyWiki’” line at the bottom. Roam tracks any use of the word and can show references those as well. There’s also an option to automatically link those references with the click of a button.
Another way to reference content from one area to another is by using transclusion. In TiddlyWiki I can transclude the content from tiddler A in tiddler B and any changes made in A will automatically appear in B. This is a great way to collect small bits of information together. There are a couple of things about how TiddlyWiki handles transclusion that make it less useful to me.
The first is that there’s no easy way to jump to the original, source tiddler. I frequently see a tiddler that I want to edit, and so I click “Edit” just to find that the content I want to change is actually transcluded from a different tiddler. In order to get there I have to search for the title of the original to find it, then I can edit that one. There’s also no indication that content is being transcluded. This is fine, but I’d prefer transcluded content to be indicated as such.
The second issue with transclusion in TiddlyWiki is that if I rename the source tiddler, transclusion breaks, and there’s nothing on the target tiddlers indicating anything is amiss. I’ve ended up with nearly empty tiddlers due to this.
Roam handles transclusion by showing the transcluded text in a different style. I can transclude just a single node on any page rather than the entire page. Roam shows a count of times a node has been transcluded and will display them in the sidebar by clicking a small button. Super handy.
Speaking of renaming, in TiddlyWiki, renaming a tiddler breaks existing links. It warns me about it, but I still need to fix references.
In Roam I can rename pages at will, without worrying about breaking links. This is huge because it completely removes any friction around naming things.
TiddlyWiki has all sorts of cool functions for collecting and manipulating notes. Roam doesn’t expose anything like this yet, but I’ve seen hints of a pretty powerful set of tools just under the surface. I expect these tools to expand and become generally available at some point.
So what does all this mean? I’m not sure yet, but, as of today I’m putting all of my private notes and most of my public ones in Roam rather than in TiddlyWiki.
This is risky because Roam is quite new and TiddlyWiki has been around since 2004. Also, Roam is SaaS and TiddlyWiki is just an HTML file I can run locally, forever. There are privacy concerns to consider with Roam as well.
However, Roam feels like it will pay higher dividends than TiddlyWiki over the long term (assuming there is a long term). I prefer writing in outlines, and I love the way it handles backlinking and not worrying about naming things. Roam feels a little like using a modern spin on Orgmode in the browser.
Let’s see where this goes. You can follow along in my public Roam database.
Update February 07, 2020: Keep an eye on TiddlyBlink, which aims to replicate many of Roams features.