SpamSieve 3.0.3 is another maintenance update. The main focus is working around various cases where Apple Mail doesn’t behave properly, resulting in hangs or messages not being filtered or trained.
Some interesting bugs were:
Some customers were seeing a crash when SpamSieve updated its Dock icon badging. It turns out that setting NSApplication.applicationIconImage
will throw an exception if the image has no representations. I think this was happening due to trying to read the icon file while the application’s package was being replaced during a software update. SpamSieve now caches the image to avoid this problem, and it also checks before setting a new Dock icon to make sure that the image has a representation and a non-zero size.
There’s a longstanding bug where AEDeterminePermissionToAutomateTarget()
hangs forever. SpamSieve was calling this on the main thread, so this could freeze the user interface and block reception of Apple events. SpamSieve now calls it on a background queue and adds handling of the indeterminate case where the result isn’t known yet—and may never arrive. There doesn’t seem to be a way to exit a DispatchQueue
that’s blocked, but I try to limit the number of stuck queues and avoid having the queue target a global queue, so that it won’t block the rest of the app.
There was a rare crash due to accessing an absent property of a managed object. It’s not clear how this could happen, since the object was always created with that property. This managed object is never deleted, so it should not be possible for it to be a fault for an object that became inaccessible due to deletion. The only thing I can think of is that the NSUUID
property was nil
because the database row was corrupted so that the data no longer represented a valid UUID. The managed object, if not brand-new, must have been initialized as a result of fetching by the UUID property, so perhaps the UUID data was correct in the index but not valid in the actual row.
More generally, I think one mistake I made is in using @objc enum
s where one of the cases has rawValue
0
. I’ve come across a handful of situations with Core Data where the 0
value occurs only because the property wasn’t fetched, not because the object was actually saved with that value. This means that the rest of the object is inconsistent with the enum
having that case. It would probably be better to define an .invalid
case with value 0
to distinguish this and to make sure that the rest of the code can handle it. (For the same reason, you should never have an @objc enum
that’s missing a 0
case because then this situation will cause a crash when bridging to the Swift enum
.)
Previously:
Apple Mail AppleScript Cocoa Core Data Mac Mac App macOS 14 Sonoma Programming SpamSieve Swift Programming Language
Joe Rosensteel:
The tile implores you to “Replay and share your year in music.” In tiny text, seemingly indicating shame or remorse, it says “Go to site”.
You see, the Apple Music app - and iTunes before it - are largely glorified markup viewers, but for whatever reason, the Music app still can’t display Apple Replay in the Apple Music app. Instead the user is shunted off to the web version of the Music app.
Not a big deal, right? Except you have to log in with your Apple ID in your web browser to see the web version of the app you were just in so you can look at text and images with CSS animation. Does the Music app not pass Acid3? For all the crap Apple, and its fans, level at Electron based apps we’re left with this native app’s sweet solution.
And, needless to say, the Web page is designed for mobile with sideways carousels.
It seems to be like something one could upload to a Stories, or other vertical video product to share, but there are no sharing controls in a desktop web browser at all, so you have to go to the site in Safari on iOS, to get a share icon to save a static PNG to send somewhere else. There’s something poetic about failing to do something social well and using the format pronounced “ping”.
Previously:
Apple Music iOS iOS 17 Mac macOS 14 Sonoma Music.app
Julia Evans:
has anyone made a read-only FUSE filesystem for a git repository where every commit is a folder and the folder contains all the files in that commit?
Jordan Rose:
And I did in fact do something very like that, back when I was playing with FUSE! But I never put it up anywhere cause it had an annoying build process, and didn’t seem to add much, and—
Well, in any case, Evans asked to see it, so here it is, cleaned up to be a plain old SwiftPM package.
Previously:
Git Mac Mac App MacFUSE macOS 14 Sonoma Open Source Programming Swift Programming Language Version Control
ifixcoinops (via Hacker News):
Watching a mutual ask for printer recs and receive a chorus of tired tech folk going “Just get a Brother, they’re fine” and man
MAN
Like this is actually kinda fascinating honestly, Brother is now the best printer brand, the one that every Computer Person recommends, and is it because their printers are good? Their printers are fine, they print, whatever, no, it’s because everybody else’s printers have gotten Innovated out the wazoo, every innovation making them way worse, until it’s gotten to the point where I wouldn’t have one in the house even if it were free, and meanwhile Brother’s have remained consistently Fine I Guess, which now makes them the best printer manufacturer simply by virtue of them opting out of the Who Can Get Crappiest Fastest race
It’s true, from what I can tell. There was a time when pretty much all the printers were fine. I tended to like the HP ones. Then at some point they pretty much all started to suck. I ran into a series of horrible models from HP and Epson, with both hardware and software issues. I’ve been using a Brother laser printer for at least 15 years now, and it’s boring in the best possible way. It does what it’s supposed to do and never gives me any trouble. Over the summer we bought another one—my first color laser—and it also works as expected. Decent printers are ridiculously cheap these days. I think I got it on sale for roughly the price of an AirPods Pro. It seems like we’ve printed and color-copied a lot, yet the initial toner cartridges are still going strong. There’s no software to install, and the scanner works with macOS’s Image Capture, although that app seems to be falling into disrepair.
Previously:
Update (2023-12-28): Simone Manganelli:
I was amazed w/how simple a B&W Brother laser printer was to setup: there was none.
What I want from tech: a Brother brand for every piece of hardware and every app. Something that I can rely on and never changes. I hate that tech cos insist on changing everything constantly.
20Factorial:
I have an MFC-3750 that’s been running perfectly with Non-OE ink for more than a year now. The W1.56 firmware update, however, disabled the automatic color registration feature. With the colors not able to be aligned, the printer is effectively non-functional.
bbarnett:
I recently bought a Brother colour laser printer, with the understanding that OEM toner was not chip-locked.
[…]
Not only is the above, post-sale firwmware update a change of what I understood to be Brother’s historical policy, the method is beyond evil.
Brother seems to be apparently accepting the ink, but then purposefully making the print quality poorer.
Update (2024-01-03): Deceptive Patterns:
Surely this can’t be real.
“We’ve alerted you multiple times that this printer had non-Original HP cartridges installed. This is your final notice to fix the issue”
Update (2024-01-11): Karl Bode:
Hewlett Packard (HP) has been socked with yet another lawsuit for crippling the printers of consumers who use cheaper third-party ink cartridges.
Update (2024-01-23): Richard Speed (via Hacker News, Slashdot):
HP CEO Enrique Lores admitted this week that the company’s long-term objective is “to make printing a subscription” when he was questioned about the company’s approach to third-party replacement ink suppliers.
[…]
Later in the interview, he added: “Every time a customer buys a printer, it’s an investment for us. We are investing in that customer, and if that customer doesn’t print enough or doesn’t use our supplies, it’s a bad investment.”
[…]
Lores said of customers who use a third-party cartridge: “In many cases, it can create all sorts of issues from the printer stopping working because the ink has not been designed to be used in our printer, to even creat[ing] security issues.
“We have seen that you can embed viruses into cartridges, through the cartridge go to the printer, from the printer go to the network, so it can create many more problems for customers.”
Update (2024-01-30): Karl Bode:
Ars Technica talked to numerous security researchers who laughed at the claim, noting that it’s never been meaningfully documented in the wild, and isn’t something consumers should be worried about.
Or, if you believe Lores, the design is a bit of a strategy tax in that their business model led them to create a security hole where none had previously existed.
Update (2024-04-08): Nilay Patel (tweet):
It’s been over a year since I last told you to just buy a Brother laser printer, and that article has fallen down the list of Google search results because I haven’t spent my time loading it up with fake updates every so often to gain the attention of the Google search robot.
It’s weird because the correct answer to the query “what is the best printer” has not changed, but an entire ecosystem of content farms seems motivated to constantly update articles about printers in response to the incentive structure created by that robot’s obvious preferences. Pointing out that incentive structure and the culture that’s developed around it seems to make a lot of people mad, which is also interesting!
Anyway, here’s the best printer for 2024: a Brother laser printer. You can just pick any one you like; I have one with a sheet feeder and one without a sheet feeder. Both of them have reliably printed return labels and random forms and pictures for my kid to color for years now, and I have never purchased replacement toner for either one. Neither has fallen off the WiFi or insisted I sign up for an ink-related hostage situation or required me to consider the ongoing schemes of HP executives who seem determined to make people hate a legendary brand with straightforward cash grabs and weird DRM ideas.
Previously:
Brother DRM HP Image Capture Mac macOS 14 Sonoma Printing Strategy Tax Top Posts