BBEdit turns 30

Just after I was remembering it yesterday, there’s a nice appreciation of BBEdit going on over at HackerNews. One comment captured my opinion pretty well:

I read about BBEdit on HN a few months ago and realized it has one use-case where it excels: text transformation and regex search/replace across files. When it comes to this, no other editor I know can hold water: neither Sublime, nor VS Code, nor Vim. And forget about Emacs, as regexes need to be awkwardly double or triple backslashed.

Text transformations can be done via regex, predefined functions, or any scripting language, where the scripts will be listed in the menu. Regex search/replace has a history of used patterns, so you can reuse them.

All in all, it is a very lightweight editor with excellent text transformation features that no other editor can offer.

It is definitely my go-to for that kind of thing. I used to feel sort of guilty that I wasn’t trying to get heavy-duty text transforms done from the shell, then I wised up: BBEdit makes it fast, reversible, repeatable, and visually discoverable. And it will plow through large files like nothing else. I keep a license around just for scenarios like “need to do something to 2,000 Markdown files” or what have you.

Also, my interactions with BareBones for support have been so amazingly helpful and cordial.

Thirty years old and still an evolving, high quality product that I reach for when “I just need to get this task done.”

Emacs update

The last few days I’ve started getting reminders of a fundamental truth of Emacs life, which is that you will eventually push it a little too far with the new stuff and it starts getting punchy and stops feeling trustworthy.

I got a little excited about some tweaks, and I’m glad I was applying them one at a time and seeing what happened, because when one of them hard-locked Emacs it was simple to just go back into my file, :tangle no the offending config, and comment out the problematic package in packages.el.

This is a part of Emacs life, though, that Doom Emacs has made better: It makes configuration simple. I love being able to organize config blocks under headings I can manage with org-mode structure editing, and I appreciate the simplicity of package management. There are a few more steps to get some things done, but they’re simpler steps than how I used to manage Emacs.

When I hard-locked it yesterday it was a small bummer but it was also easy to undo the change and get back up and running. I’ve felt the difference in how I feel when I sit down to use Emacs over the past while: It has gone from “well, I wonder what sort of fatal self-own I’m going to suffer from today” to “this is a stable tool I like using and don’t worry about much.”

It’s such an open ecosystem, and extending it involves so much complexity, that the bits like “oh, added that package and it crashed trying to open a file” are just going to be part of it. But you deal with that by following a “no new toys with an unsaved buffer of something that matters to you” rule and making incremental changes.

Organizing work – todo apps

I spent a little time watching reviews and comparisons of Things and OmniFocus 3 today. Last night I started putting together a 90-day plan in org-mode and was enjoying the “actions/prose” hybrid of org-mode, but also thinking “this is getting complex and these lists are pretty sequential and interdependent … I wonder if I want to put this weight on org-mode.”

So I watched the videos, downloaded OmniFocus 3 again (I’ve had a license for a few years), and took a stab at entering a few small chunks of work to see how it felt.

Not great.

I don’t spend a lot of time worrying too much about how apps look, but OF is just sort of unappealing in that regard.

When I look at Things, there’s a lot of visual appeal. You can’t do much to control it, but you don’t need to. The color scheme and roominess of the interface really work for me. When I look at an org-mode buffer, it is a very different aesthetic. I recently stopped doing mixed-mode and just live in good old Fira Code in a single size. But I’ve got good light and dark themes and once I figured out how to control line-spacing it opened things up a little and made it feel less like a … like smelly ASCII cave. Looking over at MailMate, I can also exercise a little bit of control, so even though it is a visually simple app, the bit of decoration it does have is clean and I can pick my typefaces.

OmniFocus has some customization options, but I’ve always struggled with its font sizes, sort of resenting the iOS-style “small/medium/large/larger/very larger” restriction on my choices, especially because there’s a wide range of text size going on within the UI. It is also cramped. The UI is packed tight and even lists of project headings feel claustrophobic and closed in.

Things 3, one might respond, has next to no customization, either. Fewer choices than OF3, even. But it’s just better done out of the box. It reminds me of something the UX designers at Puppet would have come up with in that it feels light and open.

That’s a lot of time on looks, but if you have to look at the thing all day, they start mattering.

I think mostly I just managed to remind myself that I really loved the idea of OmniFocus years and years ago, but in practice it never stuck for long.

Things is harder to discard. It’s just pleasant to work with, it’s logically organized, the mobile apps are very good, and I really like the way you can organize a project with headings that are loose enough to have whatever meaning you care to give them: Milestones, themes, phases, or whatever. There’s light Markdown sprinkled into the text areas, too. If you were not hung up on ultimate portability, the typography is clean and legible enough that you could manage prose notes in Things.

Back in the day, when I was using Bear a lot for note-taking in conjunction with Things as my task manager, I would just include a link to a Bear note in the notes field in Things. So, for instance, the Things project I had set up for my team had a heading for each member of the team where followup items went, and a link to the individual team member’s note in Bear for prose. It worked pretty well.

Connecting Things todos to org headings

I wondered if I could do that with Emacs and an org-mode heading, and yes, I can.

This StackOverflow post provided two bits of code to add navigation to a given org-mode heading using org-protocol and to yank the link from a given heading. It points to this page on how to make a simple little AppleScript app that registers org-protocol as a valid URL handler in macOS. I bound the link-grabbing function to SPC n L in Doom, and gave it a try by pasting the link into a Things note … yup … worked: Dropped me into a new Emacs GUI window with the point on the org-heading.

Screenshot of a Things todo with a link to a heading in an org-mode buffer
Things with an org-protocol link pointing to an org-mode blog post heading

Will I use it?

I don’t know!

I remember my Things/Bear workflow being a very nice harmonization of two different kinds of work that lived in single-function apps. org-mode blurs those lines all on its own. I wrote a little about this several days ago in relationship to my plaintext PRM.

I really like how clean Things is for capturing stuff from all sorts of places on my phone and computer. I like its seamless integration with existing macOS and iOS calendars and Reminders. I can do that stuff in org-mode and Emacs, but it takes a little extra work and feels more brittle. There are mobile apps for org-mode, like beorg, but they do feel a little clunkier than Things.

So I guess I’ll take that small chunk of planning I was working on in Things, expand it to more stuff, and see how it feels when I can link in to org-mode documents as easily as I can now.