Posted in: General

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!

Posted in: General

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.

Posted in: General

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.

Posted in: Photography

Bringing my photos in from the cloud

For years, I’ve kept my photos in a nicely-organized, dated folder hierarchy on my local machine. Eventually, the lure of easy management and ubiquitous access became impossible to ignore, so I spent some time using cloud-based services to manage, edit, and organize my photos.

I’m done doing that, now. I’m back to managing photos locally.

In the process of reeling things back from the cloud, I’ve updated my workflow a bit and will try describing it here.

The current year’s photos go in dated folders on my big iMac’s local hard drive. I’ve decided to call the top-level folder “Negatives”. So photos from today will go in ~/Pictures/Negatives/2019/11-November 2019. I chose to call it Negatives because that’s how I’m thinking about both film scans and RAW digital files. From here on I’ll refer to both scanned film and digital RAW files as “negatives”. Next year I’ll start a new folder and move last year’s off to the Synology.

I maintain a Capture One Pro “session” named “Capture One Inbox”, into which I import all new images. This also includes importing photos from my iPhone. I export periodically from Photos into C1. I think of my iPhone as just another camera/source. After culling and aggressively deleting from this inbox, I move the original files into the appropriate Negatives folder.

From there, I edit the photos I’m interested in using Capture One. Once editing is complete, I export a JPG into my “Digital Print Archive“. The DPA is where I live with the photos after editing. I don’t go back to look at the negatives unless I want to make a completely new version (e.g. black and white) of something.

Not relying on Lightroom or Capture One as the only way to view or catalog my images is comforting, but I still kind of want a catalog. That’s where I’ve started using the still-in-beta Photo Mechanic Plus from Camera Bits. I’ve used the original Photo Mechanic for many years as a tool to ingest, cull, rate, and caption photos. It’s by far the fastest method I know of for doing that. Photo Mechanic Plus introduces comprehensive cataloging to Photo Mechanic.

At first I didn’t take to Photo Mechanic Plus. I found it kind of weird and awkward to use. Subsequent betas have improved things, and I’ve become accustomed to the way it thinks. It’s quite powerful and flexible.

What I’m now doing is cataloging my Digital Print Archives. I’m not cataloging my negatives/RAW files. That seems weird, but really, once I’ve edited and exported a negative, odds are I don’t need to go back and dig through everything again. I truly am thinking of them as negatives.

A positive side effect of this is that I’m no longer tempted to tweak every single photo I view. In Lightroom or C1, as I’m browsing my catalog looking for something I invariably end up spending half the time just making “one more little tweak” to an image I was done with weeks or months ago. Nothing is preventing me from doing this now, it’s just that it’s become a deliberate act rather than a distraction.

I’ve changed my file naming process too. I no longer rename the original negatives. They remain named as they were coming out of the camera. Film scans get my “2019 Roll-NNN-FrameNo” format. When exporting to the DPA I rename them using the format “YYYYMMDD_ORIGINALFILENAME_TITLE.jpg”. It makes the filename a bit longer, but this way I can easily find the original negative based on the filename of the “print”.

From Photo Mechanic I can upload/share/archive whatever. Photo Mechanic is good at that stuff. And fast.

I admit that I also take advantage of Google Photos’ AI features. My entire DPA folder is automatically uploaded to Google Photos. This gives me a great way to browse and share collections from everywhere, without losing control of my library. I’ve decided to ignore my privacy concerns around this for now.

This all sounds pretty complicated when written out like that, but it’s basically this:

Import to C1->Edit->Export->Add to PM+->Share

The filesystem is my binder of negatives. Capture One is my enlarger. The filesystem is where I store and peruse boxes of prints. Photo Mechanic Plus is my librarian. Flickr/Instagram/Blogs are my gallery.

Posted in: General

Logging books in TiddlyWiki

For the past several years I’ve maintained a text file listing all of the books that I’ve read. The simple text format makes it easy to, for example, quickly see that I read 27 books in 2017 by doing something like…

grep "2017-" books.md | wc -l

This is neat, but otherwise not terribly useful. Given my recent fascination with TiddlyWiki, I figured I’d try logging my books there.

I started by recreating my original list in a single tiddler but other than having them in my wiki it didn’t offer any advantages.

What I ended up doing was to create a “template” tiddler for books. The template looks like this…

Book template

I then created a button for easily adding a new Book tiddler. The “Add a book” button is rendered using the following macro…

Add book macro

It looks like this in the wiki…

Book button

New Book tiddlers created with the Add a Book button are automatically tagged with “Book” and include fields for startdate, enddate, and goodreads. Those fields are used by the template so that each book tiddler is rendered showing dates and a link to Goodreads.

To include the template in a tiddler, I add the following…

This transcludes the custom view template like this…

Example

Including that templates ensures that all book tiddlers contain at least the “Notes” section at the end. And they’re formatted consistently.

Storing the start/enddates in custom fields allows them to be used in other ways. Next up will be to show the enddate right in the list of books.

Here is the result

This makes me want to go back and add all of my books as individual tiddlers, but that may be a while.

Posted in: General

Displaying a random quote in TiddlyWiki

Oh goodie, another post about TiddlyWiki1.

There was a recent thread on Micro.blog about surfacing older content in order to find things that might have otherwise been forgotten. I love this idea, so I added a Random Quote tiddler to my wiki. Here’s how I did it.

Installed Matt’s ‘Shuffle Operator’ plugin2

Then, I created a new tiddler, Random Quote, to display the random quote.

Last, I added the following to the Random Quote tiddler:

<$list filter="[tag[Quote]shuffle<now>limit[1]]">

    { {!!text} }

</$list>

(Remove the space between sets of curly braces, those are there so they render correctly here)

That’s it! Now the Random Quote tiddler will display a single, (relatively) random tiddler selected from all tiddlers tagged with “Quote”, although any Filter expression could be used to determine the list of tiddlers to pull from.

Posted in: Technology/Software

A quick tour of my Tinderbox Daybook

I’ve been keeping a “Daybook” using Tinderbox since at least 2008. My Daybook is basically a collection of outlines and notes. Here’s a quick overview.

The main sections are:

  • Daybook – This is a daily log/journal, organized by month
  • Meal Log – I log what I eat, when, the type of meal, and a quality score
  • Media Log – I record books read and movies watched
  • Weight log – Most days I enter my weight.

At the end of each month I export the Daybook outline for the month as Markdown, which I also then convert to PDF and print. From there it gets punched and put into a 3-ring binder.

There’s a simple dashboard “Map” view showing aggregate metrics.

Tinderbox lets me add any metadata I want to notes. For example, the Media Log contains the following:

  • StartDate – When I started a book or watched a film
  • EndDate – When I finished a book or film
  • Rating – I rate things on a scale with 1 (I didn’t care for it), 2 (It was fine), and 3 (I enjoyed it)
  • Media Type – Currently this is either Book or Movie. I thought would include Podcast and TV but have not done that
  • URL – Usually a link to Goodreads or Letterboxd
  • Authors – Book author
  • BookTitle – Full title of the book
  • PublicationYear – Year of release
  • ISBN – for books
  • Genre – Fiction or Non-fiction

Outline titles can show not only the note’s title, but any other metadata as well.

The thing about all this is that with minimal input, I can get all sorts of interesting output and insights. I’ve tried other ways of keeping a Daybook like this but nothing has come close to the utility and flexibility of Tinderbox.

Posted in: Hardware

Why do I try so hard to use an iPad for everything?

I’ve been trying very hard to adopt the iPad as a tool for Serious Work since at least 2013.

I’m not sure why.

It probably started when Federico Viticci (@viticci) started writing about switching to using an iPad only. He claimed to love, and actually prefer it, even though his posts were full of ways he’d learned to work around shortcomings in iOS and how everything was “fine”. Still, it sounded fun.

Many people seem to get along well with only an iPad. I envy them, but why? I’m not at all unhappy with having a desktop Mac or two, and a Macbook or Air or whatever’s relatively portable. What’s the rush?

I’ve had several iPads, starting with the original in 2010. I now have the latest 12.9″ iPad Pro and it’s a wonderful, powerful, beautiful machine.

But…

It’s not a viable full-time device for me. Here’s why1.

The iPad doesn’t multi-task well. “Yes it does!” you exclaim. No, it doesn’t. Not really. What it does is pretend to multi-task by letting me glue two apps side-by-side. That doesn’t count, unless your definition of multi-tasking is quite different than mine.

There’s no terminal. I don’t enjoy working on a device that doesn’t offer me a reasonable set of tools available using the command line.

I want a filesystem. I know, we’re supposed to be in a post-files era, but I’m not ready for that yet. Sending files between apps has gotten better, but it’s still awkward, slow, and inconsistent. Having to import photos from a card reader into one specific app just to get them where I wanted them in the first place is crazy-making.

The software I rely on isn’t available on iOS. Software such as…

  • Tinderbox. There is nothing like Tinderbox, anywhere, on any platform. Tinderbox alone is enough to keep me forever on macOS.
  • Capture One Pro. After flirting with Capture One several times over the years, I finally went all-in last year and it’s fantastic. Why would I want something so much less capable just so I can use an iPad? I wouldn’t.
  • BBEdit. There are some nice, surprisingly powerful text editors on iOS, but they’re nothing like BBEdit. (or VS Code, or Atom, or Vim, or Emacs, or…) for dealing with text.
  • DEVONthink. Yes, there’s DEVONthink To Go, which is nice and I rely on it on the iPad, but mostly as a way to get at the stuff I put into the macOS version. I use templates and AI and scripts all over the place in DEVONthink Pro. I would be worse off without them.

It’s not all bad, of course. I really love my new iPad. Here’s why.

Taking meeting notes and annotating PDFs with the Apple Pencil is fantastic. Once I learned to use Notability and LiquidText on the iPad, I’d never want to go back to doing those things on my Mac.

Photo retouching is more fun on a touch screen. I know I said that I rely on Capture One for processing photos, but for actually retouching them, the Pencil and fingers make great tools. I’m looking forward to doing more of it, but until there’s a way that I can reasonably manage photos on the iPad, retouching them there will be more work than it should be.

I’m doing a little drawing with Procreate. I have a soft spot for real sketchbooks and pencils, but the ability to freely experiment digitally is pretty great, especially since I’m not very good at drawing.

The iPad is great when I just want to go somewhere and write something. Calling the iPad “distraction-free” isn’t accurate. I’m always just a gesture away from many of the same distractions available on the Mac, but it’s just a little harder to get to them. On my Mac’s 27-inch screen I can often see three or four app windows at the same time2. One of them is bound to hold something I can use to keep me from doing whatever it is I’m supposed to be doing. The barriers to multi-tasking on the iPad make for a “distraction-reduced” environment. And a darn fine environment at that.

All this to say that for me to do the things I want to do on a computer, the way that I want to do them, I still prefer using a Mac. The number of things I prefer doing on the iPad continues to increase, and some day it may reach a tipping point. Today, though, I’ll continue using both devices for the things each is best at. There’s no reason to push so hard at switching. It doesn’t have to be one or the other. I’m not sure why I find it hard to remember that.

Posted in: General

First impressions of the Kobo Forma eReader

I tend to try each new generation of Kindle from Amazon and that remained true with the newest model, the 7″ Oasis.

I don’t love the Oasis. Its metallic finish feels cold in hand. And sharp, somehow. I do like the larger 7″ screen. It has hardware buttons for turning pages, which is a requirement for me.

I don’t have strongly negative feelings about buying from Amazon other than they’ve gotten a little big for their britches.

Lately, I have been buying “real” books from local independent bookstores and that feels good, so I started looking at non-Amazon eReader options. The only viable choice looked to be the Kobo series, so I bought a Forma.

I’ve been using the Forma for about a week and here’s a quick list of my first impressions, comparing it to the Kindle Oasis.

Pros

  • I like the large, 8″ screen
  • It’s quite comfortable to hold
  • Landscape mode is interesting, but I’ve only used it a short time
  • It makes me feel good buying books from someone (anyone) other than Amazon
  • Library support (via Overdrive, but of course my library doesn’t use Overdrive, so I can’t test this)
  • I didn’t have to pay to remove ads (at least directly)

Cons

  • It feels a little cheap (Could be the price I pay for non-metallic finish?)
  • It’s quite expensive, which is emphasized by its cheap-ish feel
  • The hardware buttons are “mushy”. The power button is especially finicky to use
  • Hardware buttons are too far apart. I have to reach to hit the top one.
  • No Goodreads integration
  • Discovery in the Kobo bookstore isn’t nearly as easy as on Amazon

I’ve read two books so far, and my overall impression is positive, but I’m not sure if I’ll stick with it or pass it on and return to the Oasis.

Posted in: General

TiddlyWiki

I’m infatuated with TiddlyWiki again. I’ve tried it a few times over the years, but it’s never stuck. One reason was that TiddlyWiki is a single, self-contained html file, and Safari has trouble saving itself to the file system. In order to save the thing I had to basically do a “Save As…” each time. Too much friction there.

Another snag has been that it’s kind of weird. Not weird in a bad way, but weird in a ‘what do I do with this thing?’ way.

A week or so ago I decided to dive back in. The first thing I learned is that TiddlyWiki can be run as a Node app. This means that each “tiddler” is stored separately as a plain text file.

So something like:

npm install -g tiddlywiki
tiddlywiki mywiki --init server
tiddlywiki mywiki --server

Visited http://127.0.0.1:8080/ in a browser and I was off and running. That solved the Safari problem. It also makes it possible to edit the wiki using whatever my favorite text editor is this week, if I were so inclined.

Getting over the strangeness of TiddlyWiki has been a matter of jumping in and using it. I’ve been thinking of TiddlyWiki as a Zettelkasten1, and each tiddler as a “zettel”. This has helped frame things in a way that makes sense to me. Each tiddler represents a single topic or thought or idea.

I’m not sure how far I’d take TiddlyWiki as a Zettelkastan, though. If I were thinking of building a long-term Zettelkastan, I’d probably use something like The Archive.

The other thing I’m learning is that TiddlyWiki is more powerful than a casual look would indicate. Macros, plugins, filters, etc. allow all sorts of custom behavior. I’ve only scratched the surface.

So for fun, I’m occasionally entering stuff in a local wiki, saving the file, and publishing the result at http://wiki.baty.net/. I do this with a small Makefile that looks something like this2

PUBLIC_DIR=output/
SERVER_HOST=static.baty.net
SERVER_DIR=/home/jbaty/apps/wiki
TARGET=Static

deploy: commit push
    @echo "\033[0;32mDeploying updates to $(TARGET)...\033[0m"
    mv ~/Downloads/Jack\ Baty\'s\ Wiki.html ~/Downloads/tiddlywiki.html
    rsync -v -rz --checksum --delete --no-perms ~/Downloads/tiddlywiki.html $(SERVER_HOST):$(SERVER_DIR)


build: clean

    @echo "\033[0;32mBuilding site...\033[0m"
    tiddlywiki ./ --render "[!is[system]]" "[encodeuricomponent[]addprefix[output/]addsuffix[.html]]"

commit:
    git add -A
    git commit -m "Build wiki `date`"

push:
    git push origin master

clean:
    rm -rf $(PUBLIC_DIR)

.FORCE:

TiddlyWiki is fun to play with, but I don’t know yet whether I’ll ever use it consistently. So far it feels like I’m using it to write a blog, and the last thing I need is another blog. Still, it has potential.