Deep insight

Literally the last sentence in this article about Mozilla laying off a quarter of its employees:

The Google deal has historically accounted for around 90% of all of Mozilla’s revenue, and without it experts see a dim future for Mozilla past 2021.

First: I thought news articles were supposed to be “inverted pyramid,” not “pyramid.”

Second: Nothing gets past those experts, does it?

Dear Apple,

I have been an Apple user for 35 years. Do you have one minute for a little story? Thanks.

I have been trying to install your fucking OS update on my fucking watch for three fucking days now. First, I had to unpair and re-pair it because there wasn’t enough room for the update (even though I have very few apps on my watch). That was the only way to free up space because your storage management is for shit. Then it refused to update overnight despite telling me it was going to (in fairness, this wasn’t surprising—the iPad has been lying about updating itself overnight for ages). Now I’m trying to do the update manually, and I keep getting this fucking message:

Watch update error message

So I deleted the downloaded Software Update so I can try again. Why should this work? I have no idea; it’s like restarting a Windows machine. While I was deleting, I noticed that Music was taking up a lot of space because the fucking Heavy Rotation playlist was turned on again, despite my having turned it off.

You should all be ashamed of yourselves.

A more handy Warhol

After posting my Warhol shortcut, I got a couple of good suggestions for improvements. They overlapped to some extent, so I put them together into a new Warhol.

First, David Sparks pointed out that it would be helpful to end the shortcut by opening Photos so you can both see the new image and do something with it. And Leddy, in the Automators discussion forum, had a suggestion for running it both the Share Sheet and directly from Shortcuts without running into memory constraints. As I was trying out Leddy’s suggestion, I learned that Warhol wasn’t constrained by memory when run from the Share Sheet. (Apparently I’d run into that problem during one of the the early iterations of Warhol and never went back to check if the later improvements made it efficient enough to avoid the memory constraint.)

So now Warhol can be run from both Shortcuts and the Share Sheet in Photos. If it’s run from Shortcuts, it finishes by opening Photos. If it’s run from the Share Sheet, Photos is already open.

Here are the steps in the improved Warhol:

0 Warhol Step 00 This would generally be run from the Share Sheet in Photos.
1 Warhol Step 01 This only works with one image, so if more than that selected, take just the first one.
2 Warhol Step 02 If this was really run from the Share Sheet, there will be something from the Step 1.
3 Warhol Step 03 So store that something in thePhoto for later use.
4 Warhol Step 04 If Warhol was run directly from Shortcuts, there’s no photo passed to it, and the output Step 1 is empty.
5 Warhol Step 05 So ask the user to select an image…
6 Warhol Step 06 And store that image in thePhoto.
7 Warhol Step 07
8 Warhol Step 08 This is a dictionary of dictionaries, which we’ll use to resize the images and assemble the grid. The keys of the “outer” dictionary are the grid sizes you see in the left column. The keys of the “inner” dictionaries are count and width.
9 Warhol Step 09 Put up a menu for choosing the grid size from the dictionary in Step 8.
10 Warhol Step 10 Resize thePhoto to the width value from the dictionary item chosen in Step 9.
11 Warhol Step 11 Ask if the photos in the grid should be tinted.
12 Warhol Step 12 If yes…
13 Warhol Step 13 For the number of photos in the grid, which is the count value from the dictionary chosen in Step 9…
14 Warhol Step 14 Select an image at random from the Tints album.
15 Warhol Step 15 Resize the tint image and overlay it onto the resized version of thePhoto. Width and Height are the width and height of the resized photo. For the opacity of the overlay, I tried several values and landed on 40%. You may prefer something else.
16 Warhol Step 16 Add the tinted image to the photos list.
17 Warhol Step 17 We’re done assembling the tinted photos.
18 Warhol Step 18 If no tinting…
19 Warhol Step 19 For the number of photos in the grid, which is the count value from the dictionary chosen in Step 9…
20 Warhol Step 20 Add the resized version of thePhoto to the photos list.
21 Warhol Step 21 We’re done assembling the untinted photos.
22 Warhol Step 22 We’re done handling the tinted/untinted option.
23 Warhol Step 23 Arrange the images collected in photos into a grid with a 1-pixel white line between them.
24 Warhol Step 24 Save the grid image to Photos.
25 Warhol Step 25 If nothing was passed in, Warhol was run from Shortcuts…
26 Warhol Step 26 So open the Recents album in photos to see the newly made image.
27 Warhol Step 27

Phil Schiller

Although I won’t be terribly surprised if Phil Schiller appears onstage during this fall’s introduction of the new iPhones—those things get planned well in advance—it’s possible we’ve seen the last of his keynote presentations. I’m going to miss them for a couple of reasons.

First, Phil’s description of improvements in the iPhone’s camera never left me feeling shortchanged. Phil knew how important the camera was to iPhone users, and his own enthusiasm for iPhone photography always came through. He understood that people watching an Apple keynote have a high tolerance for detail on the topics that are important to them. In this, Phil was carrying on the tradition of Steve Jobs, who was more than happy to slow down a presentation and go into the details when he thought it was warranted. Look up Steve’s introduction of the iPad if you need to see an example of that.

Second, Phil is the last Apple presenter who is—how shall I put this?—not quite at his ideal weight. Just like me. How am I supposed to relate to Craig Federighi’s absurdly concave midsection?1 If you’re a longtime Apple watcher, you’re probably now remembering the great Bob Mansfield. Those were the days.

  1. Or his perfect hair, for that matter.