Welcome to the lab.

Have you tried rebooting?

[Tweet : nvALT]

Last week I started having issues on High Sierra that I couldn’t resolve. Hours spent in Activity Monitor, Console, and surfing StackExchange sites led me to no further clues. The primary issue was increasingly frequent hang times, which led to horrible Skype calls, long waits in photo editing apps, and a general inability to use my MacBook Pro.

For interested nerds, the problem included almost every app recording a spindump daily by the end. Spotlight results were missing more and more often, and the mds process was working overtime and not getting anywhere. Then a ton of mdworker(28822) deny(1) system-fsctl 4a0e type messages in Console.

I cleaned up the drive, repaired the disk, cleared the caches, killed background processes, and yes, I tried rebooting. The problem persisted even when logging into a guest account. I found the solution (though not a solid explanation) in an old forum thread about a similar issue back on 10.8: Reboot into Safe Mode and then reboot normally. It’s been fine for a week now.

To execute the “safe mode” fix:

  1. Shut down the computer
  2. Hold down the Shift key as you press the power button
  3. Keep holding the shift key until after you hear the chime
  4. Wait for macOS to boot
  5. Shut down and start again without the Shift key

Step 4 (wait for macOS) can take a while. In my case it ran a bunch of disk and filesystem checks. If you want to see more of what it’s doing, make sure to boot in verbose mode. This is usually done by holding ⌘V while booting, but I’m not sure that works if you’re also holding Shift. I always boot in Verbose mode, which you can turn on from Terminal with:

sudo nvram boot-args="-v"

And turn off with:

sudo nvram boot-args=

(It can also be enabled with tools like TinkerTool.) You’ll see a boot sequence that will look familiar to any Linux users, and while a lot of the messages are hard to decipher, you’ll at least know what parts are taking time.

I’m told that this process invalidates caches that normally persist on reboot. This is actually really useful information as I’ve had issues with font caches and preference caches that I just couldn’t seem to clear out before. This may be my new “ctrl-alt-delete” tip for problems I don’t recognize…

Cardhop for Mac: contacts done right

[Tweet : nvALT]

Flexibits just released their new Mac contact management app, Cardhop. I’ve been beta testing this app for a bit and it immediately became as much a part of my workflow as Fantastical (not coincidentally also by Flexibits), which is an app I use all day, every day.

Cardhop is similar to what FullContact has tried to be, and has some features you’ll find in Interact Contacts for iOS, but as it stands on the Mac right now, this is the most elegant contact management solution I’ve seen.

Let’s Take a Look

Just like Fantastical on the Mac, Cardhop sits in your menu bar, and you can bring it up with a key combo or a click. The window pops up, showing today’s birthdays and your recent contacts (and optionally a sidebar with all of your contact groups). At the top sits a universal entry field, already focused and ready for you to type. Start typing part of a name and it will filter the list. Type until you find the contact you want and click to interact with it, or just use the entry bar: type “email ben k” (or even “ben k email”) and send an email to the primary email address for the first match of Ben K. Or type “email elle work” to start an email to Elle’s work email instead of her default address.

You can also create new contacts by typing a name that doesn’t exist along with things like phone numbers and email addresses, and they’ll all be intelligently parsed and included in the new contact. You can update contacts just as easily by typing enough of a name to match, and then continuing with new information. Type “Ben K 555-1212” and add that phone number to Ben’s contact card.

It can also parse entire blocks of text, such as email signatures, which you can get to Cardhop either by copying from an email, hitting the keyboard shortcut, and pasting, or just use the included Service to right click and send it directly.

Cardhop makes use of Contact groups, which is great for me. I’d previously used apps that let me add #tags in the notes field and do cool things with those. This was faster than building groups and dragging contacts around, so I’ve never used the official “groups” all that much. With Cardhop it’s easy to add a contact to a group by using a /group_name notation when adding or updating a contact, and easy to interact with the group (e.g. send a group email) by starting out with a command like “email /betatesters”.

When you type an action word, if the first match doesn’t have an appropriate matching key, it will try for the next one that does, further saving time. And when you type “call,” if there’s a phone number it can automatically make the call on your iPhone and you can just walk away from your computer.

There are many subtle delights you’ll find as you use Cardhop. Because it’s designed to work with natural language, you can often just type what you think should do the trick, and it will.

My friend John Voorhees wrote about Cardhop over at Macstories, and he included a note that none of the people he asked used any contact management apps, and thus Cardhop would have limited appeal to them. That’s the thing, though; most people who don’t use contacts apps don’t because they’re cumbersome (or overkill). Cardhop makes contact management so convenient that people who’ve always relied on autocomplete can now actually manage and interact with their contacts without having to launch an app and trudge through it. I’d say for those who don’t currently use any contact apps, it potentially has even more appeal. That’s not to say it’s ideal for everyone, but I wouldn’t exclude that entire segment.

Regarding the icon, I asked Michael Simmons “what’s the story there?”, and his response was “that Cardhop is not just another ‘boring database’.” A contact card that’s also a delicious sandwich? “Exactly.”

Check out Cardhop on the Mac App Store (or straight from Flexibits). It costs $19.99 USD, but there’s a limited-time launch price of $14.99.

Updated Mail vacuuming script

[Tweet : nvALT]

Another year, another new operating system, another update to the Mail Vacuuming script that I first posted in 2012. It’s an AppleScript that performs the simple task of optimizing the database that Mail.app uses for all of your messages, speeding up load and search times.

The latest version of Mail now uses a sandboxed container (in addition to a V5 bump). I personally haven’t used Mail in years, so the fixes came from @lbutlr. The gist is updated, and the code is below.

Web Excursions for October 17, 2017

[Tweet : nvALT]

Web excursions brought to you in partnership with Creatable and The Creatable Bundle, a selection of 15 awesome apps, design resources and courses, including Get Backup Pro, Exhibeo 2, LensFlare Studio, over ten thousand icons, UI kits, and courses on Git and CSS.

Announcing the 1Password command-line tool public beta
If you don’t already know I’m a huge 1Password fan, let me tell you: I’m a huge 1Password fan. And it’s not just because they consistently cater to my nerdy desires…
Touché - Touch bar for everyone
In case you missed it back when the Touch Bar was first introduced, Daniel Jalkut has a great tool for emulating it on your Mac. It works well with High Sierra and I’ve been using it to test out Touch Bar features on my (aging) rMBP.
I don’t generally go for distraction-removing apps, site blockers, single-taskers, etc., but this is really handy. It can enable and disable Do Not Disturb on your Mac, and disables badges on dock icons.
Undisturbed can be toggled on and off from the menubar. I think everyone knows how distracting badge icons can be, but also how handy they are. A way to toggle them on and off quickly without entirely disabling them is a welcome tool.
Jim’s Matrix Macro
A Keyboard Maestro macro for TaskPaper from Jim Krenz. It takes a task list using 2 key tags (@important and @due) and creates 4 separate views replicating the Eisenhower Decision Matrix espoused by Stephen Covey.
Paperlogix Document Scanner on the App Store
An intriguing new document scanner app for iOS. It features rules and workflows for automating the sorting, organization, and archiving (with folders, tags, and drag-and-drop) of the documents you scan.
One person’s history of Twitter, from beginning to end
A great read from Mike Montiero. I remember the early days of twttr, and I know what Twitter is now, but I’d kind of forgotten how we got here…

Support BrettTerpstra.com by checking out The Creatable Bundle of 15 great apps and resources.

Hey devs, Paw is 20% off

[Tweet : nvALT]

This post is primarily to let you know about the 20% discount on Paw, but I also want to tell you why I love it.

Paw is a tool for testing APIs and other HTTP requests. That obviously has a finite audience, but I think there are plenty of API developers (and developers who use web APIs) among my readers, so it’s worth mentioning.

Paw has every possible option I could want: easy ways to fill in request parameters, multiple ways to view responses (with configurable auto-detection of text, JSON, JavaScript, etc.), JSON highlighting and exploration tools, saved sessions with call history, the choice of HTTP library to use, proxy handling, and just about everything else a developer could want.

Here’s a quick shot of a test for my Titlecase API that I set up in about 60 seconds.

Paw even has a new cloud service with GitHub integration for API debugging with teams.

So if you do any work with APIs, whether building them or implementing them in your apps and websites, I do highly recommend picking Paw up. Especially while it’s 20% off…

The 60 Mac Tips winners

[Tweet : nvALT]

Congrats to the six winners of the full 60 Mac Tips shebang! Volumes 1 and 2 on iBooks and streaming/download on Vimeo.

  • Jimmy Hartington
  • Ronan
  • Eric Bouchut
  • David Watkin
  • Marek Petruš
  • Derek van Ittersum

For those who didn’t win, you can pick up a copy and support independent writers and Mac nerds!

A reminder that the iBooks and Vimeo versions contain the exact same tips, just different ways of getting to them.

Thanks to everyone who entered the drawing!

Markdown Service Tools 2.16

[Tweet : nvALT]

First, a quick reminder that there’s still time to enter the 60 Mac Tips giveaway and win $80 worth of awesome mac tips in iBooks and Vimeo streaming/download formats!

And now, a quick note that I’ve improved the “Clean Up Smart Quotes” service in the Markdown Service Tools. I also renamed it to “Clean Up Smart Punctuation,” so if you have the Smart Quotes version installed, you’ll need to delete that to avoid duplication.

The service now also converts invisible whitespace characters. These happen a lot when clipping from websites where horrible WYSIWYG editors have inserted a bunch of non-breaking spaces ( ) and the clipper’s entity conversion turns those into control characters. Then markup like emphasis breaks. So now you can just run “Clean Up Smart Punctuation” and it will convert curly quotes, guillemots, ellipses, and remove invisible characters that make debugging without an advanced code editor quite difficult.

See the project page for more info and a download link!