Archive for April 2021

Tuesday, April 20, 2021 [Tweets] [Favorites]

Secure ShellFish (Sponsor)

My thanks to Secure ShellFish for sponsoring the blog this week.

Secure ShellFish connects iOS devices to your Mac, Raspberry Pi, and any other SSH server to open terminals, browse the file system, and upload files.

Secure ShellFish

With a location in the Files app, your server content is listed alongside cloud storage and available to third-party apps. Upload files or even directories from any share sheet.

It has extensive Shortcuts support for automating file operations and has widgets for following long-running jobs or tailing log files from the home screen.

Use tmux to keep your terminal sessions alive, picking sessions by thumbnail and passing sessions between devices with Handoff. Select files in the terminal and drag these into other apps as actual file content. Drop items onto the terminal to upload.

There are shell functions to invoke the share sheet, post notifications, and run shortcuts right from the terminal with the files on your server.

Secure ShellFish is made by Anders Borum, who also brought you Working Copy. It is a premium app where you subscribe monthly or purchase a lifetime unlock. Get started with the 15-day free trial that doesn’t convert to a subscription.

iPad Pro 2021

Apple (MacRumors, Hacker News):

The addition of the Apple-designed M1 chip delivers a massive leap in performance, making iPad Pro the fastest device of its kind. The 12.9-inch iPad Pro features a new Liquid Retina XDR display that brings extreme dynamic range to iPad Pro, offering a stunning visual experience with more true-to-life details to the most demanding HDR workflows. Cellular models with 5G deliver even faster wireless connectivity when on the go, and to provide users with pro-level throughput for high-speed accessories, iPad Pro now includes support for Thunderbolt. Additionally, an all-new Ultra Wide front camera enables Center Stage, a new feature that automatically keeps users perfectly framed for even more engaging video calls.

Juli Clover:

iPad Pro models with 128GB, 256GB, or 512GB of storage will come with 8GB RAM, while iPad Pro models with 1TB or 2TB of storage will feature 16GB RAM.

iMac 24-inch 2021

Apple (MacRumors, Hacker News):

Apple today introduced an all-new iMac featuring a much more compact and remarkably thin design, enabled by the M1 chip. The new iMac offers powerful performance in a design that’s just 11.5 millimeters thin, with a striking side profile that practically disappears. Available in an array of vibrant colors to match a user’s personal style and brighten any space, iMac features a 24-inch 4.5K Retina display with 11.3 million pixels, 500 nits of brightness, and over a billion colors, delivering a brilliant and vivid viewing experience.

The new iMac also includes a 1080p FaceTime HD camera, studio-quality mics, and a six-speaker sound system — the best camera and audio ever in a Mac. Also, Touch ID comes to iMac for the first time[…]


To complete the simplified design, iMac comes with a new power connector that attaches magnetically and a beautifully woven 2-meter-long color-matched cable.

That would be even more useful on a notebook computer…

I’d like to see it in person, but I’m a bit skeptical of the white bezel. Everything else sounds pretty great, and there’s no longer a premium for the VESA models.

Many of the specifications are limited compared with the previous model:

So, presumably there will be a new iMac Pro sometime in the next year or so. Perhaps it will have a faster processor than the other M1 Macs. Ideally, for those of us with DTK coupons, this will be out before the end of the year, along with a 16-inch MacBook Pro and an external display.

Mitchel Broussard:

Alongside the brand new M1 iMac, Apple today revealed a collection of accessories for the desktop computer. The biggest product is a new version of the Magic Keyboard that includes support for Touch ID, providing quick access to macOS and even allowing users to switch profiles with the touch of their finger.

Alas, it has the bad arrow key layout, even though Apple already fixed this on its notebooks. I’m not sure whether it’s still bendy or suffers from the Bluetooth problems that forced me back to a wired keyboard.


Update (2021-04-20): Scott:

The ONE thing that I didn’t see, am not seeing, that I wanted, NEEDED to see with new iMacs is the ability to use the iMac as an external display over Type C.


Hot take: The iMac didn’t need to be thinner. The bezels (AND CHIN) needed to be reduced.

Apple TV 4K 2021

Apple (MacRumors, Hacker News):

With A12 Bionic, Apple TV 4K now supports high frame rate HDR (High Dynamic Range) and Dolby Vision video, enabling fast-moving action at 60 frames per second (fps) to play more smoothly and appear more lifelike than ever before.


Apple TV uses the light sensor in iPhone to compare the color balance to the industry-standard specifications used by cinematographers worldwide. Using this data, Apple TV automatically tailors its video output to deliver much more accurate colors and improved contrast — without customers ever having to adjust their television settings.


The all-new Siri Remote features an innovative clickpad control that offers five-way navigation for better accuracy, and is also touch-enabled for the fast directional swipes Apple TV users love. The outer ring of the clickpad supports an intuitive circular gesture that turns it into a jog control — perfect for finding a scene in a movie or show. […] The new Siri Remote also has a power button that controls a TV’s power, and another for mute, making it the only remote needed while enjoying TV.

This sounds great, although $179 is still pretty steep if you don’t care about gaming or apps. With Apple TV 3 losing content, I just want a nice way to play the latest video, with a reasonable remote. This seems like overkill.

Joe Rossignol:

The new Siri Remote is included with the new Apple TV 4K and will also be sold separately for $59. The new remote is also compatible with the previous-generation Apple TV 4K and Apple TV HD. Apple also continues to sell the Apple TV HD with 32GB of storage for $149, and orders placed from today onwards will include the new Siri Remote.


Update (2021-04-20): Mark V:

So they did a whole shtick about someone looking for lost items in the couch using Find My and in the same presentation introduce a Remote that doesn’t support it? 😂

Eli Rousso:

Apple Remote Evolution, 2005-2021

Dan Moren:

Yep, the new Apple TV 4K has a Thread radio!


Apple (MacRumors, Hacker News):

Whether attached to a handbag, keys, backpack, or other items, AirTag taps into the vast, global Find My network and can help locate a lost item, all while keeping location data private and anonymous with end-to-end encryption. AirTag can be purchased in one and four packs for just $29 and $99, respectively, and will be available beginning Friday, April 30.


Customers can personalize AirTag with free engraving, including text and a selection of 31 emoji, when purchasing from or the Apple Store app.


iOS devices can also detect an AirTag that isn’t with its owner, and notify the user if an unknown AirTag is seen to be traveling with them from place to place over time. And even if users don’t have an iOS device, an AirTag separated from its owner for an extended period of time will play a sound when moved to draw attention to it.


AirTag is designed for over a year’s worth of battery life with everyday use. The CR2032 battery is user-replaceable and widely available.

This seems very well done, although it’s not clear to me what I would use them for. I don’t misplace keychains or bags. I guess it would be fun to put them in luggage, to be alerted when it arrives, though I’m not sure whether that would trigger the “separated from owner” feature. And, hopefully, AirTag would work from inside the luggage, so you don’t have to buy special tags and put them at risk of theft.


Update (2021-04-20): Scott Morrison:

Maybe I am old and just don’t understand these things but I cannot for the life of me grasp how a little bit of leather, stitching and a metal ring justifies a $450 CAD price tag.

Apple Podcasts Subscriptions

Apple (MacRumors):

Starting in May, listeners in more than 170 countries and regions can sign up for premium subscriptions that include a variety of benefits curated by creators, such as ad-free listening, access to additional content, and early or exclusive access to new series.


The new Apple Podcasts for Creators website helps creators learn more about podcasting, stay informed about the latest news and features, and explore in-depth guides with best practices. Starting today, all creators can access an updated Apple Podcasts Connect dashboard, which has new features that make it easier to manage shows on Apple Podcasts, including the ability to edit metadata, schedule and manage show availability, organize shows into channels, manage multiple users and roles, and learn how listeners are engaging with their shows through new performance metrics and visualization tools. From Apple Podcasts Connect, creators can enroll in the new Apple Podcasters Program, which provides access to all the tools needed to build and distribute premium subscriptions on Apple Podcasts.


The Apple Podcasters Program, which includes all of the tools needed to offer premium subscriptions on Apple Podcasts, is available to creators in over 170 countries and regions for $19.99 (US) per year.

Peter Kafka:

First take on Apple’s pod plans: creator-friendly way to generate more $ w/out cannibalizing existing biz.

I had thought Apple would require some kind of exclusivity but am told that’s not so: you can distribute pod with ads on Spotify, Apple etc and sell ad-free via Apple too.

Matt Medeiros:

Looks like Apple will keep 30% of your private podcast revenue + the $19.99/year in the first year. Moving to 15% of subscribers in year 2+ -- according to their terms.


Update (2021-04-20): Paul Haddad (MacRumors):

What’s the justification behind charging 30% to host podcasts? It’s not like the App Store where there’s a huge review infrastructure and super rich SDK.

Owen Williams:

and you STILL have to host your own RSS feed/files for all of the regular content, i don’t get it

Marco Arment:

Well, this is fun.

Tried going to Apple Podcasts Connect when signed into my developer account. Hit Cancel, signed out.

Now I can’t get into App Store Connect with my dev account.

Always redirects to podcastsconnect, even in another browser.

Monday, April 19, 2021 [Tweets] [Favorites]

Microsoft xCloud for iOS Launching Soon

Tom Warren (tweet, MacRumors)

Microsoft’s Xbox Cloud Gaming (xCloud) will officially arrive on iOS and PC tomorrow, April 20th. The service will arrive on devices via browsers, allowing Xbox Game Pass Ultimate subscribers to play Xbox games on iPhones, iPads, and PCs.


Both Apple and Microsoft got into a public war of words over xCloud, and Apple initially insisted that Microsoft would have to submit individual games for review. Apple eventually offered a compromise to allow cloud gaming apps to run on iOS with individually reviewed games, but Microsoft branded it a “bad experience for consumers.”

Apparently, Apple’s compromise was even worse than the sweet solution.


Parler Approved for App Store

Chance Miller (tweet, MacRumors, Hacker News, Slashdot):

After removing Parler from the App Store back in January, Apple has reportedly decided to allow the app to come back. According to a new report from CNN, Apple has approved Parler’s latest attempt to return to the App Store follow improvements to the moderation system…

Normally, developers have to develop and submit an app to see whether its gets approved. You can’t ask beforehand whether an approach is acceptable. In this case, Apple is pre-announcing that it will approve the app based on a proposal of how the moderation will work. This is odd because the previously removed version of the app already met the letter of Apple’s guidelines. The issue was that in practice the moderation didn’t work to Apple’s satisfaction. But now it’s pre-approved even though Apple hasn’t even tried the app.

Mark Gurman:

Apple’s decision to reinstate Parler comes ahead of a Wednesday hearing scheduled by the Senate Judiciary Committee’s Subcommittee on Competition Policy, Antitrust and Consumer Rights[…]

I guess that explains it. The letter from Apple to the congressmen is here.


Bartender 4

Tim Hardwick:

Surtees Studios has released Bartender 4 for macOS Big Sur, following extended testing in public beta. As well as macOS 11 support, the popular tool for rearranging or hiding Mac menu bar items now runs native on M1 Macs and comes with several new features and core abilities.

With Big Sur, Apple increased the space between menu bar items, which reduces the space available for icons. To alleviate this problem, Bartender 4 now allows users to revert to pre-Big Sur spacing or even use no spacing so to fit in more menu bar apps.

$15, with a 50% discount for upgrades.

Mac App Store Entitlement Folly

Jeff Johnson:

Xcode has been pushing the “” entitlement on us for ten years, and this seemed fine with the App Store too all these years… until a couple days ago. If it turns out that “” is unnecessary for my app, and Apple wants it to be removed, then I am happy to remove it… in a reasonable amount of time. But I won’t tolerate a metaphorical gun put to my head, forcing me to remove the longstanding entitlement immediately on threat of not being able to release an app update that’s important to me and my customers. So I’m going to fight that. I did fight it, and I “won”. At least I won this battle, if not the war. In any case, there’s a kind of insanity in rejecting an update for an entitlement already possessed by the version of the app currently available in the App Store.


For App Store customers, the lesson is that you ought to be very skeptical about App Store review. After all, if I can argue an app reviewer into accepting my submission despite their reservations, then so could a scammer! Note that I never actually explained to app review why I needed the entitlement.


Chuck Geschke, RIP


We’re deeply saddened to share that our beloved co-founder, Dr. Chuck Geschke, has passed away. Chuck was a hero and guiding light for so many of us in the technology industry. He leaves an indelible mark on our company and the world.

Unfortunately, the longer article that this tweet linked to has been moved or removed.

AP (via Hacker News, Slashdot):

After earning a doctorate from Carnegie Mellon University, Geschke began working at Xerox Palo Alto Research Center, where he met Warnock, the Mercury News reported. The men left the company in 1982 to found Adobe, developing software together.

Kim Lyons:

Their first product was Adobe PostScript, the programming language that helped boost the desktop publishing industry.

Geschke was chief operating officer of Adobe from December 1986 to July 1994 and president from April 1989 until his retirement in April 2000. He served as chairman of the board with Warnock from September 1997 to January 2017 and was a member of the board until April 2020, when became emeritus board member.

Matt Rickard:

Geschke and Adobe have an amazing story that goes back nearly 40 years.

Run ins with Steve Jobs, the Photoshop distribution deal, and even a kidnapping…

Friday, April 16, 2021 [Tweets] [Favorites]

Belkin Car Vent Mount Pro With MagSafe

Nilay Patel:

All of this means I was very excited when Apple added MagSafe charging to the new iPhone 12 line. A series of magnets aligns a wireless charger to the back of the phone, and has enough attachment strength to — yes — hold the phone on a car mount. A dream: you get in the car, seamlessly dink! your phone onto the mount, and drive away, laughing at the suckers fumbling with their cradles and motorized friction arms and other unwieldy ideas.


Unfortunately it has been six months since the iPhone 12 was announced, and there is a pitiful shortage of MagSafe car chargers. In fact, there are no officially-sanctioned MagSafe car chargers. Instead, there is this Belkin Car Vent Mount PRO with MagSafe, which, as the name suggests, allows you to mount a phone to your vents with MagSafe, in, um, a professional way. However, it does not charge your phone.


Kindles Can Finally Display Book Covers on Their Lock Screens

Dan Moren:

I was frankly flabbergasted to see a post on The Verge this morning, reporting that Amazon has—finally!—added the ability to show the cover of whatever you’re currently reading on your Kindle’s lock screen.

Let me tell you: there was much rejoicing. Users have clamored for this feature for a very long time—even those who didn’t have the Special Offers option that shows ads on the lock screen were stuck with the company’s wallpaper options.

Mac Chimes of Death

Stephen Hackett (Hacker News):

We’re all familiar with the Mac’s startup chime. While it has changed over the years, it has greeted users with its friendly tone for decades.

What you may not know is that for years, the Mac also came with a death sound, that would play when the machine was unable to properly boot.

I remember these sounding a lot more menacing in the wild.


RCKit Removed From the App Store

Emmanuel Crouvisier:

This really upsets me. There are/were two apps which use the same unpublished API from RevenueCat. One was clearly better in my eyes, with innovative features which the other didn’t have, yet the one of them was able to get kicked out of the App Store by the other being a bully

Curtis Herbert:

This is 100% the danger with apple getting into judgement calls about copycats. In the end, we’re going to have more sad stories like this than we will actual positive net change on the ecosystem.

Kosta Eleftheriou:

Happy to report that the situation has now been resolved amicably between the developers, and a request to cancel the dispute has been sent to Apple.

So @Apple, please undo this unfair takedown - thank you.

Thursday, April 15, 2021 [Tweets] [Favorites]

The Mystery of “White Spots” on Apple Trade Ins

Nick Statt (also: 9to5Mac, MacRumors):

The situation soon changed after his laptop arrived for inspection. Suddenly, McGloin was told his MacBook was worth just $140, less than half what Apple originally quoted. The mysterious culprit: “display has 3 or more white spots,” the Apple Store app told him. It’s a defect McGloin doesn’t remember ever seeing, and one that he should have noticed: typically, white spots on an LCD display are evidence of serious damage or burn-in and are clearly visible.


The company he had been dealing with was not actually Apple, but an Atlanta-based contractor named Phobio. Founded in 2010, Phobio is an enterprise service provider that specializes in offering white label trade-in services other companies can pass off as their own.

McGloin also found Phobio had a pretty questionable online reputation when it came to Apple products.

Dan Moren:

I’ve used Apple’s trade in program a few times in the past, and while I haven’t run into these issues, there does seem to be an odd recurrence of this “white spots” problem—all the more puzzling because several cases, customers have declined the trade in, gotten their devices returned, and been unable to discern the problem described.


Either way, it’s certainly not the experience that Apple probably wants for its customers, especially since many if not most of the people trading in old Apple products are using the money towards the purchase of new Apple products. But because Apple doesn’t highlight the fact that its returns are done through a third-party, it’s Apple that gets the blame—and it’s the one that needs to fix any issue here as well.

Darío Maestro:

Same thing happened to me. They sent a fake picture of my iPad Pro with a dead pixel and adjusted trade-in value to -$400. After I pushed back, they returned it to me. iPad was completely fine. I traded it in at an Apple Store for the full value.

I bet Phobio is great at privacy, though.

David Heinemeier Hansson:

Both Apple and Phobia refuses to answer any questions about the shady program. What the hell?

Becky Hansmeyer:

This happened to me!

Curtis Herbert:

Me too with the Apple trade in program! It was some of the glue causing a color change. Although in my case after I knew what to look for I did see them. But it is apparently common enough there should really be a warranty repair program.


Rust Support in the Linux Kernel

Miguel Ojeda:

Please note that the Rust support is intended to enable writing drivers and similar “leaf” modules in Rust, at least for the foreseeable future. In particular, we do not intend to rewrite the kernel core nor the major kernel subsystems (e.g. kernel/, mm/, sched/...). Instead, the Rust support is built on top of those.


By using Rust in the Linux kernel, our hope is that:

  • New code written in Rust has a reduced risk of memory safety bugs, data races and logic bugs overall, thanks to the language properties mentioned below.
  • Maintainers are more confident in refactoring and accepting patches for modules thanks to the safe subset of Rust.
  • New drivers and modules become easier to write, thanks to abstractions that are easier to reason about, based on modern language features, as well as backed by detailed documentation.

Wedson Almeida Filho:

In our previous post, we announced that Android now supports the Rust programming language for developing the OS itself. Related to this, we are also participating in the effort to evaluate the use of Rust as a supported language for developing the Linux kernel. In this post, we discuss some technical aspects of this work using a few simple examples.

Peloton Cuts Back on Apple Watch Support

Colin Jenkins (via Hacker News, MacRumors):

One of the selling points of upgrading to the newer, upgraded, and more expensive Peloton Bike+ was the inclusion of the Apple Gym Kit, an Apple platform that makes it very easy to pair the bike with your Apple Watch to see your heart rate and have your workouts directly imported into Apple Fitness and Apple Health.

In fact, when I bought my own Peloton Bike+, I also decided to buy an Apple Watch specifically because of the inclusion of Apple GymKit.

With one of Peloton’s latest updates, they have disabled the direct pairing of the Apple Watch to the Bike+ Bootcamp Classes (in addition to it being already disabled for Strength and Yoga Classes).

Ashley Carman:

A Peloton spokesperson confirmed to The Verge today that GymKit no longer works with Bike Bootcamp classes and instead will “only be available in cycling classes for now.” The spokesperson also said: “Peloton is committed to bringing the GymKit integration to all workouts and disciplines within Apple’s terms of service,” seemingly suggesting bootcamp workouts didn’t fall under those terms.

The speculation that Peloton removed Apple Watch support because they plan to sell their own finess watch doesn’t make much sense. You’d think they wouldn’t want to jeopardize customers continuing to pay the monthly subscription for their bike. Did Apple crack down on them? Why?

Joe Rossignol:

Apple today announced it is introducing new Fitness+ workouts geared specifically toward pregnancy and older adults, as well as several new Yoga, High Intensity Interval Training (HIIT), and Strength workouts for beginners.

It’s interesting that Apple’s subscription product does support strength and yoga workouts.

Meanwhile, Peloton can just switch to one of the alternative channels.


Update (2021-04-16): Nilay Patel:

Since Apple’s terms of service for GymKit are not public, it was not clear what terms Peloton had violated, and, in general, “using your expensive smartwatch to sync your heart rate to your expensive stationary bike” is not the sort of thing that should require contract negotiations between huge companies.


Anyhow, irritating the huge group of wealthy people who own both an Apple Watch and a Peloton Bike Plus is a bad idea, so Peloton has a new statement today clarifying what’s going on. Here it is:

Apple GymKit is designed to work with equipment-based cardio workouts. However, Peloton recently implemented GymKit with Bike Bootcamp, a multi-disciplinary class type that combines strength and cardio, which the feature does not support. Members can still use GymKit to sync their cycling-only workouts to their Apple Watch from the Bike+.

So basically, the Apple Watch does not support switching from biking to lifting weights all in one workout. Fair enough. That said, if people want to use their Apple Watch in goofy off-label ways, it’s weird that Apple is stopping them in this way, no? And certainly adding a “bike bootcamp” workout mode to the Apple Watch fitness app would be relatively easy for Apple, the company that makes the Apple Watch.

Collecting concurrentPerform(iterations:) Results in a Swift Array

David Smith:

Useful pattern for aggregating the results of parallel work in Swift:

let result = Array(unsafeUninitializedCapacity: count) { (buffer) in
  DispatchQueue.concurrentPerform(iterations: count) { (idx) in
    buffer[idx] = processItem(idx)

Avoids making an extra buffer copy

If you make the Array up front and try to operate directly on it instead of the UnsafeMutableBufferPointer in that initializer, each thread will get its own copy due to copy-on-write, which generally is not what you wanted.

David Smith:

I would not trust it [with small array elements]. Aligned word-sized non-float things are your friends when dealing with concurrency. If you’re not sure, try TSAN, and consider just using a lock.


How a WhatsApp Status Loophole Is Aiding Cyberstalkers

Louisa Stockley:

According to Statista, WhatsApp is the world’s most popular messaging app, with over two billion active monthly users. In the UK it’s present on 58% of smartphones and the number of WhatsApp users in the US is expected to hit 86 million by 2023.

When someone comes online in WhatsApp (that is, they open the app or bring it to the foreground), an indicator changes, setting their status to “Online”. This indicator is public information, and can be used by anyone to build a service that watches out for this online status indicator.


WhatsApp has other privacy-focused features in the app, so they clearly care about protecting their users at some level. In fact, one of the privacy features allows a user to hide their “Last Seen” time. Some users might understandably believe that this feature hides their presence, but it actually does very little to protect privacy.


Wednesday, April 14, 2021 [Tweets] [Favorites]

Dynamic Type and In-App Font Scaling

Daisy Ramos:

This is all that’s needed to scale custom fonts with Dynamic Type. Sometimes in content-driven apps there is a need for web technologies for complex layouts / styles. Let’s see if we can support Dynamic Type and web-driven content via WKWebView.

Jeff Verkoeyen:

For iOS 12 and 13 there’s a scattering of iOS bugs and unexpected behavior that result in a windy road toward a swiss cheese of dialed in fonts, but it kind of works for common cases. You can see the different considerations in [this gist].

ThinkPad X1 Nano

Monica Chin:

But one thing is unique about the X1 Nano: it’s the lightest ThinkPad Lenovo has ever made. Starting at just 1.99 pounds, the Nano isn’t technically the lightest laptop on the market. But it’s still one of the best combinations of portability, build quality, and performance that you can buy.


What looms over that verdict, of course, is the Nano’s price. Technically, it starts at $2,499 and maxes out at $3,719. The good news is that Lenovo’s products are very often heavily discounted, and the current sale prices at the time of publish range from $1,149 to $2,231.

Via John Gruber:

An M1 MacBook Air weighs 2.8 pounds (and an M1 MacBook Pro weighs just 0.2 pounds more — the Air is only ever-so-slightly lighter than the 13-inch Pro).

How about this? My 11-inch iPad Pro attached to Apple’s Magic Keyboard: 2.36 pounds. Lenovo’s X1 Nano even has that beat on weight, and the ThinkPad has a 13-inch display and full-size keyboard.


Blocking Discord Channels Marked NSFW on iOS

Jacob Kastrenakes (tweet, Hacker News):

Discord is amping up its restrictions on adult content, with new age gates on NSFW servers and a ban on accessing these servers from iOS devices.


The NSFW marker does two things. First, it prevents anyone under the age of 18 from joining. But the bigger limitation is that it prevents NSFW servers from being accessed on iOS devices — a significant restriction that’s almost certainly meant to cater to Apple’s strict and often prudish rules around nudity in services distributed through the App Store.

No such rules apply to groups conversing via iMessage or FaceTime.

Kyle Orland:

Apple’s iOS Developer Guidelines say that apps with user-generated content “that end up being used primarily for pornographic content… do not belong on the App Store.” The guidelines allow for “incidental” NSFW content generated by users on web-based services if “the content is hidden by default and only displayed when the user turns it on via your website,” a caveat that apparently isn’t sufficient for Discord’s comfort.

My recollection is that enabling it via a switch in the app, or based on the iOS parental controls settings, is forbidden.

Discord is reportedly in the late stages of acquisition talks—which could value the service at $10 billion—with Microsoft and other parties. The service has over 140 million monthly users and 300 million registered accounts.


Every small community I’m on on Discord (meaning the majority of the servers I regularly interact with) sets every channel to `NSFW`, and some mark the server itself. They do this because everyone involved is known to be 18+ (Usually higher than that) and they want to be able to have the same discussions they’d have in person.

These communities are not about porn, are not about anything “distasteful”, but the flag is set there so that if a topic comes up we can discuss it without risking a ban.

In other words these communities are meant to be a Third Place, or an extension of a physical Third Place, particularly recently thanks to COVID.

The content here is literally no different than the content that could show up in a long-running group chat in the Messages app on iOS.

Matthew Bischoff:

When we dealt with this at Tumblr, it became my full time jobs for weeks to find incredibly complex ways to appease Apple’s censors. This happened every time they found a sexy blog they didn’t like. It’s absurd.

Ian Vanagas (via Hacker News):

The competition between internet communication platforms is fierce. Discord wasn’t early to voice channels or group chats. They weren’t unique for targeting their offering to gamers. Other platforms have the same features as them. Yet they are a multi-billion dollar business. How? To borrow an idea from Sarah Tavel, they built a 10x better product AND capture more value from it.


Update (2021-04-15): AAPL of Discord:


Update (2021-04-16): Nick Heer:

Speaking of Twitter, that company expressly permits “graphic violence and consensually produced adult content” within users’ tweets “provided that [users] mark this media as sensitive”. Reddit permits NSFW text and media so long as it is marked. Discord has a similar policy of allowing NSFW media in channels so long as those channels are marked. What makes it different? Is Apple going to demand that Reddit and Twitter also prohibit accessing NSFW media from within those companies’ iOS apps?

Big Sur Has Changed How macOS Formats Time

Howard Oakley:

A number of those using my free utilities Ulbow, Mints and T2M2, and possibly others, have recently noticed a bug which prevents them from obtaining any log extracts. When you try to get a log extract or, in T2M2, to run a check on Time Machine, you are shown an error dialog reporting that

log command returned an error number 64


The reason for this occurring is that, contrary to the scant documentation which Apple provides, when the system clock is set to display time using a 12-hour clock rather than 24-hours, log show now formats all its timestamp fields (field 0, timestamp) using a 12-hour clock and AM/PM as appropriate.

I have no earthly idea what possessed Apple to make this change, nor why it hasn’t made this clear in its release notes. However, if you parse or analyse log entry timestamps, it breaks that completely.

Howard Oakley:

Formatting like yyyy-MM-dd HH:mm:ss isn’t defined by Apple, but conforms to Report TR35 from the Unicode Consortium, and is exhaustively defined here. That makes it clear that setting the hour using HH returns the hour in 24-hour format, ranging from 00 to 23.

Yet when a Mac is set to use 12-hour format, that rule is broken: the hour is returned in h format rather than HH, as unpadded digits between 0 and 11, or maybe even 1 and 12. Furthermore, the am/pm value is being added to the string.


Sure enough, adding the line dateFormatter.locale = Locale(identifier: "en_US_POSIX") to my code restores respect for my formatting.

Howard Oakley:

The advice given is vague and raises more questions:

“if you’re working with fixed-format dates, you should first set the locale of the date formatter to something appropriate for your fixed format. In most cases the best locale to choose is “en_US_POSIX”, a locale that’s specifically designed to yield US English results regardless of both user and system preferences.”

How do we tell if our specific case is one of those “most cases”? What other effects might that setting have? If someone has set their Mac to run in Danish, should we be using something other than a US English setting here? But above all, why on earth would Apple change “in unexpected ways” a fixed format to something unspecified of its own invention which flies in the face of Report TR35? Just why is it impossible to follow the prescribed format string?


PyCharm’s Transition to Apple Silicon

Nafiul Islam (via Hacker News):

With the deprecation of Java on the Mac, certain things such as font-rendering on retina screens became more difficult using the version of Java that Oracle released. In order to remedy this, JetBrains forked the OpenJDK project in order to facilitate better control over how the IDEs looked on Macs a well as other HiDPI screens; JetBrains Runtime was born and we bundled it with our IDEs from 2014.


The change to Apple Silicon meant that we’d need to re-write a lot of JetBrains Runtime, to make sure that we had adequate performance.


It soon turned out that we had to re-write a lot of the JIT system, a core component of the JVM itself, which was something we had little to no experience in.

Eventually, we did manage to solve this issue with the help of Azul Systems. To hear the whole story, listen to the podcast, where I talk to Konstantin Bulenkov, who had to weather the storm of this fundamental change.

The podcast episode is here.

Monday, April 12, 2021 [Tweets] [Favorites]

NHS COVID-19 App Rejected on Privacy Grounds

Leo Kelion (via MacRumors, Hacker News):

An update to England and Wales’s contact tracing app has been blocked for breaking the terms of an agreement made with Apple and Google.

The plan had been to ask users to upload logs of venue check-ins - carried out via poster barcode scans - if they tested positive for the virus. This could be used to warn others.


Under the terms that all health authorities signed up to in order to use Apple and Google’s privacy-centric contact-tracing tech, they had to agree not to collect any location data via the software.

Florian Mueller:

With UK shops, restaurants and pubs reopening today thanks to a relaxation of COVID prevention rules, it was actually a very smart idea for the NHS COVID-19 app to ask users to scan QR codes when entering such places, thereby enabling the system to inform people if they had been in a virus hotspot at a critical moment.

In the Western world, contact tracing has failed to make a noteworthy positive impact. In parts of Asia, however, those apps made a huge contribution because people were not even allowed to enter restaurants unless the contact-tracing apps on their smartphones greenlighted them (meaning they had not recently been near an infected person for a certain period). It made a whole lot of sense for the UK to adopt what worked in Asia.


About a year ago, Nature reported on contact tracing apps and mentioned that an earlier version of the NHS app was tested, “[b]ut because this app eschews Apple and Google’s protocol, it will not be able to run in the background on iPhones.” An expert called this “a nail in the coffin.” Obviously, contact tracing is of little use if you actually have to have the contact tracing app running in the foreground all the time.

How should Apple and Google weigh potential health benefits vs. privacy? And what about people who want to contribute their data but aren’t allowed to?


Logitech Harmony Remote Discontinued


While Harmony remotes are and continue to be available through various retailers, moving forward Logitech will no longer manufacture Harmony remotes.

We expect no impact to our customers by this announcement. We plan to support our Harmony community and new Harmony customers, which includes access to our software and apps to set up and manage your remotes. We also plan to continue to update the platform and add devices to our Harmony database. Customer and warranty support will continue to be offered.

Jason Snell:

This is real shame. I love my Logitech Harmony remote, and have bought them for my family in the past as well. This isn’t to say that the Harmony was awesome, just that it was better than any other option I’d tried.

But this demise has probably been a long time coming: a lot of people have fewer devices hooked up to their TVs now, many bundled remotes can control multiples devices, and technologies like HDMI-CEC have helped eliminate some needs for universal remotes.

Nick Heer:

For one, there are many other companies that maintain databases of IR remote control codes, not just Logitech, so those codes are not disappearing off the face of the planet just because Harmony is going away. Some of those databases are also open to the public, like this one on GitHub. There are also some other universal options that, like those from Logitech, have those codes in a database and do not require individual programming — Logitech’s Harmony line seems to be the default pick among buyers’ guides, but Joanna Stern’s choice was the Ray Super Remote and TechHive likes a Caavo model. Most importantly, the universal control problem is slowly fading as HDMI CEC becomes more widely used and different remotes can be used with different equipment.


Microsoft Acquires Nuance

Microsoft (via Hacker News):

Microsoft will acquire Nuance for $56.00 per share, implying a 23% premium to the closing price of Nuance on Friday, April 9, in an all-cash transaction valued at $19.7 billion, inclusive of Nuance’s net debt. Nuance is a trusted cloud and AI software leader representing decades of accumulated healthcare and enterprise AI experience. Mark Benjamin will remain CEO of Nuance, reporting to Scott Guthrie, executive vice president of Cloud & AI at Microsoft.

Microsoft has accelerated its efforts to provide industry-specific cloud offerings to support customers and partners as they respond to disruption and new opportunities. These efforts include the Microsoft Cloud for Healthcare, introduced in 2020, which aims to address the comprehensive needs of the rapidly transforming and growing healthcare industry.


Talon Beta


Talon aims to bring programming, realtime video gaming, command line, and full desktop computer proficiency to people who have limited or no use of their hands, and vastly improve productivity and wow-factor of anyone who can use a computer.

Voice Control: talk to your computer
Noise Control: click with a back-beat
Eye Tracking: mouse where you look
Python Scripts: customize everything

Via Nicholas Riley:

Talon now has great accuracy to go with its speed, robustness and cross-platform support (Mac/Win/Linux). It is also quietly a great Mac automation tool, including keyboard triggers, a version of appscript and accessibility hooks (example).

High Performance Numeric Programming With Swift

Jeremy Howard (via Frank Illenberger):

I’ve managed to create a couple of libraries that can achieve the same speed as carefully optimized vectorized C code, whilst being concise and easy to use. […] I will include examples mainly from my BaseMath library, which provides generic math functions for Float and Double, and optimized versions for various collections of them.


One of the really cool things about Swift is that wrappers like the above have no run-time overhead. As you see, I’ve marked them with the inlinable attribute, which tells LLVM that it’s OK to replace calls to this function with the actual function body. This kind of zero-overhead abstraction is one of the most important features of C++; it’s really amazing to see it in such a concise and expressive language as Swift.


Normally, because Swift has to handle the complexities of COW, it can’t fully optimize a loop like this. But by using a pointer instead, we skip those checks, and Swift can run the code at full speed. Note that due to copy-on-write it’s possible for the array to move if you assign to it, and it can also move if you do things such as resize it; therefore, you should only grab the pointer at the time you need it.


I think this is quite remarkable; we’ve been able to create a simple API which is just as fast as the pointer code, but to the class user that complexity is entirely hidden away.


I also find Swift’s performance is harder to reason about and optimize than C.


Update (2021-04-15): Tanner Bennett:

TIL @inlineable is no longer a private attribute

Friday, April 9, 2021 [Tweets] [Favorites]

Wix and Their Dirty Tricks

Matt Mullenweg:

Wix, the website builder company you may remember from stealing WordPress code and lying about it, has now decided the best way to gain relevance is attacking the open source WordPress community in a bizarre set of ads. They can’t even come up with original concepts for attack ads, and have tried to rip-off of Apple’s Mac vs PC ads, but tastelessly personify the WordPress community as an absent, drunken father in a therapy session. 🤔


They are so insecure that they are also the only website creator I’m aware of that doesn’t allow you to export your content, so they’re like a roach motel where you can check in but never check out.

Via Nick Heer:

Much like those recent Intel ads that also parody the Mac vs. PC campaign, Wix’s ads do not make much sense if you give them even a little extra thought. Take the one where a low-budget Bryan Cranston, playing the part of WordPress, collapses to the floor under the weight of forgotten maintenance and implores the site owner to switch to Wix. Sounds promising, except it is comparing a self-hosted software package to a managed platform, so it is not honest. Maintenance is not inherent to WordPress and, if you would prefer not to deal with it, there are managed options available through Automattic and many third-party providers.


I am not sure what these mean-spirited ads are supposed to achieve, but they do not make me want to recommend Wix to anyone. Quite the opposite. Other platforms are for nice people.

Roger Montti:

The campaign seemed to actually backfire by causing many to express negative reactions toward Wix.


Update (2021-04-14): Avishai Abrahami (via Hacker News):

Dear Matt,

I just finished reading your post, and I see that there is a lot of anger and many half-truths that you said. Wow. I guess that we touched a sore point there.

Why are you so angry? Don’t you agree with the shortcomings of WordPress that we raised? We really tried to be fair and only speak about what we know to be a consensus.

It’s kind of amazing that this is real. Tone aside, he’s not helping his case by misrepresenting various issues, including the GPL one:

This isn’t the first time WordPress and Wix have been at odds. In 2016, Matt Mullenweg called out Wix for copying GPL code from the WordPress mobile app and distributing it in its proprietary app. This rendered the entire app in violation of the GPL. Instead of complying with the GPL, Wix responded by removing the GPL-licensed code and forking the original MIT-licensed library that the WordPress mobile app code was built upon. The fork was relicensed under an absurd modification of the MIT that prohibits the code’s redistribution under any copyleft license.

And then he says that it’s not true that Wix doesn’t export because in fact it doesn’t block third-party importers from scraping.

Keyboard Shortcuts and non-US Layouts

Thomas Kainrad (via Hacker News):

During the past 15 months, I have been thinking a lot about keyboard shortcuts and about how different applications handle them. I shouldn’t complain; I knew what I was getting into when I started to build KeyCombiner, an app for learning and looking up shortcuts and text snippets. Still, I didn’t quite know how much of a mess keyboard shortcut handling on the web is.

Do you use an international keyboard layout? Then you already know what I am talking about. You probably have had some issues typing keyboard shortcuts such as alt+/, or cmd+[. This post will help you to understand why this annoyance exists. However, the people who should most urgently read this post are web developers. Are you a web developer? Great! I will explain how you are currently letting down non-US users and how you can get us out of this mess.

There are also issues for Mac apps. A shortcut that makes sense in one language or is ergnomic with one layout may not be with others.


But most importantly, I miss Android keyboard. Yes, I know, that I can install other keyboards, but on the one hand they not as good as on android, on the other hand, if anywhere, on iOS, I’d expect the system keyboard to work properly). I am a Hungarian student in France, I type on three languages on a daily basis. My main problems are[…]

Why There’s No iMessage for Android

Tim Hardwick:

It’s no secret that Apple sees iMessage as a big enough selling point to keep the service exclusive to Apple devices, however new court filings submitted by Epic Games in its ongoing lawsuit with the company reveal just how Apple executives have rationalized their decision not to develop a version of iMessage for Android.

Ben Lovejoy:

It seems Epic did manage to track down Scott Forstall’s phone number and depose him, as the former iOS senior vice president is cited as the source of one piece of evidence presented.

In an agenda for a 2010 executive team meeting, Apple founder and late CEO Steve Jobs wrote that he wanted to “tie all of our products together, so [Apple] further lock[s] customers into [its] ecosystem” [Forstall]

Eddy Cue also talked about what Apple does “to get people hooked to the ecosystem,” and Epic also presents evidence that this is why Apple never offered iMessage on Android.

Craig Federighi, Apple’s Senior Vice President of Software Engineering and the executive in charge of iOS, feared that “iMessage on Android would simply serve to remove [an] obstacle to iPhone families giving their kids Android phones” […]

Schiller commented that “moving iMessage to Android will hurt us more than help us.”

Nick Heer:

For some reason, this is being seen as a shocking admission.

John Gruber:

Apple first, users second, developers last — those are Apple’s priorities.

There are certainly reasons to believe that the exclusivity is good for Apple’s business, though it’s possible that if iMessage were cross-platform it would have become more dominant and that would have eventually accrued benefits to Apple.

But it’s a trade-off because this is definitely worse for Apple’s customers. The user experience and and photo/video quality are worse when exchanging text messages with Android-using friends and family. And they aren’t end-to-end encrypted. Selling more iPhones is more important than the privacy of those who already have iPhones.


Update (2021-04-14): Dieter Bohn:

I’m less surprised by the fact that Apple executives are just openly worried that people would switch to Android if it has iMessage than I am at how much of these conversations are happening over email.

Anyway iMessage for Android is one of those forever pipe dreams but I guess the case could be make that iMessage could be a gateway service in the way the iPod was a gateway device?

Yeah a stretch. Here’s the only argument that’s ever made sense to me.

Dieter Bohn:

Every time I hear Tim Cook talk about privacy as a human right, I think about the biggest thing his company could do to help ensure that privacy: spread the ability for people to have conversations that are safe from government snooping across the world. And the largest, most impactful way Apple could do that is to release iMessage on Android.

Apple and Epic’s Proposed Findings of Fact

John Voorhees (also: Court Listener):

Just past midnight Pacific time today, Apple filed Proposed Findings of Fact and Conclusions of Law in its legal dispute with Epic Games. The document, a standard pre-trial filing, is designed to serve as a road map for the trial judge, explaining the facts Apple expects will be admitted into evidence at trial, how the law applies to those facts, and the decision Apple believes the court should reach. In other words, it’s a one-sided account of the disputes meant to persuade the judge that Apple’s legal positions are correct. Epic has filed a similar pleading in the case arguing its side of the story.

Juli Clover:

Tim Sweeney, the CEO of Epic Games, has confirmed Project Liberty in prior interviews and has said that Epic spent months preparing the lawsuit against Apple, though Apple’s court filings provide new insight into the lengths that Epic went to in order to rope Apple and Google into an antitrust lawsuit.

Apple argues that an expansion of antitrust law is unwarranted and that Epic’s product market descriptions are inaccurate because of the other platforms the App Store is competing with. Apple claims that Epic overstates the App Store’s profitability, and that arguments that the review process is ineffective are inaccurate.

Samuel Axon:

The major distinction at play in Epic’s own argument is that iOS is an entire market unto itself and not just one of many competing products in a larger marketplace of video game transactions. If the judge agrees with this classification, Apple may be more likely to be seen as monopolistic.

Another key part of Epic’s argument involves comparing and contrasting iOS with macOS. Apple claims that its strict rules about what apps can and can’t do on the iOS App Store are driven at least in part by concerns about security and privacy for users. Epic points out, however, that Apple claims macOS is secure and private without placing all the same restrictions on the Mac operating system.


Epic asserts that Apple’s controversial App Review process “does little to keep iOS devices secure,” and it alleges that Apple has on multiple occasions screened apps “primarily for non-security issues—including specifically for anti competitive purposes.”

Apple (PDF):

Apple has never increased its baseline 30% commission. Schiller TT. To the contrary, it has lowered the commission in multiple instances, including subscription services and as part of its small business program.

As I’ve noted, the effective commission has actually increased. The recently announced small business program of course has nothing to do with this case.

When those free downloads are considered—as they should be—the effective commission rate for initial game app downloads in 2008 was about 3%


Both categories of evidence—market structure and market outcomes—are inconsistent with Apple possessing monopoly power or charging supracompetitive prices.


Developers need not even leave the App Store to constrain Apple’s ability to raise prices. Hitt TT. If Apple sought to raise its commission, for example, developers could monetize through content or digital currencies sold to consumers through another transaction platform or directly through a web browser (including a web browser on an iOS device).


IAP obviates the need for (and expense of) tracking, audit, and collection of Apple’s commissions on any in-app purchases of digital content. Schmalensee TT. Indeed, without such automatic processes, a developer using an external payment mechanism could seek to evade a commission owed to Apple, and Apple would have no technological ability to collect any commissions on the sale. Schmalensee TT. This would lead to laborious reconciliation efforts and dispute resolution—turning an automated, near-instantaneous process accomplished through IAP into a fraught and drawn-out one.

It’s weird how Apple is simultaneously arguing that developers have other options for payments and that no other options can be allowed because that would make it harder to count up the 30% that’s owed to Apple.

Florian Mueller:

By mislabeling distributor and retailer margins as “commissions,” Apple seeks to distract from structural differences between shrinkwrapped software distribution and today’s app stores.

Epic (PDF):

In the months that followed, Apple executives and software engineers debated the proper distribution method for third-party applications and specifically whether “Apple signed applications” would be posted exclusively to an “online store”, or whether third parties would be permitted to “distribute on their own”. […] Apple’s security experts remained out of this debate, noting that the question of exclusive distribution is one of “policy”, as opposed to security.


During the time between the launch of the App Store in 2008 and the introduction of IAP in 2009, in-app payment processing and app distribution were entirely separate and iOS developers were monetizing their apps with in-app payment solutions that were self-provided.


Web apps have limited functionality compared to native apps. Native apps are “faster”, “use less memory” and “can take advantage of native graphics libraries in a way that is either not available or would have to be shoehorned in a web app or a different kind of application”. (Forstall Dep. […])


Apple publicly touts the security of macOS, promising Mac users that they can enjoy “Security. Built right in.” and can “[d]ownload apps safelty from the Mac App Store. And the internet.”


Apple prepared a number of internal white papers [that] explicitly contemplate the possibility of distribution outside the App Store, and assume that “the technical infrastructure [they were] building w[ould] allow for other distribution mechanisms” beyond the App Store. […] This security layer is independent of the app distribution channel.


In 2013, another app from the same developer was “remov[ed]” “immediately” because Mr. Schiller and Mr. Cue were “adamant” about its removal, despite Mr. Shoemaker’s “protest[s]” that there was no clear justification for doing so under the app review guidelines.


The FEAR team further believed that […] the process amounts to “a wetware [i.e., a human-led] rate limiting service and nothing more”, and that Apple had not invested sufficient resources to detect and prevent abuse.

Florian Mueller:

Epic: “In June 2018, Apple sought to force Uber and Lyft to adopt IAP for their newly-introduced subscription services.” The remainder of that paragraph is redacted. Was it previously known that Apple tried to require Uber and Lyft to use Apple’s payment system for subscriptions?

Patrick McGee:

Eric Friedman, head of Apple’s FEAR unit — Fraud Engineering Algorithms and Risk — said in a recent deposition that his team believed the App Review team was inadequate to the risks posed by malicious actors, saying they were “bringing a plastic butter knife to a gun fight.”


However in late 2017 Apple’s FEAR team still called the App Review process inadequate. Friedman said it “was more like the pretty lady who greets you with a lei at the Hawaiian airport than the drug sniffing dog.”

FEAR likened App Review to TSA employees, “under pressure to move people through” and “not able to deflect sophisticated attackers”.

Jeff Johnson:

There shouldn’t be anything particularly surprising to knowledgeable App Store developers. But this is public confirmation that the worst case scenarios, our most “cynical” speculations, are actually true.

Nick Lockwood:

I can’t believe how long Apple has had to address these problems and how little they’ve done.

David Heinemeier Hansson (tweet):

Apple’s App Store was never designed to work. At least not in the way the company purports that it does. Apple presents the App Store as a highly curated, secure mall of apps which have been thoroughly vetted, and that you can safely install without any due diligence. But it’s not and you shouldn’t.

As part of Epic’s lawsuit against Apple, we’ve come to learn that app reviewers typically review 50-100 apps per day. Some times spending less than a minute reviewing an individual app. We’ve also learned that these reviewers are hired without any technical background, let alone any particular expertise with the iOS or macOS platforms.

There’s a term for a practice like this: security theater.

Tony Fadell:

Customers convinced us but so did the fact that Google LOVED that we started with a web apps strategy. Eric Schmidt was a huge supporter & it’s easy to understand why. When SJ saw he could lose control of the iPhone platform, there was a whole hearted shift away from web apps!


Update (2021-04-14): Ben Lovejoy:

Internal documents released as part of the Epic Games lawsuit reveal an Apple anti-fraud engineer suggesting that App Store checks were grossly inadequate.

Kosta Eleftheriou:

Apple: “The @AppStore is a place you can trust.”

Also Apple: “Our lawyers told us to remove the ‘Report a Problem’ button to avoid paper trails & liability.”

Remember this?

Kosta Eleftheriou:

You think the @AppStore is “a place you can trust”?

🚨Think again!🚨

How to spot a $5M/year scam, in 5 minutes flat:👇

David Heinemeier Hansson:

Here’s another example. Total scam copy app of the Roku Remote app (the official one is FREE!) that charges people $4.99 PER WEEK?? Stacked with fake reviews. Write-up on Forbes platform. Still chugging along.

Kosta Eleftheriou:

Someone just sent me an app that’s a silly little game, but if I set my VPN to Turkey it becomes an online casino that doesn’t even use Apple’s IAP.

Kosta Eleftheriou (via Hacker News):

Nobody is happy with this app. Most are accusing it of being a scam. Some of the ratings are probably fake too, “boosting” it to 2.4 stars.

Why does any of this matter?

The app is currently the #441 top grossing app across the entire App Store 🤯

Wednesday, April 7, 2021 [Tweets] [Favorites]

New Outlook’s Dangerous “Discard” Shortcut

Nick Heer:

Microsoft has two different versions of Outlook in the Outlook for Mac app. One of the keyboard shortcuts changed in New Outlook compared to the “classic” Outlook app is Command–Shift–D. In Apple’s Mail app, this is the shortcut for sending a message. In New Outlook, it discards the message you have just finished writing — without warning or confirmation — where it disappears into the aether.


Update (2021-04-15): Albert Andersen:

The good news is that ‘discard’ is not data loss. That draft is sitting in your ‘deleted items’ folder, ready to send. This is probably how it slipped through the cracks: it’s not really gone, so doesn’t meet the normal ‘must prompt’ criteria.

Nick Heer:

When I look in my Deleted Items folder, I see the drafts from when I tested this last night and just now, but none of the discarded drafts preserved the message text, and the subject line was only preserved in one.

Albert Andersen:

Looks like what ends up in the trash will be what was in the last auto save (~30 seconds) of the draft - it doesn’t do an additional save before discarding. So… light data loss.

Albert Andersen:

We’ve changed ‘discard’ to cmd-escape (also closer to other outlooks which use plain esc) in beta ~Thursday and production next month.

Prompting is still on the table too, but first we want to take a stab at making the workflow intelligibly undoable, see if we can make it work without another blocking alert.

Resources for Learning SwiftUI

Jesse Squires:

A few months ago, I shared my notes and resources for learning about compilers and LLVM. It turned out to be pretty popular and folks seemed to find it useful. So I decided to do it again, but this time for SwiftUI.


Despite not yet using SwiftUI, I do want to. And I know that eventually, I will need to. That is why I have been reading blog posts and keeping notes. All of these notes live in my public TIL repo.


The Former Netflix DVD Library Is a Lost Treasure

Jim Vorel:

It’s a strange feeling, to look back to a time merely 10 years ago and think “that was a golden era, wasn’t it?” It feels like it should take longer than a decade for that kind of clarity to develop, but the more time I spend looking at the streaming service landscape as a Paste staff writer, the more I find myself returning to the same conclusion: Netflix, as a service, could once say it offered a film library that was unmatched by any other archive of films in the world. Just a decade ago, the physical media library possessed by Netflix was well beyond 100,000 titles strong, offering a staggering degree of diversity that essentially made it the equivalent of the best-stocked video store in the world. At its peak, in fact, the number of DVD titles possessed by Netflix would have dwarfed the entire streaming libraries of all the major streamers today … combined.


The shrinking of the physical Netflix DVD library has been a simple enough process to observe for customers who are paying attention to their queue of upcoming deliveries. As the years have gone by, I’ve watched my own queue be decimated by this process, with titles first moving from “queue” to “saved” (essentially a request that Netflix obtain a DVD they no longer have), to then disappearing from the service entirely. Many films I borrowed from Netflix in the last decade no longer show up at all when searched at, and they’re exactly the sort of movies you would expect to see disappearing—cult films, foreign films, obscure titles, B-movies, etc.

Via Nick Heer:

The curious thing is that these services are both balkanized — in that they have vast amounts of stuff licensed exclusively to one service — and conglomerated — there are only a handful of parent companies that own all of Hollywood’s major studios. So instead of the music streaming model, where most people just pay for one service and then listen to a massive catalogue of music ranging from mainstream hits to independent artists, the movie industry thinks we’re all going to pay for each of their siloed services[…]


History of Flow vs. Asana

Andrew Wilkinson:

This is a story about how I lost $10,000,000 by doing something stupid.


It turned out that Dustin Moskovitz (@moskov), the billionaire co-founder of Facebook, was a fellow to-do list junkie, and he was quietly working on his own product.


It was ugly! It was designed by engineers. Complicated and hard to use.

Not a threat in the slightest.


Suddenly, Asana ads were everywhere.


In order to stay competitive, we had underinvested in our engineering team due to cash constraints and stretched them across mobile, desktop, and web.


We lost the war, due to inexperience, product myopia, and a lack of capital in a highly capital intensive and competitive space.

David Heinemeier Hansson:

Flow spread itself thin thinking “the market” had set certain non-negotiable bars, so unless they had, say, an Android app RIGHT NOW, they’d be toast. This led to a me-too, low-quality product full of bugs. Instead of focusing on a smaller, more opinionated, more differentiated product.


Wilkinson’s tale of regret is steeped in war metaphors. Bringing bigger, badder weapons to this imaginary war with Asana. Locked into a Cold War one-upping game. Of course you’re going to lose if you define your company and your product on the competition’s terms, try to copy whatever they’re doing, but don’t have half the money to do so.


If you run your company like it was VC funded without the venture capital, yeah, you’re going to wish you had just taken other people’s money.

Update (2021-04-16): Dustin Moskovitz (via Steve Landey):

My version of this story is that Flow and Asana were both small fish in a big pond at the time and we were trying to convince Andrew he should team up with us against much more established competitors. Our budget and team in the years he’s talking about was tiny.

I don’t invite other founders to coffee just to do Bond-villain type gloating.

Tuesday, April 6, 2021 [Tweets] [Favorites]

Swift “Collections” Package

Karoy Lorentey (tweet):

I’m thrilled to announce Swift Collections, a new open-source package focused on extending the set of available Swift data structures. Like the Swift Algorithms and Swift Numerics packages before it, we’re releasing Swift Collections to help incubate new functionality for the Swift Standard Library.


The main benefit of Deque over Array is that it supports efficient insertions and removals at both ends.


OrderedSet is a powerful hybrid of an Array and a Set.


OrderedDictionary is a useful alternative to Dictionary when the order of elements is important or we need to be able to efficiently access elements at various positions within the collection.


Use Emergency Bypass to Circumvent Do Not Disturb

Josh Centers and Adam Engst:

What’s the difference between Allow Calls From and Emergency Bypass? In essence, you can use Emergency Bypass to allow both calls and text messages. However, it’s not as straightforward as Allow Calls From. There’s no mention of Emergency Bypass in the Do Not Disturb settings, you have to find and enable it for individual contacts, and you shouldn’t confuse it with the unrelated Emergency Contacts used for Medical ID notifications.


There is one potentially unexpected caveat. If your Mac is awake and running Messages, it will likely capture text messages before they’re sent to your iPhone. In most situations, that’s sensible—you don’t want text message notifications to make sounds on every Apple device you own if you’re actively using your Mac. Obviously, if you’re away from your Mac, it should be sleeping, but if that’s not true for some reason, it could prevent messages from arriving on your iPhone regardless of Emergency Bypass.


The only thing to keep in mind is that Emergency Bypass will cause your iPhone to make sounds even if Do Not Disturb is on and the ring/silent switch is enabled. That’s the point, of course, but there are situations where silence is essential—a recital, a play, a meditation class. In other words, if Emergency Bypass overrides Do Not Disturb, how can you override Emergency Bypass every so often? Editing individual contact cards is clearly too much work. We found two levels of workaround[…]

This seems so complicated. But, then, it’s also not so simple to describe how you want it to behave.

Switching Back to Mac

Carlos Fenollosa (via Hacker News):

Due to very bad decisions by Apple’s product marketing teams, Mac hardware and software had been in steady decline since 2016.

Therefore, there has been a trickle of articles on the Geekosphere about people switching from Macs to Linux or Windows.

This is the contrarian view. Don’t do it.

The TL;DR is right there in the title: migrating to Linux is fine, but don’t expect a better experience than the Mac.

He really liked the Nautilus file manager, though.


Monday, April 5, 2021 [Tweets] [Favorites]

Copying the Java API Was Fair Use

James Romoser (tweet, Hacker News):

The Supreme Court on Monday sided with Google over Oracle in a major copyright battle, ruling that Google’s copying of a portion of the Java SE computer program is protected as “fair use.”

The ruling in Google v. Oracle was 6-2, with Justice Stephen Breyer delivering the opinion of the court.


In siding with Google, Breyer wrote that, assuming for the sake of argument that the lines of code can be copyrighted, Google’s copying is nonetheless fair use.

Mike Masnick:

The background of this case is actually kind of important to understanding what just happened, so here’s a quick(ish) recap.


One of the big debates in the lead up to the case, and at oral arguments, was what “analogy” best represented what an API was. You can see above Breyer mention the Dewey Decimal System, which is a pretty good analogy.


Breyer then notes that even though Google asked the Court to say APIs are not covered by copyright, since they can answer the fair use question and dispose of the issue, the court will just assume that APIs are subject to copyright for the sake of exploring fair use, and leave the actual question of copyright and APIs to another day (groan).

Charles Duan:

SCOTUS doesn’t just rule in favor of Google in @googlevoracle, but says that API reimplementation is fair use as a matter of law, meaning that the decision applies to all APIs


Anyway, this is great news for software folks. The concern was that SCOTUS could just let the jury decision stand, solving Google’s case but leaving an open question for all future software developers.

Florian Mueller:

Given that the justices were pretty much unanimously leaning toward copyrightability in October, it would be quite risky for anyone to consider API declaring code uncopyrightable. However, technically the Federal Circuit’s copyrightability decision hasn’t been affirmed either.


There’s plenty of people out there now who are celebrating today’s Supreme Court decision as promoting innovation, competition, and openness. In reality, the net effect will be the opposite. When Sun created Java, they allowed everyone to make and publish apps for it. Sun adopted a dual-licensing model under which you could either get Java under the GPL free software license or take a commercial license. Sun is history--it was acquired by Oracle. The next company contemplating the development of a comparable platform will look at what happened in Oracle v. Google. Against that background, it may either be discouraged from making the investment in the first place--or it may be encouraged to pursue an Apple-like platform business model (“walled garden”) and create network effects through a non-open system with cloud components, an exclusive app store, and so forth. In other words, if you can’t own software, you’ll try to own (access to) users.


The ruling managed to find its way to a reasonable outcome, but if these are the tools used to chisel fundamental conditions for developers, companies and people the world over, we are all in bad shape for the future.

John McCall:

Yes, I think this decision does strongly imply that the GNU position that linking a library can be controlled by copyright is incorrect


Facebook Breach

Tim Hardwick (Hacker News):

The personal details of more than 553 million Facebook users have been published on a website for hackers, according to multiple reports over the weekend.


In a statement, Facebook said the data was from a breach of its servers that had occurred in 2019 and it had since plugged the security hole that allowed it to take place.

While the information appears to be old, the details in the shared database include phone numbers, Facebook IDs, names, locations, birthdates and email addresses, all of which could be used in social engineering attacks or hacking attempts.

None of those is easy for users to change.

David Sparks:

If you have a Facebook account, now is the time to be on alert for scammy phone calls from people who will try and social engineer their way into your credit card numbers and bank accounts. There is already a scam where they call and claim to be the IRS and need “immediate payment to avoid criminal prosecution”. I’m sure they’ll come up with even more dreadful ways to abuse this treasure trove of data.


Update (2021-04-15): Elizabeth Culliford (via Hacker News):

Facebook Inc did not notify the more than 530 million users whose details were obtained through the misuse of a feature before 2019 and recently made public in a database, and does not currently have plans to do so, a company spokesman said on Wednesday.

Lily Hay Newman (via Hacker News):

De Ceukelaire and other researchers had already alerted Facebook to similar issues. In 2012, Facebook made changes that resulted in the site's “Download Your Information” tool leaking phone numbers and email addresses that users had not supplied themselves through the contact import feature. A researcher disclosed the issue to Facebook in 2013; in 2018, the Office of the Privacy Commissioner of Canada and the Office of the Data Protection Commissioner of Ireland investigated the finding.


That incident differs from the more recent Facebook controversy, in which attackers were able to "scrape” Facebook by enumerating batches of possible phone numbers from more than 100 countries, submitting them to the contact import tool, and manipulating it to return the names, Facebook IDs, and other data users had posted on their profiles. Still, the lapse spoke to the potential for the contact import tool to access sensitive data and the need to look carefully for bugs and inadvertent behavior in the feature.

Yahoo Answers Shutting Down

Nick Statt:

Yahoo Answers, one of the longest-running and most storied web Q&A platforms in the history of the internet, is shutting down on May 4th. That’s the day the Yahoo Answers website will start redirecting to the Yahoo homepage, and all of the platform’s archives will apparently cease to exist. The platform has been operating since 2005.

Yahoo, which is now part of Verizon Media Group following the company’s sale to the telecom for nearly $5 billion in 2017, announced the change at the top of the Yahoo Answers homepage. The message links to an FAQ, which details the timeline of the shutdown.


Tim Cook on Sideloading

Sami Fathi (tweet):

In a wide-ranging interview with The New York Times’ Kara Swisher, on her podcast “Sway,” Apple CEO Tim Cook talks about Apple’s feud with Facebook, its stance on privacy, Apple’s legal battle with Epic Games, and possible future Apple innovations such as Apple Glasses.


One of Epic Games’ biggest arguments about the Apple ecosystem is the lack of so-called “freedom” for users to download apps from places other than the App Store. Many have long voiced their hope that Apple would allow users to sideload apps onto their device, such as the iPhone. Cook says that sideloading apps, however, would “break the privacy and security” model of the iPhone.


Update (2021-04-14): Joe Rossignol:

Notably, Cook said that Epic Games’ desire for Apple to let developers offer their own payment systems in apps “would make the App Store a flea market”:

At the heart of the Epic complaint is they’d like developers to each put in their own payment information. But that would make the App Store a flea market and you know the confidence level you have at the flea market.

The volume of people going into such a market would be dramatically lower, which would be bad for the user, because they would miss out on the innovation like we just heard with the four developers. And the developers would be left out because they wouldn’t have a huge audience to sell to. So nobody wins in that environment.

This is some preztel logic. Of course, there are already lots of apps where customers enter payment information—just not apps selling certain kinds of digital services where Apple prohibits that.

Apple’s dictionary defines a flea market as “a market, typically outdoors, selling secondhand goods,” and the term comes from the idea that the resold items may be infested with fleas. Does an app become secondhand when you buy it directly from the developer rather than through Apple? Does Tim Cook think Apple is making sure there are no bugs?

Kosta Eleftheriou:

Apple has turned the magic of software development from “How cool would this be?” to “How cool would Apple be with this?”

That’s an environment of software suppression, not innovation.

Florian Mueller:

Sooner than I’d have thought, here’s my first follow-up to the publication of the summaries of Apple’s expert witness reports in the Epic Games v. Apple App Store antitrust case.

When I read those summaries for the first time, I tweeted about some of the statements I found in them. This is my tweet about the claim that Apple couldn’t support alternative app stores without not only software but even hardware changes.

Apple Music macOS Review

Your Product Sucks:

Apple Music app on macOS Catalina is “not so great”

This one can’t be blamed on Catalyst.

Via John Gruber:

Music on Mac is just an utter embarrassment for Apple. Truly an ignominious fate for iTunes, which started 20 years ago as an exemplar of a great Mac app.


Update (2021-04-15): Cabel Sasser:

That is definitely not the UI experience I expected when clicking “more” in Music

Friday, April 2, 2021 [Tweets] [Favorites]

Snapchat’s App Tracking Transparency Workaround

Juli Clover:

Apple has begun rejecting app updates that do not comply with the App Tracking Transparency rules that the company is enforcing starting with iOS 14.5, according to a new report from Forbes.

Apps must ask for permission to access the advertising identifier or IDFA of a user’s iPhone in order to track them across apps for ad targeting purposes, a rule that apps will need to comply with when iOS 14.5 launches. The rule also prevents apps from using other workaround methods for tracking users, which is getting some developers into trouble already.

Ben Lovejoy:

Snapchat owner Snap has tested a workaround to App Tracking Transparency using a technique that has a success rate of around 95% in identifying individual users.

Snap says that it will discontinue the tests once the new privacy rule comes into effect, but that it believes there are other steps it can take without breaking Apple’s rules…


Snap admitted to the FT that it has been running the tests, but said it would cease doing so when the App Tracking Transparency rules take effect in the next few weeks.


Update (2021-04-16): John Gruber:

The whack-a-mole aspect of Apple’s new privacy rules is that while Apple can restrict access to the API that provides access to the IDFA identifier, clever developers can find (perhaps infinite) other ways to combine things they do have access to into a unique, or even just “close enough to unique to be useful for tracking”, identifier. IP addresses, to name just one example, are a big factor that Apple can’t block would-be-trackers from using. That’s what CAID is, but CAID isn’t some rogue effort on the part of surveillance advertisers alone — it has the backing of the Chinese government.

Doing this is clearly against Apple’s rules. The questions are: Can Apple detect these techniques? And what is Apple going to do if they do identify apps in China using CAID in flagrant violation of the App Store rules, if those apps have the backing (implicit or explicit) of the Chinese government?

Apple Arcade Adds Classic Games

Sami Fathi:

Apple today announced that its mobile gaming subscription service, Apple Arcade, is gaining 30 classic games including “Fruit Ninja,” “Monument Valley,” “Solitaire,” and “Cut the Rope” as the service passes a total of 180 titles.


The Mac Needs Shortcuts

Jason Snell:

The problem is that today, everything about user automation on Apple’s platforms is fractured. On the Mac, the technologies feel old-fashioned, adrift, and increasingly unsupported. On iOS, Shortcuts has some weaknesses and an every-app-for-itself mindset prevails. And between the two platforms there’s no connectivity at all.


As much as I like the impetus behind Automator—automation for the masses!—it died on the vine. Apps didn’t support it well, and Apple failed to provide a robust enough library of actions to make it work well on its own. If I ever thought Automator was okay, one glance at Shortcuts (or its predecessor, Workflow) would disabuse me of the notion. Still, I end up using Automator regularly because it allows me to integrate AppleScript and unix/shell scripting directly into the Finder.


It’s clear to me now: Apple needs to make Shortcuts available everywhere.


That’s a lot to ask, but since I’m on a roll, I’ll once again suggest that Apple needs to more explicitly support scripting languages on both platforms.


“Foil” UserDefaults Property Wrapper

Jesse Squires (tweet):

UserDefaults is one of the most misused APIs on Apple platforms. Specifically, most developers do not handle default values correctly. In fact, I have never worked on a single production codebase at a company where this was done accurately. Most libraries get it wrong, too.


There are a few libraries that currently provide a property wrapper for UserDefaults. However, the ones that I know about each have a combination of the following issues: (1) default values are not registered, (2) optionals are not handled nicely, (3) the library is extremely complicated for such a simple task.

I like his approach. Mine differs in that:


YouTube Testing Removal of Dislike Count

YouTube (via Hacker News):

In response to creator feedback around well-being and targeted dislike campaigns, we’re testing a few new designs that don’t show the public dislike count.

This seems like a bad idea, as dislikes were a good, quick indicator that a video might be misleading or at least controversial.


Aho and Ullman Win Turing Award

ACM (via Hacker News, Cade Metz):

ACM named Alfred Vaino Aho and Jeffrey David Ullman recipients of the 2020 ACM A.M. Turing Award for fundamental algorithms and theory underlying programming language implementation and for synthesizing these results and those of others in their highly influential books, which educated generations of computer scientists.


“Aho and Ullman established bedrock ideas about algorithms, formal languages, compilers and databases, which were instrumental in the development of today’s programming and software landscape,” added Jeff Dean, Google Senior Fellow and SVP, Google AI. “They have also illustrated how these various disciplines are closely interconnected. Aho and Ullman introduced key technical concepts, including specific algorithms, that have been essential. In terms of computer science education, their textbooks have been the gold standard for training students, researchers, and practitioners.”

I have fond memories of Compilers: Principles, Techniques, and Tools, which everyone called the Dragon Book.


Long Term iPhone 12 Camera Review

Sebastiaan de With:

The only time that I found the smart image processing on the iPhone noticeably bothersome is when skies get overly tinted blue. It’s clear that the iPhone can now easily detect and segment the sky in a shot, and it applies nice smooth noise reduction to it to get wonderful gradients. But even cloudy skies tend to get a blue cast that isn’t as neutral as you’d like.


Initially, I hadn’t tested Portrait + Night mode very much. In the few tests I did, though — comparing it to a regular camera and the iPhone 12 mini, which is unequipped with a LIDAR sensor, it works outrageously well[…]


Flaring on the ultra wide and wide cameras is not just noticeable, but outright bothersome when shooting into light. In the above image, you can see the telltale iPhone ‘green orb’ flare that is a result from internal reflections in the lens. This can be fairly unobstrusive as in that shot, but when shooting many bright point sources of light head-on, can outright ruin a shot.


Noise reduction is something I never really enjoyed on iPhones, and I find it really bothersome that ProRAW does not give granular control over how much is applied to a final image. When shooting in dark conditions with the iPhone’s less light-sensitive cameras, you can get muddled images that would’ve looked nicer with some grain. It’s almost like a watercolor painting[…]