Archive for December 2019

Friday, December 13, 2019 [Tweets] [Favorites]

UserDefaults Access via Property Wrappers

Christian Tietze:

The hip and cool property-wrapper implementations on the web so far ignore the registerDefaults layer completely and provide a local fallback if no value for the key is persisted for the current user.

The problem I see here is that you don’t have a shared default value anymore. Knowledge of the default value is local to the property declaration in a concrete type.

A full solution would include something like:

  1. A pair type that combines a key with a default value.
  2. A connection between that and UserDefaults for getting and setting values.
  3. A way to access predefined pairs from different places in your code.
  4. A full list of the predefined pairs so that they can be registered.
  5. A way to link a property to a pair and a given instance of UserDefaults.

SwiftUI Deal-Breakers

Weston Hanners:

SwiftUI is really fun and the data flow is just awesome. It makes building new screens super quick and opens the door to a ton of prototyping.

I am sure these will all be fixed in time, but many of these are deal-breakers and as it is right now, I will not recommend SwiftUI for any paid projects I am involved with.

His post is about iOS. More stuff is missing for macOS.

Previously:

Google Achieves Its Goal of Erasing the WWW Subdomain From Chrome

Lawrence Abrams (Hacker News):

With the release of Chrome 79, Google completes its goal of erasing www from the browser by no longer allowing Chrome users to automatically show the www trivial subdomain in the address bar.

[…]

Many users, though, felt that this was a security issue, could be confusing for users, and is technically incorrect because www.domain.com is not always the same host as domain.com.

Previously:

Pro Display XDR Limited to 5K With iMac Pro

Joe Rossignol:

Thomas Grove Carter has since demonstrated that the iMac Pro can in fact drive the Pro Display XDR, but only at a 5K resolution. This is likely because the iMac Pro uses Intel’s older “Alpine Ridge” Thunderbolt 3 controller without enough bandwidth to drive a 6K display.

[…]

To use the Pro Display XDR at its full 6K resolution, the display must be connected to the new Mac Pro with MPX Module GPUs, a 2018 or later 15-inch MacBook Pro, a 16-inch MacBook Pro, or a 2019 iMac.

This makes sense given that the iMac Pro’s specs haven’t been updated since it was announced in June 2017. Hopefully that will change soon.

Previously:

Thursday, December 12, 2019 [Tweets] [Favorites]

Apple Watch and AirPods Have Overtaken Peak iPod

Horace Dediu:

This analysis helped me conclude the Apple Watch overtook the historic “peak iPod” which occurred in the fourth quarter of 2007 at $4 billion. My Watch revenue estimate was $4.2 billion in the fourth quarter of 2018.

[…]

Looking forward to the next quarter, I am expecting a 51% increase y/y for Wearables and 24% growth in Watch. This results in a Watch revenues about $5.2 billion and non-Watch $5.7 billion. Now if we assume $1.7 billion for non-Watch-non-AirPods (i.e. Apple TV, HomePod, Beats, iPod, other) then this quarter AirPods will have overtaken peak iPod.

How and Why Would Apple Kill the iPhone’s Lightning Port

Joe Rossignol:

Apple plans to launch a high-end iPhone without a Lightning connector in the second half of 2021, according to a new prediction from analyst Ming-Chi Kuo. The device will supposedly offer a “completely wireless experience,” suggesting that Apple is not switching to USB-C, but rather dropping the port entirely.

Jason Snell:

Yes, Qi charging is a thing. I have two Qi chargers. But when you need to charge fast, wires are more effective. And when you’re out and about, how do you charge your iPhone if there’s no charging port? Are we meant to replace our external battery packs and USB chargers in cars, airports, and airplanes with inefficient Qi chargers that waste power that should be going straight to our phones?

[…]

Wireless CarPlay support was announced years ago, but the truth is, most CarPlay units still require physical connectivity to function. It’s hard to imagine Apple releasing an iPhone that is incompatible with a majority of cars, especially since it’s very hard to replace in-car entertainment systems and most people won’t buy a new car just to work with their new iPhone.

Previously:

Twitter’s Bluesky

Jack Dorsey:

Twitter is funding a small independent team of up to five open source architects, engineers, and designers to develop an open and decentralized standard for social media. The goal is for Twitter to ultimately be a client of this standard. 🧵

twitter was so open early on that many saw its potential to be a decentralized internet standard, like SMTP (email protocol). For a variety of reasons, all reasonable at the time, we took a different path and increasingly centralized Twitter. But a lot’s changed over the years…

First, we’re facing entirely new challenges centralized solutions are struggling to meet. For instance, centralized enforcement of global policy to address abuse and misleading information is unlikely to scale over the long-term without placing far too much burden on people.

[…]

Finally, new technologies have emerged to make a decentralized approach more viable. Blockchain points to a series of decentralized solutions for open and durable hosting, governance, and even monetization.

Dave Winer:

I advocate something different, Twitter already has the bugs and scaling issues solved for a global notification network. Let’s add a few APIs and create a new universe. It’ll happen a lot faster with much better results imho.

[…]

Had they proposed such a standard when they were starting Twitter, no one would have cared, and it would have had a chance of working. Now it’s a huge industry with lots at stake and lots of entities that would like to keep it from standardizing.

Loren Brichter (via John Gruber):

What’s the downside to letting the Twitter API as it stands be v1.0? Let third parties implement it, clients could connect to any compatible service, communication between services would evolve as needs evolve, you end up with something designed naturally (see HTML5 vs XHTML).

Manton Reece (Hacker News):

Twitter isn’t necessarily interested in decentralizing content or even identity on their platform. Why would they be? Their business is based around having all your tweets in one place.

Rather, it sounds like they want to “outsource curation to shared protocols” and not have to deal with the messy stuff.

Nick Heer:

This is a spitball at this stage — barely more than a napkin sketch. There might be something to show for it, sometime, in some capacity, but there’s a lot of buzzwords in this announcement without any product. That suggests a high likelihood of vapourware to me.

Previously:

“Link in Bio” Is a Slow Knife

Anil Dash (Hacker News):

We don’t even notice it anymore — “link in bio”. It’s a pithy phrase, usually found on Instagram, which directs an audience to be aware that a pertinent web link can be found on that user’s profile. Its presence is so subtle, and so pervasive, that we barely even noticed it was an attempt to kill the web.

[…]

With billions of people using the major social platforms, and the people who remember a pre-social-media web increasing in age while decreasing as cultural force on the internet, we’re rapidly losing fluency in what the internet could look like. We’re almost forgotten that links are powerful, and that restraining links through artificial scarcity is an absurdly coercive behavior.

Wednesday, December 11, 2019 [Tweets] [Favorites]

Linea 3 to Switch to Subscriptions

The Iconfactory (tweet):

We tried hard to avoid a subscription, but the costs to maintain the app are much higher than the income from new sales. This is obviously not a sustainable situation!

[…]

A majority of that time was not even spent adding new features, instead it was spent making sure that everything looked right with the operating system’s new Dark Mode!

[…]

All of this comes at a low price: 99¢ per month or $9.99 per year (a 20% savings.) Additionally, if you purchased Linea at any time in 2019, you’ll also get a free one year subscription.

It sounds like they are going to replace the old app with the new one, like with Twitterrific 6.

It’s going from $10 one-time to $10/year. On the one hand, that’s a hefty increase, but on the other hand $10/year is not a lot for an app that you regularly use. I haven’t seen many other developers choosing subscriptions this cheap. It seems like it could become a sweet spot between steady recurring revenue and a price that customers are willing to pay.

Previously:

The Success of Intelligent Tracking Prevention

Michael Potuck (Hacker News):

Executives in the online publishing industry speaking with The Information say that Apple has been “stunningly effective” with its goal of Intelligent Tracking Prevention stopping websites from knowing what users are doing on the web. One of the results of this over the last two years is that costs for advertisers have dropped significantly for Safari users while they’ve gone up for Chrome.

[…]

While that might sound like a positive thing for advertisers, the reason the price for Safari ads has gone down is that they’re less desirable. Because of Intelligent Tracking Prevention (ITP), marketers can’t focus on specific demographics, for example like those in higher-income brackets.

This sounds great, but I would also like to see a report on how many sites don’t work in Safari because of ITP.

John Wilander:

Any kind of tracking prevention or content blocking that treats web content differently based on its origin or URL risks being abused itself for tracking purposes if the set of origins or URLs provide some uniqueness to the browser and webpages can detect the differing treatment.

To combat this, tracking prevention features must make it hard or impossible to detect which web content and website data is treated as capable of tracking. We have devised three ITP enhancements that not only fight detection of differing treatment but also improve tracking prevention in general.

Previously:

SuperDuper 3.3 for Catalina

Dave Nanian:

In order to replicate this new volume setup, system backups of APFS volumes must be to APFS formatted volumes. SuperDuper automatically converts any HFS+ destinations to APFS volumes for you (after prompting), so you won’t have to do anything manually in most cases.

That’s too bad given APFS’s poor performance on spinning disks, which is what I mostly use for backups.

Those two volumes are further linked together with “firmlinks”, which tunnel folders from one volume to the other in a way that should be transparent to the user. But they can’t be transparent to us, so we had to figure out how to recreate them on the copy, even though there’s no documented API.

[…]

You can’t turn an already encrypted APFS volume into a volume group. As such, you’ll have to decrypt any existing bootable volumes.

Dave Nanian:

On some user systems, Full Disk Access doesn’t take after install, and they have to restart after installing the new version. This is because our bundle ID has changed due to notarization and the OS doesn’t handle it well.

[…]

In some circumstances, ownership wouldn’t be properly enabled for the system volume of an external Catalina volume group, which made the backup not boot. […] I could go into detail on the latter problem, but rather than bore you, I’ll refer you instead to this old post from 2005[…]

Dave Nanian:

We’ve got a few users whose systems are in a bizarre state where the loader is outputting […] when we run certain system command-line tools.

[…]

We also added a diagnostic that detects a rare situation where a user’s system has broken scripting tools (like a bad Perl install), which can cause problems.

Dave Nanian:

The unexpected part is that just before the beta, we made a change to the installer to try to improve our workaround for systems that required rebooting post-install to make Full Disk Access work. After we made the change, we didn’t re-run the full suite of tests because we (incorrectly) thought the change was isolated to the install process.

However, it was made in a runtime element that was shared with the way we executed bless.

Dave Nanian:

With volume groups, though, there are two potential volumes to mount...but keychain passwords might be under either the Data volume or the System volume, depending on what the user does.

Dave Nanian:

Eject would sometimes not eject both volumes of a volume group.

[…]

Some people were impatient and didn’t realize HFS+ to APFS conversion might take a while! We now tell them to get a tasty beverage!

Dave Nanian:

I’m happy to announce the release of v3.3 of SuperDuper, our fully Catalina-compatible version: happier, perhaps, then even you are in reading the news. It’s available via the normal update mechanism, or by downloading it from the web site.

[…]

The whole idea of the new version is, if we did our job right (and I think we did), things should just work the way you expect them to. […] But despite that, SuperDuper is doing a lot more things.

Dave Nanian:

There’s one remaining issue for 10.10 and 10.11 users: Erase, then copy backups are failing due to some unexpected “volume transformation” events that are occurring. When we validate the result, we’re being quite cautious, and we’re not seeing what we expect, so we fail the copy.

Previously:

Tuesday, December 10, 2019 [Tweets] [Favorites]

macOS 10.15.2

Apple:

Restores the column browser view for managing the music library

[…]

Addresses an issue that may cause Mail preferences to open with a blank window

I’ve heard a lot about both of these. From what I’m hearing, 10.15.2 doesn’t fix the Mail data loss bugs.

Previously:

Update (2019-12-12): The combo update is available.

Mac Pro Available to Order

Juli Clover (Hacker News):

More than two years after Apple promised a new modular high-end desktop machine for its professional users, the new Mac Pro is now available for purchase, as is its companion display, the Pro Display XDR.

Apple is accepting orders for the Mac Pro and the Pro Display XDR, with Mac Pro delivery estimates at one to two weeks after an order is placed.

So it looks like some people may receive them just before the end of the year. I’m happy that the new Mac Pro exists, but for my purposes it feels like they built the wrong product, too late. Apple has a great history of making modular desktop Macs, at sane prices, and this is not that. It’s also not the developer Mac that you might have expected given Apple’s 2017 statements about that pro market. It seems like there’s still a hole in the lineup. People will make do with iMacs and MacBook Pros, or buy the Mac Pro if they really need it, but that’s not the same as being able to buy the computer that you want. External Thunderbolt peripherals could in theory address a lot of needs, but that market just doesn’t seem to have developed very well, and Macs don’t have enough Thunderbolt ports. Meanwhile, the iMac Pro hasn’t been updated since 2017 and is likely slower than the regular iMac.

Juli Clover:

Below, we’ve listed the available upgrade options from the base machine, which is equipped with a 3.5GHz 8-core Intel Xeon W processor, 32GB RAM, Radeon Pro 580X, 256GB SSD, no Apple Afterburner, and no wheeled frame.

The base model’s SSD is half the size of the minimum SSD on the 16-inch MacBook Pro, and it can only be upgraded to 4 TB of storage (vs. 8 TB for the MacBook Pro). I wonder how the base model’s CPU will compare with the iMac and MacBook Pro, given that it only Turbo Boosts to 4 GHz.

Paul Haddad:

Just a reminder before it goes live, the Mac Pro $6k base model has equivalent performance of a < $1500 commodity system. Apple hardware/software deserves a premium, just not 4x.

Martin Pilkington:

I ended up going for a 27” i9 iMac after first seeing the price and it's faster than the base Pro will be at half the price 🤷‍♂️

Josh Centers:

If you’re an audio professional considering a new Mac Pro, be aware of how its T2 chip can mess with audio recording.

See also: High-end users on “Why I'm buying the new Mac Pro”.

Previously:

Update (2019-12-12): Martin Pilkington:

Now the problem with these groups is they all have different needs. Some need a lot of CPU power but not much GPU. Some are almost entirely GPU bound in their workflows. Some can get by with a few dozen GB of RAM, but some may find even the 1.5TBs a maxed out Mac Pro can handle to be limiting. And then there are some who need all of these things at once. However, the one thing almost all of these users can agree on needing is expandability and upgradability, to be able to modify the hardware after purchase to suit their needs and to extend the life of their purchase.

Unfortunately, the new Mac Pro doesn’t really cater to all these groups. It is certainly capable of supporting the needs of any Pro user, but the budgets of these groups are often wildly different.

[…]

Remembering that these figures are for a faster chip than the base Mac Pro has, they’re not exactly painting it as having blistering performance to justify its cost. In fact you’re paying $2600 more and just getting increased expandability in return (and losing a 5K display).

Josh Centers:

Most people complaining about the Mac Pro just want an Apple gaming PC. I do, too, but they just ain’t ever going to make that.

Thomas Grove Carter:

So I’m not @MKBHD but I’ve been using the new #MacPro & #ProDisplayXDR for the last few weeks.

Here’s a thread of my thoughts....

TL:DR it’s SO f**king good. But most probably don’t need it.

See also: Mac Power Users.

Tim Hardwick:

In an interview with Popular Mechanics, Apple engineers Chris Ligtenberg and John Ternus have detailed some of the innovative cooling features included in the design of the Mac Pro and Pro Display XDR, both of which launched earlier this week.

Apple Suing Former A-series Chip Lead

Shaun Nichols (Hacker News):

In a complaint filed in the Santa Clara Superior Court, in California, USA, and seen by The Register, the Cupertino goliath claimed Gerard Williams, CEO of semiconductor upstart Nuvia, broke his Apple employment agreement while setting up his new enterprise.

Williams – who oversaw the design of Apple’s custom high-performance mobile Arm-compatible processors for nearly a decade – quit the iGiant in February to head up the newly founded Nuvia.

Apple’s lawsuit alleged Williams hid the fact he was preparing to leave Apple to start his own business while still working at Apple, and drew on his work in steering iPhone processor design to create his new company. Crucially, Tim Cook & Co’s lawyers claimed he tried to lure away staff from his former employer. All of this was, allegedly, in breach of his contract.

Ben Lovejoy:

Williams is fighting the lawsuit, arguing that the alleged ‘breach of contract’ claim is unenforceable and that Apple illegally monitored his text messages.

Presumably it wouldn’t be illegal if the recipients of his messages gave them to Apple. So it sounds like he’s alleging that Apple directly accessed them somehow.

Previously:

Third-Party Apple TV Remote

Chaim Gartenberg (tweet):

The remote that comes bundled with the Apple TV is infamous for its difficult-to-use design and controversial touchpad for navigation. It’s so bad, in fact, that Swiss TV and internet provider Salt — which provides Apple TVs as the set-top boxes for its internet TV service — has developed a more traditional remote to replace Apple’s model, via MacRumors.

The optional remote (which costs 19.95 francs, or roughly $20.16) was reportedly developed in collaboration with Apple due to complaints from users who were confused by Apple’s touchpad controls. Salt’s remote natively supports the Apple TV right out of the box, with no pairing or setup required — just like Apple’s remote.

This sounds great, although now that Apple’s content is available on Amazon and Samsung devices, I’m not sure there’s much reason to buy an actual Apple TV. The Fire TV Stick 4K is only $50 and comes with what looks like a decent remote.

Previously:

Monday, December 9, 2019 [Tweets] [Favorites]

The Information’s App Store Ordeal

Jessica Lessin (tweet):

The last two weeks have been a crash course in Apple’s gatekeeper status over consumers’ digital lives. Apple rejected our app four times. Some of the pushback we received was so specific—such as not being allowed to underline the words “free trial”—I was stunned. Other requirements seemed arbitrary, such as the rule that we couldn’t require users to enter their email (while Disney and the New York Times could).

[…]

The copy we submitted read “Annual + 7 day free trial, $29.99.” The reviewer told us it wasn’t clear that you would be billed after 7 days.

[…]

If we wanted to launch, we had to disable a part of the app that allowed Tech Top 10 users to preview The Information articles and subscribe to read them.

[…]

Next, our app reviewer had also determined that some of the news briefs in the app were available for free on our website, which wasn’t allowed.

[…]

This time their objections related to our About Page, among other things. It couldn’t mention our website because our website is a link and that link might eventually take someone to a page where they could subscribe to The Information (similar to the article issue).

[…]

Our Android app launched Wednesday as well. All that took was a push of the button and a short waiting period. But so far, 86% of our usage is coming from iPhones.

Ryan Jones:

You didn’t hit on the fact that they revealed rejection issues 1-by-1, wasting days and days, instead of listing multiple issues at once.

The issue you’ll see - all their rules exist for a defensible reason, but in aggregate, it’s maddening. Rock and a hard place.

Previously:

Fetch 5.8

Jim Matthews:

Fetch 5.8, the 64-bit version of Fetch, is now available for download. The primary feature of this release is compatibility with macOS 10.15 Catalina. Fetch 5.7 users should only upgrade to Fetch 5.8 if they have moved, or will soon move, to Catalina.

A number of features of previous Fetch versions — AppleScript and Automator support, non-English localizations, Kerberos and Bonjour support — are not present in Fetch 5.8. We hope to restore some of these features in future updates.

Previously:

CGImageSource Memory Leak

Gus Mueller (tweet):

This sample shows how CGImageSourceCreateThumbnailAtIndex leaks something akin to the memory behind a CGImageRef when asked to create a thumbnail for a 16bpc TIFF image if one isn’t present.

I wonder whether ImageIO got rewritten in Catalina. I’ve found multiple bugs where basic stuff like setting an image’s metadata doesn’t work reliably (FB7435415).

Sam Rowlands:

I’ve confirmed with other devs that 16-Bit imaging is funky on 10.14 and above. The most common issue I’ve seen is 16-Bit images end up with rainbow colors when drawn into a 16-Bit context.

iPhone 11 Location Data Puzzler

Brian Krebs (tweet, Hacker News):

One of the more curious behaviors of Apple’s new iPhone 11 Pro is that it intermittently seeks the user’s location information even when all applications and system services on the phone are individually set to never request this data. Apple says this is by design, but that response seems at odds with the company’s own privacy policy.

The privacy policy available from the iPhone’s Location Services screen says, “If Location Services is on, your iPhone will periodically send the geo-tagged locations of nearby Wi-Fi hotspots and cell towers (where supported by a device) in an anonymous and encrypted form to Apple, to be used for augmenting this crowd-sourced database of Wi-Fi hotspot and cell tower locations.”

Brian Krebs (Hacker News):

Today, Apple disclosed that this behavior is tied to the inclusion of a short-range technology that lets iPhone 11 users share files locally with other nearby phones that support this feature, and that a future version of its mobile operating system will allow users to disable it.

[…]

What prompted my initial inquiry to Apple about this on Nov. 13 was that the location services icon on the iPhone 11 would reappear every few minutes even though all of the device’s individual location services had been disabled.

“It is expected behavior that the Location Services icon appears in the status bar when Location Services is enabled,” Apple stated in their initial response. “The icon appears for system services that do not have a switch in Settings”.

[…]

It is never my intention to create alarm where none should exist; there are far too many real threats to security and privacy that deserve greater public attention and scrutiny from the news media. However, Apple does itself and its users no favors when it takes weeks to respond (or not, as my colleague Zack Whittaker at TechCrunch discovered) to legitimate privacy concerns, and then does so in a way that only generates more questions.

Nick Heer:

This makes complete sense to me and appears to be nothing more than a mistake in not providing a toggle specifically for UWB. It seems that a risk of marketing a company as uniquely privacy-friendly is that any slip-up is magnified a hundredfold and treated as evidence that every tech company is basically the same.

Jeff Johnson:

I never want any data sent to Apple unless I’m directly, intentionally using an Apple service such as browsing an online store, or manually checking for software updates.

Previously:

Friday, December 6, 2019 [Tweets] [Favorites]

NativeConnect 1.0

Vadim Shpakovski (via Daniel Jalkut):

NativeConnect is a desktop client for App Store Connect. It allows you to edit metadata, generate promo codes, and work with customer reviews in the native and modern 100% AppKit interface.

If you are tired of signing in to App Store Connect, digging through its slow navigation or configuring multiple filters for sales and trends, you should greatly benefit from our app.

Basic features are free; uploading changes, generating promo codes, and replying to reviews are $100/year.

Unfortunately, the public App Store Connect API is too limited to provide all this functionality. Hopefully the API isn’t as slow as the site itself.

Hopefully someday they’ll find a way to send you a notification when an uploaded build has finished processing and can be added to an app version.

Previously:

1 TB microSD Card

Western Digital (via Peter Hosey):

Get extreme speeds for fast transfer, app performance, and 4K UHD. Ideal for your Android™ smartphone, action cameras or drones, this high-performance microSD card does 4K UHD video recording, Full HD video, and high-resolution photos. The super-fast SanDisk Extreme® microSDXC™ memory card reads up to 160MB/s* and writes up to 90MB/s.

Amazing that these tiny cards can how hold 1 TB. It would be great to have a microSD slot on the MacBook Pro.

The 1 TB version costs $250, whereas Apple charges $400 to upgrade from 1 TB to 2 TB of storage on the 16-inch MacBook Pro. You’re getting very different things, though. The MacBook Pro’s internal SSD is much faster, but it can’t be expanded later, and you have to pay for it all up front. SD Cards keep your data separate, so you can use them for backups and transfer them between Macs. You can keep adding more to store more files.

Previously:

Dash 5

Kapeli:

New Search and Navigation Interface – The search and navigation interface was completely redesigned to be more intuitive and fast

New Search Result Sorting and Nesting – Search result sorting and nesting were completely rethought and redone.

[…]

Dash 5 uses WKWebView, the latest browser engine from Apple. Supporting WKWebView required rewriting a huge part of Dash, some of which to JavaScript, so please make sure to report any bugs you might encounter, no matter how small

$20 upgrade to an essential app for developers. I like how the search is now in the middle rather than on the side. It feels more like LaunchBar, with more width to see the search results.

Before, you could type a class name and a space and then a keyword to scope the search to that class. Now, there’s a separate field that both searches within the current page and filters the list of methods at the left.

Previously:

Apple’s Technology Transitions

Martin Pilkington:

While this saving of disk space and RAM usage certainly benefits the Mac, there are arguably more important reasons to Apple for dropping 32 bit on the Mac. They don’t actually have much to do with 32 bit itself, but more with decisions that were made in 2007 when 64 bit was finalised.

[…]

When Apple introduced 64 bit with Mac OS X 10.5, they also introduced Objective-C 2.0. Part of this was a new and improved runtime, designed to fix problems with the old runtime. Unfortunately, these fixes were not compatible with existing apps, so they made the decision to only make this runtime available in 64 bit. However, this meant the (now) legacy runtime would have to stick around as long as 32 bit apps existed.

[…]

The behaviour of the legacy runtime effectively means that Apple can never update their existing objects with new ivars without breaking existing apps.

PDFKit accidentally did just that in Sierra, causing crashes in 32-bit apps that displayed PDFs, as the framework tried to access variables that didn’t exist.

ARC has been off-limits, too. Apple’s framework developers have been working with one hand tied behind their backs.

Previously:

Tuesday, December 3, 2019 [Tweets] [Favorites]

VirtualHostX Pro Subscriptions

Tyler Hall:

VirtualHostX is now a subscription. You can pay $49 USD / year or $5 USD / month.

The annual price is the same as the old one-time cost. And I’ll note that I typically release a paid upgrade every 12 - 18 months. So, if you are like many of my amazing customers who do update to each new release, the cost of doing that vs a subscription are more or less the same.

[…]

If you sign up for an annual subscription, you can cancel it at any time. In fact, you can subscribe, get the confirmation email, and then immediately cancel. Your license for the app will continue to work through the entire year.

Even better. Your license will remain valid and working forever.

This sounds like the Sketch model, which I think is reasonable. Sketch’s file format issue likely won’t apply here.

Previously:

Update (2019-12-12): Matt Gemmell:

The way I see app subscriptions right now is pretty simple. Here’s a brief thread on that.

First, Apple doesn’t allow upgrade pricing. Everyone would use it if they could. They can’t. That option is off the table.

Drew McCormack:

This made me think about the subscriptions I have for apps. It’s a grand tally of one: Tower. It’s a tool I need for work, and it cannot hold my data hostage. I don’t trust any other creational tool with a subscription. Perpetually renting access to my own data doesn’t appeal.

Tyler Hall:

Drew makes a great point. It’s the “lock down” that can be the key to a sustainable balance between what’s fair to customers and you staying in business.

[…]

So when I did my big release last week and announced my new pricing model, I was extremely nervous and wary of what the response would be. But so far I’m very lucky that I’ve have had few complaints.

Reading the Resource Fork Too Often

Mark Alldritt:

This problem happens after a document has been opened in Script Debugger and changes have been saved a number of times. If the saves are done in fairly quick succession, Script Debugger will begin reporting that it cannot save document changes. In some instances, errors -54 (permErr) or -43 (fnfErr) are reported. Additionally, once this situation arises and you close the document, it is no longer possible to open the effected document in Script Debugger.

[…]

At a technical level, the problem is triggered when applications attempt to read the resource fork of a document repeatedly within a given period of time. This behaviour by an application seems to trigger a security mechanism within Catalina that prevents further access to the document’s resource fork (the resource fork is used to retain meta-data in text and compiled AppleScript documents).

You’d think that old deprecated stuff like resource forks would just keep working in its frozen state. But both Mojave and Catalina introduced resource bugs that have hit my apps. There are more modern replacements for many uses of the resource fork, but they don’t always work. And, as with the AppleScript example, sometimes the resource fork is unavoidable, and the problems even hit Apple’s own apps.

Previously:

Update (2019-12-12): Howard Oakley:

With Shane Stanley’s help, I’ve been able to reproduce this problem and to examine an excerpt of the log detailing what happened on that occasion. In this case, trying to access a resource fork in an AppleScript .scpt file which had just been repeatedly edited using Apple’s Script Editor triggered a request to the Catalina privacy system (TCC), which required the requesting app to have been granted a kTCCServiceSystemPolicyAllFiles entitlement.

[…]

One way to avoid that particular error is to add apps which need access to resource forks, like Script Debugger and Script Editor, to the Full Disk Access list in the Privacy tab of the Security & Privacy pane.

Peter Steinberger:

„After macOS 10.10, our users reported weird new crashers. As if the lock method in NSPersistentStoreCoordinator didn’t do anything anymore. Let’s look into Hopper... oh. [the lock was gone, method just was a NOP]

It’s not safe to rely on deprecated methods.

Disk Drill Guaranteed Recovery

Dave Wood:

I received feedback from my report I’d sent to Apple (Yay, they do work!). They pointed out that the issue was due to a third party app I have installed called Disk Drill by CleverFiles (which I have as part of my Setapp subscription). The app has a “feature” called Guaranteed Recovery that is supposed to help recover files later if you accidentally delete them. It “works” by creating thousands of hard links to what appears to be every file on your system in a hidden directory (/System/Volumes/Data/.cleverfiles/). This means when you delete a file, it’s not really deleted because there’s a hard link effectively creating a duplicate in the hidden folder.

[…]

Over the last month or so, I’ve been trying to free up space on my main SSD because the OS is constantly complaining that my drive is full. Because I kept getting alerts that I needed more free space, I kept moving/deleting files. Eventually I’d cleared/off-loaded over 500G of data and was still scraping by with about 30G of free space. Now that I’m aware of the issue, I’ve taken a look into the .cleverfiles hidden folder on my iMac and I see it has over 450G in it. Wow.

Wow indeed. First, the hidden folder should be excluded from Time Machine. And second, it seems like there’s a bug where it isn’t being pruned automatically.

Ordering the Typefaces in a Font

Gus Mueller:

The docs for -[NSFontManager availableMembersOfFontFamily:] say:

“The members of the family are arranged in the font panel order (narrowest to widest, lightest to boldest, plain to italic)”

Unfortunately, it looks like this is broken on MacOS 10.15.1. Running Acorn on 10.14 produces the order as described (and as seen below with Helvetica Neue).

Jiang Jiang:

As a workaround, calling CTFontDescriptorCreateMatchingFontDescriptors() with a font descriptor created from @{ kCTFontFamilyNameAttribute: familyName } should give you descriptors in the right order. Then you can get localized style names out of the descriptors.

Drinking the SK8 Kool-Aid

Cameron Esfahani (thread, via Daniel Jalkut):

One day my boss asked me to fly down to LA for the day. Apparently there was a developer there working on an app showcasing QuickDraw GX.

[…]

And right away I could tell something was weird. Structurally, most Mac apps look very similar. But this app was like nothing I’d ever seen before: heap and code were off.

[…]

“Oh, we’re writing it in SK8.”

[…]

SK8 was a weird Lisp-like multimedia authoring environment that Apple ATG was developing.

Needless to say, it wasn’t ready for production use.

Monday, December 2, 2019 [Tweets] [Favorites]

VueScan and ScanSnap

Dave Kitabjian:

But the real secret sauce of ScanSnap was the accompanying software that was centered around what you were trying to do rather than making you constantly fiddle with scanning parameters. Finally, a developer was thinking like a customer instead of a scanner! The combination of a simple user interface, intelligent defaults, seamless integration with external apps, and automation of the entire workflow created a user experience that was hard to beat.

[…]

Some months ago, Fujitsu sent users of older ScanSnap models email informing them that their ScanSnap software would not be updated to 64-bit and would therefore not run under macOS 10.15 Catalina.

[…]

If you want to do simple scanning, you may have a painless experience, writing JPEG or multi-page PDF files to disk, or using some of VueScan’s many sophisticated advanced features. And as such, VueScan may well rescue your aging ScanSnap from the trash heap.

But I ran into a number of issues that you should be aware of.

It seems harder to use and has problems with deskewing, color, streaks, and profiles.

Ron Risley:

Something not mentioned in the article is that Fujitsu states that their new (64-bit) scanning software will absolutely require an always-on internet connection in order to do any scanning. This is concerning on a number of levels. Usability and availability is one issue, but in both my work as a physician and as an IT security consultant, I regularly scan documents that absolutely must not be published. (If you think there’s a functional difference between “sent to the cloud” and “published,” then you haven’t been paying attention.)

[…]

I originally licensed VueScan because I owned an expensive flatbed scanner whose manufacturer abandoned the Mac. I feel rescued by VueScan again, and will be buying more licenses for other machines at my office.

A help page says that ScanSnap does work without an Internet connection, so perhaps the connection is only needed for the “active” version of the installer.

Previously:

Fake AirPods Pro

Juli Clover:

We picked up the $95 i500 Pro TWS Earbuds, a set of AirPods Pro replicas that are remarkably similar in design to Apple’s real AirPods Pro and that even advertise some of the same features, like Apple’s proprietary H1 chip.

[…]

Wireless charging works, “Hey Siri” is functional, music playback pauses when an earbud is taken out of the ear, and battery life seems to be similar to real AirPods Pro, but the similarities end there. The i500 Pro TWS has no force sensor and does not support squeeze gestures, and the key AirPods Pro feature - active noise cancellation - is not included.

I wonder how they’re doing this.

Previously:

Web Notifications CAPTCHA

Arthur Stolyar:

Next level of Web Notifications scam.

- Allow Notifications to confirm that you’re not a robot 🙈

Ricky Mondello:

Abuse like this is why some people get uncomfortable when folks go around saying that adding new, more powerful features to the web platform is some kind of moral imperative. That kind of framing makes it hard to reason about tradeoffs and add features thoughtfully.

This is one that Safari got right, and I have “Allow websites to ask for permission to send notifications” unchecked. (Yes, Apple’s style guide says that “websites” is one word.)

Previously:

Update (2019-12-12): Thomas Pluck:

Steps for reading articles:

1. Accept cookies
2. Block notifications
3. Deny location to website
4. Decline invitation to subscribe
5. Stop auto-playing video ads/mute sound
6. Dismiss reminder of free articles remaining
7. Shrink drop down banner
8. Click “read more”
9. Give up

Lepow Portable Monitor

Paul Haddad links to this display that’s currently available for only $129.99 ($109.99 at the time of his tweet). It’s a 15.6-inch IPS display that supports 1,920×1,080. That’s a much better resolution than the AOC display I wrote about a few years ago, and it works over HDMI (plus USB power) or USB-C without needing a kernel extension.

It’s great to have extra screen space on the go, and these displays easily fit next to a MacBook Pro in a backpack. On the other hand, for shorter work sessions it would be more convenient to simply have a 17-inch internal display (again).

Previously: