Updated and republished for macOS Big Sur 11.6.2, which was released the same day as macOS Monterey 12.1 (but I hadn't noticed); 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.1 (and 11.6.2), as of December 13th, 2021—the 158th release in total.
Note: Click the ⓘ symbol to read Apple's release notes for a given update.
This is a stupid-simple Unix tip, posting more as a reminder to myself than anything truly insightful—I keep forgetting these details, so by doing the work to create a post about it, I'll never forget them again…
I've been using unix time from the unix side of macOS quite a bit lately, as it's an easy way to get timestamps for things. Getting the epoch time is easy:
$ date +%s
The thing I always forget is how to convert an epoch time back into a human-readable format of my choosing, despite it being shown in the man page. It's simple; use the -r option, like this:
$ date -r 1641735529
Sun Jan 9 05:38:49 PST 2022
And, of course, you can format it how you like using a strftime formatted format string, i.e.
$ date -r 1641735529 "+Today is %A, %B %e, and it's %I:%M:%S %p"
Today is Sunday, January 9, and it's 05:38:49 AM
Related: Yes, I wake up early; it started with macosxhints.com and needing to update the site before I left for my real job each day, and it persists 20 odd years later.
Jan 14 2022: Version 2.5 is out, with a bug fix and a new check for updates button on the help panel. Download the macro, or get the update by manually running the Update check macro within the 2.4 release.
Jan 14 2022: Version 2.4 is out, with an optional "no text" input dialog, a default mode to search a favorite site without a shortcut, and faster processing of search terms.
Jan 9 2022: Version 2.3 is out, with a new download verification feature (which will be useful starting with the next update), a much simpler update checker, and some minor bug fixes.
Jan 4 2022: Version 2.2 is out, with a fix for an annoying bug I introduced in the update checking code that could cause the macro to quit after being invoked. Sorry!
Jan 2 2022: Version 2.1 is out. The most-obvious new feature is shown at right—a live-filter option for the list of shortcuts in help.
But there's lots more—check out the release notes to see the full list, including the newly-added shortcuts.
A week or so ago, I published the first version of Web Search via Shortcuts, my Keyboard Maestro macro that lets you, well, search the web from anywhere via shortcuts—you can type rob macros, for instance, to search this site for entries related to macros.
I was very happy with how the macro worked, but behind the scenes, it wasn't all that good. What started as a small project (make it easier for others to customize the list) turned into a near-total rewrite. So…introducing Web Search via Shortcuts, version 2.0:
If you need more general information on how the macro works, please refer to the original post; there's a lot there I'm not repeating here.
Note: This post is no longer updated. Please see the version 2.0 post for current details and download links. This post remains because it has a fair bit of information about the macro in general.
Nearly five years ago, I wrote about my simple Keyboard Maestro web search macro that let me search many web sites from anywhere within macOS. While it worked well, it felt a bit cumbersome—I had to scan a pop-up palette of sites, and then press the proper key to select the site I wanted to search (so I had to keep the list relatively short). Then I'd wait for a new prompt to appear, type the search terms, and press Return.
Because of my macro's convoluted interface, I found myself using our own Butler most of the time, as it offers an interface similar to SafariKeywordSearch (which works in Safari as an extension; I was reminded of it due to a recent post by @danmoren on Six Colors). Both it and Butler do keyword searches, so you can type d best home vacuums to search DuckDuckGo for best home vacuums, or gm Tokyo to search Google Maps for Tokyo.
I decided to rewrite my macro to work like those apps do, but with an added feature: I use a number of browsers, and there are times I want my search to run in something other than the default browser. Using my rewritten macro, I can now optionally specify a browser in which to run the search. So when I activate the macro, I can use one of two different formats for the search command:
Both of those searches will search the Apple Movie Store for movies with the keyword disaster; the one on the left will use my default browser (currently Safari); the one on the right will use Edge.
I use a VPN on our home router, which runs pfSense. When I'm on my laptop, I connect to the VPN for two reasons. The first is security when using unknown wifi connections. The second is for ease of access to my home Macs and network—when on the VPN, my laptop appears as part of the local network, so screen and file sharing are simple and 100% reliable.
To access the VPN, I use TunnelBlick, which runs as a menu bar application. Launch the app, activate its menu bar item, choose your VPN connection profile from the list, enter your password, and you're connected. But doing this several times a day gets annoying quite quickly. Thankfully, TunnelBlick includes AppleScript support.
Using that support and Keyboard Maestro, I wrote a few macros to simplify connecting to and disconnecting from our VPN, as well as changing the DNS address depending on whether I'm connected to the VPN or not.
Technically, the DNS address shouldn't have to be switched—I have the VPN and Tunnelblick configured to automatically switch on connect, but for whatever reason, it's just not happening. So I included DNS address switching in my macros.
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.
But in 2009, when our eldest daughter was six, I started making some each holiday season. And pretty much every year since then, I've made a batch of holiday cookies. Here's a sample plate of this year's batch*Click the image for a larger version with cookie names…
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).
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…
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.
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.
Yesterday on Twitter, I bemoaned my new iPhone 13 Pro's surprisingly short battery life:
I've been seeing very short battery life on my iPhone 13 Pro—it barely makes it from 5am to 8pm despite it just sitting here on the desk most of the day.
Battery usage shows a sustained constant drain—and neither Music nor App Store were even running today.
You can see full tweet thread with follow-ups, but here's the key graphic:
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.