Tuesday, January 26, 2021 [Tweets] [Favorites]

Tweetbot 6 for iOS

John Voorhees (Tapbots):

Tapbots, the maker of Tweetbot, has released version 6 of the app, introducing a new subscription pricing model along with a handful of timeline and design updates.

The subscription costs $0.99 per month or $5.99 annually. Many of the features previously available as part of the paid app, including multiple account support, advanced filtering, and push notifications, are now subscription-only features. Tapbots says that subscribers will also benefit from future updates as Twitter expands its third-party APIs and ensure Tweetbot’s continued development.

$6/year seems reasonable, though it’s not clear whether the Mac version will eventually require an additional subscription. It doesn’t replace the old app, so nothing is taken away from those who have already paid for version 5.

Juli Clover:

The update adds support for Twitter’s V2 API, adding interface options for polls and cards for the first time, and it tweaks the timeline view and adds support for more tweet data. There are new “@” and “#” buttons when composing a tweet, plus there are new app icon options and more UI themes.

Paul Haddad:

Not sure if its a new App Store rule, or just whichever reviewer we got, but they requested that we remove Tweetbot 5 from sale within 30 days of Tweetbot 6 going live.

And by request I mean wouldn’t approve until we agreed.

This is weird, though. Tapbots is trying to do the right thing by letting people keep using the old app, but Apple won’t let them fix any bugs that crop up?

Damien Petrilli:

The “value” provided by Apple. The new Tweetbot doesn’t show up in the results. I scrolled multiple screens and nowhere to be found.


The Business of MKBHD

Marques Brownlee:

I still edit 99 percent of everything. I have the motion graphics artist and cinematographer, Vinh and Brandon, who will just go in on eight hours of editing for the first seven seconds of the intros and fun stuff like that. But I’m 99 percent of the edit, I’m writing everything, and I think at the end of the day, it’s still my face and it’s still my presentation of my ideas.


There’s the ads that are built into YouTube through the AdSense program. That’s one version of it. You don’t really get to control those ads, but you can still have banner ads, you can have pre-rolls, mid-roll video ads, things like that. And there’s a whole ecosystem there where you try to find a balancing act between how many ads do you place? Do you put mid-rolls in your videos or not?

But then there’s also the integrations that you do control, which can be inside the videos. Sometimes it’s a pre-roll, you say “this video is sponsored by...” You have an integrated section inside of a video or a post-roll. You get control over that, which is often very beneficial because that’s way better targeting for the company who’s trying to talk to somebody. And then there’s all kinds of other alternate ways that YouTube channels make money. For example, we have a merch store.

SwiftUI Unit Testing

Alexey Naumov (via Peter Steinberger):

So I decided to build ViewInspector, a library that allows for inspecting the SwiftUI view hierarchy at runtime.


And as it turned out, there were many pitfalls waiting for me on the way:

  1. All types in reflection are erased to Any
  2. Computed properties, such as var body: some View, are not available in reflection
  3. Generic private structs and function types which are tricky to cast the value to
  4. Initializing a struct which all init methods are private
  5. SwiftUI dependency injection through Environment
  6. Property wrappers, such as @State, with an elusive storage for values
  7. Significant variations of the hierarchy after a tiny tweak of the input. For example, Text("Hi") vs Text(hiValue)
  8. Overall obscurity and lack of information about the private structures

In this piece, I want to share abnormal use cases and hacky tricks I had to appeal to when building this library using just the standard capabilities of Swift language.

Displaying the State or the Action

John Gruber:

In the Facebook/Android style, a down-pointing chevron is a button you tap to expand more content, and an up-pointing chevron is a button you tap to collapse it. In the iOS/Mac style, a right-pointing chevron (or triangle, depending on the OS) indicates the collapsed state, and a down-pointing chevron indicates the expanded state. The Android way, a down-pointing chevron means “will open, if you tap”; the Mac/iOS way, a down-pointing chevron means “is open, tap to close”.

Other cross-platform apps like Amazon’s Alexa do it the Android way, too.

Ken Harris:

The other common place that Apple uses “show state and imply action”, and which lots of third-party apps get wrong: padlock icons.

1Password had that backwards for over 10 years.

Another example of a button that double as status indicator is the “1x” zoom indicator in the iOS Camera app.

Nicholas Riley:

I agree with your point overall but note there is one standard macOS control that behaves the way you don’t like…

It can get confusing. For example, Mac toolbar buttons typically show the action rather than the state, e.g. the Mute button in Mail.

Monday, January 25, 2021 [Tweets] [Favorites]

Hazel Codesigning and Notarization Woes

Paul Kim:

The biggest problem at launch was some users getting an “Unidentified developer” alert when opening the dmg. I had various users send in logs, but it was only when someone found a log message pertaining to the rpath for one of the binaries in the bundle that I was able to identify the problem. Strangely enough, that person didn’t receive the “Unidentified developer” error alert.


When translocated, the binary is no longer on the disk image, instead it is copied to a temp location on disk. Hazel is unaware of this and as a result, doesn’t run the installer. Why was Hazel being translocated? I’m still not sure. It’s my understanding that if an app and its containing dmg is signed and notarized, it shouldn’t be translocated.


Logs from users showed that the quarantine flag was still set on the helper and that was preventing it from being run. When the user copies an app, like say from a disk image to /Applications, the quarantine flag should be cleared for the app and everything inside but for some reason it was not clearing it for the embedded binaries. Note that unlike when a user launches an app from Finder where they will be asked to run the app, a login item helper will fail to launch without any prompt.


Lastly, none of the tools or processes in place (codesign, spctl, notarization) catch these cases. These are all issues related to the static structure of the app bundle so it seems like they should be detectable.

I’ve also seen a lot of customers with quarantine issues lately. They drag and drop the app to their Applications folder, but Finder doesn’t clear the com.apple.quarantine xattr for some reason. When they try to launch the app, macOS reports it as damaged even though everything except that xattr is fine.


Codye 1.1.3

Howard Oakley:

In the six years since I started to publish articles here, one feature I’ve been searching for is a good way to present source code. This article is the ultimate gamble: I’m going to explain how to do this, and demonstrate how well it works. So if it all goes horribly wrong, please don’t laugh. This demo is based on a single tool, the cheap app Codye, from the App Store, and aimed at anyone with a WordPress blog; it may well be suitable for other blogging systems too.

Codye really feels like a Catalyst app. On the other hand, I’m not aware of any native apps with this feature set. BBEdit can copy code as HTML, and you can copy and paste from Xcode to TextEdit and then export as HTML, but these methods require post-processing if you want HTML that uses CSS classes instead of raw formatting. On the other hand, Codye uses a JavaScript-based parser, which in my experience is not as accurate.

Hush Content Blocker for Safari

Joel Arvidsson:

Block nags to accept cookies and privacy invasive tracking in Safari on Mac, iPhone and iPad.


Unlike some blockers, Hush has absolutely no access to your browser habits or passwords. Nor does it track behavior or collect crash reports - nothing leaves your device.

Via John Gruber:

It targets those insipid, never-ending, utterly pointless “cookie notices”, popovers begging you to join email newsletters, and other bits of tracking. It kills dickbars and dickbar-like annoyances. I’ve been running it for days and it’s the sort of thing you don’t notice at all until you disable it and all of a sudden you’re back to approving cookie access every single goddamn time you load an article at The Guardian and squinting to find the hidden “X” that closes a popover asking if you’ll sign up for something you don’t want and never asked for.

Big Sur Document Icons Are Illegible

Jason Snell:

In Big Sur, documents associated with many apps appear to not use custom icons, but rather use a generic white document image with a small thumbnail of the app icon at the center. At the small icon size in list view, this icon appears to be 32×32.


Unfortunately, this new Big Sur behavior requires me to attempt to see the icon placed on the blank generic document icon — an icon that’s about 12×12. It’s almost impossible to tell the difference between documents that use this same approach.


Brad Cox, RIP

Legacy (Hacker News):

Dr. Cox was a computer scientist known mostly for creating the Objective – C programming language with his business partner, Tom Love, and for his work in software engineering (specifically software reuse) and software componentry.


Stepstone hoped to sell “ICPaks” and Dr. Cox focused on building his ICPak libraries and hired a team to continue work on Objective-C, including Steve Naroff. The late Steve Jobs’, NeXT, licensed the Objective-C language for it’s new operating system, NEXTSTEP. NeXT eventually acquired Objective- C from Stepstone. Objective-C continued to be the primary programming language for writing software for Apple’s OS X and iOS.

Bill Bumgarner:

His impact on many of our careers and on computing in general was immeasurably huge. Certainly, I can point to much of my career and have Dr. Cox to thank for enabling it!

Gus Mueller (tweet):

Everything just sort of aligned in my brain. Previously I found myself struggling to express the ideas I had in my head, and it was a frustrating experience. Now I was struggling to type fast enough and come up with new ideas that I could express in Objective-C. I felt like I could do anything I wanted with it.

Dave Dribin:

I love that Objective-C came from Brad reading the now infamous Smalltalk article in the Aug 1981 (Vol 6, No. 8) issue of Byte with the balloon on the cover and him thinking “I could do something pretty similar in C”.

Becca Royal-Gordon:

Even though I don’t use it much these days, Objective-C is a much better language than it has any right to be—a genuine pleasure to use thanks to its brilliant balance between conceptual purity and practical concessions. Dr. Cox and his colleagues helped make it that way.

Ken Kocienda:

Objective-C remains one of the best languages ever for creating apps and frameworks. Mac OS X, iOS, and the App Store all sat on the foundations of this great language. There would be no iPhone without Objective-C.


Objective-C is presumably the mainstream language with the most outsized influence. Along with Ruby and Squawk later on, it carried the values of Smalltalk into the modern programming era. Introspection and messages and dynamism, rather than C++ vtable optimization and trickery inventing seven kinds of memory management/ownership subtlety and delegating all to the programmer. Getting things to work together in a coherent and easy way that befits a small system, rather than spending 90% of your attention making sure no performance is untowardly spilled on the floor.

John Gruber:

Great programming languages are great for writing certain types of software. Objective-C is great for writing apps and app frameworks. Turns out that made for a great language — and an enormous competitive advantage for the one company that banked its entire software stack on it.

Nick Heer:

Cox sure made his dent in the universe.

See also: Cox’s blog, The origins of Objective-C at PPI/Stepstone and its evolution at NeXT.


Update (2021-01-26): John Gruber (tweet):

When I listen to my favorite app developers speak of Objective-C and its runtime, they almost never talk of the source code they wrote. They speak about it like Kocienda does, like it gave them the ability to put their fingers on the apps themselves. Like they weren’t writing instructions to make the app, but that they were writing the app itself. Not writing a recipe for baking a cake, but somehow baking a cake directly, and tweaking it to taste better and look prettier as it’s cooking. And if you needed to write ungainlier-looking recipes to get that on-the-fly dynamic feel for the cake as it’s being made, so be it, because the cake is the thing, not the recipe.

Steve Troughton-Smith:

It was an elegant language, for a more civilized age, and it served me well.

Friday, January 22, 2021 [Tweets] [Favorites]

Sketch Library for Big Sur

Parker Ortolani:

Nearly two months after macOS Big Sur’s public release, the Apple human interface team has finally released an updated Sketch library optimized for its top to bottom redesign. User interface designers and developers have been anxiously awaiting this new design kit for quite awhile.

Like previous Sketch libraries offered by Apple, the new macOS 11 library includes all of the core system colors, interface materials and fonts. You can also find elements such as buttons, labels, windows, menus, modals and more. The library includes all of Big Sur’s beautiful new squircle shaped icons and new full screen templates for advertising your design in a standard user environment.

Retiring Tucows Downloads

Tucows (via Andy Baio):

We have made the difficult decision to retire the Tucows Downloads site. We’re pleased to say that much of the software and other assets that made up the Tucows Downloads library have been transferred to our friends at the Internet Archive for posterity.

The shareware downloads bulletin board system (BBS) that would become Tucows Downloads was founded back in 1993 on a library computer in Flint, MI. What started as a place for people in the know to download software became the place to download software on the burgeoning Internet. Far more quickly than anyone could have imagined.

Reversing Malicious Run-Only AppleScripts

Phil Stokes (Hacker News, Patrick Wardle):

macOS.OSAMiner has evolved to use a complex architecture, embedding one run-only AppleScript within another and retrieving further stages embedded in the source code of public-facing web pages.

Combining a public AppleScript disassembler repo with our own AEVT decompiler tool allowed us to statically reverse run-only AppleScripts for the first time and reveal previously unknown details about the campaign and the malware’s architecture.

We have released our AEVT decompiler tool as open source to aid other researchers in the analysis of malicious run-only AppleScripts.

OWC Thunderbolt Hub

OWC (via Dimka, MacInTouch):

For the first time ever, the OWC Thunderbolt Hub lets you consolidate and simplify the connectivity between all your devices with all the Thunderbolt ports you’ve always wanted. The OWC Thunderbolt Hub’s four Thunderbolt (USB-C) ports and one USB port massively expand your connection possibilities.

It ships in February for $149. There’s also a $249 OWC Thunderbolt Dock that has more non-Thunderbolt ports. It seems like it’s taking forever to get USB-C to where USB-A hubs are—and were 20+ years ago—in terms of price or number of ports, but this is progress.


Thursday, January 21, 2021 [Tweets] [Favorites]

Beeper Brings iMessage to Android and Windows

Hartley Charlton (tweet):

New universal chat app “Beeper” combines 15 different chat platforms into a single inbox and offers iMessage on Android and Windows (via The Verge).


The app is “using some trickery” to achieve this, with the website’s FAQ revealing that an always-online Mac running the Beeper app is needed to use as a bridge. Alternately, Beeper will ship a “Jailbroken iPhone with the Beeper app installed which bridges to iMessage” to users unable to use a Mac.


Notes on Activation Lock: Apple Silicon Management Challenges

Nathaniel Strauss:

EFI (Extensible Firmware Interface) no longer exists on Apple silicon and along with it has gone EFI passwords. In the past, EFI passwords secured recovery and prevented Macs from using most boot modifiers at startup. A user couldn’t enter recovery, do a PRAM reset, enter target disk mode or perform a whole host of other useful functions without first entering a password.


Minor differences until point number three. To emphasize, anyone with physical access can to erase the disk, with or without FileVault. Sure, they can’t boot to recoveryOS without entering a FileVault user’s password first, but the erase option exists before authentication.


Activation Lock would work well as an enterprise alternative to EFI passwords except for the fact MDM can’t enable it on Mac.

Intel Problems

Ben Thompson:

In fact, the x86 business proved far too profitable to take such a radical step, which is the exact sort of “problem” that leads to disruption: yes, Intel avoided Microsoft’s fate, but that also means that the company never felt the financial pain necessary to make such a dramatic transformation of its business at a time when it might have made a difference (and, to be fair, Andy Grove needed the memory crash of 1984 to get the company to fully focus on processors in the first place).


This is why Intel needs to be split in two. Yes, integrating design and manufacturing was the foundation of Intel’s moat for decades, but that integration has become a strait-jacket for both sides of the business. Intel’s designs are held back by the company’s struggles in manufacturing, while its manufacturing has an incentive problem.

Ian Cutress (Hacker News):

We’re following the state of play with Intel’s new CEO, Pat Gelsinger, very closely. Even as an Intel employee for 30 years, rising to the rank of CTO, then taking 12 years away from the company, his arrival has been met with praise across the spectrum given his background and previous successes. He isn’t even set to take his new role until February 15th, however his return is already causing a stir with Intel’s current R&D teams.

News in the last 24 hours, based on public statements, states that former Intel Senior Fellow Glenn Hinton, who lists being the lead architect of Intel’s Nehalem CPU core in his list of achievements, is coming out of retirement to re-join the company. (The other lead architect of Nehalem are Ronak Singhal and Per Hammerlund - Ronak is still at Intel, working on next-gen processors, while Per has been at Apple for five years.)

See also: Nvidia’s Integration Dreams.


Update (2021-01-22): John Gruber:

Gelsinger, speaking in early 2021, knows that Intel fell behind years ago — in an industry where it’s notoriously hard to catch up. He’s taking over a ship that already hit an iceberg and is in need of saving. Sometimes you talk trash about your opponent because you’re an idiot. But other times, you talk a little trash to fire up your own team.

Why Webcams Aren’t Good Enough

Jeff Carlson:

But the issue wasn’t just that Camo gives you better picture quality. I wanted to dig into why webcam technology is so far behind. Even today, in 2021, the Logitech C920 is recommended by many, many magazines and outlets as being the best webcam you can buy. The C920 was released 8 years ago and is still essentially the same hardware. It has terrible color and blows out highlights. Logitech’s top-of-the-line BRIO 4K webcam, which retails for $200 but for most of last year couldn’t be had for less than $350 if you could find one at all, does a better job with highlights but is strangely soft and blurry. The Kiyo Razer, a clever webcam with a built-in ring light, has so much trouble focusing that it can give you a headache if you don’t sit completely still.

So I wrote a giant, 5,000-plus word article breaking it all down: Why webcams aren’t good enough. It’s full of example images and video comparisons, details my methodology, and speculates about why the webcam field has been largely stagnant.

This is one feature that is not rumored to be improving.


Update (2021-01-22): David Owens II:

Why buy an expensive webcam when you can buy a significantly better camera?

The market for high quality web-cams is just non-existent; there’s little profit to be made by companies there. Top-end streamers don’t use them (small market anyhow) and Zoom/Skype users don’t need them... who is left?


With Cam Link 4K, simply hook up your DSLR, camcorder, or action cam to your PC or Mac.


Coupled with Cam Link 4K, your camera appears as a webcam in all your favorite apps. Superb quality at 1080p60 or even up to 4K at 30 frames per second keeps your stream professional.

Update (2021-01-26): Tim Brookes:

So, why not use your iPhone as a webcam for your video meetings instead? Here’s how to do it.

Wednesday, January 20, 2021 [Tweets] [Favorites]

Porting Firefox to Apple Silicon

Gian-Carlo Pascutto:

Once the compiler was working, a similar exercise needed to be done with all the Rust crates we depend on. The need to update the compiler and the reliance of some crates on the exact compiler version, especially parts dealing with SIMD support, would end up biting us later on as it made it hard to push Apple Silicon support forward to an earlier release of Firefox without potentially affecting other platforms.


While we can port the open-source parts of Firefox to 64-bit ARM ourselves, Netflix and some other video streaming services such as Hulu, Disney+, or Amazon Prime require their video to be decoded with closed source, proprietary DRM software.


If we force this decoding process to run under emulation, we would be able to use the existing Intel x64 decoder modules and have them communicate with the main browser that was running natively.


More of a concern was user reports that some antivirus software was flagging all our Universal Binaries as malware, and corrupting the Firefox installation the moment the update arrived.

The software was using machine learning techniques and presumably observed that our combined Universal Binaries didn’t quite look like any other legitimate software it had ever seen before.


Swift AsyncSequence

SE-0298 (via David Smith, forum):

Swift’s async/await feature provides an intuitive, built-in way to write and use functions that return a single value at some future point in time. We propose building on top of this feature to create an intuitive, built-in way to write and use functions that return many values over time.

This proposal is composed of the following pieces:

  1. A standard library definition of a protocol that represents an asynchronous sequence of values
  2. Compiler support to use for...in syntax on an asynchronous sequence of values
  3. A standard library implementation of commonly needed functions that operate on an asynchronous sequence of values


Data Security on Mobile Devices

Maximilian Zinkus et al.:

In Apple iOS we found a powerful and compelling set of security and privacy controls, backed and empowered by strong encryption. However, we also found a critical lack in coverage due to under-utilization of these tools.


We observed that a surprising amount of sensitive data maintained by built-in applications is protected using a weak “available after first unlock” (AFU) protection class, which does not evict decryption keys from memory when the phone is locked. The impact is that the vast majority of sensitive user data from Apple’s built-in applications can be accessed from a phone that is captured and logically exploited while it is in a powered-on (but locked) state.


Use of Apple iCloud (unsurprisingly) transmits an abundance of user data to Apple’s servers, in a form that can be accessed remotely by criminals who gain unauthorized access to a user’s cloud account, as well as authorized law enforcement agencies with subpoena power. More surprisingly, we identify several counter-intuitive features of iCloud that increase the vulnerability of this system.


More critically, we observe that Apple’s documentation and user settings blur the distinction between “encrypted” (such that Apple has access) and “end-to-end encrypted” in a manner that makes it difficult to understand which data is available to Apple. Finally, we observe a fundamental weakness in the system: Apple can easily cause user data to be re-provisioned to a new (and possibly compromised) HSM simply by presenting a single dialog on a user’s phone.

Via Nick Heer:

Maybe there are only bad options, and this is the best bad option that strikes the least worst balance between individual security and mass security. But the compromises seem real and profound — and are, officially, undocumented.


Charger Nerdery

John Gruber:

So the good news is that if you use Apple’s 18W adapter (which Apple provided with iPhones 11 Pro and iPads Pro, including the iPad Pro updates from March of this year) instead of their new 20W adapter (which Apple includes with the new iPad Air and sells for $19), MagSafe will still draw 13W, which is close to the maximum draw of 15W. But it’s kind of nutty that the MagSafe charger will seemingly draw 15W from one and only one adapter, Apple’s own 20W one.

John Gruber:

So these GaN chargers are much smaller, the same price as Apple’s or cheaper, and more energy efficient. There seemingly is no downside or catch. Until I hear otherwise I’d say there’s no reason anyone should buy Apple’s 20W adapter instead of Anker’s or Aukey’s.


And while Anker does call out GaN on the product pages for some of its chargers, it does not for the 20W Nano. In their FAQ, regarding how the Nano can be both faster and smaller, Anker more or less just attributes it to secret sauce[…]

John Gruber:

So on the one hand, because the HomePod Mini includes the 20W charger, it was fine that it didn’t work with the old 18W charger. But on the other hand, if you ever toss the 20W charger into a bag or drawer along with an Apple 18W charger, you needed an extraordinary amount of knowledge to know which charger the HomePod Mini required. Not sure how much work Apple had to put into the 14.3 software update to make the HomePod Mini work with the 18W charger too, but I’m glad they did. It’s too confusing otherwise.


My mistake was using Apple’s slightly older 29W USB-C power adapter, which looks exactly like Apple’s more recent 30W USB-C power adapter. We’ve had that adapter plugged into our kitchen island for years, and it’s never before mattered. But with the Magic Keyboard, it did.

Adam Chandler:

For Tim Cook, who so often measures hardware success in units of “customer sat”, this charging situation has gone completely out of hand. Apple needs to do two things. They either make two chargers, one for iOS devices and another for MacOS devices each with a USB-C port as the termination on the back OR they need to very clearly label in some sort of embossed etching on every charger they make the wattage.

Joe Rossignol:

This supply chain news suggests that Apple is planning GaN versions of its USB-C power adapters, allowing them to be smaller and lighter, more power efficient, and less heat conductive compared to its current chargers, which are based on silicon.


Network Neutrality Follow-up

Drew Holden:

Three years ago, America was locked in a battle for #NetNeutrality, and, by extension, life as we knew it.

For the lucky few who survived, I invite you to join me on a quick stroll down memory lane to revisit the doom and gloom we were promised.


It’s worth pausing here to point out that none of this came to pass. The internet remains as free and open as ever, speeds have increased, prices have dropped, you aren’t paying to use Google (I hope!) and there hasn’t been one iota of accountability despite all that.

My Comcast rate increased, but I didn’t personally notice any other negative changes (or benefits).

FairInternetReport (Hacker News):

American internet users have had a very good 2020: according to research performed by FairInternetReport, median US internet speeds in 2020 doubled to 33.16mbps, up from 17.34mbps in 2019. Covering the five years of 2016, 2017, 2018, 2019, and 2020, this is the largest speed increase seen in the US, with speeds staying essentially the same in 2016 and 2017 (8.91mbps and 9.08mbps respectively), and 2018 recording a median speed of 12.83mbps.

The US stills lags behind many European and developed nations worldwide, and its major cities also often lag behind their European equivalents. That said, there is cause for celebration in Dallas, Seattle and Austin, after our analysis has shown that these cities are performing extremely well relative to most European capital cities.

Nick Heer:

It is an unfortunately common myth that the primary issue of net neutrality is internet speed in pure terms. That has been widely promoted — Twitter still has a #NetNeutrality hashflag marked by a buffering indicator — but it lacks key context. The actual concern is that internet service providers are in a position to influence winners and losers by acting less like the utility providers they are and more like an intermediate market gatekeeper.

But let us pretend that pure measurements of internet speed are what net neutrality protects. This report shows a massive spike in average internet speed — a bigger jump than any previous year. Is that because providers have invested in infrastructure? Capital expenditures were the primary reason Ajit Pai cited for eradicating net neutrality regulations enacted by the previous Tom Wheeler-led FCC. Well, no.


This report does not prove that net neutrality regulations were a waste of time, or that getting rid of them is somehow beneficial. It only shows is that people bought faster internet service when they needed it.

Ashley Carman (via Nilay Patel):

If you’re a Comcast TV and internet user, prepare for price hikes. The company is planning to increase the prices of a variety of services starting January 1st, 2021, according to Ars Technica and a document detailing the various price increases being shared on Reddit.


Tuesday, January 19, 2021 [Tweets] [Favorites]

ReadKit for iOS

Balazs Varkonyi (tweet):

  • All your reading in one place, multiple account support.
  • Sync with all major RSS aggregator and read later provider or use it with built-in RSS engine.
  • Feed and folder management for RSS services.
  • Folder and tag management for Instapaper, Pocket, Wallabag and Pinboard.
  • Offline reading and image caching.

It’s $3.99 vs. $9.99 for the Mac version.

Dieter Bohn:

If you want to know the state of RSS in 2021, I can point to no better example than Samsung just casually using what used to be the accepted default RSS icon for its mobile hotspot because it never occurred to them that people might think this icon represented something else.

On the other hand, two new iOS RSS apps released just one week apart, plus a big NetNewsWire update in testing.


NSSavePanel Crashes on Big Sur

Christian Tietze:

By now, I expected NSSavePanel.allowedContentTypes to work, and then to have Xcode suggest to wrap access to that property in an if-@available block. But that doesn’t work at all. With macOS 10.15 Catalina being my main dev machine, I cannot use the new API at all at the moment, it seems, no matter what I set the deployment target to.


It actually turns out that public.csv is not a built-in file type recognized by macOS. The archived docs for UTIs list many UTIs, but not CSV.

So make sure to check your assumptions when you write apps that export data without actually registering the exported file type UTIs!

How to Reserve Time Machine Space on an APFS Drive

Glenn Fleishman:

What Apple appears to be saying is an APFS Time Machine volume requires a single container that takes up the entire disk—you can’t add other containers, and that container has access to all the store space on the disk. Within that container lives a Time Machine volume. If you want to use the disk for other purposes, don’t add a container; instead, use Apple’s advice and add a volume within the existing container.

That is limiting, because the Time Machine backup could eventually swell to fill the entire available storage in the container (and disk), crowding out the other volume or volumes you create.


Signal Review

Josh Centers:

Signal had a bumpy start, but it’s now a well-polished and full-featured messaging app available for the most common platforms: iOS, Mac, Android, Windows, and Linux.


Every part of Signal is open source. The clients are published under the GPLv3 license, and Signal’s server code is published under the AGPLv3 license. All of Signal’s source code is available for public inspection on GitHub. I should point out that while I’m a big fan of open source and believe it makes for better security, it’s not a panacea. Unless you compile the final binary yourself, you can’t know for sure what’s in the code. That’s not to say that Signal is doing anything nefarious, just that it’s not impossible.


One of Signal’s most prominent critics is Chinese maker and YouTuber Naomi Wu, who claims that Chinese activists using Signal were arrested by the Chinese government. She has repeatedly pointed to two security vulnerabilities in Signal: the potential of compromised phone IMEIs and possible leaks from the phone’s keyboard software. To be clear, these concerns apply only to activists or people who are government-level targets.


Monday, January 18, 2021 [Tweets] [Favorites]

Switching to Windows and Linux

Don Melton (tweet):

Most of you probably don’t know this but a little over five years ago I built my own gaming PC.


While I certainly gamed my ass off with that homemade machine for awhile, it didn’t really become an essential device for me until I started using it to experiment with hardware video encoders.


Eventually, it became a pain in the ass to keep switching back and forth between my iMac and the Windows PC. So I started browsing the Web, reading and writing email, collaborating in Slack, Discord and Skype, all within Windows.

Orta Therox (tweet):

It’s somewhat nebulous, but during the announcements of Apple’s new macOS 11 this year, I felt like a line had been crossed in my mind: The Mac isn’t really the right OS for me anymore.


The bit that’s tricky for me is that I don’t use a phone, and I want my computer to be more like a truck than a car.


The move towards a more app-store focused, sandboxed OS means that whole genres of apps aren’t possible anymore. I’m particularly sad about what happened to Safari extensions over the last few years. I don’t want to put my time into a platform where the people starting today have a smaller domain than I did when I started.


The Mac software ecosystem was like a street of local shops run by people in the community, and then post-iPhone all the big shops moved in because they just wanted to make sure they were represented in the area. Modern desktop environments now feel quite same-y, but this also trivialized OS switching costs.


Update (2021-01-19): Mark Frauenfelder (via Chuan):

I’ve been happily using Macs ever since. But a little over a month ago, a representative for Gateway computers asked me if I’d like to try one of its new laptops. I was planning to say no thank you, but my 17-year-old daughter convinced me to give it a try. She’s a gamer and programmer and switched from a Mac to a Windows machine when she was 14 or 15. She insisted I was giving Windows short shrift. So I emailed the representative and said OK. A few days later, I received a Creator Series 15.6" Notebook (Model: GWTN156-2).

The first thing I noticed was the full-size keyboard with a numerical keypad. Mac laptops don’t come with them.


I think I’m going to keep using Windows from now on. I do feel weird about it; it feels like switching political parties. I’ve been a loyal Mac user for almost 20 years. But in that time span, Windows has evolved into an excellent operating system. This, and the fact that Windows computers are much less expensive than Apple computers, is enough to put me in the Windows camp.

Jacob Ziv Honored

Joanna Goodrich (via Hacker News):

IEEE Life Fellow Jacob Ziv will receive this year’s IEEE Medal of Honor “for fundamental contributions to information theory and data compression technology, and for distinguished research leadership.”

Ziv and Abraham Lempel developed two lossless data compression algorithms: Lempel-Ziv 77 in 1977 and LZ78 the following year. The two procedures enable perfect data reconstruction from compressed data and are more efficient than previous algorithms. They allowed for the development of GIFs, PNG, and ZIP files.

Here are the papers for LZ77 and LZ78.


In the second of the two papers that introduced these algorithms they are analyzed as encoders defined by finite-state machines. A measure analogous to information entropy is developed for individual sequences (as opposed to probabilistic ensembles). This measure gives a bound on the data compression ratio that can be achieved. It is then shown that there exist finite lossless encoders for every sequence that achieve this bound as the length of the sequence grows to infinity. In this sense an algorithm based on this scheme produces asymptotically optimal encodings.

Is the Finder Wobbly in Big Sur?

Howard Oakley:

I’ve had some strange events in which my main working SSD sometimes vanishes from the Finder, although that external drive remains mounted normally.


The first time that it happened, I assumed that the external SSD had somehow unmounted then remounted, although neither I nor any running software appeared to have done so. There are no notifications about such an event either. It appeared that the Finder had simply lost its place, lost my working folder from Favourites, and carried on without it.

Storing the Time Zone With a Date

Harshil Shah (tweet):

Going back to how Date works, it doesn’t model the actual clock time but rather a fixed point in time that can be interpreted in any time zone. And so what’s happening here is that the data is being interpreted as if it happened in my current time zone, which is the default time zone that Calendar and DateFormatter use.

And as such, a Date alone isn’t sufficient for modelling historical data, or at least personal historical data: You need time zone information too.

HealthKit acknowledges this too. You do have the ability to specify a time zone when constructing the appropriate HKSample subclass for the health data you’re modelling. It just so happens that while you are required to submit the start and end dates for any sample, the time zone information is entirely optional and buried within a metadata dictionary, that you can even omit entirely.

All of the step data shown in the screenshot was captured by the Health app right on my phone, stored in HealthKit, and displayed by the Health app. Somewhere in this pipeline, the time zone information was ignored or discarded.

Nick Lockwood:

I was just talking about this a few minutes ago, specifically the bad decision Apple made of having a default locale/timezone in most of their date-related APIs, which helps to perpetuate the misconception that a Date object is a self-contained representation of a calendar date.


User-defined Order in SQL

Joe Nelson (via Hacker News):

The most natural first attempt is to add an auto-incrementing integer column to track each item’s position[…] It requires updating a bunch of rows to insert one between others.


What if we store the position of each row using float or numeric values rather than int or bigint? This would allow squeezing new elements between others, rather than shifting items forward to make room. […] However floating point numbers have limited precision.


Non-negative fractions actually form a binary tree, with every fraction (in lowest terms) appearing at a unique node. […] The terms of these fractions are expressed in lowest terms and grow slowly at each insertion. For instance you can see from the tree diagram earlier that inserting between 1 and 0 toward 0 generates 1/2, 1/3, 1/4 … which can go a very long time because numerators and denominators in pg_rational each get 32 bits of storage.

Other approaches:

Ordered relationships in Core Data seem to use the basic integer approach. I’ve not used this feature much because it’s always seemed risky to rely on it. For many years it was buggy, NSOrderedSet still isn’t available in Swift, and CloudKit doesn’t support ordered relationships.


Friday, January 15, 2021 [Tweets] [Favorites]

Where Are the Safari Web Extensions?

Jason Snell (tweet):

At WWDC 2020, Apple announced it was going to support Chrome-style browser extensions (the WebExtensions API) in Safari. But with a catch[…]

You have to adapt it for WebKit, join Apple’s $99/year developer program, learn how to use Xcode and App Store Connect, and distribute via the Mac App Store.

Months after Safari 14’s release, are developers “bothering with Safari?”

The answer seems to be largely no—at least, not yet. The Mac App Store’s Safari extensions library seems to be largely populated with the same stuff that was there before Safari 14 was released, though there are some exceptions.


Beyond needing to get set up with Xcode, Abrahamowicz has had to deal with some specific security limitations Apple applies to extensions, which may require him to actually write some Mac-specific code in order to give the Safari version of Library Extension the same features it has on other platforms.

Apple recently posted some encouragement for potential developers.


Update (2021-01-18): See also: Hacker News.


We recently converted a chrome extension into safari extension using the tool provided by apple. While the conversion is smooth in general, the generated app (not the extension) got UI issue during extension review! Reviewer insists the app does not fit the UI guideline. I need to write back and explain the entire app is actually generated by the official Apple tool. The only use of generated app is open the preferences page of Safari. Anyway, after two back and forth, the extension is finally launched.

CleanShot X

Cabel Sasser:

You know what’s a really good Mac app? CleanShot. By far the best and most feature-rich screenshot/screen recording app I’ve used.

Oddly, despite being sold directly, there’s no trial version. However, they have a money-back guarantee, and you can also try it via the free trial for Setapp.

Steve Jobs at All Things Digital

Walt Mossberg:

FYI, all 6 of Steve Jobs’s appearances at the @allthingsd conferences - including the joint session with Bill Gates - are available for free in both pristine video and audio on @ApplePodcasts. We donated them after his death as a memorial.

Here are the direct RSS URLs for audio and video.

The Best Mac Rumors in a Long Time

Juli Clover (via Paul Haddad, Hacker News):

According to Kuo, Apple is developing two models in 14 and 16-inch size options. The new MacBook Pro machines will feature a flat-edged design, which Kuo describes as “similar to the iPhone 12" with no curves like current models. It will be the most significant design update to the MacBook Pro in the last five years.

There will be no OLED Touch Bar included, with Apple instead returning to physical function keys. Kuo says the MagSafe charging connector design will be restored, though it’s not quite clear what that means as Apple has transitioned to USB-C. The refreshed MacBook Pro models will have additional ports, and Kuo says that Most people may not need to purchase dongles to supplement the available ports on the new machines.

Mark Gurman (tweet):

Beyond the more powerful chips, Apple is also planning to step up the displays in its new MacBook Pros with brighter, higher-contrast panels, the person said. The new Macs will look similar to the current versions, albeit with minor design changes. Apple is aiming to launch the new MacBook Pros around the middle of the year.

This sounds way better than I expected. If it’s not the plan, it should be. If true, I guess it takes about five years to turn the ship. Can we throw in a smaller trackpad, too?

With the speed of the M1, I would love to switch back from an iMac to a MacBook Pro—if only there were a reliable, reasonably priced external Retina display.

Jeff Johnson:

Now if we can just get matte screens again...

Colin Cornaby:

Real 2x resolution would be nice

Tytus Suski:

reasons I left Apple ecosystem start to look like Michael Corleone’s TODOs

Mark Gurman (tweet):

The new [iMac] models will slim down the thick black borders around the screen and do away with the sizable metal chin area in favor of a design similar to Apple’s Pro Display XDR monitor. These iMacs will have a flat back, moving away from the curved rear of the current iMac.


Apple is also working on a pair of new Mac Pro desktop computers, its priciest Mac machines that don’t come with a screen included, the people said. One version is a direct update to the current Mac Pro and will continue to use the same design as the version launched in 2019. […] The second version, however, will use Apple’s own processors and be less than half the size of the current Mac Pro.


As part of its revived Mac desktop efforts, Apple has started early development of a lower-priced external monitor to sell alongside the Pro Display XDR.

Mr. Macintosh:

My take on the “Dark Era” Macs 2013-2019


If the current rumors are true, this could mark a huge shift.

I don’t think the damage that the 2013 Mac Pro & 2016 MacBook Pro is fully realized.

$5000 desktop with that’s not expandable? = Move to PC

$2500 Laptop with horrible reliability & bad keyboard design = Move to PC


Saw it real-time, live, while it happened. BEYOND ME how no one at Apple had foreseen it, or seemed motivated to fix it.


Update (2021-01-18): Raymond Wong (Hacker News):

Clearly, actual creatives and professionals disagree with Apple’s soul-searching because if all of these rumors come to fruition, Apple will be returning to what was already considered the MacBook Pro’s zenith. Coupled with Apple Silicon and Apple could experience Mac growth that it ceded to PC laptops during these past years of stumbling.

As someone totally in love with my M1 MacBook Air — the performance and battery life still astounds me every day — I am beyond excited for these new MacBook Pros. I’ve missed MagSafe dearly, pleaded for Apple to kill the Touch Bar more times than I can count, and curse under my breath every time I can’t find my SD card dongle for my MacBook.

Update (2021-01-22): Mark Gurman (tweet, 9to5Mac, MacRumors, 2, 3):

The company is planning to bring back an SD card slot for the next MacBook Pros so users can insert memory cards from digital cameras.


Apple has also developed underlying Mac support for both cellular connectivity — the ability for Macs to connect to the internet via smartphone networks — and Face ID, the company’s facial recognition system. But neither feature appears to be coming soon. To that end, Face ID had originally been planned to arrive in this year’s iMac redesign, but it’s now unlikely to be included in the first iteration of the new design.

Thursday, January 14, 2021 [Tweets] [Favorites]


Omar Rizwan:

TabFS is a browser extension that mounts your browser tabs as a filesystem on your computer.

The files inside a tab’s folder directly reflect (and can control) the state of that tab in your browser.


This gives you a ton of power, because now you can apply all the existing tools on your computer that already know how to deal with files -- terminal commands, scripting languages, point-and-click explorers, etc -- and use them to control and communicate with your browser.

macOS 11.2 Beta 2 Adds Full Custom Kernel Support

Hector Martin:

So I’m working in understanding the Apple Silicon boot/OS provisioning process. This is all subject to change, but here are some takeaways according to my current understanding.


This means that in order to set up an Apple Silicon device to boot arbitrary code, you first need to set it up to boot macOS, or at least install a working recovery mode.


In addition, Apple has a mechanism they use to only allow recent versions of their software to be installed on devices, by requiring a “phone home” process when you install it.


So the takeaway here is: Apple have built a very clever secureboot process previously unseen in any kind of desktop computer. They make us go through hoops to boot Linux, but those hoops are there to protect normal users.

Hector Martin (Hacker News):

macOS Big Sur 11.2 beta 2 is out with full custom kernel support.


The OS now finally includes the firmware and bootloaders and tools necessary to replace Big Sur with not-Big-Sur. That was previously not possible.

Howard Oakley:

When you boot an M1 Mac into its new Recovery Mode, it isn’t using the Recovery volume from the standard boot container at all, but what Apple calls 1 True Recovery (1TR) from the Apple_APFS_Recovery container, something which doesn’t exist on an external bootable disk. Many of its features, notably its Startup Security Utility which you can use to change the security policy, are only available in 1TR. As that can’t exist on an external bootable disk, and its command line equivalent bputil is largely limited to 1TR, it’s the internal storage which really controls that Mac, even when it’s booted from an external disk.


This ingenious new boot process does have consequences, though. Failure of internal storage means failure of the whole Mac, which can’t then boot from an external disk, which lacks the essential iSC and can’t provide 1TR either. I think this is already true for Macs with T2 chips, with their single security policy, rather than one for each bootable operating system as in the M1. I suspect it’s also, in part at least, responsible for the lack of an Internet Recovery Mode in M1 Macs.


ContentFilterExclusionList Gone in macOS 11.2 Beta 2

Patrick Wardle (tweet, Hacker News):

Unfortunately, Apple (without telling anybody) decided to “exclude” or exempt over 50 of its own applications (such as the App Store) and daemons from being routed thru the Network Extension Framework.


Due to the ContentFilterExclusionList list any traffic generated from these “excluded” items could not be filtered or blocked by a socket filter firewall (such as LuLu). Many (rightfully) asked, “What good is a firewall if it can’t block all traffic?” I of course also wondered if malware could abuse these “excluded” items to generate network traffic that could surreptitiously bypass any socket filter firewall. Unfortunately the answer was yes! It was (unsurprisingly) trivial to find a way to abuse these items, and generate undetected network traffic[…]


Well, after lots of bad press and lots of feedback/bug reports to Apple from developers such as myself, it seems wiser (more security conscious) minds at Cupertino prevailed.

Norbert Heger:

Thanks Apple for listening!


Big Sur on M1 (and possibly on Intel) maintains a persistent, hardware-serial-number linked TLS connection to Apple (for APNS, just like on iOS) at all times when you are logged in, even if you don’t use iCloud, App Store, iMessage, or FaceTime, and have all analytics turned off.

There’s no UI to disable this.

This means that Apple has the coarse location track log (due to GeoIP of the client IP) for every M1 serial number.


This change is essential for blocking such traffic, and I’m glad for it, but there is a long way to go when it comes to pressuring the pro-privacy forces inside of Apple to do more.


Reminder: iMessage Not Meaningfully E2E

David Heinemeier Hansson (Hacker News):

If you use iCloud Backup AT ALL, which is the default, your use of iMessage is not E2E because Apple has a backup of the encryption keys 🤯. And even if you turn off this backup, your recipient probably didn’t. So iMessage is not meaningfully E2E at all!


Apple’s marketing of iMessage’s E2E is seriously deceptive.

You would think a company serious about privacy would explain the situation in plain English. Or allow more granular control so that you don’t have to choose between giving Apple all your messages and not having a cloud backup.

David Heinemeier Hansson:

I cannot believe Apple conned me into thinking iMessage was meaningfully E2E 😞.

David Heinemeier Hansson:

So say you wake up one morning. Realize that Apple has been lying about E2E with asterisks and omissions and defaults, and you then turn off your iCloud backup. How long does it take before these backups are permanently gone from Apple’s servers? Can’t find a retention answer.

Noah Williams:

Hey so since @dhh has just reminded me of all the ways Apple deceives us into thinking their products are secure, I’d just like to compile my thoughts on all the ways backdoors currently exist within iOS[…]

Apple saves your call logs to the cloud unless you turn off iCloud Drive (not iCloud backups)[…]


The default length of an iOS passcode which you’re prompted to setup out of the box is six digits, which is laughably easy to brute force.


Also, you can’t even request to disable server side logging of Siri commands without putting your phone in supervised mode…


Update (2021-01-18): See also: Hacker News.

Wednesday, January 13, 2021 [Tweets] [Favorites]

An Otter RSS 1.0

Josh Holtz (tweet, 9To5Mac):

An Otter RSS doesn’t do much but it does everything I want it to. My goals were:

  • Subscribe to RSS feeds (sync over iCloud)
  • List new articles for each feed (sync over iCloud)
  • Show read/unread status of articles (sync over iCloud)
  • Support for iOS, iPadOS, and macOS
  • Background refreshing with local notifications