Mingling notes and todos π
Prot on the ways in which Denote (or any “lots of little notes” system) will eventually murder org-mode agenda generation times:
“If you want my opinion though, be more forceful with the separation of concerns. Decouple your knowledge base from your ephemeral to-do list: Denote (and others) can be used for the former, while you let standard Org work splendidly for the latterβthat is what I do, anyway. … “Do not mix your knowledge base with your to-do items.”
I appreciate that. I am on the record liking the ability to sprinkle todos into prose, or the way todos can be skeletal prose. But one thing I’ve come to appreciate about me is that when I live in the same place for everything, I start feeling sort of tool-sick. I think that part of me that has a hard time resisting the urge to optimize reacts to Total environments by trying to totalize further.
With my Obsidian-by-way-of-Denote-conventions setup, I’ve been thinking about that a little.
I once went through an Obsidian jag where I wanted it to handle all my todos, and it didn’t take long to get to a state of config/plugin bankruptcy. I decided that it was a good idea to have todos be a thing handled by a dedicated tool, and notes to be handled by a good note taker.
During my most recent org kick, I let things intermingle more, and I really held on to org-mode as a backend for Denote because I had that total use case in the back of my head.
I do think there’s some value in having todos as semantically distinct nuggets inside atomic notes. For instance, when I’m on a call and taking notes, I don’t want to context-switch to my todo app to make a todo, and that’s not a good idea anyhow: You lose the context, or just make work for yourself going back to find the original note to get the context back.
One nice example of blending todos and some other text object comes from org-projectile, which lets you create TODOs in a code base that go into a central notes file with a link to the text hunk you can follow.
I borrowed that idea for Obsidian by using the Tasks plugin:
- Set Tasks to add creation dates to any todos you create
- Use normal todos for most inline notes: Just drop one in when an action presents itself during a conversation, or comes up while writing.
- Make a metanote page that lists notes created today, and also lists todos created today:
tasks
not done
created today
That makes a simple page that links back to the todo for when it’s the right time of day to go through the day’s notes and turn possible actions into actual tasks.
The Tasks plugin allows for a bunch of different kinds of tasks, so I’ve repurposed the - [*]
type as oppty
. Starting out in a new job, a lot of stuff goes by that I think of as “maybe nice for the backlog” or “should do some discovery on that,” but I don’t want to overwhelm myself by dropping it into my Inbox where it’ll both sit for a while and have no context. So I made another metapage for opportunities:
tasks
status.name includes star
not done
They just sit there, available for periodic review, linked to their originating note so I can get the context back when I need it. If I decide it’s not a thing after all, delete it or check it off. If I decide it’s a thing, turn it into a project and check it off. It’s a little different from the org-projectile approach, to the extent it leaves a todo item in the source file instead of just logging it in an outside file and linking back to the right hunk. I think that’s fine.
Obsidian Today Page π
I stumbled my way into a Today page figuring all that out. It’s just a collection of Dataview and Task code blocks:
# Tasks from Today
```tasks
not done
created today
\```
# Notes from today
```dataview
LIST FROM -"templates" WHERE file.path != this.file.path AND file.cday = date(today)
SORT file.mtime desc
WHERE file.name != this.file.name
\```
# Notes from yesterday
```dataview
table without id
link(file.link, default(file.aliases[0], file.name)) AS "File",
file.ctime AS "Date"
FROM -"metanotes" AND -"templates"
WHERE file.path != this.file.path AND file.cday = date(yesterday) AND !contains(file.path, "templates")
SORT file.mtime desc
\```
# Notes from previous three days
```dataview
table without id
link(file.link, default(file.aliases[0], file.name)) AS "File",
file.ctime AS "Date"
FROM -"metanotes" AND -"templates"
where file.ctime > (date(today) - dur(3 days)) AND file.ctime < (date(today) - dur(1 days))
sort file.ctime desc
\```
Basically, just “Any tasks from notes made today, then ‘all the notes from today,’ ‘all the notes from yesterday,’ and ‘all the notes from the prior 3 days,’” with a few filters to keep out metanotes and templates. It took a little fussing to get things to display in a way that shows my YAML metadata titles instead of the file names (which are Denote-formatted and a little cluttery), but that was an optional bit of prettying I undertook because I was curious.
Much that is wrong with “the discourse” … π
… can be found in this MetaTalk thread wherein a user calls people out over their reaction to the submarine thing.
Someone who knew one of the dead showed up:
“I’ve met Shahzada several times – he was a significant backer of my work in carbon-free energy. He also personally paid for 5 million doses of Covid vaccine to be distributed in Pakistan during the pandemic, and set up a charity for helping people in Pakistan deal with the mental health consequences of the pandemic. He was a good person.
“Reading some of the comments about him in the original thread was a gut punch. I was picturing (before we found out about the probable implosion) this person I know, this good guy, slowly suffocating underwater alongside his son, while Metafilter was making crass jokes about him.”
With each passing year it feels to me like an increasingly valuable piece of work to get better practiced at just not saying anything about an increasingly wide array of situations and topics. In a social media/web forum context, I can’t think of anything I’d say that would have a lot of leverage for good, and I can think of a lot of ways, like that right up there, that it can provide leverage for a lot of small but painful ills.
It’s not that simple, right? It’s a good thing that a lot of us have come to accept that people with power, privilege, access, resources, credibility, standing, platforms should use them to address injustice. It’s a good thing that we’ve become more aware of the ways in which the urge to be more measured, or to make our words sweeter or easier to take, can cause us to mistake passivity or injustice for humility or modesty; or make it easier to tell other people suffering injustice to come back when they can “put the message in a better envelope.”
I think the thing that makes it hard to swallow is the way in which privileged, successful, wealthy people have steadily gentrified categories of oppression to rationalize their unwillingness to govern themselves, or to feel able act on the very human desire to participate in the conversation going on around them.
We each have to do our own math. There aren’t any rules.
Twilight Apollo π
I’m very sorry Apollo isn’t long for this world. It’s the best way to do Reddit under any circumstances, and really shines if you care about the distinct conversations under a post. It has helped me come to know individuals in a few communities over the years. I can’t imagine reddit without it. So I’m browsing the few subs I subscribe to these days with a sense of impending loss. Not too many more days and it will shut down; reddit will be much harder to keep up with, and a much worse experience in general.
Markdown blogging π
A while back I wrote a Ruby script to make it easier to do Hugo blogging. It doesn’t do a ton, but it does make it simple to enter title, tags, and category from the command line to make a Markdown file in the right place. It includes a switch for making daily posts with my house style.
I’ve been blogging via ox-hugo
since mid-April, so the script hasn’t seen much use. Today I took another look at it, cleaned up one glitch in the way it does frontmatter, fixed up its daily post naming convention, and used it to make this post.
Gotta say, it just feels less fragile and less … think-y. There are some nice things about blogging with org-mode, for sure. I really like the document editing features. There are some things about blogging in a monolithic file that get sort of weird now and then. Sometimes it adds steps that feel needless. There are some things that are just clumsy or sort of a pain to remember. Every now and then you accidentally move a space in a previous entry and then you’re left wondering why a post from two months ago suddenly regenerated its own Markdown.
Markdown, on the other hand, is good enough for blogging. I don’t get any advantage from org-mode’s syntax for most of what I’m doing here, and Emacs’ markdown-mode does the same basic trick I like most from org-mode, which is tab-folding headings as I work through a post.
Like I said, when I decide I have another book in me I’ll probably write it in org-mode. Until then, I’m just going with the VHS of lightweight markup languages.
BBEdit and LSP π
I almost went full heretic and tried to see how I’d feel about Markdown blogging with BBEdit. I was sort of excited about BBEdit’s recent-ish support for LSP, and wanted to try out Marksman. Well, the two use cases I care most about for LSP — Ruby and Markdown — don’t work. I managed to get the servers for YAML, JSON, CSS, HTML, and Python all working. Nothing doing for Marksman or Solargraph, the Ruby LSP server. They both work great under Doom Emacs, which also has great integration with Rubocop to make up for Solargraph’s missing beautifying capabilities.
So, fine.
I’ve got Emacs in a great place right now. I trimmed a lot of needless stuff from my configuration, it behaves just how I like, and it integrates well with Obsidian if I feel like doing more long-form writing and don’t want to use Obsidian to do it. This miiiight be the first time I’ve ever gone so completely Emacsimalist, then climbed back down from my worst excesses, but kept on using it for everyday stuff, too.
I even did a quick nostalgia tour of Sublime Text, VSCode, and Nova. Something about each of them irritated me.
Goodbye, reMarkable π
As threatened, my reMarkable has a new home. Wow did I want to like that thing. I tried. In the end, I think it just came down to not being a handwritten notes kind of person at all. Or rather, if I am hand writing a note, it is just a small thing I am jotting down, or a way to fidget and stay a little engaged. I know what people say about recall and believe that is probably true, but that’s just one dimension — there are also search, storage, portability, and just basic convenience.
If I had great handwriting I might have benefitted from the reMarkable, with its searchable handwritten text. But I don’t have great handwriting. So it suffered from the same problem ebook editions of reference works suffer from: Paper notebooks have a certain spatial quality to them, and you can flip through them in lieu of being able to grep through them. My handwriting isn’t good enough to be greppable by a machine, and the electronic “notebook” can’t be thumbed through.
I guess, when I think back, that I imagined its more paper-like feel, its slimness, and its single-purpose nature were what would give it an edge over any number of iPad notebook apps. No. Turns out that I am just happier when I’m typing notes.
As if to drive the lesson home, I shipped the reMarkable off yesterday and found myself downtown today at my favorite paper store. I briefly eyed a few nice notebooks and pens, thought to myself “well, it was probably the digital stuff you didn’t warm up to …” then had a second thought and felt a little relieved that the paper coming out of the cognitive slot read in very plain, block lettering, “YOU DON’T ACTUALLY LIKE TRYING TO LIVE OUT OF A NOTEBOOK.”
So I bought some shoes.