Archive for February 17, 2022

Thursday, February 17, 2022

Taming Links on macOS with Open In

Mike Schmitz:

With Open In, you can trigger a list of installed browsers when you click a link and choose the one you want it to, well, open in.

For the last several years, I’ve been using PasswordWallet as my bookmark opener, because it lets me specify which browser to use for each site. Usually I want to use Safari, but some sites only work in Firefox or Chrome. This way I don’t have to remember.

But there’s a lot more nerdy goodness to be had than just selecting from multiple web browsers. For example, if you add Zoom as an option for browser links, there’s a URL Rewrite section that gets added with a pre-configured regular expression[…] This allows you to open the Zoom link directly in the app, with no additional effort.


You can also create custom rules for when a file is open from a specific path, is coming from a specific application, or when a keyboard modifier is pressed. For example, I have a rule that allows me to open the file directly in Preview if I hold down the Command key[…]


Have you tried Default Browser app by @apexskier? This app is set as the default browser and forwards URLs to the browser you most recently had active. No need to be tied to one default browser. Genius.

Satish E. Viswanath:

Browserosaurus and Finicky are slightly less GUI-based apps that let you do similar things with links and apps.

Apple SSD Benchmarks and F_FULLSYNC

Hector Martin (Hacker News):

It turns out Apple’s custom NVMe drives are amazingly fast - if you don’t care about data integrity.


On Linux, fsync() will both flush writes to the drive, and ask it to flush its write cache to stable storage.

But on macOS, fsync() only flushes writes to the drive. Instead, they provide an F_FULLSYNC operation to do what fsync() does on Linux.


So effectively macOS cheats on benchmarks; fio on macOS does not give numbers comparable to Linux, and databases and other applications requiring data integrity on macOS need to special case it and use F_FULLSYNC.


So, effectively, Apple’s drive is faster than all the others without cache flushes, but it is more than 3 times slower than a lowly SATA SSD at flushing its cache.

As far as I can tell, the summary is:

  1. fsync() does different things on Mac and Linux for historical reasons.
  2. Many non-Apple SSDs don’t actually flush their cache when doing F_FULLSYNC; they seem faster because they lie.
  3. Compared with other SSDs that actually do flush, Apple’s are (for unknown reasons) much slower, though they are faster when not flushing. Or, perhaps, these non-Apple SSDs are lying, too.
  4. Often, what you really want is F_BARRIERFSYNC, not F_FULLSYNC.

Dominic Evans:

Surely that’s a mischaracterisation to claim they’re “cheating” — this is just legacy diversions. On earlier versions of the Linux kernel and in posix fsync() didn’t used to flush the cache either. Darwin independently added the special fnctl to do a “FULLSYNC” long ago

Yes newer kernels (2.6 onward or something?) changed the semantics of fsync() to request the full cache flush too. Darwin didn’t change their fsync because they already had their fnctl to provide the option where needed.

Dominic Giampaolo, in 2005:

On MacOS X, fsync() always has and always will flush all file data from host memory to the drive on which the file resides. The behavior of fsync() on MacOS X is the same as it is on every other version of Unix since the dawn of time (well, since the introduction of fsync anyway :-).

I believe that what the above comment refers to is the fact that fsync() is not sufficient to guarantee that your data is on stable storage and on MacOS X we provide a fcntl(), called F_FULLFSYNC, to ask the drive to flush all buffered data to stable storage.

Rosyna Keller:

Force Unit Access, what this “flush to permanent storage, not disk cache” command is called, is ignored by the majority of drive types (either through lying firmware or a bridge).

It’s not enabled by default in most kernels (Linux, Windows) due to synchronous writes being slow.


However, every disk Apple ships actually supports Force Unit Access (F_FULLSYNC), and is under a different flag because most cross-platform developers don’t expect fsync() to actually be synchronous, leading to massive performance losses compared to drives that don’t support it.

If you write software they uses full flushing on firmware that isn’t a lying liar and actually goes through a flush to permanent storage, remember that every time you’re doing the full sync, you significantly impact the performance of the entire system, not just your software.

Andrew Wooster:

I was the backupd performance lead and I’d love to move on but it keeps coming up. 🤷‍♂️🤷‍♂️


I am thankful for the various people at Apple who made sure Apple hardware functioned correctly. Otherwise it would’ve been impossible to have both performance and correctness. The former is easy if you ignore the latter.

Unfortunately, there were problems in another layer that made Time Capsules corrupt their data all the time.

Hector Martin:

So you’re saying my WD NVMe drive lies about flushes, and yet they’re 10x slower than not flushing? Must be really bad at lying then…

The problem is Apple SSDs are 1000x slower when flushing. That’s called a firmware bug.

Maynard Handley:

As I described elsewhere, the traditional solution to ordering writes on unix is fsync. This is a highly sub-optimal solution because it does much more than required.

Apple’s solution is to use the equivalent of barriers, rather than flushes, to enforce ordering; and it works every bit as well as the equivalent solution (barriers rather than flushes) in a CPU pipeline.

Scott Perry:

There’s a third sync operation that lets you have your performance and write ordering too: F_BARRIERFSYNC. SQLite already uses it on Darwin, and it’s part of the best practices guide for I/O reduction

Update (2022-03-09): See also: Howard Oakley, MacRumors, Howard Oakley, JP Simard.

Russ Bishop (Hacker News):

I tested a random selection of four NVMe SSDs from four vendors. Half lose FLUSH’d data on power loss. That is the flush went to the drive, confirmed, success reported all the way back to userspace. Then I manually yanked the cable. Boom, data gone.

The other half never lost data confirmed after a flush (F_FULLFSYNC on macOS) no matter how much I abused them. All four had perf hit from flushing so they are doing some work.

Top two performers on flush? One lost data 40% of the time. The other never lost any.

I guess review sites don’t test this stuff. Everyone just assumes data disappearing on crash/power loss is just how computers work?

I feel bad for the other two vendors who must have test suites and spent engineering hours making sure FLUSH works, only to find out no one cares

Knitrino Rejected From App Store

Lauren Rosenblatt:

Knitrino, maker of an app by the same name that helps knitters navigate tricky projects and find unique patterns, recently signed on to support Epic Games, the North Carolina-based game and software developer behind Fortnite, in its lawsuit alleging Apple is violating antitrust laws and has a monopoly on the app ecosystem.


After a back and forth argument with Apple to get its knitting app on the store — and a realization that there weren’t many options if they didn’t make it on the digital marketplace — Knitrino signed on in support of Epic. Attorneys for Knitrino filed a legal brief in January alleging Apple’s policies drive up consumer costs, restrict innovation and reduce consumer choice.

“The knitters should get to decide,” said Andrea Cull, co-founder of Knitrino and a knitter herself. “The fact that Apple can say your waiting customers can’t have this, and there was nowhere else to go. To think you spent two years building something for it to never see the light of day.”

Via Kosta Eleftheriou:

Knitrino appealed Apple’s decision to its own review board. It was rejected in 19 minutes.

David Barnard:

“The feeling that we had when we were going through this was like hitting a wall, but not being able to see the wall […] I don’t know how tall this wall is. I don’t know if I can walk a few miles that way and get around it. We were just feeling around in the dark.”

Duncan Babbage:

The irony here: the rejection seems to be for trying to supply physical goods as part of the fulfillment of an App Store purchase. For which Apple allows and instructs developers to use an external payment processor within their apps… the exact privilege Epic was suing for.

I don’t really understand what happened here. They should have known about the physical goods rule, but the app was eventually approved, and presumably Apple didn’t cave on that part. Yet the solution couldn’t have been just removing the physical goods because the article says:

After the first rejection, Knitrino made some technical changes and tried again. For the next several days, the founders went back and forth with Apple — making changes, reapplying and receiving what seemed like irrelevant portions of Apple’s policies pasted back in response.


Knitrino did later get Apple’s approval, though the sisters aren’t clear what led to the reversed decision.

So they still don’t know what they did “wrong” and have no way of knowing whether a subsequent reviewer will decide that it should never have been approved.


Google Search Is Dying

DKB (Hacker News, Reddit):

Reddit is currently the most popular search engine. The only people who don’t know that are the team at Reddit, who can’t be bothered to build a decent search interface. So instead we resort to using Google, and appending the word “reddit” to the end of our queries.


Why are people searching Reddit specifically? The short answer is that Google search results are clearly dying. The long answer is that most of the web has become too inauthentic to trust.

Dan Grover:

It’s true; you can get better signal when you’re looking at discussions with actual people (even people you don’t know), with the added social context + validation of the specific subreddit.

I’ve noticed two separate things:

So, whereas I used to rely almost exclusively on Google, I now do site-specific searches where possible. Otherwise, I use Bing by default and Google as a backup.

Nick Heer:

But “DKB” is right about one thing: even if you are skeptical of the extent to which you can treat those charts as an indicator of trust in Google’s results — as I am — that results page is still pretty poor. The bizarre relationship between Google and marketers often means the first page is full of display ads and results that are effectively ads.

Kevin Roose:

The evolution of Reddit from nerd water cooler to toxic sludge pit to “only website left with usefully indexed user-generated content” is one of the weirder tech stories of the last decade.


Update (2022-03-23): Abhinav Sharma (via Hacker News):

There’s been a lot of complaining about Google’s search results lately, especially when it comes to high-stakes subjective queries. But no viable competitor has emerged despite many new search engines launching lately.

At least nothing good enough that people are excitedly sharing “Hey, have you tried X lately, it’s way better than Google.” What follows is an effort to explain what’s going on and a pitch for an open-source project I’ve been working on that tries to solve the problem in a new way.

Update (2022-06-24): Charlie Warzel:

Like many, I use Google to answer most of the mundane questions that pop up in my day-to-day life. And yet that first page of search results feels like it’s been surfacing fewer satisfying answers lately. I’m not alone; the frustration has become a persistent meme: that Google Search, what many consider an indispensable tool of modern life, is dead or dying.


Haynes agrees that ads’ presence on Search is worse than ever and the company’s decision to prioritize its own products and features over organic results is frustrating. But she argues that Google’s flagship product has actually gotten better and much more complex over time. That complexity, she suggests, might be why searching feels different right now. “We’re in this transition phase,” she told me, noting that the company has made significant advancements in artificial intelligence and machine learning to decipher user queries. Those technical changes have caused it to move away from the PageRank paradigm. But those efforts, she suggested, are in their infancy and perhaps still working out their kinks. In May 2021, Google announced MUM (short for Multitask Unified Model), a natural-language-processing technology for Search that is 1,000 times more powerful than its predecessor.

Nick Heer:

Earlier this year, our washing machine was not completing a cycle correctly. The model number seems to be one of those ones specific to a long-departed retailer; so, after I was unable to find a copy of the manual, I resorted to more general searches. Turns out that appliance troubleshooting seems to be one of the more polluted genres of query. DuckDuckGo and Google searches alike returned page after page of keyword-filled junk intended solely to rank highly.

Update (2023-03-08): See also: Hacker News.

G Suite for Education Reduces Free Storage

Shantanu Sinha, in 2021:

We’ve learned that a one-size-fits all approach isn’t what educators need from tools like G Suite for Education. Whether you’re in a rural elementary school, urban university or homeschool setting, our technology and tools should adapt so you can focus on what matters most: teaching and learning. That’s why we’re making a few changes to provide you greater choice and flexibility in selecting the best tools to empower your institution.


Our free edition G Suite for Education will be renamed to Google Workspace for Education Fundamentals. If you’re currently using this edition, you won’t see any changes besides a new name and new features. We’ll keep building new solutions for this free version by listening closely to educators and their needs.


Google has traditionally offered unlimited storage to qualifying schools and universities for free. However, as we’ve grown to serve more schools and universities each year, storage consumption has also rapidly accelerated. Storage is not being consumed equitably across — nor within — institutions, and school leaders often don’t have the tools they need to manage this. To support schools into the future and ensure fair distribution of this valuable resource, we will be implementing a new pooled storage model and helping admins and school leaders manage their storage.

Bryan William Jones (Hacker News):

Looks like the unlimited storage that Google promised my university a couple years ago is being discontinued, and the entire institution is being limited to 100TB… I can fill that 5 times over with our data.


This feels like Google Reader all over again.

Via Oliver Hunt:

Yeah, so google is pretty much entirely a bait and switch operation: they offer vastly more storage than others, and they do so for “cheaper” but if people actually use that storage they will cancel or start charging for the service.

Even at google’s scale they cannot give things away for free. Email can be “free” because they mine it for data - gmail is why amazon no longer includes order details in email. Android is “free” because they get to harvest all their user’s data.


Update (2022-03-09): Nick Heer:

It all reeks of dishonesty. Why should anyone trust Google if it constantly pulls these bait-and-switch moves? It also smells of market position abuse. How many other companies can start and stop projects on a whim? How many other companies can give away storage until individuals and businesses and institutions are fully locked-in, and then turn around and charge them a fortune? The only reason this does not have a greater negative effect on Google is because its primary business has nothing to do with selling services. So long as its dominant advertising business is raking in cash, it has the flexibility to do this same trick over and over.

Update (2022-03-23): John Gordon:

Google’s top secret option for Google apps users facing doom

Pair Networks and Linode Acquired

Pair, in 2018:

Today, Liberated Syndication, Inc. (LSYN), the Pittsburgh-based podcast hosting network, announced that it has closed its acquisition of pair Networks, Inc.

You can read the press release here.

Frederic Lardinois:

Akamai, the company you probably mostly think of as a content delivery network but that also offers security and edge computing services, today announced that it has acquired Linode. The price of the acquisition is $900 million, with Akamai expecting Linode to add about $100 million in revenue for its fiscal year 2022.


“The opportunity to combine Linode’s developer-friendly cloud computing capabilities with Akamai’s market-leading edge platform and security services is transformational for Akamai,” said Akamai CEO and co-founder Dr. Tom Leighton in today’s announcement.

Update (2022-03-09): See also: Accidental Tech Podcast.