My mother has been baking holiday cookies for as long as I can remember—at least 50 years and counting. Many years ago, she gave me a binder with her cookie recipes in it, which I basically ignored for a long time.
And as nice as it is having her written recipes, some complete with notes, I wanted to digitize them, for easier access. I also wanted to convert them from their use of the inane US-based measuring system to one based on weight in grams, which greatly eases preparation (assuming you have a good kitchen scale). (more…)
Of late, my Mojave-running iMac has been having major Spotlight problems: Occasionally I'd find it rebuilding the main index, despite me not having done anything to require such an action. Even worse, though, is that it would stop working entirely in Mail until I rebooted.
My main use of search in Mail is to help our customers find lost license files—I have records that go back to 2010, so I can usually find their license if they did buy from us. With Spotlight broken, I'd have to login to the two different cart providers we've used over the years to find license files. Having a functional Spotlight in Mail was fairly job-critical to me.
Some digging showed that a process named suggestd was repeatedly crashing…
Any macOS engineers out there who might be able to solve a recurring suggestd crash? I've searched, and can't find anything useful. I cleaned up Mail, but that was no help.
Crash line: …NSInternalInconsistencyException', reason: 'Asset identifier storage too small' #HaveLogs
When this happened, it seemed it would often, but not always, kill Spotlight in general and in Mail. After a lot of debugging, I gave up on fixing the suggestd crash—it's stil crashing multiple times a day—and instead, set out to find another way to search my Mail archives without the help of Spotlight.
I wanted to offload all that historical Mail data to some other app whose search feature wouldn't be dependent on a functional Spotlight. And so, the search began.
tl;dr summary: I chose EagleFiler, a long-lived Mac app that works wonderfully for this task (and many others). It creates its own indices, so it's not reliant on Spotlight, and it's quite speedy at ingesting large amounts of Mail. An unexpected side benefit is that the database is small enough—and fully self-contained—that it's easy to sync to my laptop—so I now always have my email archives available.
As part of my struggles to fix my constantly-crashing suggestd process (and the Spotlight failures that it seems to cause), I reinstalled macOS Mojave a couple of times using the Internet Recovery partition. These were in-place reinstalls, so I didn't start completely clean, but the OS is reinstalled from scratch—so much so that I even had to run the 10.14.6 updater and a couple of security updates again.
In the end, not only did this not fix the suggestd problem, but it also broke my all-important VMware Fusion virtual machines. When I tried to launch any of them, I was greeted with an error message:
Error: Could not open /dev/vmmon: Broken pipe
This is apparently so common that VMware has a knowledge base article on the issue. The error is due to VMware Fusion not loading its required kernel extensions, but nobody seems to be sure of the cause of the problem. However, that article is supposed to fix it…unfortunately for me, it did not. I never saw an entry in the Security & Privacy System Preferences panel to allow VMWare's extensions. As a result, they didn't load.
Here's the tl;dr for the fix that did work: Rebooting in Recovery mode (hold down Command-R at startup) and deleting the KernelExtensionManagement folder located in /private/var/db. There was a lot more to it than that, though, which I cover for my own possible future needs in the rest of this post, in case the linked sources ever vanish.
Each day, the battery would drain smoothly and continuously—you can see the pattern repeating on the prior day, as the battery dropped to under 20% by 9:00pm. This was happening despite the fact that I work at home and rarely use the phone while here—I might look at Twitter occasionally or launch an app or two, but it mostly just sits on my desk.
As Apple touts up to 22 hours of video playback for the iPhone 13 Pro, I didn't think it should be draining to under 20% in about 12 to 15 hours of non-usage. So the debugging started.
If you want the tl;dr, here it is: I turned off wifi sync, and the problem seems to have vanished. Read on for the details and a before-and-after comparison image.
Being a person of a certain vintage, I have a soft spot in my heart for the arcade video games of the 1980s—Asteroids, Pac-Man, Missile Command, etc. I've long wanted to get an original game in its full-sized cabinet, but they're large, increasingly expensive, and complicated to maintain.
So I use MAME to run such games on my Mac, but it's just not the same as a physical machine. I've considered building my own cabinet, but then remembered that I have essentially no carpentry skills (or tools!). Enter Arcade1Up, who offer smaller (yet still substantial) cabinets with fully licensed versions of many classic arcade games.
After watching for sales for a while, I saw a deal on the BANDAI NAMCO Entertainment Legacy Edition Arcade Machine (wow, what a name). This cabinet includes 12 games, though only three—Pac-Man, Galaxian, and Galaga—were of much interest to me. The kit also included the riser, making it playable while standing up.
The kit retails for $449, but I caught it on sale at Walmart (via slickdeals, a site that either saves or costs you a small fortune, depending on how you view it) for under $300. I wasn't quite sure what the quality of the kit would be, as even at $449, it seems relatively inexpensive.
I had the kit sitting here for a bit before I had time to put it together, but now, as you can see by the image at right, it's done. If anyone else is in the market for one of these, I thought I'd share my thoughts on the kit and using the finished product.
A while back, my friend James and I were discussing the amount of tracking cruft in many URLs. In my case, I subscribe to a ton of email newsletters, and I noticed that those URLs are just laden with tracking information—and most go through a URL processor, so you don't really see those tracking details until you've clicked the link, at which point it's too late to avoid any tracking.
I wanted a way to clean up these URLs such that the least-possible tracking information was sent to a server—and in particular, to prevent any browser cookie creation. In addition, if I want to share a link with friends, I don't want to send them a crufty tracker-laden link—I wanted a nice clean shareable URL.
Note: I wrote all of this before I knew about Jeff Johnson's Link Unshortener, which does all of this (and more) in a "real" app. If you'd like the easy solution, Jeff's app is the way to go. Mine is definitely a do-it-yourself concoction that's not for the faint of heart.
tl;dr version: Install this macro group (v7) in Keyboard Maestro to remove tracking details from copied URLs in a set of defined apps. Keep reading if you want some more info on how it works…
Nov 29 2021 Update: There was a bit of a logic bomb in the handling of already-decrufted URLs (or completely clean URLs) that has been resolved. The macro now behaves properly if you copy a clean URL for a domain that would normally be decrufted, or if you copy a crufty URL that has a cleaned version available in your history.
Nov 17 2021 Update: I completely rewrote the history routines—now both the original crufty URL and clean URL are saved. If you copy either the crufty URL or clean URL again, the macro won't re-run curl, it will just look up the clean version and open that. I also added code for flyingmag.com, which now uses an HTML redirect (ugh!), requiring another step to clean.
Nov 1 2021 Update: Added t.co links, as seen on twitter.com (and probably other Twitter clients) to the decrufter.
Updated and republished for macOS 12.0.1; skip it unless you really really care about all the macOS releases. Originally published on November 14th, 2005.
Below the break is a table showing all major releases of macOS (previously Mac OS X) from the public beta through the latest public version, which is 12.0.1, as of October 25th, 2021—the 156th release in total.
Note: Click the ⓘ symbol to read Apple's release notes for a given update.
As an example of why it's so incredibly frustrating to try to do this on an iOS device1I've confirmed the issue on both iOS and iPadOS., I offer you The Impossible Move™, otherwise known as TIM (sorry to all the Tims out there). The steps to demonstrate TIM are trivial:
Create a screen full of apps and folders, such that there's no remaining space.
Position a folder in the rightmost lower corner of the screen.
Attempt to drag an app from another screen into that folder.
Off to the right, you can see just how impossible TIM is: Completely impossible.
When you first drag the icon over to the target screen, you can watch the target folder literally disappear. Where'd it go? Perhaps it went back to the screen you came from…but if it did, as soon as you drag back to that screen, the folder returns to its original location.
I know of only two solutions to this problem. One, of course, is to not completely fill the screen, which is my general approach. (I created this screen layout just for the purpose of the demo video.)
But that's not always possible, at least on my phone: On the first screen (the "home home screen?"), I have a large full-width widget. The presence of that widget seems to require the screen to be 100% full of icons in its remaining space—if I drag one off, then some other one is randomly placed in its spot, insuring the screen stays full. (Even worse, the widget gets relocated to the middle of the screen, with icons above and below.)
The only solution I've found that works for all cases is this one:
Move the target folder to another location on the screen.
Move the target app into the target folder.
Move the target folder back to its original location.
To reiterate my earlier tweet…please, Apple, provide an official solution for home screen management using a Mac. The larger screen and ability to select multiple items using the mouse makes short work of organizing an ever-growing collection of apps and folders. On-device organizing is nothing but an exercise in frustration.
As much as I rely on our own Many Tricks' apps every day, there's one I rely on more: Keyboard Maestro (KM), the macro app for macOS that can do pretty much anything. How much do I rely on it? The shrunken image at right lists all of my macro groups—not macros, just the groups holding the macros. In terms of actual macros, there are over 425 at present. (These are not all user-facing; many are macros that support other macros.)
I use KM for everything from gathering monthly utility bills to inserting HTML code in blog posts to generating replacement license files for users to controlling iTunes to decrufting URLs when copying (future post coming on that one) to automatically naming and filing documents I scan to storing snippets for insertion into our apps' help files to opening oft-used URLs to adding key functionality to many apps such as Excel, Mail, Messages, Photos, Preview, Safari, etc. In short, it's the single most-used app on any of my Macs.
For as much as I love KM, it has one major shortcoming: All of those macros live in one large XML file. Yes, I back it up to many local and cloud locations, so I'm not worried about losing it. It does mean, though, that if I mangle a single macro while trying to fix something, there's no easy way to get back to the working version (assuming I've gone past the point of multiple undo steps).
But now I can recover from such stupidity, thanks to the amazing Macro Repository Suite from Dan Thomas. This suite consists of two macros: One that updates (and initially creates) the repository, and one that restores a given macro from the repository.
In late 2019, I wrote about how we were using two Deebot robotic vacuums to help keep our floors clean. And while these vacuums worked well, they had two issues that became more annoying as time passed:
They clean using a random path method
There's no way to map out obstacles they should avoid
The Deebots are basically non-intelligent robot vacuums. They have the ability to avoid bumping into things, and they won't fall off drop-offs, but that's about where their intelligence ends. They clean using a random path, which works but seems very inefficient. Much worse, though, is that there's no ability to mark areas you don't want them to clean.
For me, that meant I had to close the door to our laundry room so it wouldn't try to clean and get stuck in there. And block off access paths to other areas where it could get stuck. And put one shelf on risers, as the Deebot seemed to be able to get under it, but not back out!? And I had to do this any time I wanted to run the vacuums. That gets old pretty quick.
I wanted to find a vacuum that would clean in a more orderly fashion (using some sort of room map), and to electronically block off areas where they shouldn't clean. The problem was most vacuums that offered these features were (at the time) $350 or more, while the Deebots had cost us only $170 or so. So I kept searching and waiting.
tl;dr version: We bought two Wyze Vacuums with LIDAR and restricted area capabilities, and love them. Ours cost $225 each, but the price today is $267 each. Read on for a much more detailed review, if you wish.