The Robservatory

Robservations on everything…

 

Mac OS X Hints

VMware Fusion and the vmmon broken pipe error

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.

(more…)

Remove tracking data from copied URLs

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 (v8.1) in Keyboard Maestro to remove tracking details from copied URLs in a set of defined apps.

Latest Update: Dec 5 2021 I made a fundamental change in when copied links are opened in the browser—they now only open if you hold the Option key down while copying the link. I also made some changes that should make future updates easier for those who customize this macro. Please see the release notes section for more details about these changes, as well as notes on prior updates.

See the update notes section for details on how to update the macro if you've already installed a prior version.

(more…)

Fix a “could not complete your purchase” App Store error

I've been having an odd issue with the Mac App Store app on my Mojave-running iMac: Sometimes the App Store app will fail to install an update for some app. When that happens, I see a dialog with this text as the title:

We could not complete your purchase.

Below that is a single word, "cancelled," and that's all. Searching the web, I came across this thread on stackexchange.

What finally worked for me was a combination of things listed there—none of these steps on their own seem to fix the problem, but all together do, at least until it occurs again.

  1. Quit the App Store app.
  2. Switch my DNS to another provider.
  3. In Terminal, paste this command and press Return:
    open "$TMPDIR/../C/com.apple.appstore/"
  4. Confirm that the Finder opened a window to the com.apple.appstore folder, then drag everything there to the trash.
  5. Back in Terminal, paste this line and press Return: killall -9 appstoreagent
  6. Relaunch the App Store app.

This method has worked for me each time I've had this issue. It's annoying that it keeps recurring, but at least the fix is relatively simple.

Copy links in Chrome, Firefox, and Safari in one step

Something I do a lot is copy links—whether for articles here, or for pasting into Messages or Signal or Twitter, or for corresponding with Many Tricks' customers, I copy a lot of links.

Web browsers—at least the "big three" of Chrome, Firefox, and Safari—bury their copy link commands in a contextual menu. If I want to copy a link, it's a right-click and then either using the keyboard (press C then Return in Chrome and Safari) or mouse (Firefox) to select then activate the Copy Link command.

If you use Chrome or Firefox as your browser, you're in luck: You can install a simple extension in each that lets you copy a link by simply hovering over the link and pressing Commmand- or Control-C:

Now, about Safari. I couldn't find a Safari extension to handle this seemingly simple task, so I turned to Keyboard Maestro.

(more…)

Simplify updates to oft-updated text documents

Here on my blog, I've been tracking macOS release dates and rates for nearly 15 years—if I'm doing my math right, I've edited and republished the post 115 times since then. Until the most recent update, all 115 of those updates were pretty much done like this:

  1. Update a Keynote document that calculates the release rate data and contains the two charts in the blog post.
  2. Edit the text of the blog post in a text editor, with Keynote visible, replacing all instances of variable data—dates, numbers, size, rates, etc.—wherever they appear.
  3. Upload the graphs and publish the updated post.

While this isn't an overly complex task by any measure, the second step in particular has gotten more time consuming over the years, because of the length of the post: It now contains over 50,000 characters. That's lots of scrolling and looking for the few bits that change—and I'd often miss a date or a number in some portion of the post.

I thought there had to be a better way, and there is…and of course, the better way uses BBEdit. In particular, BBEdit's support for including one file in another—and using variables in the included file—makes my update task much simpler. If you have text files that receive regular updates, you may find this method of interest, as it can be a big timesaver.

(more…)

Resolving ‘A problem repeatedly occurred…’ error in Safari

Update: Apparently this has happened again with Safari 14.1 on non-current MacOS releases. As of today (Apr 29), MacRumors has the package downloaders available for Catalina and Mojave:

https://www.macupdate.com/app/mac/15675/apple-safari

I can't test this for myself yet as I'm away from my Mojave iMac for a while, but hopefully it'll solve the issue as it did before.


Yesterday, after updating to Safari 14 on my Mojave-running iMac, I noticed a big problem: I couldn't load many sites that contained either a login dialog or a shopping cart. For example, I could load Target's main site, but when I tried to open the shopping cart, it wouldn't work.

I'd briefly see the page, then it would clear and reload once or twice more, and then I'd be left with an error message:

A problem repeatedly occurred with "https://www.target.com/co-cart"

This was happening on many, but not all, sites—I could login on Amazon and my bank, but not on most of our credit card sites or typical retail shopping pages. Given this happened just after installing Safari 14, I assumed it was somehow related to the new browser version—the same pages that didn't load in Safari loaded fine in every other browser I tried. But they loaded fine on Safari 14 on my Catalina MacBook Pro, so then I knew I had a Mac-specific issue…the worst kind of issue to troubleshoot.

While troubleshooting, I found that I wasn't alone, nor was this a Safari 14 issue—there are lots of reports of the same problem over many years.

After tweeting about my troubles and what I'd done to try to troubleshoot the problem, Jeff Johnson of Lapcat Software got me on the right track by suggesting that my Safari install was broken. He suggested I check the date on this Safari framework...

/System/Library/StagedFrameworks/Safari/libwebrtc.dylib

When I did, I found that the version on my iMac was much older (Jul 13, 2020) than the version on my MacBook Pro (Sep 15 2020), where Safari 14 worked as expected.

It seemed that the fix might be as simple as reinstalling Safari 14…but Apple doesn't make it easy to do that, as you can't reinstall an installed update, and they don't include recent Safari versions on their download page.

After some searching, I found MacUpdate's Apple Safari page, which contains direct links to many versions of Safari—scroll down to the section titled "What's New in Apple Safari," expand it, and you'll see download links for Safari versions back to 13.0.3.

I downloaded the Safari 14 installer1And kept a copy, just in case!, let it do its thing, and the problem is solved. The date on the framework I checked now reflects a mid-September date, which matches the same file on the MacBook Pro.

I'm annoyed that Apple's installer didn't report any issues, and I wonder what a "typical" user might have done to resolve this issue—I only got it fixed thanks to Jeff's tip and the installer links on the MacUpdate page. I can't imagine how long I would have had to talk to Apple Support before they figured out that it was a bad Safari install, and not some app or utility or other "you caused this" issue on my Mac.

So thanks, Jeff and MacUpdate, for helping me find and fix this very annoying problem with my Safari install!

Download and track Amazon purchases over time

Dec 18 2020 update: The Amazon export URL appears to be functional again, which is great news. However, the data is in a completely different format than what's provided by the Chrome extension, so it needs to be massaged to work with my spreadsheet. For now, if you want to use my workbooks, keep using the Chrome extension. I'll see about modifying the spreadsheet to work directly with Amazon's data.

Recently I was trying to enter our Amazon purchase details into Quicken—the transactions download automatically, but they're generically assigned to "Shopping." I was using Amazon's order history page to match transactions and assign categories, but it was slow and painful going given the layout of the orders page.

I thought there must be a simple way to download your Amazon purchase history—once downloaded, I could use a spreadsheet to search my transactions. As it turns out, there is a way, but it's far from simple. Nonetheless, after way too much work, I now have an Excel workbook that makes it very easy to find any of our historical transactions. I enter a year and amount on my Search sheet, and any matches appear immediately:

Getting from "this should be possible" to "it works!" was (as usual) more of a challenge than I anticipated, but it is now working as I wished.

(more…)

Two silly solutions for creating numeric passcodes

This morning, I was reading about Henrique Prange's friend's stolen iPhone, and the financial damage the thieves inflicted in only a few hours time—yikes! I've got six-digit codes on all my iOS devices, which suddenly felt like not nearly enough.

I also deleted all my iCloud info from the saved website passwords, as explained in Kirk McElhearn's article for Intego. There are some good recommendations there.

Then I set out to change my iOS passcodes…and me being me, I made it way more complicated than it needed to be. But first, a bit about passcodes on iOS…

(more…)

Another way to open stock charts from mop in Terminal

On Sunday, I posted about my geeky solution to my non-functional Stocks Dashboard widget in Mojave. Then earlier today, I crafted a way to view one of the tracked stock's charts with a mouse click.

A commenter asked if there were any way to view the charts using a built-in tool, as purchasing Keyboard Maestro for just this one task is expensive (and a waste of Keyboard Maestro's capabilities). And in reality, when I first started working on my solution, I started in Automator…but quickly grew frustrated by its inability to do even basic text manipulation.

But then today, I remembered I can use AppleScript in Automator to work with the text, and the solution came together quickly after that: A new Service that appears when you right-click on text in a Terminal window:

(more…)

View charts for stocks in the mop Terminal app

Yesterday, I noticed that the Stocks Dashboard widget in Mojave was no longer working. I couldn't find a similar (small window, always there, only stock prices) app that did what I wanted, but I did discover mop, a Go program that runs in Terminal. Using mop and Terminal's ability to save a window layout, I was able to craft a solution that worked for me.

Then commenter smayer97 asked…

Any solution to replace the mini-graphs at the bottom of the old Dashboard widget?

I didn't pay much attention to the graphs in the widget, so I hadn't considered them in my solution. And there's no way I was going to find a tidy graphing solution that also worked in Terminal. What I came up with isn't quite as convenient as having the graphs available at all times, but it's pretty close—I just have to click on a ticker symbol while holding down some modifier keys:

As you might have guessed, this is powered by a Keyboard Maestro macro, and I love how well it works.

(more…)

The Robservatory © 2023 • Privacy Policy Built from the Frontier theme