By John Gruber
Become smarter in just 5 minutes. Subscribe to Morning Brew.
Music: By default, these files will be stored in ~/Music. (~ is a shortcut for your home folder, the one with the house icon and your user name.)
Apple TV: For TV shows and movies, the default location is ~/Movies. Music Videos, however, will stay in the Music app.
Podcasts: Podcasts are stored in a cache folder in ~/Library/Group Containers/243LU875E5.groups.com.apple.podcasts. This is not designed to be user accessible, and the podcast files do not display the original file names. You can, however, drag podcast files from the Podcasts app to the Desktop or to a folder.
I needed this because my Mac version of Podcasts had gotten screwy. I don’t really listen to podcasts using Podcasts, but I subscribe to my own show in it just to make sure it looks and works right. I usually do this checking on my iPhone, but I was taking a look at it on my Mac this week, and noticed that four episodes (#245–248) were missing from the listing of “all episodes”. My first thought was that something must be corrupt in my RSS feed for the show. My second thought, a split-second later, was, nah, it’s probably a bug in the Mac Podcasts app. My second thought was right. Those four episodes of my show were not missing in any other podcast client, including Apple Podcasts on my iPhone and iPad.
Nothing I did within the Podcasts app, like unsubscribing / resubscribing, fixed the problem. The same four episodes were always missing — but only on my Mac. This reeked of a caching problem — but how to delete the cache? The Catalina Music and Movies apps continue to store their media files in the traditional, obvious places. That’s because they’re traditional Mac apps derived from the old iTunes app. I really had no idea where to look for Podcasts data to delete to try to unscrew whatever was screwed up. Trashing the folder McElhearn cites above — ~/Library/Group Containers/243LU875E5.groups.com.apple.podcasts — and relaunching Podcasts did the trick. Problem solved.
When I saw McElhearn’s folder name, my first thought was that he had overlooked that the “243LU875E5” part must be generated per-user, and wouldn’t be the same for everyone. It certainly looks random, right? But it’s not — that’s the name of the Apple Podcasts cache folder for everyone on Catalina, so far as I can see. Why in the world all the folders in ~/Library/Group Containers/ are prefixed with these ugly seemingly-random identifiers, I have no idea, but it strikes me as one more step along the path of Apple now caring less and less about what the back of the cabinet looks like. ★
A brief housekeeping note. In early November, I moved this website to a new server. It had been at the old server since 2007. One small thing that broke during the move is the script I use to automatically tweet links to new DF posts from the @daringfireball Twitter account — the DF Tootbot.
What broke is fairly technical, so I’ll try to make this short. The basic gist of how the script works:
The script runs once per minute as a cron job. That’s it.
What broke when I moved servers was the history log. When I first wrote the script 10+ years ago, I used a database, cleverly thinking, “If this Twitter thing is here to stay, I’ll eventually tweet tens of thousands of posts, so I should use a database so lookups don’t get slow and the whole thing continues to run fast years from now.” The database I chose, unfortunately, is one that sometimes changes its underlying file format with major version updates.1 There were a lot of major version updates to Perl in the years since I last moved servers.
What I could have done is just start over with a new history log on the new server, and manually fill the new database with the last few weeks of entries. For the purposes of tweeting new entries from the RSS feed, there’s no reason to keep a full historical log. The script just needs to know which recent articles — articles still in the feed — have already been tweeted.
It bothered me that the script was using a database at all. It bothered me because the database wasn’t something I could just open in BBEdit and inspect and edit by hand. I’m a text file guy, as you may know. Because here’s the thing: reading a simple text file log with tens of thousands of lines is really really fast on a modern computer. It would have been more than fast enough 10 years ago, and it’s much faster today.
I wrote a test script and ran it against a 53 MB text file log with 1 million lines. It ran in a blink of an eye. A fraction of a second. I hope to write Daring Fireball for a long time to come, but I really doubt I have a million posts in me.
A database was overkill. I ran afoul of Donald Knuth’s well-known axiom:
Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
So, I decided I should rewrite that part of the DF Tootbot to do what it should have done all along: use a simple human-readable text file for the history log. There were a few other changes I wanted to make, too — like switching from DF’s RSS feed to the JSON feed as the source for new articles, and supporting Twitter’s 280-character limit.
In the meantime, I had a copy of the old version of the script on my Mac that I could run manually. Three months of procrastination later, I finally spent Monday writing the new version and getting it running on the new DF server. This was the first tweet posted by the new Tootbot.2
In the interim, during the previous three months when @daringfireball tweets were only being triggered by me manually, the time between when I posted new items to Daring Fireball and when they got tweeted was, to put it mildly, erratic. Manually doing anything that should be automated is a bad idea for anyone, but it’s a particularly bad idea for someone with a strong tendency to think about only one thing at a time and pretty much forget everything else.
I like having control over such things. Shocker, I know. For example, I want complete control over the exact text of the tweets. What happens, for example, when a DF post has a headline that’s too long to fit in a tweet? In that case, I want the headline to be truncated as elegantly as possible, at a whole word, with an ellipsis added to indicate the truncated words, and inside any double or single quotation marks that end the headline. With Twitter’s 2017 change from 140 characters to 280 as the upper limit of a tweet, that’s not common — but it can happen.
For those of you who don’t follow the @daringfireball Twitter account, consider it. It’s a great way to see when something new or updated has been posted to DF, and with Twitter’s app, you can even get notifications of new items. (Go to the @daringfireball account profile and tap the little bell icon — you can use this to get per-account Twitter notifications from anyone.)
For those of you who do follow @daringfireball, I apologize for the erratic posting schedule these last three months. It should be back to normal now, and for the foreseeable future. ★
Keen observers will note a slight formatting change. The old Tootbot tweeted
title + ": " + url (title and url separated by a colon and space); the new Tootbot tweets
title + "\n" + url (title and url separated by a newline). This new format is a better compromise between how Twitter itself and third-party clients like Tweetbot and Twitterrific — both much-used by DF readers — display tweets. ↩︎︎
Last week Jason Snell published his annual Six Colors Apple Report Card for 2019. This year 65 voters (hand-selected by Snell) graded Apple in 12 areas. I was one of them, and, like last year, thought it only fair to publish my grades and remarks here at Daring Fireball. Comments in [brackets] are additional commentary I wrote now, and were not included in what I submitted to Snell.
This was a hard score for me to assign.
My first thoughts went to hardware. We’ve got an amazing new Mac Pro that rekindles the era of workstations that offer the best performance money can buy. The best CPUs, the best SSDs, the best RAM (up to 1.5 TB!). And it’s a tremendous design accomplishment — there aren’t even any cables inside the machine. We also have a new 16-inch MacBook Pro that I think is the best notebook Apple has made in 5-6 years. It fixes everything wrong with the 15-inch MacBook Pros that preceded it — especially the keyboard.
Everything isn’t perfect on the hardware front. The iMac Pro is now two years old. It’s a great machine but it hasn’t been touched in two years. That’s not pro. You can say it’s Intel’s fault because the iMac Pro is based on a line of Xeon CPUs that haven’t been updated in two years, but it’s Apple’s name on the box. The buck stops with Apple. And while the 16-inch MacBook Pro now has a totally new, totally great keyboard, it’s the most expensive model in the lineup and none of the other MacBooks have that keyboard. Yet, we all presume, but the fact is, if you buy a MacBook Air today — the best-selling, most-popular MacBook — you are not getting a good keyboard. So all things considered, I’d say a B for Mac hardware.
Then I think about software. And that means thinking about MacOS 10.15 Catalina. And those thoughts are not good. Off the top of my head I’m hard pressed to think of anything in Catalina that’s an improvement over 10.14 Mojave, and I can think of a lot of things that are worse. I get it that security and convenience are at odds, and it’s a difficult job for Apple to find the balanced sweet spot between the two. But Catalina clearly bends too far in the direction of security. By design, it’s just too inconvenient, with apps generating system-level alerts prompting for permission for things as rudimentary as being able to see the files on my desktop — sometimes when those apps are in the background, and I know that at the moment the alert appears those apps are not trying to read files on my desktop. But why in the world is the desktop treated as some sort of sensitive location?
Back in 2007 Apple ran a “Get a Mac” commercial mocking Windows Vista for this exact same sort of overzealous permission nagging. That’s exactly what Catalina feels like.
If Apple has somehow determined that typical users need these sort of permission alerts, fine, but there should be a single switch for expert users to toggle to effectively say “I trust all of the software on my Mac”. Call it “Pro Mode”, call it “Developer Mode”, call it “Expert Mode”, whatever. But I don’t know a single expert Mac user who is not seriously annoyed by the heavy-handed security design of Catalina. Not one. Every single expert user I know is annoyed. That is a bad place for MacOS to be. MacOS 10.16 needs a serious course correction to fix this, and if 10.16 goes the opposite way — growing even more heavy-handed in restricting professional Mac users from just using their machines as they want and expect to — I genuinely fear for the future of the Mac as a platform for serious computer users. Which is crazy considering that Apple just unveiled Mac Pro workstation hardware that can cost upwards of $50,000.
And there are bugs in Catalina. Lots and lots of bugs. About one out of ten times that I open my new 16-inch MacBook Pro, the display contrast is horribly wrong. [Not sure if I’m on a lucky streak or if this actually got fixed, but I haven’t seen this issue in over a week.] I can “fix” it by either turning the display brightness way down and then back up, or by closing the lid and reopening it. But I’ve been using Mac laptops for 20 years and I’ve never once had an issue like that. Another paper-cut bug: turn off toolbars in Finder windows and a few minutes later, the toolbars will reappear. There are always bugs in new OS releases, and we always complain that the state of Apple’s software is too buggy. But no one can convince me that Catalina is not abnormally buggy, even now, months after release.
And then there’s Catalyst. Don’t get me started.
If I could give Mac hardware and software separate scores, I’d give hardware a B and software an F — not one thing about Mac software got better in 2019 and everything that did change made it worse. Where’s the Tylenol?
2019 was a stellar year for iPhone hardware. I love all the iPhone 11 models. I’ve been an avid hobbyist photographer for 20 years and I happily shoot over 95 percent of my photos using my iPhone. Everything about the iPhone 11 cameras is great, from the hardware to the Camera app software. I love the new ultra-wide angle lens in all of the 11 models, and I think Apple made the right call using the ultra-wide as the only additional lens on the regular iPhone 11 (as opposed to the telephoto). My one and only significant gripe is that there’s only one size for the non-Pro iPhone 11. There ought to be a smaller one.
iOS 13 is a very good release. Shortcuts are proving to be the most exciting power-user feature in the history of iOS as a platform. Sharing sheets are better than ever too. I think the overall look is getting a bit dated, though. A fair amount of Z-axis depth has been restored since the visual reboot in iOS 7, but it still feels obsessively “flat”. And parts of Apple’s iOS software feel designed only to look good, as opposed to actually be good from an interactive standpoint.
[I think my Mac remarks made me grumpy — I wrote them before anything else for my report card. If I were grading the iPhone in 2019 today, I’d bump it up to an A.]
iPad hardware is wonderful. It seems like iPad Pro hardware is on a roughly 18-month refresh schedule, so there was nothing new in Pro hardware in 2019, but the current models are so good in every regard that that’s just fine. And the consumer models offer the best bang-for-the-buck of any computers Apple has ever sold, period. Just like with the Mac, I’d give iPad hardware an excellent score on its own, an A.
But to say that I’m not a fan of iPadOS is an understatement. I wish there were a switch to force iPadOS back to the pre “multitasking” days when the iPad interaction model was “just a big iPhone” — where every app was full screen and there was no drag-and-drop. I only ever accidentally drag things like links, and I find iPadOS’s concept of “windows” to be baffling. [Turns out there sort of is such a mode in Settings → Home Screen & Dock → Multitasking.] Getting the split-screen and Slide Over stuff to work is utterly unintuitive. It’s not the sort of thing you can figure out on your own just by using it, which is how the Mac user interface works. You have to know in advance how iPadOS split-screen stuff works. Just consider the fundamentals: if you want to launch an app you just tap it on the home screen or in the Dock. So far so good. But if you want a second app next to the first one, you have to drag the icon for that app out of the Dock? Why in the world would dragging an app icon launch an instance of an app? Forget about the Mac — what other platform in the world works like that? Put instances of Safari in two different “windows” — say, one split-screened with Notes and another in a “window” of its own. Then, using a hardware keyboard, Command-Tab to Safari. Which one comes forward? Toss a coin. It’s madness. I’m glad Apple started branding iOS and iPadOS separately. One of them is very cohesive, the other is incoherent. The iPadOS multitasking emperor has no clothes. I wish I could run iOS on my iPad Pro.
Steady as she goes. I love my titanium Series 5.
[I think Apple could do a much better job with watch face design. I’m not talking about allowing third-party watch faces, which, if I were in charge of Apple Watch, I wouldn’t allow either. I’m talking about Apple’s own watch faces, the only ones we can choose from.]
Regular AirPods remain great and AirPods Pro are my favorite headphones ever.
No new hardware and the new Apple TV app is confusing. I’d be fine with a hardware update that did nothing but include an altogether new remote control — but a price drop would be good too. The overwhelming majority of my non-sports TV watching is done via Apple TV, and that damn remote is a daily nuisance.
This was the year of Services for Apple — they even had a dedicated Services event. I think they mostly nailed it. The original TV series I was interested in were all good to great (The Morning Show, For All Mankind, Servant), and I think the “start with a whole year for free with the purchase of any iPhone, iPad, or Mac” promotion is just what the doctor ordered for a new service with a very limited library of content.
I’m still wary of Apple entering the credit card business, period, but I use my Apple Card for all Apple Pay purchases (to get the 2 percent cash back). Daily cash back is a great feature, and Apple’s 6 percent cash back promotion for Apple Store purchases during the holiday gift season was undeniably a great deal.
I’ll keep beating the drum that iCloud storage tiers are too small, though — especially the 5 GB free tier.
I’ll give this whole a category a “meh”. We use it at home, mostly to control smart window shades and lights, but I think for most people, if you haven’t even really looked into it yet, I’d say you’re not missing much. I feel like Apple still hasn’t gotten close to making HomeKit truly compelling.
This sort of thing is highly subjective, but everything new I’ve used this year has been rock solid.
The saving grace is iOS, by which I mean iPhone’s iOS. See my comments on Mac and iPad and Apple TV above. I’d go with a B for iOS and D for the others.
From what I’ve seen from developer friends, App Store review times are truly excellent now — a complete change from before the reorganization that put App Store review under Phil Schiller. But when an App Store review does hit a snag, it can go completely dark (from the developer’s perspective) for a week or longer. There’s still much room for improvement here. And I continue to believe Apple should lighten up on allowing apps to at least link to websites where content purchases can be made.
It’s good for the entire world that Apple is a staunch supporter of LGBT and racial equality, serious environmentalism, privacy as a human right, and true user-controlled encryption as an aspect of privacy.
It’s an absolute disgrace that Apple allowed Donald Trump to use the Mac Pro assembly plant in Austin as the backdrop for an event to promote his re-election. I called it “a low moment in Apple’s proud history, and a sadly iconic moment for Tim Cook” when it happened, and feel just as strongly two months later. Trump is a liar, a crook, and his administration has proven to be a menace to everything Apple stands for: LGBT and racial equality, the environment, and privacy as a human right. ★