00:00:00 ◼ ► So I survived the bitter blast. And now I believe we're on to the, I don't know, Blue Mountain Freeze.
00:00:10 ◼ ► This is the names that the local weather station that plays in my coffee shop that I see many mornings gives to weather for the week.
00:00:23 ◼ ► That was apparently the bitter blast. Like, were weather events as heavily branded in the past as they are now?
00:00:31 ◼ ► I don't know, but now that you've opened this can of worms, buckle up because I have thoughts about weather right now.
00:00:36 ◼ ► So if, to recap, and I've been through this many times, Virginia or Richmond anyway, I shouldn't generalize to Virginia.
00:00:44 ◼ ► Richmond, if we get like three inches of snow in a, you know, day or so, the kids will be out of school for probably a day, right?
00:00:57 ◼ ► Six plus inches of snow, you're looking at multiple days off of school, generally speaking, like anywhere between two and five days off of school, right?
00:01:05 ◼ ► As I sit here now on Wednesday evening, it is, we are slated for three inches of snow on Saturday, which is, you know, manageable for us, but a little aggressive.
00:01:19 ◼ ► In total, that is 30 inches of snow, which I don't even know that's, I think it's like three quarters of a meter or something like that.
00:01:35 ◼ ► I said to Aaron just yesterday, you know what's about to happen is that we're going to get the COVID we thought we were getting in 2020, where we don't leave the house for two weeks and then we'll leave again.
00:01:44 ◼ ► Because we will be utterly screwed if Richmond gets damn near a meter of snow and it's going to be awful.
00:01:51 ◼ ► But no, I haven't heard any branding for the snow that we're getting, to come back to your actual point.
00:02:00 ◼ ► And I was out running errands earlier today and everyone is driving like idiots because they're all trying to go to the grocery store and buy all the things.
00:02:07 ◼ ► Aaron went to Costco during the like fancy lad hours or fancy lass in her case hours, you know, where if you have the, I think it's the executive membership, which is not that much money at all.
00:02:19 ◼ ► And she was there this morning and the store hadn't officially opened for the regular folks.
00:02:32 ◼ ► Like for a place like that, that doesn't really have snow infrastructure to be facing a giant storm.
00:02:46 ◼ ► But the 24 we're currently slated for, that will ruin Richmond for at least a week, probably the better part of two weeks.
00:02:53 ◼ ► Now, that being said, oftentimes, like when it gets close, it'll peter out and decide, oh, actually, I'm going to take a turn to the north or the south.
00:03:38 ◼ ► I'm not going to say anything about it, except I really enjoyed it and I can recommend it.
00:03:56 ◼ ► So, before we continue, we should talk to you and announce that there is a new member special.
00:04:38 ◼ ► So, John, if you've never heard any of our member specials, how could you hear only the most recent one or maybe older ones?
00:04:50 ◼ ► You can just download them all because you're a computer nerd and then unsubscribe and listen to them at your leisure.
00:05:00 ◼ ► This is probably the biggest one we've ever done in terms of the number of little tiles that we dragged up into the tier list.
00:05:07 ◼ ► And yet, there are just so many possible logos, especially since we did historical ones.
00:05:11 ◼ ► I tried to pick ones that I found interesting, acknowledging that there are many that I missed.
00:05:29 ◼ ► But the one I regret not including is Kia because they really messed up their logo and I would have loved to trash them.
00:05:51 ◼ ► Some people are asking us to do European car brands that we have never heard of, which might be fun.
00:06:39 ◼ ► I'm just like inserting all the images and processing them that he had already generated.
00:06:48 ◼ ► So thank you, John, for probably working on this for like at least two straight days of work.
00:07:08 ◼ ► It is not particularly time sensitive, I think, since nothing's really happening until like 2027.
00:07:20 ◼ ► But before we do that, I wanted to my original plan was to give a brief mention here to John Gruber's article in which he links to the Sony TCL story and says at the end that Sony TVs haven't been the Sony TVs of your for a very long time.
00:07:49 ◼ ► But in between the time that I did that and then sat down to record, he's published a retraction.
00:07:54 ◼ ► So suffice it to say, Sony has been at the top of the best possible picture quality TV market for the past several years.
00:08:07 ◼ ► And Gruber was not aware of that because he's just been using his LG TV and doesn't care as much about picture quality.
00:08:37 ◼ ► Marco, I don't know if you even know where your Vision Pro is, but you might have to charge it.
00:08:44 ◼ ► But coming sometime at the end of the month is a two-part, I believe, documentary coming on January 30th.
00:08:50 ◼ ► It's a two-part docuseries called Top Dogs, which goes deep behind the scenes in the, was it Greenwich dog show?
00:09:19 ◼ ► Anyways, the point is, Marco, you might have to charge your Vision Pro and watch this docuseries on January 30th, which looks extremely cute if you're a dog person.
00:09:51 ◼ ► Reading from Google's blog, quote, the next generation of Apple Foundation models will be based on Google's Gemini models and cloud technology.
00:09:59 ◼ ► We talked about this last week, and I highlighted the cloud technology, which, again, Manton Reese pointed out.
00:10:10 ◼ ► So, Gurman writes, in a potential policy shift for Apple, the two partners are discussing hosting the chatbot capabilities of Siri directly on Google's servers, running powerful chips known as TPUs, or Tensor Processing Units.
00:10:21 ◼ ► The previously promised non-chatbot update to Siri, retaining the current interface, is planned for iOS 26.4.
00:10:28 ◼ ► The chatbot capabilities will likely come in June, coming in June, at Apple's Worldwide Developers Conference.
00:10:34 ◼ ► So, Gurman is essentially confirming what the only thing that made any sense was that, I guess, maybe Apple's going to run their stuff on Google's data centers and on Google's TPUs.
00:10:43 ◼ ► That makes sense, because if you're going to do something at the scale of, like, all iPhone users, it's kind of a big ask for Apple to deploy a bunch of M2 Ultras or whatever their M5 server chip is and deal with all that, whereas Google already has the infrastructure to serve the entire world on whatever it wants to serve.
00:11:01 ◼ ► So, I bet that deal will go through, but it's interesting that Apple is, well, I guess they're not announcing anything.
00:11:06 ◼ ► This is just a rumor, but, you know, Apple traditionally uses, you know, AWS, Azure, all those other things or whatever, but I'm not sure how much Google Cloud stuff they've done.
00:11:20 ◼ ► I mean, and this makes so much sense in, like, the big picture way, if you consider it to mean that Apple will probably be hosting all of the largest models for Apple intelligence in Google's data centers, on Google's, you know, tech end.
00:11:36 ◼ ► Where they were designed to run, because Google made the models to run on their hardware.
00:11:40 ◼ ► Well, and not only that, I mean, and yeah, obviously they're going to be at least starting out running Gemini as the foundation model and probably, honestly, if I had to guess, would probably stay there for the long term.
00:11:50 ◼ ► I don't, at this point, I don't see Apple developing their own competitive foundation models that are going to be worth using.
00:12:10 ◼ ► And if you're going to run the very large, you know, flagship level AI models, you're not going to run it on Apple's chips, because Apple's chips aren't designed for that.
00:12:20 ◼ ► And the very, very largest models, the hardware to run those is so specialized that Apple not only isn't going to make something competitive for it, but shouldn't make something competitive for it, because that's fairly far out of their main areas of expertise.
00:12:37 ◼ ► You know, you're looking at, like, the highest end servers from, you know, NVIDIA type stuff, and also Google's custom stuff.
00:12:47 ◼ ► And so Google has the whole stack, top to bottom, to serve, to develop these models, to host these models, like, to scale them.
00:13:13 ◼ ► But I feel like they can get there, you know, kind of reasonably in, you know, maybe five years.
00:13:20 ◼ ► They can probably have their own on device models being class leading enough to actually use only their stuff.
00:13:25 ◼ ► But for the big, like, world knowledge server models, I don't think, not only are they not in that game now, either in the models or the hardware to serve them, but I don't think they will ever be in that game.
00:13:37 ◼ ► And you could probably argue, like, they probably maybe shouldn't try a lot of those things.
00:13:46 ◼ ► And I think it's going, and I think this part of it, where they just Siri just runs on Google servers, I think that's going to just be the default of how this goes for the foreseeable future.
00:14:04 ◼ ► And I do think they're still going to want to use private cloud compute, which depends on using Apple's software and Apple's hardware and all that other stuff.
00:14:13 ◼ ► And maybe just, like, general chatbot-y stuff will go to this, kind of like they do the regular chatbot-y stuff to go to ChatGPT now.
00:14:25 ◼ ► I mean, the quote-unquote joint statement that we read from was just published by Google, and Apple's not saying anything about it.
00:14:30 ◼ ► Do you think Apple's going to even mention whether they're using servers in Google's data centers?
00:14:38 ◼ ► But also, you know, I wouldn't necessarily assume that private cloud compute, the way it was advertised, will be the situation forever.
00:14:47 ◼ ► Because everything we saw at that initial Apple intelligence presentation, how much of that has actually panned out and will ever pan out?
00:14:56 ◼ ► But you can use private cloud compute now, and I'm assuming it works exactly like they announced.
00:15:04 ◼ ► And if you look at everything else that was announced during that Apple intelligence presentation, I think a lot of that stuff is going to get memory hold.
00:15:16 ◼ ► And the reality of what's delivered might be different because a lot of that stuff didn't pan out.
00:15:20 ◼ ► The assumption that Apple will always run the models that use your personal info on what they already described as private cloud compute, maybe.
00:15:33 ◼ ► I think it can just as easily end up that they work out the technical details with Google to do something that is similarly private on Google's hardware in Google's data centers with Google's models.
00:15:51 ◼ ► Because, again, this scale of hosting this kind of compute power and developing that kind of model is just not in Apple's wheelhouse.
00:16:03 ◼ ► But so far, Apple has not at all made the required effort to get themselves in that position.
00:16:10 ◼ ► So the Apple that we know today, it's like, you know, Apple could at some point get better at lots of things that it's not currently good at.
00:16:17 ◼ ► But the Apple that we know today is not good enough in those areas to probably host this the way that we assume that it would be hosted with private cloud compute.
00:16:27 ◼ ► I think private cloud compute is going to be probably memory hold in the next few years.
00:16:33 ◼ ► And if and when that happens, I don't think that's that big of a problem or scandal or downside.
00:16:39 ◼ ► Because I'm sure Apple would insist on similar privacy expectations if they did move it to Google.
00:16:47 ◼ ► They would work with them to ensure all the same privacy and encryption and transparency.
00:16:51 ◼ ► It's like, I'm sure if they make this change, we would look at it and be like, yeah, that makes sense.
00:17:00 ◼ ► We are sponsored this episode by Squarespace, the all-in-one website platform designed to help you stand out and succeed online.
00:17:08 ◼ ► Whether you're just starting out or scaling your business, Squarespace gives you everything you need to claim your domain, showcase your offering to the professional website, grow your brand, and get paid all in one place.
00:17:44 ◼ ► So if you, for instance, if you offer services and get paid, suppose you're a consultant.
00:17:53 ◼ ► You can showcase your offerings with a customizable website designed to attract clients and grow your business.
00:17:58 ◼ ► And, of course, you can get paid on time and easily with professional on-brand invoices, online payments, supporting every possible payment method you can think of.
00:18:06 ◼ ► And you can streamline your workflow with built-in appointment scheduling, email marketing tools, and so much more.
00:18:42 ◼ ► When you're ready to launch, use offer code ATP to save 10% off your first purchase of a website or domain.
00:18:49 ◼ ► So go to squarespace.com slash ATP, start that trial, and use offer code ATP at purchase for 10% off.
00:18:58 ◼ ► I made an offhanded comment slash rant about how I copied something out of Apple News, and a bunch of other stuff was appended on the side of it, and I didn't care for it.
00:19:17 ◼ ► And I assumed it was Apple News, if I'm not mistaken, or perhaps the Wall Street Journal or whatever I was copying from.
00:19:24 ◼ ► Richard writes, I just sampled 10 different random news articles on Apple News, and they all had the additional text added to the paste.
00:19:51 ◼ ► I kind of see the reason, you know, in some instances you're like, look, this is useful.
00:20:15 ◼ ► Vitor writes, regarding your Apple News complaint of it adding extra text to your copy,
00:20:25 ◼ ► It is so annoying, I've made an Alfred workflow to simply grab the text within the quotes,
00:20:32 ◼ ► Only on the Mac, as they would say, because iOS and iPadOS don't let you do cool things.
00:20:56 ◼ ► Yeah, I said Malaysia and Indonesia are blocking it, and small companies can easily block it.
00:21:06 ◼ ► So many people have written that Indonesia's population is about 285 million, and for a comparison,
00:21:13 ◼ ► I should have known that because I recently looked at one of those projections of what the world population will be like in 30 or 40 years,
00:21:28 ◼ ► We were not familiar with main stage when we were talking about the creative, what is it called?
00:21:41 ◼ ► Mike Taffet, amongst many others, wrote in to say that it's been in use, particularly for stage-related things, for a long time.
00:21:54 ◼ ► They talk about how Trent Reznor and Nine Inch Nails uses main stage during concerts, and it's being powered by what, John?
00:22:16 ◼ ► Pekka Salonin wrote that for education customers, the Pro Apps bundle appears to still be alive.
00:22:30 ◼ ► I wonder if they'll keep that around, because they still sell those standalone, and this is just the education bundle standalone.
00:22:39 ◼ ► Caroline writes, Final Cut and Logic Pro both had a three-month trial versions with all features unlocked.
00:22:49 ◼ ► Sadly, Apple has removed those now, and Creator Studio's trial period is only one month.
00:23:02 ◼ ► The Mac App Store doesn't give free trials for, like, paid-up-front apps, so how did they do it?
00:23:06 ◼ ► And then Ian Robinson piped in to say, the apps were full versions downloaded from the Apple website.
00:23:17 ◼ ► Yeah, we talked a lot about some monitors that were interesting as potentially, you know, useful to Mac users, even though they're technically gaming monitors.
00:23:26 ◼ ► And there are some caveats that I meant to discuss last time, last week when we discussed these.
00:23:32 ◼ ► I read off all the ports, like, oh, this has this port and that port with this data rate and so on and so forth.
00:23:37 ◼ ► And we got some questions about this, and those questions were warranted, which is like, okay, but can I hook up my Mac laptop to it?
00:23:56 ◼ ► Most of the monitors that you, most of these gaming monitors, like the 5K ones, the 4K, the 6K ones that you'll see with, like, Mac-relevant DPIs,
00:24:05 ◼ ► do support DisplayPort alternate mode for their USB-C port connections if you look at the specs.
00:24:10 ◼ ► But I wouldn't just assume that means, oh, that I can just plug in my Mac laptop with the USB-C cable and everything will work fine,
00:24:25 ◼ ► I would suggest that if you have any interest in these monitors, wait to see a review where somebody plugs a Mac into it
00:24:34 ◼ ► The Mac OS doesn't flip out about it, that it can drive it at its full resolution through the thing.
00:24:38 ◼ ► Because the last thing you want to do is get one of these monitors, save a bunch of money.
00:24:41 ◼ ► And so then you have to get, like, a, you know, Thunderbolt to DisplayPort or HDMI dongle hanging off your laptop.
00:24:51 ◼ ► Anonymous writes, in the latest episode, you went through the specs and prices of various non-Apple displays,
00:24:55 ◼ ► with the general conclusion being that you can get studio display physical and pixel dimensions with less money and more refresh rate and HDR.
00:25:01 ◼ ► But what kind of color accuracy and HDR mess would one get into if trying to use these with a Mac?
00:25:06 ◼ ► Game consoles ask the user to look at a test picture to infer the HDR capability of the TV,
00:25:11 ◼ ► which suggests that HDR capability info might not travel properly over EDID, or extended display identification data.
00:25:18 ◼ ► With an Apple display, Mac OS knows the HDR headroom, given the particular brightness setting,
00:25:23 ◼ ► and can let Lightroom Classic know, so that Lightroom Classic can assume a hard clip in the display pipeline, not do tone mapping.
00:25:34 ◼ ► Are they like TVs in their default mode, tone mapping in the display, or like TVs in HGIG mode, no display side tone mapping?
00:25:44 ◼ ► What does it take to get color accurate results for the DisplayP3 color space with Apple and Adobe apps?
00:25:49 ◼ ► These are all excellent questions, and another reason you should absolutely wait to see a review of these monitors,
00:26:02 ◼ ► but these displays are, for the most part, not designed to be used with Macs or by Mac users at all,
00:26:09 ◼ ► Most of them have enough features where you, like, the good thing they have going for them is,
00:26:13 ◼ ► as gaming monitors, they're very configurable, and they have lots of settings that you can tweak.
00:26:21 ◼ ► you're probably better off shopping one of, like, those Asus monitors that's made for, like,
00:26:35 ◼ ► We either have drivers for them for Mac OS, so Mac OS knows about their color profiles and all their capabilities,
00:26:46 ◼ ► does have a Mac focus monitor that advertises the fact that their color will exactly match the color
00:27:11 ◼ ► But the panels that they use will surely be used in monitors aimed at creative professionals,
00:29:16 ◼ ► where even though you're not scrolling, essentially the whole screen is changing constantly,
00:29:49 ◼ ► and one of us made an offhanded remark about how you can't edit keynote files on the Vision Pro.
00:29:59 ◼ ► Internally, it was a bit of a hero case, to use some terminology Marco won't understand,
00:30:40 ◼ ► There's so much more it could do if it had good integrations, good tooling, good access.
00:30:47 ◼ ► Zapier is a great platform to help integrate AI with the actual work that you or your company,
00:30:59 ◼ ► So, Zapier is how you actually deliver on your AI strategy, not just think about it, talk about it, hype about it.
00:31:06 ◼ ► With Zapier's AI orchestration platform, you can bring the power of AI to all of your workflows,
00:31:15 ◼ ► You can connect top AI models like ChatGPT and Claude to the tools that you and your team already use.
00:31:20 ◼ ► So you can add AI exactly where you need it, whether it's AI-powered workflows, autonomous agents,
00:31:37 ◼ ► So check it out today to see how Zapier can integrate with your team and help you with your workflows.
00:32:02 ◼ ► It sounds like, John, you might have a little bit of complaining to do with regards to Tahoe.
00:32:50 ◼ ► The history of Icons next to menu items on the Mac, the current recommendations for them,
00:32:59 ◼ ► There have been other articles on the same topic, including one that was eventually referenced
00:33:09 ◼ ► But essentially, ever since Tahoe was shown, there was a lot of discussion around the Mac
00:33:27 ◼ ► And the recommendation in Tahoe is to put icons next to a bunch of menu items that previously
00:33:47 ◼ ► I think the article does a really good job of explaining why having icons next to every
00:34:02 ◼ ► It's one of those things that I think in interface design, I'm sure lots of designers over time
00:34:13 ◼ ► And then normally the feedback process would be you try it and you realize, oh, there's
00:34:18 ◼ ► a lot of cases in which this doesn't work or this is making things worse or it's causing
00:34:23 ◼ ► confusion or you have to really pick some symbols that don't really work because certain menu
00:34:30 ◼ ► commands just don't really work well as little icons next to them or there's no obvious icon
00:34:35 ◼ ► And then maybe you might have different programmers at different times on different teams choosing
00:34:46 ◼ ► Or maybe you might have a whole bunch of menu items in a row that all kind of should maybe
00:34:55 ◼ ► And in a normal process, you know, that those would be tried or these failures would be
00:35:01 ◼ ► done internally and then the review would happen and they would be like, hmm, this actually is
00:35:06 ◼ ► We're not going to we're going to change this this idea or we're going to cancel this idea.
00:35:11 ◼ ► That last part didn't happen at Apple and all of those mistakes, they just made them all
00:35:21 ◼ ► For me, I'm not as bothered by this as it seems everybody else is, which isn't to say I
00:35:32 ◼ ► In fact, Nikita's post in particular does a very thorough job, as you guys were saying,
00:35:48 ◼ ► Talking about how you should absolutely not do the following and then a picture of Tahoe
00:35:57 ◼ ► It's not great, but I don't find it as actively bothersome as I think basically everyone else
00:36:14 ◼ ► It's clear that the left hand and the right hand are not talking, which is a very Apple thing.
00:36:29 ◼ ► I'm sure, John, you feel very strongly that this is absolutely accurate and terrible in
00:36:38 ◼ ► Well, and to be clear, before we let John explode, I'm with you, Casey, with in terms of how much
00:36:55 ◼ ► It's just I think it's it's kind of a microcosm of the design failings in general of the Alan
00:37:14 ◼ ► But but like to me, like the menu icons again, like it's not and I don't I don't think these
00:37:27 ◼ ► Yeah, a lack of care and a lack of talent, honestly, like a lack of design talent and a lack of respecting
00:37:37 ◼ ► Like, you know, I said I kind of, you know, brashly said a few months back that Alan Dye
00:37:55 ◼ ► They hastily and sloppily tore stuff apart and put in their own ideas without really, you
00:37:59 ◼ ► know, the whole Chester's defense thing, like without really understanding why anything was
00:38:08 ◼ ► They tore through the Mac and they messed a bunch of stuff up a lot of times needlessly
00:38:12 ◼ ► to create something that, you know, by by by goals and by people who that don't really seem
00:38:32 ◼ ► The one cited in a Tonski article from 1992, the originals are back in the 80s when the Mac
00:38:45 ◼ ► But anyway, rest assured that human interface guidelines or HIG is a term from the classic
00:38:50 ◼ ► And the thing people always cite is that the graphic that's at the top of this thing is
00:38:55 ◼ ► basically from the 1992 HIG saying don't put symbols next to menu items because and they
00:39:01 ◼ ► You know, they say, here's why, you know, they show they say, don't do this, do this instead.
00:39:05 ◼ ► And here's why the HIG always used to give good reasons for things that ended not in the
00:39:11 ◼ ► But they were usually pretty good about giving justifications for things based on, you know,
00:39:16 ◼ ► either the research they had done themselves or research done by other people or matters
00:39:23 ◼ ► Now, when Tahoe, I think not even before it came out, when when it was Tahoe was first revealed,
00:39:39 ◼ ► The, the, the, the, the hard justify Tahoe icons article does a good job of really showing how poor
00:39:49 ◼ ► the implementation is because setting aside, which I'll get to in a little bit, the, the, the wisdom
00:39:56 ◼ ► of putting an icon next to menu items, uh, the way that has been executed in Tahoe is just riddled with
00:40:08 ◼ ► It's, you know, the, the, they don't follow their own advice that they gave, uh, just needlessly
00:40:19 ◼ ► They just, the icons themselves are scaled to a size where they're so small that it's difficult
00:40:27 ◼ ► If they just did a bad job of executing it, but, but setting aside the execution, if you
00:40:34 ◼ ► were to have in your particular application, the perfect execution that you don't make all
00:40:41 ◼ ► Uh, I think what I said at the time about it, when we first saw Tahoe was like, there is,
00:40:56 ◼ ► So a tiny symbol that you could recognize without having to read the words of the menu item can
00:41:01 ◼ ► help you find a, you know, a menu item more quickly than if you had to scan the words, right?
00:41:09 ◼ ► Especially in really big menus with like applications that have huge menus like Photoshop, wherever
00:41:15 ◼ ► The whole point of icons is rather than asking you to read text, maybe you can recognize a symbol.
00:41:35 ◼ ► Because if you don't, it really doesn't help because like, let me find the export command.
00:41:40 ◼ ► You're scanning the little menu icons for what you think is the export icon, which is like
00:41:46 ◼ ► But this one uses a box with an arrow going down to it or a different box with an arrow
00:41:54 ◼ ► It's almost as if like when you go to like, you know, file open, you're looking for the
00:41:58 ◼ ► But if some, if different apps chose a different word than open, it would really mess you up.
00:42:16 ◼ ► Second thing is the icons next to menu items, especially 1992 were infeasible because the
00:42:24 ◼ ► You just can't draw anything next to a menu item that's recognizable, or you can draw a very
00:42:31 ◼ ► limited number of things that's next to a menu item that is recognizable that DPI with the
00:42:35 ◼ ► advent of retina making symbols that are, you, you have more, the problem space is bigger.
00:42:46 ◼ ► So just because they said in 1992, don't put symbols next to menus, take a look at like
00:42:57 ◼ ► So I think a lot of the reason that was against putting, uh, you know, icons next to menu items
00:43:17 ◼ ► Like if you look in the screenshot of like open recent, it's got, I think it's supposed
00:43:27 ◼ ► Anyway, um, and you can see how the clock is kind of the same size as the capital O and
00:43:32 ◼ ► open and it does look nice, but there's actually more, you could make that icon bigger.
00:43:40 ◼ ► So they could have made it more recognizable and made the icons less look like blurry smudges,
00:43:46 ◼ ► which is kind of what a lot of them look like from reasonable, like Mac using distances,
00:43:53 ◼ ► Now, if you look in Apple's actual guidelines, which we will link in the show notes, what
00:43:58 ◼ ► they actually say, and again, I read this when the, the WWDC, which is why I wasn't so super
00:44:03 ◼ ► mad about it then is they say, you know, icons help people recognize common actions, which
00:44:09 ◼ ► Icons help you recognize things, use the same icons as the system to represent options such
00:44:13 ◼ ► as copy, share, and delete wherever they appear for a list of icons that represent common
00:44:19 ◼ ► And they give a link to a list of standard icons you're supposed to use for common commands.
00:44:25 ◼ ► It's like, it's not, it's, there's not enough common icons and even Apple doesn't follow its
00:44:35 ◼ ► If you can't find one that clearly represents the menu item, not all menu items need an icon.
00:44:41 ◼ ► I don't know why everyone complaining about this hasn't seen this guideline, but they're like,
00:44:52 ◼ ► They give an example, like when you shouldn't have any icons next to things like the days
00:44:59 ◼ ► Um, and then they, and then they do another thing where it's like, uh, was it use a single
00:45:09 ◼ ► action or reusing the same icon for all of them, establish a common theme with the symbol
00:45:12 ◼ ► for the first item and rely on the menu item text to keep the remaining items distinct.
00:45:16 ◼ ► So they give an example of a bunch of copy things, copy symbol, copy name, copy image as copy
00:45:27 ◼ ► So the problem with this advice, and I think that the problem is everyone is finding is
00:45:33 ◼ ► like, first of all, people are not grokking or internalizing this advice because the advice
00:45:43 ◼ ► If they had just said every single menu item needs an icon, at least people would understand
00:46:05 ◼ ► Like, and then you end up with things like in this article where it's just a hodgepodge
00:46:14 ◼ ► Is it because the woman icons are more commonly used and it changes the indenting because of
00:46:55 ◼ ► Like the example everybody uses in all these articles, which is 100% true, is when you go
00:47:04 ◼ ► that little pop-up menu and you see those little symbols, you'll also see them in the window
00:47:10 ◼ ► menu on some applications as well, like in the move and resize submenu under the window
00:47:15 ◼ ► Those icons do a better job of the words left, right, top, bottom, top, left, top, right,
00:47:22 ◼ ► I bet they just look at the symbols because there's enough pixels in those symbols that
00:47:42 ◼ ► But someone somewhere disguided, they wanted to see a lot more menus because they think it
00:47:57 ◼ ► And the result is the result is this article that you go through macOS, look at Apple's
00:48:08 ◼ ► Sometimes it hurts the ability to scan down the menu because of the indenting changes in
00:48:14 ◼ ► But in general, I think this is just, you know, it's an example of not the worst change
00:48:34 ◼ ► And you learn to tune out the symbols for the reasons outlined in this article because you
00:48:43 ◼ ► And the result of this is a bunch of the indie developers we know all coming up with schemes
00:48:49 ◼ ► So at least their icons can have clean menus, but that further increases the inconsistency
00:48:58 ◼ ► So I'm not, you know, apparently to Casey's surprise, strongly against icons ever being in
00:49:09 ◼ ► But I am for well thought out, well articulated guidelines in the human interface guidelines
00:49:14 ◼ ► that developers understand how to follow, that Apple follows itself, and that following them
00:49:26 ◼ ► This is actually, I believe, from an iPad menu, which I know is an Otahoe thing, but you
00:49:56 ◼ ► The submenu choices, default, right to left, and left to right, all use exactly the same
00:50:03 ◼ ► Except the default menu item has a smaller, slightly, left-facing arrow over a right-facing
00:50:25 ◼ ► This is a perfect example of icons not helping with recognition, not helping with clarity,
00:50:46 ◼ ► This is a library of standard platform icons that Apple provides developers, and they use
00:50:58 ◼ ► But I think, you know, one of the problems that I occasionally have with SF symbols, of
00:51:02 ◼ ► course, everyone using it would have this problem, is sometimes you can't quite find exactly what
00:51:08 ◼ ► So you kind of settle for one that's already there, because then, because like making your
00:51:29 ◼ ► They were probably working in a hurry, because they had a lot of work to go through every
00:51:35 ◼ ► Again, you don't have to put an icon next to every single menu, but we won't tell you which
00:51:48 ◼ ► seem to, of course, like much of this redesign, seem to be doing it in a bit of a rush.
00:51:51 ◼ ► And they just picked whatever icon they could find in SF symbols that was close enough.
00:52:22 ◼ ► But when you start applying these like blanket philosophies, without looking at the results,
00:52:27 ◼ ► without looking at how the real world and real needs might conflict with that or might have
00:52:35 ◼ ► And that's just everything about Tahoe's liquid glass redesign is like there are certain contexts
00:52:43 ◼ ► But in practice, the way it was applied and maybe the way it will always need to be applied
00:52:54 ◼ ► And that's the kind of thing that a good design team and a good design process and a good feedback
00:53:06 ◼ ► And I think this goes to like, you know, Gruber's talked a lot about this, how Alan Dye leaving
00:53:25 ◼ ► And Apple was caught by surprise and presumably as a result, maybe didn't want him to leave
00:53:30 ◼ ► or certainly wasn't certainly was not asking him to leave, which means that all the other
00:53:56 ◼ ► But I have a I have an easy time believing some of Alan Dye's peers in the org charts were
00:54:00 ◼ ► not happy about this, including potentially Craig Federighi, who had to junk up all the OSs
00:54:10 ◼ ► I suspect that, you know, because you think that, like, which of the top execs probably
00:54:44 ◼ ► It sounds like Stephen LeMay is like a great person for the principles that we care about.
00:54:49 ◼ ► But all those high executives who allowed this and maybe even supported and maybe even liked
00:54:59 ◼ ► So I don't know how much is actually going to change because the system in place that got
00:55:06 ◼ ► Alan Dye this power and supported this and let all of this mediocrity ship is still the system
00:55:16 ◼ ► So I'm a little worried that we're not going to actually see as much change as we want because
00:55:26 ◼ ► Well, my opinion of those people you listed is that Tim Cook always recuses himself from
00:55:30 ◼ ► these conversations because he has no opinion whatsoever, which certainly doesn't help that
00:55:34 ◼ ► Jeff Williams, if he was above Alan Dye in the org chart, probably supported it and he has
00:55:46 ◼ ► And at the very least, JAWS is aware that the people who care the most about user interface
00:55:53 ◼ ► And I think Craig was not super into it, but had to do it because it's part of his job.
00:56:00 ◼ ► If anyone does have inside information about who at Apple loved what Alan Dye was doing and who
00:56:11 ◼ ► And I do, you know, I have heard from that the new, you know, Steve LeMay being in charge
00:56:15 ◼ ► that he is not particularly forceful and fighting for what he believes in, according to one vaguely
00:56:21 ◼ ► But, you know, fingers crossed, like certainly it's better than Alan Dye still being there,
00:56:24 ◼ ► which is a powerful person whose opinions that we disagree with and who makes bad decisions
00:56:38 ◼ ► Norbert Heger writes, since upgrading to macOS Tahoe, I've noticed that quite often my attempts
00:56:44 ◼ ► It turns out that my initial click in the window corner instinctively happens in an area where
00:56:50 ◼ ► The window expects this click to happen in an area of 19 by 19 pixels located near the window
00:56:54 ◼ ► If the window had no rounded corners at all, 62% of that area would lie inside the window.
00:57:00 ◼ ► But due to the huge corner radius in Tahoe, most of it, about 75%, now lies outside the
00:57:20 ◼ ► But I don't know, maybe I'm a CEC unicorn, so maybe I'm a window-sizing unicorn as well.
00:57:26 ◼ ► If you just do it in real slow motion, a pixel at a time, I've reproduced exactly what we've
00:57:30 ◼ ► It's the first thing I tried to do is reproduce it to see if this is just like a weird situation
00:57:39 ◼ ► What this is getting to is like, if you put like the tip of your arrow cursor in the corner
00:57:47 ◼ ► of a window, like the window is white and you're about here and it's blue like in this little
00:57:50 ◼ ► animation, and you put the tip of your arrow cursor inside the white part on the corner,
00:57:55 ◼ ► But you can't because you're now outside the region that allows you to click and resize.
00:58:07 ◼ ► So it ends up in this perverse scenario where if you visually try to resize the window, you'll
00:58:13 ◼ ► He's got a cool animation of him trying to grab a rounded plate by grabbing the air next to
00:58:42 ◼ ► Some of it has to be outside the window because you want to be able to grab like near the outside
00:58:47 ◼ ► And, and some people were like, I bet, I bet the people, you know, who work on macOS who
00:59:06 ◼ ► round and corners, which I think is a terrible idea, but if you insist on doing it, um, you
00:59:10 ◼ ► now face a challenge and the challenge is, okay, if I just move the region that you can click
00:59:17 ◼ ► to resize a window, so it makes sense with the rounded corners, you may break third-party
00:59:22 ◼ ► You may break first-party applications because the window resize area is a place where the
00:59:30 ◼ ► OS grabs your clicks for standard window management actions, not the OS, but the framework like
00:59:39 ◼ ► But if you move that region up because the window curve, and now you have to like move that region
00:59:43 ◼ ► up and farther into the content area, you may be blocking content in someone's app that you
00:59:49 ◼ ► used to be able to click, but that you can no longer click because a click in that region
00:59:55 ◼ ► Making changes like this, making, I've decided that different regions of the window belong
01:00:08 ◼ ► I have applications on my iPad that haven't been updated for the OS 26, iPad OS 26, where
01:00:14 ◼ ► there are parts of the app that are under the regions that are now reserved for like window
01:00:20 ◼ ► If you're in wondering mode on iPad OS, if they did this on Mac OS, they would have been in exactly
01:00:24 ◼ ► the same situation where there would have been some app where you can't reach some control
01:00:40 ◼ ► Do we move the window resize region and break applications or do we leave it where it is
01:00:46 ◼ ► And they chose the second bad choice, which is to leave the window resizing where area where
01:01:08 ◼ ► Uh, Tahoe wants you to update, or I guess prior versions of the OS wants you to update to
01:01:16 ◼ ► And Rob Griffiths, who is the creator of macOS hints and is now at many tricks, the creator
01:01:20 ◼ ► of moon, which many other apps, uh, writes, I found a way to block the Tahoe update prompts
01:01:27 ◼ ► Now, when I go to system settings, general software updates, I see this and there's a screenshot.
01:01:32 ◼ ► Your Mac is running the latest software update allowed by your organization, which is Sequoia
01:01:37 ◼ ► 15.7.3, the secret using device management profiles, which will let you enforce policies
01:01:46 ◼ ► One of the available policies is the ability to block activities related to major Mac OS
01:02:03 ◼ ► Uh, I don't still, I don't know if we should be calling attention to it, but anyway, based
01:02:11 ◼ ► The 90 day period isn't supposed to be a rolling date, but 90 days from the release date.
01:02:22 ◼ ► I, as I think I've complained about a few times in the show, the day Tahoe 26.0 was released,
01:02:45 ◼ ► But as time has passed, more and more people are becoming increasingly bothered to update
01:02:53 ◼ ► Maybe you've seen recently a big notification appear in the upper right hand corner of your
01:02:57 ◼ ► Mac screen that's a little bit taller than a normal notification that says, Hey, did you
01:03:00 ◼ ► And it wants you to update maybe system settings in your doc now has a red one and a badge on
01:03:10 ◼ ► Uh, this suggestion from Rob is a little bit involved that involves running shell scripts
01:03:40 ◼ ► It is a little bit tedious, but it gives you a 90 day window when the badge will go away.
01:03:47 ◼ ► Like my software update said, you're running the latest software allowed by your organization.
01:04:03 ◼ ► Once you've installed the thing, once you can make an alias to sort of re-up it for another
01:04:06 ◼ ► So the next time a badge appears, you can just open terminal and type no Tahoe and it return
01:04:12 ◼ ► Still have to do that in every account, but I set up those aliases and I set up those things
01:04:17 ◼ ► just so I won't be bothered to upgrade to Tahoe because I don't plan to do that anytime soon.
01:04:31 ◼ ► Uh, and if they do fix it, you know, I mean, I live, I've lived with it since 26.0 was out
01:04:37 ◼ ► If 15.7.4 comes out and they fix this, I'll be pretty surprised because normally at that
01:04:45 ◼ ► So John, at this point, what is, and I'm genuinely asking you, what is keeping you away from Tahoe?
01:04:51 ◼ ► Like, obviously you have complaints, but what is it about Tahoe that's enough to say it's
01:05:06 ◼ ► Like I just, everything I, I, you know, I, the thing is I use it every time I do software
01:05:26 ◼ ► Although often I, um, remote desktop into the little, uh, the, the MacBook air on my big
01:05:54 ◼ ► Like for example, if there was some app that only ran on 26 that I desperately wanted, I
01:06:13 ◼ ► Delete me makes it easy, quick, and safe to remove your personal data from hundreds of data
01:06:18 ◼ ► brokers online at a time when surveillance and data breaches are common enough to make everyone
01:06:27 ◼ ► When you do a web search for someone's name, all these sites pop up saying like, Hey, you
01:06:50 ◼ ► What delete me does is they automate the takedown and removal of your data from hundreds of data
01:07:00 ◼ ► And they go and they figure out their opt-out procedures and they add it to their list.
01:07:09 ◼ ► And it gives you reports about what it was able to remove, where it was found, how many
01:07:15 ◼ ► It's a great service because it's one of those things like you will never get yourself out of
01:07:28 ◼ ► I personally found it myself before they were a sponsor and decided to become a customer myself
01:07:36 ◼ ► You know, the wire cutter has named delete me their top pick for this kind of data removal
01:07:42 ◼ ► Take control of your data and keep your private life private by signing up for delete me now at
01:07:48 ◼ ► Get 20% off your delete me plan when you go to join delete me dot com slash ATP and use
01:07:55 ◼ ► The only way to get 20% off is to go to join delete me dot com slash ATP and your code ATP
01:08:09 ◼ ► Let's do some mask ATP because coincidentally, our ask ATP tonight largely relates to what
01:08:19 ◼ ► So Austin writes, was Alan Dye a better or worse steward of software design than Johnny Ive?
01:08:30 ◼ ► And it's so hard, too, because we make assumptions about whose fault or whose design, you know, was
01:08:48 ◼ ► I mean, I think the only way we can answer this question is basically just roll up every
01:08:55 ◼ ► So when it was Ive, we're just going to we're just going to, you know, obviously not truthfully,
01:08:59 ◼ ► but we're just going to assign all blame and all credit to everything having to do with software
01:09:06 ◼ ► And as you noted, that's not actually how the world works, but that's how it works with
01:09:15 ◼ ► You know, Alan Dye was Johnny Ives selected software chief or, you know, software design
01:09:20 ◼ ► Like that was kind of like how that worked out from everything we've heard, like delegation
01:09:25 ◼ ► When Johnny Ives was the head of all design at Apple, he, by all accounts, was massively overworked.
01:09:37 ◼ ► You know, we've heard stories of him like really diving in and getting it like really having an
01:09:44 ◼ ► That was a massive undertaking for everybody, but also, you know, in particular for Johnny
01:09:52 ◼ ► They were doing, you know, he was designing everything at Apple and even some things outside
01:10:03 ◼ ► Yeah, but it was very clear that, you know, Johnny Ive was spread very thin at that time.
01:10:07 ◼ ► So while Johnny Ive was the one in charge of all design at Apple, I don't think there's
01:10:13 ◼ ► that much of a distinction between the Alan Dye era and the Johnny Ive era in terms of software
01:10:21 ◼ ► You know, there are obviously some questions about like, you know, how many filters these
01:10:26 ◼ ► people have to go through on the way up the chain to get things approved and get things
01:10:29 ◼ ► at the door, you know, how much power they have, how many checks and balances different
01:10:38 ◼ ► And we don't have a great insight into that, except for occasional random things we hear.
01:10:46 ◼ ► Because I think the Alan Dye era that we call it today is just an extension of the Johnny Ive
01:10:51 ◼ ► era, which both of which were extensions of Tim Cook putting all design on Johnny because
01:11:00 ◼ ► Well, I think following the guideline that I set down, I have no problem drawing distinction
01:11:20 ◼ ► Even though I didn't like a lot of the stuff that Johnny Ive did with software, if you look
01:11:24 ◼ ► at, well, like, what is Johnny Ive's, like, signature, sort of, like, signature achievement
01:11:32 ◼ ► And for all the complaints about iOS 7, comparing it to Alan Dye's sort of crowning achievement,
01:11:46 ◼ ► But the general design direction wasn't terrible, and I think it was, like, a needed break from
01:11:52 ◼ ► the style that came before it, and it evolved into something pretty good, and it was better
01:12:03 ◼ ► Granted, we don't know if that's going to happen with 26s, because it's just been out for a year.
01:12:19 ◼ ► I don't like, I'm not saying either one was good, but if I had to personally pick, it is
01:12:26 ◼ ► Yeah, I think if we're comparing, you know, if we take, like, the people's names off of
01:12:36 ◼ ► iOS 7 did have a lot of problems, but I think where iOS 7 was better is that it left a lot
01:12:46 ◼ ► more room to tweak it into something that ended up being pretty good, whereas the 26 OSs,
01:12:54 ◼ ► I mean, maybe because they're just brand new and it's hard for us to see right now, but
01:12:58 ◼ ► like, a lot of the changes that 26 made, it's hard to look at them and find a good path out
01:13:11 ◼ ► Like, iOS 7, like, it was such a clear contrast, and we could see this is doing X, Y, and Z better
01:13:27 ◼ ► I feel like iOS 7 really did make it easier to develop apps that conform to different screen
01:13:33 ◼ ► sizes and that are flexible, and it did make app development easier in kind of the same
01:13:37 ◼ ► way that SF Symbols did, and sort of making Apple-caliber design approachable to developers
01:13:45 ◼ ► And I know, like, I'm sure someone's listening to this and saying, you dummies, Alan Dye designed
01:13:57 ◼ ► I don't care if Alan Dye designed every single thing that was released under Johnny Ive when
01:14:05 ◼ ► When Ive was in charge, the software Apple put out was better than the software put out
01:14:30 ◼ ► What set Apple off in a bad direction with software design was basically a disregard or an ignorance
01:15:01 ◼ ► Just this one doctor, since they're good at this one kind of doctoring, can obviously do
01:15:16 ◼ ► And that's what I, what gives me hope with Stephen LeMay being elevated, because it does
01:15:37 ◼ ► In particular, I think, I think as, as iOS 7 kind of evolved and morphed, I think somewhere
01:16:08 ◼ ► Whereas, because, you know, because again, like with the Mac, as we've talked about many times
01:16:17 ◼ ► And there's, you know, you can understand why, obviously, like that's an understandable
01:16:21 ◼ ► So what tends to happen on the Mac is whatever they need to do for iOS, the Mac kind of gets
01:16:30 ◼ ► It's being applied to a kind of a more complex, more heavily legacy code base and, and software
01:16:37 ◼ ► library and, and just a larger surface area in terms of like the needs it has to cover.
01:16:47 ◼ ► But because it is lower priority in Apple, because it's not as big of a business, it gets fewer
01:16:56 ◼ ► So it ends up getting fewer resources at a lower priority to solve what is often more complicated
01:17:04 ◼ ► So as a result, Mac UI redesigns in the modern Apple era tend to be half-assed, incomplete
01:17:17 ◼ ► The Mac is not going to get a ton of UI design resources from Apple if iOS needs them first
01:17:28 ◼ ► Like the whole idea of doing a 26 OS, like, and having it go across all the OSes with this
01:17:33 ◼ ► big redesign, you're dooming the Mac because as you said, it's going to get fewer resources.
01:17:36 ◼ ► So if you have fewer resources on the Mac, the ideal thing would be, okay, the Mac gets
01:17:51 ◼ ► Setting aside the fact that always, even before all the 26 OSes and anything, any kind of update
01:18:16 ◼ ► And I think the, the whole idea that we need to unify everything about these platforms, not
01:18:37 ◼ ► Um, so I, I think the idea that everything has to match between other platforms is like,
01:18:41 ◼ ► I mean, look, the entire tech business has tried this in so many ways, like the whole like
01:18:48 ◼ ► Like we've tried this so many times at so many levels and it's either incredibly difficult
01:18:57 ◼ ► And so the idea, so I think the reality of the Mac is that it will always be second priority
01:19:12 ◼ ► So I think what leadership should consider doing is scaling back the assumption that everything
01:19:24 ◼ ► And that, and that applies to lots of things, you know, on the software side, that's a whole
01:19:28 ◼ ► Um, but mainly on the interface side, this is like, this is where many of the sins have
01:19:39 ◼ ► In fact, the Mac needs to match those in very few ways, honestly, in terms of UI design for
01:19:59 ◼ ► The Mac is not that the Mac is a mature, stable platform that they don't have, or they don't
01:20:10 ◼ ► So they can either sloppily push it forward, which is the path they've sometimes chosen
01:20:16 ◼ ► Or they can scale back what they want the Mac to, to do in terms of like motion every year.
01:20:26 ◼ ► Another way to do that is just don't have the Mac try to match the UI or the trends or the
01:20:39 ◼ ► own thing that has different needs, different priorities, and a very different level of resources
01:20:44 ◼ ► and properly allocate the, the, you know, the tasks that you want the Mac to do every year
01:20:50 ◼ ► in terms of updates and everything with the resources that you're going to give it so that
01:20:59 ◼ ► We would rather have less done better than try to keep everything in perfect unison for
01:21:10 ◼ ► And by the way, I think even with a very small team with not many resources, maybe not even,
01:21:15 ◼ ► maybe the amount they have now, maybe even less, if given something like a two to three
01:21:25 ◼ ► If freed from the onerous strategy tax of, Oh, you got, you know, by the way, we're having
01:21:37 ◼ ► Those sort of Apple strategy taxes that are applied to the Mac drag that team down so much.
01:21:43 ◼ ► If you just gave like that exact team or even a smaller team, a multi-year runway to do what
01:21:49 ◼ ► they thought was best for the Mac without regard to whatever hell everyone else was doing, that
01:21:56 ◼ ► No, the other thing, which I think this team would understand is that you just need a family
01:22:09 ◼ ► Like it's very easy and possible to have a family resemblance between Apple OSs without
01:22:20 ◼ ► Like at various times in the Mac OS 10, iOS, iPad OS era, there has been that family resemblance
01:22:33 ◼ ► But before the sort of iOSification infection started to happen to Mac OS, they were able
01:22:40 ◼ ► to be themselves and all still looked Apple-ish and were sort of on their own schedule, right?
01:22:46 ◼ ► Like say someone decides to design, you know, iOS maybe is the leader and they come up with
01:22:58 ◼ ► Or even the reverse, let's say that the Mac team working on a two-year timeline comes up
01:23:02 ◼ ► with a new look for Mac OS and then the iOS people look over and say, hey, that's pretty
01:23:09 ◼ ► That kind of cross-pollinization is a good way to have a family resemblance of the products
01:23:16 ◼ ► The Mac comes up with some new interface idea and the iPad team looks at it and says, hey,
01:23:20 ◼ ► I think in the next version of, maybe the next version of iPad OS, we can do that thing that
01:23:31 ◼ ► What is not healthy is, I've come up with liquid glass and all our OSs need to take it whether
01:23:36 ◼ ► Or, I think every app should look like, should only have the features that the iOS version
01:23:41 ◼ ► So take all the Mac versions, remove half their features, and now they look just like the
01:24:11 ◼ ► because they have to implement the important feature of the year that is going across all
01:24:16 ◼ ► Tom Armstrong writes, what, if any, impact do you think Alan Dye's departure will have on
01:24:26 ◼ ► Will having a more orthodox head of design who actually understands UI UX result in a rethink
01:24:49 ◼ ► And, you know, it's nothing Steve LeMay can do to really change that at this point except
01:25:06 ◼ ► Yeah, and as we talked about when we talked about that rumor of touch on the Mac, I think
01:25:29 ◼ ► Like, to make Mac OS really touch-friendly, other, like, beyond that level, would require
01:25:40 ◼ ► Yeah, and you wouldn't want that because you'd be losing, like, the Mac is the platform where
01:25:44 ◼ ► you have precise pointing and lots of applications are only possible with precise pointing.
01:25:49 ◼ ► Like, the amount of radical redesigning on the Mac to be required to turn it into a really
01:26:02 ◼ ► The height, the thickness, even the font size is, like, so much stuff would have to change.
01:26:12 ◼ ► And I don't, not only do I not think it's a good idea, but I also, again, we were just talking
01:26:18 ◼ ► I don't think Apple would invest that much into the Mac to change that much for gains that
01:26:27 ◼ ► So, the answer to the question is, Steve LeMay is not going to have any real effect on the
01:26:32 ◼ ► Unless there was some really terrible decision that Alan Dye was insisting on that's easy
01:26:42 ◼ ► Liquid glass, the flat iOS 7 modern look, the glossy Lion Mavericks, end-of-an-era vibe,
01:26:54 ◼ ► For me, since I got my first MacBook around, Mountain Lion slash Mavericks, I still have a
01:26:59 ◼ ► And I was going through Stephen Hackett's incredible screenshot library, which I will try to remember
01:27:11 ◼ ► But as I quickly scroll through the different releases, I think Lion might be my favorite
01:27:48 ◼ ► I personally think it's very ugly, but I can understand some people liking how it looks,
01:28:33 ◼ ► But, yeah, so, like, when I look at screenshots of Panther, it's very nostalgic for me.
01:28:45 ◼ ► And to be clear, also, when I say, when I'm criticizing the 26 redesigns, I'm not saying
01:29:26 ◼ ► And even just going, like, even just when I look back, you know, five or six years, you
01:29:35 ◼ ► Like, when you see these kind of interfaces, like, oh, yeah, a lot of that is just what the
01:29:44 ◼ ► You know, maybe a gradient gets a little bit more solid, or a pinstripe goes away, or, you
01:29:49 ◼ ► know, like, a spacing gets adjusted a little bit on some icons, or, like, the icons change.
01:29:57 ◼ ► The, as for iOS, when I was designing for 26 all summer, when I would go back to my iOS
01:30:29 ◼ ► That's, like, some of, like, you know, the icon shapes and some of the designs and of the
01:30:44 ◼ ► That's, like, the way bars are handled, the way scrolling content goes under them, the way
01:30:54 ◼ ► But setting aside that, when I look at, like, you know, past iOS's, I mentioned earlier, I
01:31:01 ◼ ► think there was a really good era from, like, the iOS 12 to 15-ish era where the design was
01:31:09 ◼ ► It was a very good evolution of what it was trying to be from iOS 7, but, like, better and
01:31:30 ◼ ► So, the only ones that I could say, that I could pinpoint a particular look than say that
01:31:44 ◼ ► One is my nostalgic favorite, which is System 7, which was the most important operating system
01:31:50 ◼ ► I think System 7, in hindsight, is not as coherent as it could have been because there was a lot
01:31:59 ◼ ► And the sort of upgrade from black and white to color that happened to System 6 came to fruition
01:32:10 ◼ ► The macOS 8, Copeland-style, Aron-style, you know, macOS 8 through the end in 9, the sort
01:32:23 ◼ ► I don't know which OS you want to pick out because they didn't really change that much.
01:32:26 ◼ ► But anywhere from, like, you know, beginning with macOS 8 all the way till the end of classic
01:32:52 ◼ ► But, like, that look, that sort of platinum macOS 8-style, Copeland-style look, that was
01:33:01 ◼ ► If you look at the macOS 10 era and on, since I did reviews of all those in the early days,
01:33:06 ◼ ► every one of those OSes had something about it that I thought was awesome and something
01:33:16 ◼ ► It's not like there was ever a version of, like, oh, 10.7 is the one that got everything
01:33:20 ◼ ► Like, every single one of those OSes is like, oh, this looks really good, and this looks really
01:33:34 ◼ ► And it just got even, like, it became a real sort of clown show somewhere, actually, around
01:33:44 ◼ ► Like, they made these things cleaner and better, and they refined these, but this other area,
01:33:54 ◼ ► the sidebar should invade the toolbar, and that the legacy of that decision that has rippled
01:34:00 ◼ ► through the history, and we're still dealing with up to today's Floating Tahoe one, there's
01:34:04 ◼ ► no OS in, like, the Mac OS X era that got everything, got its act together to the degree that Mac
01:34:15 ◼ ► Now, that said, I did, like, around Yosemite, like, 10.10, there was, that was probably one
01:34:25 ◼ ► of the stronger looks before, like, Yosemite, Yosemite, LCAP, like, basically just before the
01:34:43 ◼ ► I am a little bit disappointed that, like, they drained the color out of the sidebar icons
01:34:52 ◼ ► So if I had to sort of, like, design your own, like, look for, like, a future Mac OS, take
01:34:58 ◼ ► all the good ideas of the past, it would be like, let the title bar be the title bar, kick
01:35:04 ◼ ► Don't make literally every single icon in the UI be a template image that's monochrome.
01:35:09 ◼ ► Like, I understand why they did that, and I like a lot of it, but it really takes a lot
01:35:20 ◼ ► So I think the only two clean wins are System 7 and the Mac OS 8 look, and then the Mac OS
01:35:24 ◼ ► There's lots of OSs I liked, parts of, but never, never since 10.0 has there been an OS
01:35:30 ◼ ► where every single aspect of it, I said, they finally got it all together, which has been
01:35:38 ◼ ► my reviews, because that made it interesting to see, like, oh, they're refining, they're
01:35:56 ◼ ► But yeah, I would say, like, probably, I think, where things really started to go wrong is when
01:36:02 ◼ ► Not because that one mistake was so egregious, but because it's emblematic of a thought process
01:36:26 ◼ ► This week on Overtime, we're going to be talking about the first wireless headphones from Fender
01:37:25 ◼ ► anti-marco armen s-i-r-a-c-u-s-a-s-y-r-a-c-u-s-a-c-u-s-a-c-u-s-a-c-u-s-a-c-u-s-a-c-u-s-a-c-u-s-a-c-u-s-a-c-u-s-a.
01:37:32 ◼ ► It's accidental. It's accidental. They didn't mean to. Accidental. Accidental. Tech podcast so long.
01:37:44 ◼ ► John, you're doing a migration of some sort? Yeah, so I talked about on like a couple episodes ago
01:37:52 ◼ ► about my migration of stuff to Cloudflare. It started out that I didn't want to keep renewing
01:37:58 ◼ ► SSL certificates. So I had Cloudflare be the SSL terminator for my existing websites on my shared
01:38:03 ◼ ► hosting. And then it turns out that they're going to change the rules for SSL certificates. You have
01:38:07 ◼ ► to renew them even more. So it was great that I did that. And then I think the last time I updated
01:38:11 ◼ ► you guys on it, it was like, OK, well, actually, I've moved my hypercritical.co website entirely to
01:38:17 ◼ ► Cloudflare instead of Cloudflare just doing SSL termination. Actually, I moved all the data there
01:38:21 ◼ ► as well. And it's hosted in their equivalent of an S3 bucket with this little tiny worker
01:38:25 ◼ ► process in front of it. I think that's where I left off. That's this is the migration I'm
01:38:29 ◼ ► talking about, which is like, you know, taking stuff that wasn't on Cloudflare and putting
01:38:34 ◼ ► it on Cloudflare kind of. But really, it's just it is essentially a migration away from what
01:38:37 ◼ ► I kept referring to as my crappy shared hosting plan. And I don't I don't mean to be mean to
01:38:43 ◼ ► my crappy shared hosting plan because it's not actually crappy. Like I discussed using cPanel
01:38:47 ◼ ► with it. The company is name cheap, which is a name registrar that register names cheaply. Right.
01:38:52 ◼ ► But honestly, they are really good implementation of what they are, which is like a, you know,
01:38:58 ◼ ► from an earlier time back when cPanel was the interface of the day, they do everything. You can
01:39:05 ◼ ► host a website there. You can host a static website. You can have a CGI bin. You can have a shell account.
01:39:09 ◼ ► You can have email addresses. You can register names. You can do SSL certificates like they do
01:39:14 ◼ ► everything for not a lot of money. There's a reason I've been there. I meant to look up how
01:39:18 ◼ ► long I've been there. I'm pretty sure I've been there for a decade or more. Um, but the downside
01:39:23 ◼ ► is when I say shared hosting, it means that like, yeah, I have a shell account on a machine that is
01:39:29 ◼ ► shared by other people. And there's like one web server running like Apache and engine or engine X or
01:39:33 ◼ ► whatever that serves things out of multiple accounts, home directories. And that means like, I don't have
01:39:38 ◼ ► my own dedicated stuff. It's not even, I think even Casey, you have like, don't you have like a
01:39:42 ◼ ► dedicated, well, you have a dedicated VM. I imagine you have a dedicated VM for your websites.
01:39:45 ◼ ► Yeah. Well, it's a Linode or Akamai Nanode. So yes, it's a dedicated VM as far as I'm my
01:39:53 ◼ ► understanding anyway, but it's the smallest, wimpiest, crappiest one they offer, which is five
01:39:57 ◼ ► bucks a month. Yeah. So, I mean, you're at the very least you have some reserved amount of resources
01:40:01 ◼ ► within your virtual machine that are, that are yours. But, um, and obviously cloudflare, it's a big
01:40:06 ◼ ► thing is they, they have a CDN and they have this, all these network abilities to block bots and denial of
01:40:11 ◼ ► service stacks and all that stuff. Not shared hostings don't have that because this type of
01:40:15 ◼ ► shared hosting account was from before that era. So that's why I've been considering migrate. I've
01:40:18 ◼ ► meant to migrate off of it for years, but it's like, well, I just have everything there and it's a lot
01:40:22 ◼ ► of stuff and it's built up over the years. So it's a pain to move. So I was doing it in steps of like,
01:40:26 ◼ ► I got to do this SSL thing. It's untenable for me to, you know, I was paying for SSL certificates
01:40:31 ◼ ► because that's how old things were. So I want my SSL certificates for free. I don't want to have to
01:40:35 ◼ ► deal with them. So Cloudflare will do all the renewals. And then I'm like, well, I could move my site
01:40:38 ◼ ► there. So hypercritical.co there. But once I sort of started doing that, I'm like, well,
01:40:42 ◼ ► now I have like some stuff at Namecheap and some stuff not. So I started looking at what I have
01:40:48 ◼ ► over there. Like Namecheap also provides email for like all the domains and stuff. So all my
01:40:52 ◼ ► hypercritical.co email was hosted there again, incredibly cheaply. Um, I had other domains that
01:40:57 ◼ ► like they technically have email boxes, but I would just forward them to my Gmail or whatever. But
01:41:01 ◼ ► like I, I have stuff there. So I was like, you know, and also I was using Postmark. Uh,
01:41:06 ◼ ► is that the name of it? The same thing we use for ATP to send me? Yeah. The email sending API. Yeah.
01:41:10 ◼ ► Uh, so I could send mail from, cause I still use Gmail as my main Gmail email client. So I can send
01:41:16 ◼ ► email from Gmail. So it legitimately looks like it's from hypercritical.co and you do that. Postmark
01:41:23 ◼ ► will do that for you. It'll need to set up the DKIM and SPF. And like, anyway, it's a bunch of
01:41:27 ◼ ► technical crap. But the point is I was paying Postmark to do that. And then the actual email
01:41:31 ◼ ► account for microbial.co was, you know, the inbox was landing at Namecheap and I was actually going
01:41:36 ◼ ► through a mail route. It was a large bunch of stuff. So I'm like, you know, let me see about
01:41:40 ◼ ► fixing that. And maybe it's because I was jealous of you two putting your fast mail referral URLs in
01:41:46 ◼ ► the show notes. So now I'm going to put a fast mail referral URL in the show notes. And yet, no,
01:41:50 ◼ ► they are not sponsoring this episode. This is not a sponsor, but in a referral URL, if you sign up for
01:41:55 ◼ ► fast mail through my thing, I get a kickback. All right. But anyway, I moved my email to fast mail.
01:42:03 ◼ ► Whoa, whoa, whoa, whoa. Stop. You are no longer at Gmail. You're not using Gmail for your email?
01:42:14 ◼ ► Right. So before I was using Postmark to be able to send email legitimately from hypercritical.co
01:42:20 ◼ ► and my other domains from Gmail. Now I'm using fast mail to do this. I see. So it's replaced
01:42:25 ◼ ► Postmark. Right. Before when email arrived, it would land in my Namecheap, like the MX records would
01:42:30 ◼ ► lead it through mail route into my Namecheap account. Now, when email gets sent to hypercritical.co,
01:42:34 ◼ ► it lands in fast mail and that gets forwarded to Gmail. But you see what I'm saying? Like I've
01:42:39 ◼ ► replaced Namecheap, mail route and Postmark with fast mail. And I tried it as like a sort of a trial
01:42:48 ◼ ► basis. I tried it out and I tried all the stuff. I'm like, yep, it does everything everybody said it
01:42:52 ◼ ► does. It was so easy to set up. It's super fast. It's great. Hypercritical.co slash fast mail. If you
01:42:58 ◼ ► want to sign up and give me a referral bonus. I signed up. I signed up for three years of fast mail.
01:43:02 ◼ ► Love it. I eliminated three vendors and replaced them with one for less money. Big win. Nice. So
01:43:09 ◼ ► now I'm looking at what's left at Namecheap at this point. Well, I have like my main family website
01:43:15 ◼ ► there and a bunch of other miscellaneous crap. Cause again, Namecheap, like you can set up an
01:43:19 ◼ ► arbitrary number of sites. Just, you just got to get the domains and you just like, I had so much crap
01:43:24 ◼ ► set up there. And the other thing I had running there was like a lot of cron jobs. Yes. Cron jobs
01:43:29 ◼ ► in being run through cron because it was a shell account. Um, and I had cron jobs like things I'd
01:43:35 ◼ ► written in Pearl, right? They just some kind of cron job that gather some information about my life or
01:43:39 ◼ ► business. And I've just been running for years and years. Right. And some of those cron jobs would put
01:43:44 ◼ ► things into the document route for one of my websites that's hosted on Namecheap. And one of the reasons I
01:43:48 ◼ ► never left is like, what am I going to do with all those cron jobs? Like, am I going to port those cron jobs
01:43:53 ◼ ► somewhere else? And do I really want to transfer all those files? Cause I had like stuff like my
01:44:02 ◼ ► iWeb was like a GUI website builder that Apple made for several years where you could like make like
01:44:08 ◼ ► photo albums and blogs and stuff. And it would pull from your photo library. And we did that for
01:44:12 ◼ ► years. Like when my kids were young, we did like blogs of like, you know, Alex's first birthday and
01:44:17 ◼ ► Alex is three months old and our formal family portraits. And like all those were like shoved into
01:44:22 ◼ ► direct because Apple used to host those. And then eventually I just like took the static files
01:44:25 ◼ ► and hosted them on my website. I have a whole legacy of stuff. Like, well, I can move the files,
01:44:30 ◼ ► but I don't know what I want to do about the cron job. So I started tackling that. I started taking
01:44:34 ◼ ► the static files and moving them to another sort of static hosted website in Cloudflare being run out
01:44:40 ◼ ► of R2. I did take the time to try to fix some of the iWeb stuff. That work is still in progress
01:44:47 ◼ ► because I thought I had done everything, but then I tried to play one of the movies on my phone and it
01:44:50 ◼ ► wouldn't play. Like I got them to play on my Mac and Safari and Chrome because I had to like sort of
01:44:55 ◼ ► re-encode them, but I couldn't get them to play on my phone. I did try to, I took, I did take a slight
01:45:00 ◼ ► diversion into, uh, trying to open up my old iMovie projects. Cause at a certain point, my iMovie projects
01:45:05 ◼ ► no longer were imported by the new version of iMovie. Like they got orphaned. So I was running iMovie in a
01:45:11 ◼ ► VM. I was like, first I tried like a lot. First I tried lion, but that was the wrong version. I,
01:45:17 ◼ ► by the way, I had to find an old version of iMovie or whatever. Then I tried a snow leopard and that's
01:45:21 ◼ ► the one that worked. But unfortunately VMware does not provide video hardware acceleration for snow
01:45:27 ◼ ► leopard. So when I tried to render the video in iMovie, no errors were thrown, but you get a black
01:45:34 ◼ ► square for the whole movie. So that's not great. Um, so I'm still working on that. I mean,
01:45:38 ◼ ► these are mini DV video, like as in a mini DV cassettes, you know, from 2004, right? I still
01:45:46 ◼ ► still have the, still have the thing, but I have the .dv file. I have the raw .dv file, but I don't
01:45:50 ◼ ► want the raw file. I want my edit. I made these cute little edited things of the kids, right?
01:45:53 ◼ ► Still working on that. So I have the thumbnail size ones that will play on the Mac, but not on the
01:45:57 ◼ ► iPhone. But anyway, I ported those things over. I ended up writing some rewrite rules to make a lot of
01:46:02 ◼ ► the iWeb magic that used to happen on Apple server happen on mine. There's a bunch of broken images
01:46:07 ◼ ► because they were hosted at me.com and they're just not there anymore. And I don't have them.
01:46:11 ◼ ► So I don't know what they were, but you know, I worked on that. And then the cron jobs, I mean,
01:46:18 ◼ ► it's just, I don't know, like a decade and a half of Perl scripts that do various things. Um,
01:46:30 ◼ ► like seven, eight, 10 Perl scripts to a language that will run in Cloudflare workers. Cloudflare
01:46:41 ◼ ► But I said, you know, uh, large language model technology was originally, uh, created for
01:46:47 ◼ ► translating human languages, like translate French to English or whatever. Like that's the origin of
01:46:52 ◼ ► that technology. That's why they're called transformer models or well, that's why, but they are called
01:46:56 ◼ ► transformer models. And they were originally designed with an eye towards human language
01:47:00 ◼ ► translation. They're actually pretty good at programming language translation too. So I said,
01:47:04 ◼ ► you know what, uh, chat GPT, Gemini, Claude, let me describe to you this Perl script. Can you translate
01:47:12 ◼ ► this to JavaScript for me? Cause I don't want to do it. It, I mean, it's not complicated. I know
01:47:17 ◼ ► JavaScript, but just like you have to go through every API and go, I'm using this Perl module. What is
01:47:21 ◼ ► the node equivalent? Can I get that module? Oh, there's six choices for the node module. Which one should
01:47:25 ◼ ► like, it's just tedious. And then you got to test it all. So I let the LLM have a crack at it.
01:47:30 ◼ ► It did a pretty good job. Minor fix-ups I need to do. But like, I mean, it's, it's all code that I'm
01:47:36 ◼ ► familiar with. And each of the scripts is not more than, I don't know, two or three pages of code or
01:47:40 ◼ ► whatever. Mostly what they do is read some kind of data sources and then write out a JSON file
01:47:45 ◼ ► somewhere or whatever. So it's not rocket science. It actually fits pretty well with node. I ported all my
01:47:50 ◼ ► cron jobs to, uh, no jazz. Wow. And wouldn't you know it? Cloudflare worker has a place where you
01:47:57 ◼ ► can run cron jobs down to being able to paste in like the little five, you know, the five numbers
01:48:01 ◼ ► at the front of jobs, right? You just paste them in that format and it's like, sure, we'll run that
01:48:05 ◼ ► job for you. That's pretty cool. That is cool. I didn't know that. That is very slick. So, so I'm
01:48:10 ◼ ► like, okay, I've, I've, you know, and the reason I never did that year for years and years is like,
01:48:15 ◼ ► who wants to rewrite that? But now I didn't have to rewrite it. Something that the LM did it for me
01:48:20 ◼ ► and I was feeling real good. And then I said, okay, but like the, a lot of the JSON files written out
01:48:27 ◼ ► by my cron jobs are in the format, uh, understood by the iPad application status board. I was wondering
01:48:34 ◼ ► if that's what was, what this was all about. I should have said it quicker for people who don't
01:48:38 ◼ ► know status board was an application made by great max software developer panic where they, uh, you run
01:48:45 ◼ ► it on the iPad and you basically get a series of boards and on each board, it's basically just a
01:48:50 ◼ ► grid that fills up the screen of an iPad and you can drag out little rectangles on the grid. And each
01:48:55 ◼ ► one of the rectangles, you can say, I want you to show a graph by reading this JSON file or the CVS file.
01:49:01 ◼ ► And they came up with their own format for the CVS and JSON files. And you can do line graphs and bar
01:49:06 ◼ ► graphs and lists and dials and icons. And they, they used it in their office to show like, here's our
01:49:12 ◼ ► software projects. Here's working, who's working on them. Here's how they're going. Here's how many
01:49:15 ◼ ► open issues there are. Here's the backlog in our customer service queue. That's what panic was using
01:49:19 ◼ ► it for. There's a great application in the panic style. And if you're listening to this, you're like,
01:49:23 ◼ ► so they made an iPad app. That's basically a toy version of Grafana and Prometheus. Yeah, that's what
01:49:31 ◼ ► they did. Why would you ever use that? Why wouldn't you just use graphite, Grafana, Prometheus,
01:49:35 ◼ ► or any of the other enterprise applications that do all this? Because I liked how status
01:49:39 ◼ ► board looked. And because when I was originally using status board, I didn't know about those
01:49:43 ◼ ► programs. I know about them now. And now I don't like them because I had to use them for years at
01:49:46 ◼ ► work. And yes, they're open source and free, but hosting any of them is much more complicated.
01:49:56 ◼ ► It's not, it's, and every year since then, I've been like, is this going to be the year that status
01:50:02 ◼ ► board stops working? Because I have it on my iPad and only on my iPad. It is only an iPad app. It
01:50:06 ◼ ► doesn't even run on the phone, I believe. And it still runs in iPadOS 26, but barely. It's like
01:50:14 ◼ ► every day I'm like, oh, is this going to like, it's kind of like candy bar, which is a icon
01:50:19 ◼ ► management application. I believe it was originally made by Icon Factory, but Panic had it for a while.
01:50:23 ◼ ► And anyway, that's been discontinued as well. But recently I was able to convince Panic to
01:50:32 ◼ ► this is a warning dialogue on it. But anyway, so like that's, those JSON files put out my
01:50:38 ◼ ► cron chips. I'm still looking at them in status board, but it always bothered me that I can only
01:50:42 ◼ ► look at them on my iPad, which means that in practice, I generally only tend to look at them
01:50:54 ◼ ► a web app version of status board. They would read the same JSON files and have the same UI,
01:51:00 ◼ ► but it would be a web app. Oh my. And I thought this is the perfect time to do something that I
01:51:06 ◼ ► wanted to do for a while, which is to try out, uh, you know, those coding agents that actually do
01:51:12 ◼ ► things for you. I use LMs for coding all the time, but I just paste things into a chat bot and see
01:51:16 ◼ ► what they have to say. But there are other tools where you don't do that, where you just say, here,
01:51:20 ◼ ► you do it. You make the file, you rename things, you make the edits, you check into the Git repo,
01:51:24 ◼ ► all that stuff. And so I tried to decide to use Claude code and I've never used it previously because I
01:51:30 ◼ ► don't want that thing anywhere near my code, but this is an empty directory. There's nothing in it.
01:51:34 ◼ ► And so I wrote up a Claude.md file and I said, this is what status board is. It was this app by panic.
01:51:40 ◼ ► It reads these files in JSON format. Here's a screenshot of the app from my iPad. See in that
01:51:44 ◼ ► screenshot, there's four graphs. Here are the JSON files and URLs that you can download that derive
01:51:49 ◼ ► those four graphs. Here's panic's documentation of the JSON format. Here's how the status board app
01:51:53 ◼ ► works. I wrote basically a one page, a little book report slash software spec reminding me of the good
01:51:59 ◼ ► old days of me being a software developer on a team where you had to describe functionality to other
01:52:02 ◼ ► people. I described it to Claude and I said, go for it, dude. Uh, and Claude churned for a while
01:52:09 ◼ ► and a few minutes later, uh, I, I launched the application locally and I had status board running
01:52:17 ◼ ► the web app. That's incredible. Oh my God. That is so freaking cool. And the thing is, was it perfect?
01:52:23 ◼ ► No, it doesn't really have any idea about UI. And it's kind of like anytime you're talking to a human
01:52:27 ◼ ► thing, like I had some experience with having like, uh, obviously new employees when I I've been a
01:52:32 ◼ ► software manager, I've been a software team lead. I've had interns, but like interns and very new
01:52:37 ◼ ► employees are very similar where if you give them instructions, but you don't, certain things you
01:52:41 ◼ ► leave unsaid cause you assume they'll know, but, uh, new employees and interns don't always know those
01:52:45 ◼ ► things. Same thing with Claude code. It didn't really, if I didn't say how or where some part of UI
01:52:51 ◼ ► should be, it just picked someplace and it made bad choices. So I spent, uh, the next, you know,
01:52:56 ◼ ► few rounds going back and forth saying that add button shouldn't be over there. This should be
01:53:01 ◼ ► centered. Why don't you make a hamburger menu in the upper left and put these items in it? Um,
01:53:06 ◼ ► and bug fixing, like one of the things that I feel like a human wouldn't have done is, uh,
01:53:11 ◼ ► to the, the screen to edit one of the tiles where you say like, this is the URL. These are the options,
01:53:16 ◼ ► blah, blah, blah. It has a bunch of check box for like, you know, do you want me to show dots?
01:53:18 ◼ ► How thick should the lines be crap like that? Uh, when you edited a tile, you could change those options
01:53:29 ◼ ► And a human wouldn't make that mistake. Cause a human would know, Hey, that dialogue that is like
01:53:33 ◼ ► the edit dialogue for, for a thing, you have to honor all the controls in it all the time.
01:53:38 ◼ ► Not just when you're editing, like when you create it, you know, it's the same UI, create a new tile.
01:53:43 ◼ ► Great. Fill out this form. You got to actually honor the stuff that I entered there. So a couple of
01:53:48 ◼ ► things like that, where I would go through the app and say, yeah, I don't think a human would make
01:53:51 ◼ ► that mistake. And it was like, anyway, um, all this, this entire thing is happening over the
01:53:57 ◼ ► course of one morning. I woke up in the morning with an empty folder. By the time I ate lunch,
01:54:01 ◼ ► I had status board running on the web to my satisfaction, reading all my old JSON files,
01:54:10 ◼ ► Amazing. I'm totally amazing. All credit to, uh, I'm not going to release this by the way,
01:54:15 ◼ ► because it's a hundred percent, a ripoff of status board. I even called it status board.
01:54:23 ◼ ► to extract the status board icon from the iPad app, from my, from my iPad and edit it into a
01:54:30 ◼ ► transparent Mac style icon or whatever that I could put on my web app. That took me longer than it
01:54:36 ◼ ► took to write the entire web app for cloud code to write the entire web app. Gracious. Uh, now I do
01:54:43 ◼ ► have to say that the next morning when I woke up and woke my Mac from sleep, the entire directory
01:54:51 ◼ ► containing my Git repo was gone. Oh, that's fun. I don't know who to blame this on. Obviously it was
01:54:59 ◼ ► still in Git. So cares like it was on GitHub. I just pulled the repo back down. I didn't lose any
01:55:03 ◼ ► unchanged changes. A little bit scary. I just like the whole directory was gone. I, the only thing I
01:55:11 ◼ ► could do was look in Dropbox, but unfortunately I don't run Dropbox all the time. So when I launched
01:55:15 ◼ ► Dropbox, it simply registered that the directory wasn't there and then registered the deletion is
01:55:20 ◼ ► happening at like 8 30 AM. That's not when the deletion actually happened. I think because that's
01:55:25 ◼ ► just when I launched Dropbox, but anyway, I just, I just did a get pull. I could have restored it from
01:55:28 ◼ ► Dropbox too, but I just did a get pull and pull the thing back down. Right. Um, and then since I had
01:55:35 ◼ ► been using cloud code, and by the way, one of the reasons I stopped shortly after noon, um, on the
01:55:40 ◼ ► thing was I ran out of tokens with cloud code. Cause I don't have the fancy version where you pay a hundred
01:55:43 ◼ ► bucks or whatever. Um, I don't have that many tokens to do things. So I ran out of tokens and I feel like
01:55:48 ◼ ► I should stop tweaking this application. It's fine. And in practice, I didn't end up tweaking it all after
01:55:51 ◼ ► that, but I was looking for other things to do with this. So I had two other ideas. One, now that
01:55:58 ◼ ► I had this cool status board app, it's like, well, there's a board that I've wanted and I wanted it
01:56:03 ◼ ► recently because Marco has been, uh, changing up his little like end of the show, uh, pitch thing. Uh,
01:56:08 ◼ ► you know, I don't know. Marco, start your end of the show thing. How does it go? Thanks to our
01:56:13 ◼ ► sponsors. Thanks to our sponsors this episode, Squarespace, delete me in, uh, Zapier. Right. And
01:56:17 ◼ ► recently he's been adding recently as in the past several months, he's been adding one of the
01:56:21 ◼ ► features of, uh, you know, blah, blah is overtime. ATP overtime, our weekly bonus topic. Right. This
01:56:26 ◼ ► week on overtime. Yeah. You had recently, you have been trying to characterize the length of the
01:56:31 ◼ ► overtime segment and your spiel and going, Oh, it's 15, 20 minutes. Cause you're just going by the seat of
01:56:37 ◼ ► the pants feel. I'm like, you know what? This is a perfect, that's my entire life, John. Yeah. This is a
01:56:41 ◼ ► perfect graph. This isn't a perfect graph for me to put in status board. So I wanted to do two
01:56:49 ◼ ► things. One, I got to write a script in no jazz to, uh, to get the data and write out JSON files. And
01:56:56 ◼ ► two, I just paste those URLs and status board and go. So the script is really the thing. So I said,
01:57:00 ◼ ► okay, cloud code here, you're up again. Now this time I have existing node scripts. Like I have
01:57:05 ◼ ► actually written some scripts that aren't Perl scripts that generate these JSON files. Some of the most,
01:57:08 ◼ ► they're all, all the modern ones are written in node already. So I already had a node script
01:57:12 ◼ ► that pretty much got all the data I wanted, except it wasn't getting overtime chapter links. And the
01:57:19 ◼ ► thing about overtime chapter links is obviously they don't come from the public version of the show
01:57:23 ◼ ► because overtime is only in the members version. So I needed the script to get the members version
01:57:26 ◼ ► of the show. And then I needed it to know what the overtime segment was. And the second thing is
01:57:30 ◼ ► I didn't just want to know the length of all the overtime segments. I wanted to see like a
01:57:38 ◼ ► like the lifetime average of overtime as I just care. It's like, is it trending up? Is it trending
01:57:41 ◼ ► down? What is the, what is the rolling average? Right? So I took an existing node JS script
01:57:45 ◼ ► and I ripped out the functionality that didn't need to be there, but left everything else.
01:57:50 ◼ ► And I said, Claude code, here's the script. I want you to leave everything as is all the scaffolding
01:57:59 ◼ ► about its logging and monitoring of the PID file and how it connects to the database and how it does
01:58:04 ◼ ► this and how, you know, like leave all that. That's all good. Put a comment in it said,
01:58:08 ◼ ► you add your new functionality here. What I want you to do is pull the members only version of the
01:58:13 ◼ ► show using authenticated S3 style client to get the episode out, parse the chapters, find the one that
01:58:19 ◼ ► begins with overtime, get the length, add the data to a file. And then every time you run and just see
01:58:23 ◼ ► if there's a new episode and add the data. And I want you to do two graphs. One that shows the
01:58:28 ◼ ► overtime length of every episode and two, uh, show an end episode rolling average. Uh, and it had real
01:58:35 ◼ ► difficulty. It can make the entire status board in the morning, but it was doing this and it was like,
01:58:40 ◼ ► it was just not quite getting it. Like it was more complicated, surprisingly, especially when I said,
01:58:45 ◼ ► you got to run on the dev environment where you're inside Docker and the passwords are all different
01:58:49 ◼ ► and things are authenticated differently, but you also have to run on the production one where things
01:58:52 ◼ ► are going to be different still. And it, it just kept messing it up. I spent an entire day on this.
01:58:57 ◼ ► And by the time I was done, it was working, but I could have done it way faster. So there's two
01:59:03 ◼ ► experiences there. One, it wrote in the entirety of status board in the morning. No way I could have
01:59:08 ◼ ► done that that fast. Mostly because I would have spent the whole time saying what graph library should
01:59:11 ◼ ► I use? Should I use the canvas API directly? What should I do? Like I don't have experience with the
01:59:15 ◼ ► APIs it was using, but on this thing, a node JS script that is starts off 99% with code that I wrote a hundred
01:59:24 ◼ ► I could have done it so much faster. And this is very much like the experience of having new
01:59:29 ◼ ► employees or interns where, yeah, you could just do something so much faster, but the whole point is
01:59:32 ◼ ► you're supposed to be, you're, you're mentoring somebody you're bringing up to be from a junior
01:59:35 ◼ ► developer to a more senior developer. So even though, yes, you could do it faster yourself,
01:59:40 ◼ ► taking the time to write out a spec and explain how you want it to be done and having them try to do
01:59:45 ◼ ► it and how you can come back and say, no, you didn't do X, Y, and Z and go back and forth.
01:59:49 ◼ ► Like that process, when you're doing with a human, you feel like you are helping a human
01:59:53 ◼ ► along their path to become better. When you're doing with an LLM, you feel like you're just wasting
01:59:56 ◼ ► your time. So two very different experiences. One was a huge time, time saver, amazing results.
02:00:02 ◼ ► The other one was I should have just done it myself because it would have been a lot faster,
02:00:06 ◼ ► but Hey, I felt like, you know, I'm doing it as content for the show and experience with these
02:00:11 ◼ ► models. Number three, one last one. This is all happening during this week, by the way,
02:00:16 ◼ ► this is like three days this week. I said, you know what? There's another project that I wanted
02:00:22 ◼ ► to do for all that I've never bothered doing. Cause it's just got a bunch of annoying, busy work and
02:00:26 ◼ ► like looking up what libraries to use. And it just seems like too much of a pain, but now I've got a
02:00:30 ◼ ► whole fresh days with the tokens, you know, woke up in the morning, right? I'm going to have,
02:00:42 ◼ ► Which would be easy if our site wasn't written in PHP, which is not the most modern language with the
02:00:49 ◼ ► most modern access to the most modern libraries. Do those two things go together? PHP and passkeys,
02:00:54 ◼ ► two things separated by decades, literal decades. That's part of like, I looked into it a bunch of
02:00:59 ◼ ► times before. I'm like, I could do this, but it just, it just doesn't seem fun. And I'm not sure I'm
02:01:04 ◼ ► going to pick the right library. And a lot of it's like, Oh, you got to use the Zend framework. I'm
02:01:07 ◼ ► like, I'm using the Marco framework, man. I'm not using whatever thing. Like they all wanted to
02:01:12 ◼ ► plug into some kind of like, here's what all the modern PHP stuff uses. I don't have any of that.
02:01:16 ◼ ► I don't want any of that. We don't use composer. We don't use a framework, like all these different
02:01:20 ◼ ► like, so all of like the guides for like, how do you do passkeys in PHP? It's like, that's not
02:01:26 ◼ ► going to work for me. But I'm like, you know what? Cloud code, you're up. So this is the first
02:01:31 ◼ ► time I'm putting cloud code, not in an empty directory, not in a directory with a single
02:01:35 ◼ ► file that I made, but I'm pointing it to the directory for like the, the repo that holds
02:01:39 ◼ ► the code that Marco wrote that runs ADP.fm. I'm doing it in a Docker container. It's all safe. It's
02:01:44 ◼ ► all cardened off or whatever. And I have stern instructions, never ever to commit to get and
02:01:48 ◼ ► you know, all this other stuff. But the point is, it's all, it's all in Docker using local
02:01:52 ◼ ► everything. Right. And it makes a run at it. I read a big document. I explained a great length.
02:01:58 ◼ ► Look, look, here's the system we've got. All right. Here's how things work. Here's where
02:02:02 ◼ ► our data is here. How, you know, you're running inside Docker when you're in dev, just FYI. And
02:02:07 ◼ ► here's where the things are. And I do the whole spec talking to cloud code. I stick it on it. It
02:02:12 ◼ ► goes, it says, great. It's ready. Go do it. I go to the page to try to create a passkey for
02:02:16 ◼ ► my account, which luckily the page does load creation of the cast passkey totally doesn't
02:02:21 ◼ ► work. I spend a little bit of time going back and forth with like, here's the error. It's
02:02:28 ◼ ► let's see what you can do. Cause cloud code can fix its own mistakes a lot of the time.
02:02:31 ◼ ► But I was going back and forth for basically the entirety of a morning and just absolutely
02:02:36 ◼ ► nothing worked. It was just error after error, after error, after error. So I had some lunch,
02:02:42 ◼ ► came back, dove in myself to try to fix what it was doing together. We started making forward
02:02:47 ◼ ► progress. I also started asking other LMs like my chat GPT or my Gemini window. So I wouldn't
02:02:58 ◼ ► end of the day, I eventually got it to work. And I do think this was actually probably net
02:03:03 ◼ ► net a time saver. Maybe. I think if I had known what to do, I could have done it faster than
02:03:07 ◼ ► cloud code. But the point is cloud code pointed me in the right direction by finding a good
02:03:10 ◼ ► library. And essentially, you know, how, how I integrate this library into the existing
02:03:15 ◼ ► code in a way that is, doesn't require massively restructuring stuff, but it just got so many
02:03:19 ◼ ► things wrong that I just had to go in and be like, I'll look up the documentation. That's
02:03:23 ◼ ► not the arguments this function takes. I will fix it for you. Like whatever. Um, but yeah,
02:03:29 ◼ ► uh, ATP.fm now supports pass keys. So if you don't like the thing where it emails you a login
02:03:33 ◼ ► link, you can add a password to your account, which I added myself ages ago, or you can also
02:03:37 ◼ ► add a pass key to your account and you can log in with the pass key. And if I screwed up
02:03:43 ◼ ► Claude's boss, but I'm pretty sure everything works as expected. Uh, so if you want to use
02:03:49 ◼ ► pass keys with ATP.fm, you can do that now. Wow. Uh, nothing, nothing is left on Namecheap. I
02:03:55 ◼ ► have canceled my Namecheap renewal. Everything I had on Namecheap is gone. I am fully on Cloud
02:04:06 ◼ ► I just did a long Rectifs episode because as coincidentally, uh, Merlin also discovered
02:04:11 ◼ ► or not discovered, but started using Claude Code this week. Very coincidentally, he also
02:05:00 ◼ ► I think it's already extremely useful. Oh, and by the way, for the overtime thing, I've
02:05:05 ◼ ► got to tell you, uh, the average all time average length of the overtime segment on our show,
02:05:09 ◼ ► it's quite highly variable. The average is 21.78 minutes. Um, the rolling eight episode
02:05:15 ◼ ► average is 25.6 minutes. So for your future end of the show things, if you want to say it's
02:05:21 ◼ ► about 20 to 25 minutes, or if you just want to say it's about 25 minutes, that will be accurate.
02:05:25 ◼ ► 25.6 minutes. If you ever want an updated stat, I can tell you it rolls right off the tongue.
02:05:30 ◼ ► It's about 20 minutes. Uh, but the problem is it's highly variable. Like our longest one,
02:05:35 ◼ ► I believe is like 45 or 46 minutes. And we have some that are like 15. So yeah, like I,
02:05:40 ◼ ► the reason I say 15 to 20 is like, I don't want to, I don't want somebody to think they're paying
02:05:44 ◼ ► for 20 minutes of content and they see one that's 15 and they're disappointed. So I like,
02:05:49 ◼ ► So then they see one that's 45 and they're also disappointed. So, you know, it's highly variable,