Thank you, Pinboard

Congratulations to Pinboard, a bookmarking service that has reached the age of 11 years. That's an eternity in the Internet world, but I'm not surprised, because it is a service that I not only love, but consider essential. I've only been a member for 10 years, and during that time I've stashed thousands of links, which are searchable, cached, and virtually at my fingertips. Additionally, I have an archive of every tweet I've made since joining Pinboard, which might come in handy in court one day. (I kid, I kid.) It's also remarkable that Pinboard remains a one-man, lovingly crafted artisanal software operation. If you're the type who bookmarks pages so you can refer to them later, you should definitely sign up.

Tablet Stands I’ve Known

I love the AmazonBasics Adjustable Tablet Holder Stand so much that I’ve purchased four of them. Not because of breakage or loss, but because they work so damn well. In addition to being suited for a variety of digital devices — I use mine with iPhone, Kindle, and iPad Pro — they work great for displaying collectables such as plates, awards, or books. They’re inexpensive, and pack light enough (and small enough) that I carried one across Europe for five months. (And I hate hauling stuff around that I don’t need, I needed this!) What makes it so versatile is the degree of adjustability. (Amazon’s photos really don’t do it justice in this regard.)

Now, having said all that, I’ve also tried the AmazonBasics Multi-Angle Portable Stand. It’s nominally smaller, but not nearly as adjustable. But if I were looking for a stand that would mostly remain in one place, adjusted to a single angle, I’d choose it. (For example, an iPad kept on the kitchen counter.)

Finally, I should mention the Twelve South Compass. It’s beautiful. It is a lovely piece of art and craftsmanship. If an intruder broke into your home, you could use it to knock him out and then plunge one of its arms deep into his chest. As much as it aesthetically pleases me, I don’t travel with it, and rarely use it.

The Silver Ingot: A Las Vegas Text Adventure Game

I've written a short text adventure game you can play in your web browser. It's called "The Silver Ingot: A Las Vegas Adventure" and it's based on actual events.

To play, just click this link: Play Now

It has been decades since I last wrote a "choose your own adventure" game, and I used this opportunity to learn a more modern authoring and coding approach. (It's written using Twine2.) I hope you like it. If you've ever played ZORK or Colossal Cave, you'll feel right at home.IngotLogo

Automatically open the printer status window

If you're a Mac OS X (macOS) power user, you should certainly have a copy of Keyboard Maestro. (If you don't stop reading now and go there. You're welcome.) This tiny little trick requires that you have it...

My HP LaserJet printer is not on the same floor as my home office. Therefore, whenever I print something, I like to keep tabs on the print job so I know when it's finished or has encountered problems. Normally, to do this, you have to click the printer's icon in the Dock.

I hate clicking things when I don't have to.

So I wrote what might be the world's simplest macro. It's triggered by the print job starting, then it clicks the monitor apps which causes the status window to open. Brilliant? Not really, but it is very handy. Here's what it looks like:

Screen Shot 2020 05 25 at 1 59 32 PM

Creating a yearly macOS Mail archive

I’m sort of a packrat when it comes to email messages, so by the end of the year my IMAP account is cluttered messages I’ve read. I like to keep them around for reference, but I also want to clear out that space on my mail server. Here’s my process to accomplish both. (I generally wait until mid-year to do this, to help ensure I no longer need instant access to old messages.)

In the macOS Mail app, create a Smart Mailbox that gathers all messages for the year. Be sure to include Sent messages so you have a complete record.

creating a new mailbox

When the Smart Mailbox has finished finding all the messages in the date range, create a new regular mailbox (not another smart one). Select all the messages in the Smart Mailbox and drag them to the new non-smart mailbox. (It feels like you shouldn’t need to do this, but trust me, you do.)

Wait patiently while the Mail app moves all those messages over to the new mailbox. This will take a while, and if you squint, you can monitor the progress at the bottom of the Mailboxes pane.

mail progress indicator

When Mail has finished moving the messages to the mailbox, Command-click the mailbox and choose Export Mailbox from the pop-up menu. Choose a destination (I always make a new enclosed folder) and let ‘er rip. This will take a long time to finish. Once again, watch the progress indicator to see if it’s done.

When it is finished, you’ll have an “mbox” folder saved at the destination. At this point, your messages are safely archived on disk and you can go back to Mail and delete both the mailboxes you created during this procedure. Again, keep an eye on the progress indicator. Removing all those message from the server will take time. But you’ll be left with a nice uncluttered IMAP account.

Now, how do you look at or search the archived messages? I mean, that’s why you kept them, so you can refer to them, right? The files on disk are just text, so something like HoudahSpot, or even the Finder (gasp), can search them. But you’ll be happier if you use an app that understands the mbox format and presents them more or less like how you expect email messages to appear. EagleFiler would be a good choice, I hear, but I don’t use it myself. I am already a heavy DEVONthink user, so that’s my app of choice. I import each mbox into a database that’s dedicated to my old email.

devonthink progress indicator

If you do this, notice that DEVONthink has (unfortunately) taken a cue from Mail and shows its own barely noticeable progress indicator. You’ll want to make sure importing is finished before quitting DEVONthink and throwing about the mbox files.

Multiple TXT records with Route53 DNS

It’s common for providers to ask you to add a TXT record to a DNS so they can verify that you own the domain. If you use AWS (Route 53) for your domain, be aware that while you can create multiple TXT records, only one will be visible to outside queries. Instead of creating a new TXT record set as instructed, add to the existing “unnamed” TXT you already have. (Start each entry on a new line in the Route 53 interface.)

Sending text from Ulysses to MarsEdit

These days, I do all my writing in Ulysses, but I use the fantastic MarsEdit to manage this blog. This means that when I'm ready to publish something, I have to somehow get what I've written from one app to the other. I wish there was a better integration, but here's the two-phase process that I'm using:

  1. In Ulysses, click the Quick Export button, then choose HTML from the format pop-up menu.
  2. Select Snippet as the Format.

  3. Click the Send button and choose Copy to Clipboard.

Screen Shot 2020 04 13 at 11 18 34 AM

  1. In MarsEdit, create a new post, then click to set the editing cursor inside the post's body.

  2. Choose Edit > Paste HTML Source.

Presto! Continue creating your post in MarsEdit.

Using Tinderbox for Mail Merge

I have a handful of different email messages that I need to send out on a fairly regular basis, but most often, I’m only sending them to one person. For this reason, a regular “mail merge” setup is overkill and too cumbersome — they all assume that you’re sending the message to a many people that exist in a list, not just one person, perhaps only once.

For a long time, I’ve kept a folder full of “canned” mail messages. When I need to send one, I open the template in BBedit, change the salutation and a few other details, then copy the message into a blank email. It’s a manual and unsatisfying process, but workable.

I’m a longtime fan and user of Tinderbox, but it wasn’t until recently that I realized it could be the solution to my canned email problem.

Each template message is its own Tinderbox note. The body of the note contains boilerplate text with value substitution calls that insert data from the note’s User Attributes. If you’re a Tinderbox user, the concocted example below should clarify everything for you. (If you’re not a Tinderbox user, there no doubt I’ve already lost you.)

Tinderbox Screen Shot of Note

When I need to send an email, I duplicate the template note, alter the field data, then export the note to plain text. Then I delete the duplicate, just to keep things tidy. The contents of the plain text export are copied to an email message. Done and done.

The last step, copying to email, is still a manual process. Perhaps someday I’ll work on a way to automate it, but for now this works for me.

You might wonder why I duplicate and then delete the note instead of using a fancier approach that utilizes more of the Tinderbox capabilities. Well, by making a one-off duplicate I can add or delete info from the template. (Adding a postscript that only applies to this one recipient, for example.) I delete the duplicate after I’ve exported it because I use Mail’s “sent messages” for reference if I need to, in the future. This limits Tinderbox’s role to helping me generate the messages, it’s not also serving as an archive of what I’ve sent.