Daily notes for 2024-02-22

ยท 1495 words ยท 8 minute read

Return to Tiddlywiki (briefly) ๐Ÿ”—

I was very, deeply bothered by Tiddlywiki’s failure to yield on a few points, so I took some time to work on them wondering how much of the Obsidian workflow I’ve come up with could be repeated in the context of a single-file wiki. Mixed success, I suppose, that could be less mixed if I were less automation-oriented.

But basically:

Area and People pages ๐Ÿ”—

I keep a standard page format for areas, people, and projects. Areas are non-timebound, non-project areas of concern or relationships. The GRC org is an area, as are “portfolio management,” “security engineering,” and “the people team.” Projects, Areas and People use the same template because they need pretty much the same thing: A list of tasks, a list of related tasks from outside the page, and a simple log. I guess these are tickler files in some parlances.

In Obsidian, a standard page for these things has a “tasks” section, a “related tasks” section, and a “log” section; and it has a primary_tag property. “Tasks” are ad hoc, one-off things specific to each entity, while “related tasks” are any tasks anywhere else in the system bearing the area or person’s primary_tag. The “related tasks” block just looks like this:

tasks
tags include grc

So if I’ve got a project somewhere else in the system, or drop a GRC-related task in some meeting notes, it gets sucked into that list. By convention, my primary tags are terse abbreviations, always in lower case. I could drop that convention, but it’s helpful for setting up pages in a standardized way that lets me just start using the page vs. modifying places where I want to pull in the primary tag. Turbo-laziness, basically.

The “log” section is nothing special. I do use the Quickadd plugin to make it easy to log something from anywhere by running a Quickadd log anywhere action from the command menu. So I invoke the keystroke, get a prompt for the file to append a log entry to, start typing “Areas/” or “People/” and pick the autocompletion, enter the log entry, and I’m done. The snippet itself is - {{DATE:HH:mm}} {{VALUE}}\n and QuickAdd allows me to target the ## Log heading to append the entry. I’ve got a clone of it for my daily journal page, just to shave off selecting the page.

In Tiddlywiki, I cobbled together a few things to get this rough effect:

I use the TodoList plugin, which provides the ability to drop in a snippet that creates a little ad hoc log widget:

<<interstitial-ui caption:"! Log" width:"" base:"$(currentTiddler)$_log">>

The base property gives the list a unique name, either to isolate the log entries to that page (with no base, all log items appear everywhere the snippet is used) or to allow reuse of the log elsewhere in the wiki.

The drawback of the log is that the widget stores everything in JSON, not as part of the page itself. Were one committed to using Tiddlywiki forever, that might not be so bad. I know myself better than that, and believe this pattern essentially recreates the drawbacks of any database-driven site. Maybe there’s an export option, but it’s also an impediment to simple search of the live wiki: You get back the associated lump of JSON, not the page that is presenting the lump of JSON.

The real answer is probably “don’t use that logging widget, figure out how to automate this some other way.”

TodoList allows the use of a todo list widget as well, but I couldn’t figure out how to surface its todos anywhere in the wiki. I am okay with violating Prot’s advice about mixing ephemeral tasks with notes, but only if there is a way to sweep up todos in one place for review and safety. So instead I use TiddlyWiki’s native task functionality, which involves a button that modifies the basic “New Here” functionality for a given Tiddler, but appends the primary tag of a given Area or Person page to a todo tiddler. When I click the task button, it makes a new tiddler with a todo tag and the current tiddler title as a second tag.

Then I have some template code to enumerate todos for a given Area or Person page:

! Tasks

<$list filter="[!has[draft.of]tag[todo]tag{!!title}!tag[done]sort[created]]">
  <$checkbox tag="done"> <$link to=<<currentTiddler>>/></$checkbox>
</$list>

! Completed tasks

<$list filter="[!has[draft.of]tag[todo]tag{!!title}tag[done]sort[created]]">
  <$checkbox tag="done" checked="yes"/>
    <$link to=<<currentTiddler>>/>
</$list> 

I don’t have enough Tiddly-fu to do in Tiddlywiki what I can do in Obsidian, which is drop in a task on any page from anywhere in a single keystroke. Not the worst limitation, and the proximate workarounds aren’t that bad.

What you end up with is that todos are just tiddlers with a todo tag. As opposed to the widget solution, they’re more searchable, and you can add notes about a given task in the body. You can also make a big todo page that lists every single unclosed todo in the system for review. I like it as a concept, especially since you could associate a given task tiddler with a variety of pages by adding the right tags.

Projects ๐Ÿ”—

In Obsidian, project pages are the same as area and people pages. In Tiddlywiki, the limitations of the native task management are such that I decided to get another plugin: Projectify.

It bolts a nicer GUI onto Tiddlywiki’s native task management to provide some project structure around the tiddler-as-task pattern. It includes a global entry widget for an inbox you can invoke from anywhere in the system (maybe that code will help me understand how to get the logging I want).

It’s a pretty nice plugin! I think I would be willing to use it full time, since it could even blow up but still leave me with data in files I could figure out how to migrate or continue to use. Unfortunately, development of the fork of the stalled original project seems to have stopped as well. I don’t have enough of a sense of how the Tiddlyverse works to know how much that matters.

Bottom line ๐Ÿ”—

We’re all spoiled for choice. With a few tweaks, I think I could make a go of Tiddlywiki. I just don’t know how to get some of the automation/ease of data entry I can get with Obsidian. If I lifted my notes out of Obsidian I would lose a few things that currently connect notes via the tasks and dataview plugins, but I limit use of those things to nice-to-haves.

Other Obsidian details ๐Ÿ”—

I’ve got a smallish list of plugins holding my Obsidian stuff together, easing data entry, and making my templates smarter:

  • Custom File Explorer Sorting: Just lets me put the file explorer sidebar in a better order (pushing utility folders to the bottom, raising my task list to the top)
  • Dataview: For pulling in related notes in my people, area, and project pages.
  • Front Matter Title: Lets me use Denote’s “metadata-in-filename” convention but see the human-readable title of a note in tabs and the file explorer
  • QuickAdd: A way to add content to pages. I can pop open a dialog to select a page, type in some text, and it gets plopped at the bottom of a given heading.
  • Tasks: The standard Obsidian task management plugin
  • Templater: Lets you add JavaScript to your templates at initial render. It’s how I enforce the Denote filenaming scheme.

If pressed, just Tasks would be the must-have. QuickAdd would probably make the list. Templater and Front Matter Title mostly exist to enable the Denote file naming, which is on my “nice to have” list.

The Milkmade ๐Ÿ”—

I got a nut milk maker. It looks sort of like a Mr. Coffee, but instead of a coffee basket there is a nut/grain threshing chamber. You fill the reservoir, dump maybe a quarter cup of your preferred nut or grain into the threshing chamber, and press a button. 12 minutes later there’s a 20 oz. carafe of nut milk.

It’s a little grainier than what you get at the store, and a little less creamy. Letting it chill in the fridge (it comes out at 180F) and drinking a cup of it wasn’t as good as store bought – maybe a little bitterness in comparison – but I did some reading and made another batch where I dropped in a pinch of salt, a splash of vanilla, and a teaspoon of monkfruit sweetener, and that was pretty good.

The CGM has taught me that cow milk in any quantity past “a splash in my tea” has a drastic effect on my blood sugar. It’s the kind of spike I never would have noticed with finger stick testing – tends to be fast and well within the two-hour post-prandial window – but I couldn’t unsee the spikes, and I don’t neeeeed cow milk, but like it over my cereal or with protein powder. So if I’m gonna be a nut milk lifer, I’m glad I can make my own.