catatp.fm Unofficial Accidental Tech Podcast transcripts (generated by computer, so expect errors).

366: There’s Nothing You Can Fix in a Day

We invent new Apple products and fix some bugs for them, and John implements a seemingly trivial feature.

Episode Description:

Sponsored by:

  • Handy: The most reliable name in house cleaning. Get your first 3-hour cleaning for only $29 when you sign up for a cleaning plan.
  • Indeed: Post a job today. Get a free sponsored job upgrade on your first posting.
  • Squarespace: Make your next move. Use code ATP for 10% off your first order.

MP3 Header

Transcribed using Whisper large_v2 (transcription) + WAV2VEC2_ASR_LARGE_LV60K_960H (alignment) + Pyannote (speaker diaritization).

Chapters

  1. We ♥️ Catalina
  2. Grasshopper
  3. Butterfly RSI
  4. Finder bug defeated?
  5. Mac malware worsening?
  6. Sponsor: Squarespace (code ATP)
  7. Kontra’s Apple product 🖼️
  8. Sponsor: Indeed
  9. iOS 13.4 beta 🖼️
  10. Sponsor: Handy (code atp)
  11. #askatp: Fix one trivial bug
  12. #askatp: SSD partitions
  13. #askatp: Audiobook narration
  14. Ending theme
  15. SwitchGlass War Stories 🖼️

We ♥️ Catalina

⏹️ ▶️ Marco How do you feel? That good? A lot of coughing

⏹️ ▶️ Marco is happening.

⏹️ ▶️ Casey Delightful. I have known John for

⏹️ ▶️ Casey almost 10 years, and I have known Marco for what, 20-ish? Maybe a little more?

⏹️ ▶️ Casey Something like that. This is the first time I think the two of you have really and truly

⏹️ ▶️ Casey wronged me, because you allowed me to install Catalina on my iMac

⏹️ ▶️ Casey Pro, I’ve regretted it every moment of every day since.

⏹️ ▶️ Marco You allowed me to install it on mine.

⏹️ ▶️ John It’s time for you to take responsibility for yourself, Kazee.

⏹️ ▶️ Casey I was just about to say, ultimately, it was my own fault. But I’m going to blame the two of you

⏹️ ▶️ Casey because I’m so angry at myself for having installed

⏹️ ▶️ Casey this broke-ass OS on my computer. I’m so, so

⏹️ ▶️ Casey angry at myself. So remember when I bought a new computer because

⏹️ ▶️ Casey my old one was having this ridiculous issue with its peripherals, where it had like that machine gun track

⏹️ ▶️ Casey pad, which was like, brr, you know, there would be a whole bunch of latency and then it would all catch up and brr,

⏹️ ▶️ Casey all the haptics would fire all at once. Guess what’s happening within a day

⏹️ ▶️ Casey of putting on Catalina? All of a sudden, the machine gun track pad that had not once happened on Mojave, it’s

⏹️ ▶️ Casey happening a lot on Catalina. And I’m so angry. On the plus side, I just ordered a Mac Pro.

⏹️ ▶️ Casey Crickets. I’m kidding.

⏹️ ▶️ Marco Yeah. There’s no way. There’s no possibility of that.

⏹️ ▶️ John Are you sure it’s not the trackpad? Did we cover this before?

⏹️ ▶️ Casey How can it be the trackpad? It didn’t happen once in Mojave, not once.

⏹️ ▶️ John Right, well, so obviously there’s something wonky with the OS, but like maybe there’s something wonky with the trackpad

⏹️ ▶️ John that this OS deals with less well than the previous one.

⏹️ ▶️ Casey I mean, I am using the iMac Pro trackpad that I bought

⏹️ ▶️ Casey off of Underscore two years ago, whatever it was. So I do have the other trackpad, you

⏹️ ▶️ Casey know, the new trackpad in a box in the attic. So I could hypothetically go get it. But

⏹️ ▶️ Casey I, I knew that Catalina was just paper cuts

⏹️ ▶️ Casey everywhere. I knew it, but I wanted that sweet, sweet, swift UI action. And I wanted

⏹️ ▶️ Casey that sweet, sweet, automatic dark mode action. And I’m going to continue to blame you too, just because

⏹️ ▶️ Casey I’m really upset at myself and I can’t handle it because I’m an immature child, but you let

⏹️ ▶️ Casey me, the two of you let me and Marco, I heard you say earlier, as I was talking over you. I let you

⏹️ ▶️ Casey install Catalina. We have all failed each other. We have failed each other. You’re both fired and I quit.

⏹️ ▶️ Marco Yeah, I mean, in my defense, I didn’t know how many little paper

⏹️ ▶️ Marco cuts there were because I had only ever used it on my laptop so far. And I don’t use my laptop full

⏹️ ▶️ Marco time. I use it only when traveling. And so, and there’s, you know, just using a laptop in general, as much as I love the 16 inch,

⏹️ ▶️ Marco using a laptop in general is full of tiny paper cuts pretty often. And so I was just kind of assuming, this

⏹️ ▶️ Marco is just laptop life, you know? But when you use it full time on your desktop, you really get to know

⏹️ ▶️ Marco what’s going on here. I use way more apps on my desktop. I do much

⏹️ ▶️ Marco more consistent and harder and more diverse work on my desktop. My desktop just has

⏹️ ▶️ Marco more stuff on it. It has more files, it has more apps. And it’s not a clean

⏹️ ▶️ Marco install. Laptops always begin as clean installs for me usually, or at least most of the time. Whereas

⏹️ ▶️ Marco my desktop, I’m carrying the same install for usually multiple years at a time. So

⏹️ ▶️ Marco there’s more opportunity, I think, for the paper cuts to become

⏹️ ▶️ Marco tangible, I guess, on desktops, or like when you upgrade your primary computer,

⏹️ ▶️ Marco whatever that is. And so yeah, so I did that last week, hours before

⏹️ ▶️ Marco the show, because the new Xcode betas required it, and so therefore my job basically required it.

⏹️ ▶️ Marco And I stand by that that was a pretty good reason to upgrade and I’m

⏹️ ▶️ Marco able to do my work, but man, there sure are paper cuts here. Like, it’s just,

⏹️ ▶️ Marco little stuff is just broken or slower than it used to be, or fails

⏹️ ▶️ Marco seemingly silently, and like weird stuff breaks. I can’t use Skitch anymore to draw errors on

⏹️ ▶️ Marco images, and there’s like-

⏹️ ▶️ Marco, Casey No,

⏹️ ▶️ Casey yeah, you can, you totally can.

⏹️ ▶️ Marco I thought it broke. No. Oh, is it like the new crappy one? Like, I think I was holding on to an old one, because they ruined

⏹️ ▶️ Marco, Casey it. Anyway.

⏹️ ▶️ Casey Oh, yeah, it’s definitely got Evernote just plastered all over the place. It’s

⏹️ ▶️ Casey, Marco bad. Yeah,

⏹️ ▶️ Marco I was holding on to the old pre-Evernote one, because Evernote bought it and ruined it. OK, gotcha, gotcha, gotcha. So like, and

⏹️ ▶️ Marco I have a carbon copy cloner script that is dying every time I reboot that I have to figure out, how

⏹️ ▶️ Marco do I update whatever the heck that is? And it’s just like, upgrading has had

⏹️ ▶️ Marco a cost. And I still have yet to find any benefit other than it runs the new Xcode beta.

⏹️ ▶️ Marco Like, that’s it so far. And so it just kind of makes me sad.

⏹️ ▶️ Marco These are the kind of issues that you kind of expect for like the.0 release,

⏹️ ▶️ Marco but we’re currently on, we’re on the.3 release, and it’s mid-February,

⏹️ ▶️ Marco and we’re still having these issues. That feels like this is kind of a dud version.

⏹️ ▶️ Marco So I just hope that this is like an anomaly

⏹️ ▶️ Marco that maybe after this we’ll have a few years of better quality software. Between iOS 13

⏹️ ▶️ Marco and Catalina, this is a bad year. But I hope Apple can show us that

⏹️ ▶️ Marco they can have good years again, because I’m starting to have some doubts.

⏹️ ▶️ Casey Yeah, I don’t think I’m quite to that point, even as furious as I am, I don’t think I’m quite to

⏹️ ▶️ Casey that point, but I am really upset. And ultimately, as much as I snark and as much as I joke, I

⏹️ ▶️ Casey didn’t have to upgrade. Like I didn’t personally have any need for the Xcode beta quite yet.

⏹️ ▶️ Casey And so I could have just stayed on Mojave. And I’ve been really tempted to downgrade

⏹️ ▶️ Casey and either do a fresh install again or use a SuperDuper backup that I have,

⏹️ ▶️ Casey which I’ve never actually restored a SuperDuper backup, so it’s a little scary. Not because of SuperDuper, just because

⏹️ ▶️ Casey I’ve never done it. Yeah, neither have I. Yeah, exactly. But anyway, it was

⏹️ ▶️ Casey ultimately my own doing. And I joke and I snark, but it was my own fault. But it just bums me out because

⏹️ ▶️ Casey it used to be that the new OS, and there was a Twitter thread I think going around about this. Actually, I

⏹️ ▶️ Casey think you had commented on it, Marco, that it used to be very different, that it used to be

⏹️ ▶️ Casey something you got excited for. Like I vividly remember, for all its warts and issues,

⏹️ ▶️ Casey I remember just being overjoyed at doing the Windows 95 install for the very first time and my

⏹️ ▶️ Casey mind being blown by how different it was. Now, that’s a terrible analogy because this is just

⏹️ ▶️ Casey another version of the same OS we’ve had for over a decade, but it’s still, I used to get excited about macOS releases.

⏹️ ▶️ Casey used to be mostly okay from day one and now they’re just not. It makes me sad. But

⏹️ ▶️ Casey if you happen to be an Apple employee who happens to want to make me happy again,

⏹️ ▶️ Casey the feedback number 7585056, we will put a link in the show notes unless Marco cuts all this

⏹️ ▶️ Casey again, feedback 7585056. I have, I have a

⏹️ ▶️ Casey tailspin logs. I have cyst diagnosis coming out my ears. I don’t want to hear about a

⏹️ ▶️ Casey project to reproduce it. It’s not that kind of bug. Don’t even joke. But yeah, I am trying

⏹️ ▶️ Casey to, I have even filed a radar. That’s how desperate I am to fix this. Please, please,

⏹️ ▶️ Casey radar gods and Apple gods and Apple people and Apple employees, smile down upon me and fix

⏹️ ▶️ Casey my problems. Please, pretty please.

⏹️ ▶️ John Yeah, the interesting thing about these small problems is that since they are, since most of them aren’t

⏹️ ▶️ John like deal breakers or showstoppers, until you hear somebody else describe

⏹️ ▶️ John the same one, it’s very easy to think that it’s just you. And I had that experience when Marco was talking about the things that

⏹️ ▶️ John he was having in Catalina. Most of them I didn’t have. So I was like, well, I don’t know, maybe Marco’s computer

⏹️ ▶️ John is different than mine. But one of them had overlap. I was like, I never would have thought that that was a

⏹️ ▶️ John Catalina issue, but it’s, you know, hearing Marco do it, and I’d never mentioned it to either one of you,

⏹️ ▶️ John makes me think it is. And it was the one where you’re in the Finder and you do something

⏹️ ▶️ John that, like examples, I have two folders that are on

⏹️ ▶️ John my internal SSD and I drag a file from one of those folders to another. It

⏹️ ▶️ John takes so long that a progress bar comes up that says moving item.

⏹️ ▶️ John The dialogue appears, it says moving item, there’s a progress bar, the progress bar fills and then it completes. I’m like,

⏹️ ▶️ John really? I moved the file from one folder to another in my SSD

⏹️ ▶️ John in the finder and I got a progress bar

⏹️ ▶️ John, Marco and it wasn’t a fast

⏹️ ▶️ John progress bar And then Marco mentioned the same thing, doing stuff in the finder, being slow, like locally.

⏹️ ▶️ John Weird, very weird. And I have the same question Marco always has, like what could possibly

⏹️ ▶️ John have changed to make this happen? I don’t know. And it’s not

⏹️ ▶️ John just like, oh, I saw that once, so there was, you know, my computer was busy and I just saw it that one time.

⏹️ ▶️ John, Marco Very

⏹️ ▶️ John consistently. You know, again, it doesn’t break anything. The file does move. It happens

⏹️ ▶️ John in a second or two. So it’s not like I’m waiting a long time, but that should not be the type of thing

⏹️ ▶️ John that shows a progress dialog ever.

⏹️ ▶️ Marco Yeah, I mean, you’re moving files locally on the internal SSD of the best computer

⏹️ ▶️ Marco Apple makes.

⏹️ ▶️ John With huge amounts of resources, and it’s not doing anything else. Nothing else is running. I’m not rendering or

⏹️ ▶️ John compiling. Xcode isn’t even running. I’m just in the Finder, basically idle.

⏹️ ▶️ Marco Yeah, and this is, it’s easy for us to look at something like the Finder and say like, what could they possibly have changed?

⏹️ ▶️ Marco Like, it still pretty much works the same. Why would they need to have messed with anything? And I’m sure it’s one of those things

⏹️ ▶️ Marco where it’s more complicated than we think, and there’s more going on. And it’s not just the app. It’s the whole OS.

⏹️ ▶️ Marco Maybe it’s not the finder’s fault at all. Right. And so I’m sure there’s all sorts of APIs under the hood

⏹️ ▶️ Marco that maybe they had to change for 32-bit. Maybe they had to change because they integrated all the iTunes stuff into the Finder

⏹️ ▶️ Marco now for device management. Who knows? I’m sure they had reasons why they were messing around in there.

⏹️ ▶️ Marco But the result is like, this is not how

⏹️ ▶️ Marco computers should be from the world’s best computer company who shines

⏹️ ▶️ Marco in particular, at least historically, in their attention to detail and

⏹️ ▶️ Marco their amazing OSes and how their OS respects the user for attention and

⏹️ ▶️ Marco speed and everything. And we’re just seeing that break down so often these days.

⏹️ ▶️ Marco And it’s, ah. And there’s lots of stuff that’s made me mad about this. Like I got real

⏹️ ▶️ Marco mad about the news enabling itself for notifications and starting

⏹️ ▶️ Marco to alert me while I’m doing my pro work in my pro app, alert me about some BS in the news

⏹️ ▶️ Marco I don’t care about at all because I don’t care about the news at all. And like, this is my computer.

⏹️ ▶️ Marco What are you doing? You’re interrupting my work to give me like a breaking news headline from CNN?

⏹️ ▶️ Marco I don’t care. What? I never agreed to that. That’s not what this thing is for. is a tool for

⏹️ ▶️ Marco my work. Like, you know, like when a carpenter is, you know, using a circular saw,

⏹️ ▶️ Marco does it stop in the middle of what it’s doing? Because some politicians said something stupid.

⏹️ ▶️ John Don’t ask questions you know answers to for all you know, there are smart circular saws out there that are doing exactly that.

⏹️ ▶️ John, Marco Yeah,

⏹️ ▶️ John play

⏹️ ▶️ John, Marco audio.

⏹️ ▶️ John Every five boards you saw, you have to listen to an ad.

⏹️ ▶️ Marco Yeah, right. Exactly. Have you heard about work chat? Oh, God. Yeah. So like, Like, there’s

⏹️ ▶️ Marco just so many paper cuts. So many. And

⏹️ ▶️ Marco the number of paper cuts should be going down with time for a mature platform. That’s what the Mac

⏹️ ▶️ Marco is. It’s a mature platform. Honestly, so is iOS these days. Like, when platforms are new

⏹️ ▶️ Marco and they’re young and they’re moving fast and they break more stuff because they’re changing a lot more under the hood

⏹️ ▶️ Marco and they’re moving really fast and they’re still young and they still have to get their stability under them.

⏹️ ▶️ Marco Mac OS is not that. Neither is iOS, frankly. And

⏹️ ▶️ Marco we shouldn’t be having such fluctuations in quality

⏹️ ▶️ Marco so far into these product lines lifespans. And that’s why I’m concerned

⏹️ ▶️ Marco that there are significant problems that who knows,

⏹️ ▶️ Marco again, we’re talking about a giant company doing things with giant software. We don’t know the full complexity

⏹️ ▶️ Marco of what goes on and they don’t talk about it really. But there must be some kind of process issue

⏹️ ▶️ Marco or some kind of incentive issue or something that is like systemically causing

⏹️ ▶️ Marco the quality of a lot of the software to be declining. And I don’t know how to fix that.

⏹️ ▶️ Marco I don’t know how to run a giant software company. I don’t even know how to work with other people. So I’m

⏹️ ▶️ Marco the wrong person to tell you how to fix this. But it sure seems like there is some kind

⏹️ ▶️ Marco of like systemic issue or structural issue that

⏹️ ▶️ Marco a big company is suffering, that big company people need to know how to fix. And I can’t tell you what that is,

⏹️ ▶️ Marco but surely it’s their job to figure that out.

⏹️ ▶️ Casey All right, let’s try to turn all these frowns upside down, especially my own.

Grasshopper

⏹️ ▶️ Casey And let’s do some follow up, and we start with Jeff Hobbs. We had said, one of us had said, probably

⏹️ ▶️ Casey John, there’s no Swift Playgrounds for JavaScript, and apparently there kind of, sort of is. And it’s called

⏹️ ▶️ Casey Grasshopper, and that’s about all I know about it.

⏹️ ▶️ John Yeah, there are a lot of these learn to program type things that I’ve seen. Most of them aren’t that great, because Grasshopper 1 looks

⏹️ ▶️ John pretty darn good. There’s a web version, and an Android version, and an iOS version, and they’re all, you know,

⏹️ ▶️ John you’re a programmer, so we kind of know the job that they have to teach people. Like, they’re going to teach people about loops and conditionals

⏹️ ▶️ John and variables and functions and then just go from there. Like, just the basics of programming,

⏹️ ▶️ John but you want to do it in a way that doesn’t turn people off, doesn’t feel like academic, like,

⏹️ ▶️ John oh, math, variables,

⏹️ ▶️ John, Marco algorithms, so

⏹️ ▶️ John boring. You want to see something like, that’s the great thing about Swift Playgrounds. Oh, there’s a 3D

⏹️ ▶️ John rendered thing with a friendly little cartoon robot, and you get to make them move, and they hop. And

⏹️ ▶️ John that’s not part of the programming, but it’s your kind of reward. In my day, we had a thing called a turtle,

⏹️ ▶️ John and it was on your screen, and you used logo to make it move around, and it was not as graphically rich, but it was still way cooler

⏹️ ▶️ John than, you know, input a dollar sign, whatever, like 10 print, you know. Well, 10

⏹️ ▶️ John print, go to 20, was still pretty good.

⏹️ ▶️ John, Casey But anyway,

⏹️ ▶️ John having some kind of visual reward when you’re doing things. So all these have some sort of,

⏹️ ▶️ John you know, the web-based ones are great because you get to use the web technologies to throw something up on the screen immediately, whether

⏹️ ▶️ John it’s drawing boxes or lines or changing things to be different colors or responding to clicks, all of

⏹️ ▶️ John which is not the point of what they’re teaching you. They’re just trying to teach you the basics of programming, but having sort of cool

⏹️ ▶️ John stuff hooked up to it is key to keeping it interesting and keeping the person

⏹️ ▶️ John engaged because then they feel like, you know, that’s always the barrier. It’s like, okay, so I understand

⏹️ ▶️ John variables, conditionals, and loops. What can I do with that? And the answer is, oh, learn this

⏹️ ▶️ John incredibly complicated API and all the nuances of this language that you don’t even know yet, and then you

⏹️ ▶️ John can get a button on the screen, that’s no fun. But if it’s like in the course of learning the very, very basics,

⏹️ ▶️ John you’re already making things happen on a screen, that’s great. That’s why people love to learn HTML

⏹️ ▶️ John and JavaScript because even at the most basic level, things go on the screen. You know, you

⏹️ ▶️ John put text on a screen, you make it bold. It’s really easy to make a button. It’s really easy to make paragraphs of text,

⏹️ ▶️ John right? And then making that button do something when you click it is not that hard and you’re off to the races. So

⏹️ ▶️ John grasshopper.app, check it out, and there are lots of other similar things out there. You don’t need

⏹️ ▶️ John an expensive iPad or a Mac and Swift Playgrounds to learn programming.

Butterfly RSI

⏹️ ▶️ Casey Alright, moving on. Machaizalarchik, I hope I got that somewhat close to

⏹️ ▶️ Casey right. I looked it up beforehand. I did my best. So we’ll go with that. When it comes to butterfly keyboard,

⏹️ ▶️ Casey the combination of extremely low travel and minuscule spacing between keys means that I am either activating two keys at once,

⏹️ ▶️ Casey like A and S, or G and H, and so on, or I bottom out on each key press, putting strain on my

⏹️ ▶️ Casey thenar—thenar? T-H-E-N-A-R. I have no idea how to pronounce that. I should have looked that one up, too. Anyway, it

⏹️ ▶️ Casey is like repetitively pressing on a hard glass surface. My hands start to hurt after an hour or two of usage.

⏹️ ▶️ Casey Then there’s a sharp edge on the Touch Bar MacBooks which can cut off blood flow to my hands if I’m not careful.

⏹️ ▶️ Casey This sounds like a really enjoyable setup for you. My goodness, that’s not

⏹️ ▶️ Casey, John fun. This

⏹️ ▶️ John is in response to me saying that the bad keyboards on Apple laptops are not responsible for RSI

⏹️ ▶️ John because, you know, a key that you have to press less hard is better for RSI, not worse.

⏹️ ▶️ John this bit of feedback is important because regardless of what keyboard

⏹️ ▶️ John is put in front of you, things that you do can drastically change how your body

⏹️ ▶️ John reacts to it. So starting from the back end of this thing, the sharp edges of the, of the, uh,

⏹️ ▶️ John what’s the sharp edge of the tuck bar, touch bar, which can cut off blood flow to my hands. I don’t think he means the

⏹️ ▶️ John touch

⏹️ ▶️ John, Casey bar.

⏹️ ▶️ John I don’t know. Trackpad maybe. Yeah, yeah, yeah. I suppose so. The first point is

⏹️ ▶️ John it’s very bad for your hands to rest your wrists on anything while you type. Like you don’t want

⏹️ ▶️ John any pressure on that area that all of your muscles and tendons are sliding through.

⏹️ ▶️ John If you squish that stuff together, even just by the weight of itself, that’s bad. If you put it on something sharp, that’s

⏹️ ▶️ John even worse. So in general, ergonomically speaking, when you’re typing your wrists should not be resting

⏹️ ▶️ John on anything. Yes, I know they sell wrist rests with these foamy things. Yes, people do risk their risks on things.

⏹️ ▶️ John What people do and what is ideal for avoiding RSI are two very different things. So that’s one thing. And the second

⏹️ ▶️ John thing is how hard you type. I had the Apple standard keyboard

⏹️ ▶️ John too for years and years and years. And because it’s a big mechanical keyboard, it does

⏹️ ▶️ John require more force to press each key. There’s more travel and you actually have to press harder.

⏹️ ▶️ John But one of the things I found in my experience with RSI is at times

⏹️ ▶️ John when you’re under stress, under a deadline programming, or even just under stress playing games, a

⏹️ ▶️ John competitive game or something, you will find yourself, your whole body tensing up and

⏹️ ▶️ John pressing harder on the keyboard. And in general, the harder you press on the keyboard, the worse it

⏹️ ▶️ John is for your RSI. So getting a keyboard that requires less effort

⏹️ ▶️ John is generally a good idea because in theory, oh, I don’t have to press as hard as anymore. Problem is, if you still

⏹️ ▶️ John press just as hard, you’re not helping yourself. Like the only way you get the benefit of a keyboard that

⏹️ ▶️ John requires less pressure to press is if you use less pressure. If you use the same amount of pressure, you’re

⏹️ ▶️ John not getting any benefit. And it may feel even worse because you’re using the same amount of pressure

⏹️ ▶️ John and you don’t have any sort of travel to cushion the blow of your mighty fingers as you

⏹️ ▶️ John press really, really hard. So yeah, I mean, we’ve talked about RSI before, but

⏹️ ▶️ John in general, be aware of your body, be aware of what you’re doing. and if you can

⏹️ ▶️ John move your your habits in a couple of different directions, one is try to

⏹️ ▶️ John rest your wrists less on things. Try to do it less. Try to, you know, not rest them at all

⏹️ ▶️ John ideally, but if you’re going to rest them, do it less. And the second is press less hard when you type. Obviously you have to press

⏹️ ▶️ John hard enough to make the key activate, so if you have to get a keyboard that has a lighter effort, then do that. But

⏹️ ▶️ John in general, be aware of how hard you’re pressing. Be aware that when you’re under deadline that you end up

⏹️ ▶️ John pressing harder. That’s bad for you. Don’t do that. Chill out.

Finder bug defeated?

⏹️ ▶️ Casey All right, we do have some good news coming from bad news.

⏹️ ▶️ Casey Your finder toolbar bug has been defeated? Question mark?

⏹️ ▶️ John Maybe. This, this makes me feel bad about this bug because

⏹️ ▶️ John I suffered under 100 for such a long time. And other people reported to us like, Oh, it’s not

⏹️ ▶️ John just me. Other people have this, you know, most people don’t care about the final toolbar. But I heard from enough people. I’m like, Oh, it’s not just

⏹️ ▶️ John me. Other people have this deal as well. Then somebody suggested I should have saved the name I just I saw

⏹️ ▶️ John it in passing I’m like yeah well whatever someone suggested a solution that should have tried ages

⏹️ ▶️ John ago but didn’t just because it seemed so unlikely to help with such a weird bug

⏹️ ▶️ John which is the usual thing nuke your preferences just delete your preferences like I hadn’t changed my

⏹️ ▶️ John preferences there’s nothing in preferences related to this my preferences were not borked or corrupt every

⏹️ ▶️ John other setting that I expected to be there was there so preferences seemed fine but I’m like well

⏹️ ▶️ John I’ll try anything once I nuke my my preferences, haven’t seen the bug since.

⏹️ ▶️ John, Marco Hmm.

⏹️ ▶️ John Now, the thing is, all of my preferences are gone and I had to set them back.

⏹️ ▶️ John And also it seemed to reset the state of my windows, which makes no sense because there’s

⏹️ ▶️ John nothing in, anyway, I’m glad that it worked. I deleted my preferences. And by the way, if you do this and it doesn’t

⏹️ ▶️ John change anything for you, keep in mind that preferences are not as simple as they, I don’t know if they ever

⏹️ ▶️ John were, maybe they were at one point early in Mac OS X history, where there is a property list file and

⏹️ ▶️ John if you delete it your settings are gone there’s more to the system of settings than that property list

⏹️ ▶️ John file there’s a daemon process running that helps corral changes to that file

⏹️ ▶️ John so if you just delete it and don’t relaunch the finder or even if you delete it and do

⏹️ ▶️ John relaunch the finder it may just write back your old preferences just the way they were so it’s a little bit tricky you gotta,

⏹️ ▶️ John you know, kill the cf preferences daemon or cfprefsd or whatever the hell it’s called

⏹️ ▶️ John you know, delete the file, kill the demon, restart the finder. You’ll know when you’ve done it because all your settings will be gone

⏹️ ▶️ John and everything in the finder will be not the way you like it. That’s, that shows that you’ve succeeded. But

⏹️ ▶️ John I think it has pretty much cured my magic of reappearing toolbars. I’m still wandering through my

⏹️ ▶️ John windows, resetting all the toolbars, but I’m pretty sure every time I do it once for a window, they don’t come back. So let

⏹️ ▶️ John me switch to finder here for a moment. Yeah, I’m looking at my finder windows and none of them have toolbars.

⏹️ ▶️ John That’s the way it should be.

⏹️ ▶️ Casey So I’m sorry, what was the mechanism for nuking your preferences? What did you actually do?

⏹️ ▶️ John I was just saying that you can’t just delete the file. So first you have to know where the preferences are. They’re like library preferences, you know, and

⏹️ ▶️ John then com.apple.finder, whatever. You gotta know where that stuff is. Second is if you just delete that file, it would just get

⏹️ ▶️ John rewritten by the preferences daemon, which I think it’s called Cfprefsd, C-F-P-R-E-F-S-D,

⏹️ ▶️ John something like that. So I always just delete the file and immediately kill

⏹️ ▶️ John that daemon process, and then I also relaunch the finder for good measure, and I usually do it all in a single command

⏹️ ▶️ John line with statements separated by semicolons or whatever. Like there’s no convenient,

⏹️ ▶️ John easy way to do that. You can also do like defaults, delete com.apple.finder. There’s lots of different ways to do

⏹️ ▶️ John it. I’m just warning people that if you just think deleting the file is enough to do it and it doesn’t help you, that’s insufficient.

⏹️ ▶️ John You have to do more. It’s not the type of process that I recommend people do because you can really hose yourself

⏹️ ▶️ John by accidentally deleting stuff. And you know, I made a backup copy of my preferences first and yada,

⏹️ ▶️ John yada. I can generally don’t recommend this if you don’t have this problem with your toolbars. Don’t mess with your preferences

⏹️ ▶️ John You can really screw things up, but I’m just wanted to pass on that This actually did

⏹️ ▶️ John as far as I can tell work for me, and I’m very happy and speaking of Catalina with the paper cuts I have the paper

⏹️ ▶️ John cuts too. You know we just talked about them, but I continue to be Mostly

⏹️ ▶️ John okay in terms of you know so it’s like it’s all just paper cuts There’s nothing I

⏹️ ▶️ John don’t have the

⏹️ ▶️ John, Casey great

⏹️ ▶️ John machine gun trackpad. It’s not crashing. It’s not hanging you know, so I’m

⏹️ ▶️ John I Mean, I’m doing okay with it. I prefer something that performed better and didn’t have

⏹️ ▶️ John all those paper cuts, but it’s not Catastrophic from my perspective. So I think I’m just lucking out.

⏹️ ▶️ Casey Well, it’s all coming up millhouse this time I guess maybe I need a

⏹️ ▶️ Casey $15,000 computer and my OS will work properly.

⏹️ ▶️ John Maybe you didn’t spend enough money on your computer. You ever think of that? Yeah,

⏹️ ▶️ John, Casey maybe that’s what Apple

⏹️ ▶️ John would say. Apple would say, hmm, Casey, I see your problem. You’re using

⏹️ ▶️ John, Casey a

⏹️ ▶️ John used trackpad from somebody else’s computer.

⏹️ ▶️ Casey That’s gotta be it.

Mac malware worsening?

⏹️ ▶️ Casey Is Mac malware getting worse or no? What’s going on there?

⏹️ ▶️ John I didn’t follow too much. There was some company that had put out a big thing about

⏹️ ▶️ John how Mac malware is getting worse and it’s twice as bad as PCs and whatever. It was a very sort

⏹️ ▶️ John of sensational headline about how terrible Mac malware was. Jason Snell had a good response to it. We’ll link to

⏹️ ▶️ John it in the show notes so you can read it. This was related to our previous discussion. I

⏹️ ▶️ John think it was an AskATB. Someone said, you know, all my Windows friends use antivirus

⏹️ ▶️ John stuff, but my Mac using friends don’t. What’s the deal with that? And I

⏹️ ▶️ John came down on the side of saying, you know, Macs are not invulnerable. They can get viruses and malware and adware and all

⏹️ ▶️ John sorts of bad things. But in general, my experience with antivirus software

⏹️ ▶️ John for the Mac has led me to continue to recommend that regular users not install it. We

⏹️ ▶️ John got some feedback from people like, oh, people who don’t use antivirus recommending against it. I’ve had mandatory

⏹️ ▶️ John antivirus software on my computer at work for over a decade. Like I have vast experience

⏹️ ▶️ John, Casey with antivirus software,

⏹️ ▶️ John eight hours a day, many different brands, many different operating systems, many different pieces of hardware, all

⏹️ ▶️ John Macs, right? So I do not lack experience in this area. It is a trade-off though.

⏹️ ▶️ John Like there, you know, you, people are vulnerable to getting

⏹️ ▶️ John crap on their your Macs, but I feel like still, net net,

⏹️ ▶️ John the crap that is most antivirus software is worse. And not because they’re bad quality, some of them are bad quality, some

⏹️ ▶️ John of them are shady, but even the best ones with the best intentions, the thing they’re trying to do

⏹️ ▶️ John to insert themselves between what’s happening on your computer, like

⏹️ ▶️ John before each thing that happens that could potentially be dangerous, insert themselves and mediate that and see whether it’s

⏹️ ▶️ John safe, Inherently is potentially buggy and potentially slow and then

⏹️ ▶️ John the other things were routinely they’ll you know Wander over your entire computer and do something for

⏹️ ▶️ John everything on your computer That is also inherently slow and burns battery and makes everything slower or whatever. So

⏹️ ▶️ John I still recommend that Mac users Shouldn’t install any

⏹️ ▶️ John shouldn’t buy and install any antivirus software Like reflexively like oh you got a Mac. You got to get

⏹️ ▶️ John antivirus software You want to install a clipboard history thing reflexively? Fine. You want to install

⏹️ ▶️ John a launcher like LaunchBar reflexively? Fine. But I still think it is not the right move to say, oh, you’ve

⏹️ ▶️ John got a Mac? You’ve got to have Insert Antivirus Program. You don’t. I think you don’t.

⏹️ ▶️ John That said, though, Marco mentioned Catalina, and we’ve talked about this before, lots of paper cuts, lots

⏹️ ▶️ John of annoying things. But what’s the benefit? Other than like, OK, now I can run the latest Xcode or whatever. What benefit

⏹️ ▶️ John am I getting? And one thing we heard from a lot of the feedback from people who are sort of in the field and coming

⏹️ ▶️ John down the side that, you know, Mac malware is worse than you think. Not in terms of viruses, but just in terms of

⏹️ ▶️ John crap that tricks people into installing it on their computer, and then just throws

⏹️ ▶️ John ads in their faces or does other annoying things or changes their homepage or is very difficult to uninstall.

⏹️ ▶️ John That has definitely gotten worse over the years on the Mac. And it’s, you know,

⏹️ ▶️ John antivirus can kind of help, but in general, these are programs that users are

⏹️ ▶️ John technically quote unquote choosing to install, You know what I mean? So there’s only so much

⏹️ ▶️ John an anti-virus, anti-malware thing can do if it doesn’t recognize this particular variant of this thing, or

⏹️ ▶️ John some of them are semi-legitimate. Well, it’s like, well, it’s not malware. It’s just

⏹️ ▶️ John a program of dubious utility that shows a lot of ads and is hard

⏹️ ▶️ John to uninstall and get into this wishy-washy area.

⏹️ ▶️ John, Marco But anyway. Like

⏹️ ▶️ John Zoom? Yeah. But Catalina, according to a

⏹️ ▶️ John lot of people who wrote into us has really helped in this regard. All of that crap that annoys us about

⏹️ ▶️ John constantly asking permission for things and refusing to run unless given 25 okays

⏹️ ▶️ John and all that stuff actually makes it much more difficult for people to basically

⏹️ ▶️ John willingly, you know, like, oh, well, you installed this piece of adware, right?

⏹️ ▶️ John You have to click through more things to make that happen now. There are fewer things that programs can do without asking

⏹️ ▶️ John for permission, And that adds friction to the experience. And the upside is the people who

⏹️ ▶️ John are on the front lines of supporting people with Mac say, the people who have Catalina have far

⏹️ ▶️ John fewer cases of they come in and their computer is just festooned with adware and

⏹️ ▶️ John other sort of junk software. Just because it’s harder for that junk software to get a foothold

⏹️ ▶️ John in Catalina because it requires so much more tedious interaction from users.

⏹️ ▶️ John If you’re a developer, it’s annoying. I know lots of Mac developers are annoyed like, oh, my perfectly legitimate program now

⏹️ ▶️ John has to walk people through this process of open system preferences,

⏹️ ▶️ John go to security and privacy, go to this tab, press the little plus button, navigate to

⏹️ ▶️ John find my app, select the app, go click. Because before you do that, my app can’t do anything,

⏹️ ▶️ John and previously you didn’t have to do any of that. That’s annoying and that’s difficult, but that’s exactly the stuff that makes it more difficult

⏹️ ▶️ John for these borderline malware, adware,

⏹️ ▶️ John junk stuff to get a toehold. So I think, to be fair,

⏹️ ▶️ John for all of the pain and inconvenience that it’s causing all of us, there is actually an upside

⏹️ ▶️ John to that. Mostly, that doesn’t benefit us because we’re not installing malware.

⏹️ ▶️ John Well, except I did install those Logitech drivers.

⏹️ ▶️ John, Marco But

⏹️ ▶️ John that’s unfair. So far, they’ve been fine. But I do occasionally install things against my better judgment.

⏹️ ▶️ John But for other people who are not as into computers as a hobby,

⏹️ ▶️ John It is a safer environment for them just because it is harder for them to do something that

⏹️ ▶️ John screws up their system.

⏹️ ▶️ Marco We are brought to you this week by Squarespace. Start building your website today at squarespace.com slash

⏹️ ▶️ Marco ATP. Enter offer code ATP at checkout to get 10% off. Make your next move with a beautiful

⏹️ ▶️ Marco website from Squarespace. I know a lot of you are programmers. I’m a programmer. I can write my own CMS.

⏹️ ▶️ Marco I have. Many of you probably have too. But the reality is it’s not really worth writing

⏹️ ▶️ Marco your own CMS for most websites anymore. It isn’t even worth installing one of the pre-made ones on your own server

⏹️ ▶️ Marco anymore. Really, Squarespace is such an incredibly pragmatic option, even

⏹️ ▶️ Marco if you know how to make websites, because with Squarespace, you can make amazing-looking websites

⏹️ ▶️ Marco with incredible, rich functionality, with almost no effort at all, and they will look

⏹️ ▶️ Marco amazing. They’ll look better than anything that I know I could have ever made, let alone, I don’t know what your skills are, but they

⏹️ ▶️ Marco look way better than anything I could ever make. And they have functionality I would never wanna write myself, like storefronts,

⏹️ ▶️ Marco or analytics, stuff like that. They have all that built in, galleries, splash pages,

⏹️ ▶️ Marco all this amazing stuff that I didn’t have to build myself. And then once your site’s up and running, they keep

⏹️ ▶️ Marco it up for you. So you don’t have to support it. You don’t have to run software updates on your servers. You don’t have

⏹️ ▶️ Marco to worry about your servers going down and have like monitoring services and stuff. You don’t need any of that with Squarespace because

⏹️ ▶️ Marco they take care of all that for you. So the reality is no matter what your skill level is, whether you’re a total

⏹️ ▶️ Marco novice or whether you are a programmer who can make your own CMS from scratch if you really want to, Squarespace is

⏹️ ▶️ Marco the best option most of the time for most sites. So check it out today no matter what your skill level is. No coding

⏹️ ▶️ Marco is required. No updates. None of that. Super great support. Easy to use. See for yourself at squarespace.com

⏹️ ▶️ Marco slash ATP where you can start a free trial site. You can build the whole site there before you pay anything. When you

⏹️ ▶️ Marco sign up for Squarespace, make sure to head back there squarespace.com slash ATP use offer code ATP to

⏹️ ▶️ Marco get 10% off your first purchase.

Kontra’s Apple product

Chapter Kontra's Apple product image.

⏹️ ▶️ Marco That’s squarespace.com slash ATP code ATP. Make your next move with a beautiful

⏹️ ▶️ Marco website from Squarespace.

⏹️ ▶️ Casey I wanted to ask you guys a question that I saw fly by on Twitter a while ago,

⏹️ ▶️ Casey and it was not directed at us in any way, shape or form, but I thought it was interesting. This is a contra on Twitter

⏹️ ▶️ Casey who has a Twitter handle counter notions and they write, which is in the most dire

⏹️ ▶️ Casey need of a competitive product by Apple? A, an internet Wi-Fi slash router with

⏹️ ▶️ Casey non-tracking VPN. B, a digital media player slash microconsole.

⏹️ ▶️ Casey C, a home automation orchestration center. Or D, server-side Swift and

⏹️ ▶️ Casey cloud computing platform.

⏹️ ▶️ John Are you getting it yet, Casey? These are not four separate products.

⏹️ ▶️ John, Casey This is one product and we’re calling

⏹️ ▶️ John it iThing.

⏹️ ▶️ Casey iThing, yep. I need a thing. I need an iThing in my life. I don’t know,

⏹️ ▶️ Casey I saw this and I just thought it was interesting. And in classic Casey fashion, I’m

⏹️ ▶️ Casey hard-pressed to pick one that I think is absolutely the winner. I think

⏹️ ▶️ Casey if I had to pick sitting here right now, and you’ll ask me again in 10 minutes, I’ll change my mind, but I think

⏹️ ▶️ Casey I would really love to see Apple really and truly embrace server-side Swift and have some sort of

⏹️ ▶️ Casey cloud computing thing. I don’t know if that would end well, and this is where all the people start firing off

⏹️ ▶️ Casey emails to me about how Apple does support server-side Swift. No, I mean like really support server-side Swift.

⏹️ ▶️ Casey I think that would be the most fascinating to me and most interesting, but Marco, what do you think between internet Wi-Fi

⏹️ ▶️ Casey router, non-tracking VPN, digital media player or micro console, a home automation or orchestration

⏹️ ▶️ Casey center or server-side Swift, which I know how much you just really are looking for a different

⏹️ ▶️ Casey server-side language to use. I know you’re just so sick of using PHP, so I would assume

⏹️ ▶️ Casey you agree with me here?

⏹️ ▶️ Marco Yeah, of course. No, of course not.

⏹️ ▶️ John He’s not going to pick one from this list because in true top four fashion, he would suggest a letter E.

⏹️ ▶️ John So go ahead, Margo. I’ve predicted.

⏹️ ▶️ Marco First of all, digital media player slash micro console. What does that even mean?

⏹️ ▶️ Marco As far as I can tell, that’s like the iPhone, right? It’s like a console, but smaller. Like the iPhone? That’s also a digital

⏹️ ▶️ Marco media player, right? Like almost everything Apple makes is a digital media player slash micro console these days.

⏹️ ▶️ Marco So I don’t think that’s a particular need. I think they already serve that need. I think micro console

⏹️ ▶️ John is, I think he’s describing Apple TV. Like a small thing that connects to your television.

⏹️ ▶️ John They mean game console. I don’t know. Just let us cross out B. No one knows what it is.

⏹️ ▶️ Marco Yeah. What’s a digital media player? Is that a phone? Because it used to be like an iPod or something, but like we don’t have those anymore. Like those.

⏹️ ▶️ Marco I

⏹️ ▶️ Casey would assume this is either like a console video game player, you know, something

⏹️ ▶️ Casey more Switch-esque or alternatively something more like

⏹️ ▶️ Casey a Fire Stick, you know, a Fire TV Stick where it’s.

⏹️ ▶️ Casey, Marco That’s not a

⏹️ ▶️ Marco console. So it’s the Apple TV.

⏹️ ▶️ Marco, John So they already make it. Apple TV is basically a

⏹️ ▶️ John microconsole. Imagine Apple TV, but it came with a controller. I don’t know. Yeah.

⏹️ ▶️ Marco Imagine Apple TV, but the games thing actually worked out, basically. So yeah, I mean,

⏹️ ▶️ Marco fine, I guess. That’s not really a thing. Or at least it isn’t a thing that Apple seems capable or willing to make.

⏹️ ▶️ Marco Home Automation Orchestration Center. Isn’t that a HomeKit hub, which

⏹️ ▶️ Marco Apple TVs and HomePods already are?

⏹️ ▶️ John I think that when I look at that, I think they mean something like the home

⏹️ ▶️ John devices that have screens, like that Amazon thing. It’s basically like a HomePod with a screen

⏹️ ▶️ John on it.

⏹️ ▶️ Marco Okay, so I guess orchestration center, I guess if it’s interactive by the

⏹️ ▶️ Marco owner instead of just

⏹️ ▶️ John like. Yeah, it’s like it’s always on, it’s got a screen, you can control all your HomeKit stuff from it, it’s also a speaker. Like Google’s

⏹️ ▶️ John got one, Amazon’s got one. Right,

⏹️ ▶️ Marco but see that would require Apple to have a useful, first of all, So it would require HomeKit

⏹️ ▶️ Marco to be way more solid than I think it is, and it would require them to have much

⏹️ ▶️ Marco better care and skill towards designing the home interface,

⏹️ ▶️ Marco which they don’t seem to care about. So I don’t see that really being

⏹️ ▶️ Marco a thing. The WiFi router slash non-tracking VPN,

⏹️ ▶️ Marco that is interesting. They already did in the past make Wi-Fi routers that

⏹️ ▶️ Marco were very good for a long time. As Wi-Fi routers got more complicated and started integrating

⏹️ ▶️ Marco more like service-y style components, Apple got out of the market. I think

⏹️ ▶️ Marco they could do a really good job with that if they really wanted to. That seems like a big if though, it seems like they have

⏹️ ▶️ Marco no interest, but that wasn’t the question, so you know, admittedly. But that I think would be interesting because

⏹️ ▶️ Marco there are very, very few companies now making routers that aren’t

⏹️ ▶️ Marco either owned by the ISPs and just put whatever the ISPs want on it,

⏹️ ▶️ Marco which is probably what most people use, or all the aftermarket ones are from a decreasingly small

⏹️ ▶️ Marco number of networking equipment companies and more consumer-facing brands like Eero

⏹️ ▶️ Marco and stuff like that, that they keep integrating more and more service stuff and some of them get bought by bigger companies,

⏹️ ▶️ Marco and so it’s a little bit, I feel a little uncomfortable about that market, to be honest.

⏹️ ▶️ Marco I’m perfectly happy with my regular home nerd setup by Ubiquity, but what if somebody

⏹️ ▶️ Marco big buys Ubiquity? Then I gotta figure something else out. Or what if Ubiquity turns bad? What if they start wanting

⏹️ ▶️ Marco more analytics because they’re not making any money off of existing installations? Who knows? That kind of stuff

⏹️ ▶️ Marco can happen to any company. So maybe that would be my pick here. Because

⏹️ ▶️ Marco the other option, server-side Swift and cloud computing platform, I think I’m gonna be one of those people

⏹️ ▶️ Marco that Casey just said, please don’t email him. I, as much as I would love

⏹️ ▶️ Marco for Apple to really put a like successful amount of effort into

⏹️ ▶️ Marco making server side Swift really awesome and really a thing. And also

⏹️ ▶️ Marco to have a cloud computing platform. I don’t know what that means. Is that like, like, like Amazon web services kind of thing or like, you

⏹️ ▶️ Marco know, app engine or like that kind of thing. Like, yeah, it means like

⏹️ ▶️ John a Google cloud and AWS

⏹️ ▶️ Marco Azure. Yeah. Like if it’s one of those kinds of things, frankly, I don’t love those things. Like, that’s why I keep using

⏹️ ▶️ Marco Linode for all my servers, because I like having more direct control over my servers. I don’t

⏹️ ▶️ Marco like more abstracted hosting concepts, because typically, the more abstracted

⏹️ ▶️ Marco ones have harder to determine performance characteristics under certain

⏹️ ▶️ Marco loads until you just try it. And typically, the cost control is very difficult.

⏹️ ▶️ Marco The abstract server, or like the more abstract or high-level computing platforms tend to be more

⏹️ ▶️ Marco expensive by a significant margin for the amount of computing power I tend to need with my server stuff than

⏹️ ▶️ Marco the more basic, like do-it-yourself, either dedicated or VPS hosts, like what I tend to

⏹️ ▶️ Marco use. So I personally don’t have any need for that. I think it could be interesting. But

⏹️ ▶️ Marco server-side Swift as a separate thing, I would love that because as I mentioned, you said, you

⏹️ ▶️ Marco joked that I do love PHP, and that’s true, but if I have to learn Swift anyway, and

⏹️ ▶️ Marco if my career is gonna require mastering Swift in this other area of iOS development, it

⏹️ ▶️ Marco would be nice if I could use the same language and master the same language and build all those same skills once instead

⏹️ ▶️ Marco of having instead of continuing to have two completely different languages that I use for the two different halves of

⏹️ ▶️ Marco my apps functionality basically like the web half and the and the app half so that would be great

⏹️ ▶️ Marco but I don’t know how realistic that is but again it wasn’t a question so I I guess I’m talking

⏹️ ▶️ Marco myself into the server-side Swift or the internet router but okay

⏹️ ▶️ Marco because that’s the router problem, problem with the router is like, how much impact can you really have there?

⏹️ ▶️ Marco Because again, most people in the US at least, I don’t know how it is in other places, but the market in the US

⏹️ ▶️ Marco is like almost everyone just uses the router that their internet provider provides or

⏹️ ▶️ Marco forces them to rent every month. And so there’s that, you know, it’s

⏹️ ▶️ Marco like what the Steve Jobs like, there’s no go-to-market strategy here. Like there’s a reason why there’s a lot of consolidation

⏹️ ▶️ Marco in the router business. Like it’s a hard business business because most customers in the US of broadband

⏹️ ▶️ Marco internet, which is most people just have one for free or, you know, for quote free that they don’t need, they don’t buy an aftermarket

⏹️ ▶️ Marco one at all. And then Apple surely would not be competing on price with any of the other aftermarket

⏹️ ▶️ Marco ones. They’d be a premium entry and you can look and you can see, okay, there are, there are other premium entries

⏹️ ▶️ Marco in the wifi business like Eero is, you know, past sponsor of the show, possibly future sponsor. I don’t know. They’re a great example.

⏹️ ▶️ Marco They are not cheap. They’re good though. You know, they went for the high end and they succeeded,

⏹️ ▶️ Marco I think. But Apple would have to then compete with other people who were doing,

⏹️ ▶️ Marco who were in the same business. Like when Apple was making $300 wifi routers and everyone else was paying 80 bucks for

⏹️ ▶️ Marco theirs, not everyone else was, like there was no one else competing for the high end. Apple was

⏹️ ▶️ Marco almost the only high end option that wasn’t like an enterprise solution. Here they

⏹️ ▶️ Marco would have more competition in that high end market. And they would have to move faster. They would have to do

⏹️ ▶️ Marco things like mesh networking, and they would have to do things like add-on services, like ad blocking

⏹️ ▶️ Marco VPNs and stuff like that, like that a lot of the other companies are offering now. And so,

⏹️ ▶️ Marco do I really think Apple has that in them? I don’t think so. I think even at the

⏹️ ▶️ Marco peak of their router business, when they were making solid products that were well regarded

⏹️ ▶️ Marco and were pretty competitive on everything but price, which is what we expect from Apple,

⏹️ ▶️ Marco even then, they weren’t moving quickly. They weren’t like, you know, really, like they weren’t putting a lot

⏹️ ▶️ Marco of effort into their Wi-Fi router. They were fine, they were good for a while and then they went away. So I can’t

⏹️ ▶️ Marco imagine, I think part of the reason why they built out of the market is that the market was starting to require them to move quickly

⏹️ ▶️ Marco and to put more effort into that and they just didn’t care enough. And so I think if

⏹️ ▶️ Marco they were to reenter that market, that same fate would probably occur again.

⏹️ ▶️ Marco So therefore, I’m going to reluctantly, with a heavy heart, vote for D,

⏹️ ▶️ Marco platform with the caveat that I like this option a lot better if those are two separate things.

⏹️ ▶️ Marco If the server-side Swift is able to be run on any server platform

⏹️ ▶️ Marco and they happen to also offer a cloud computing platform that nobody except them will ever use.

⏹️ ▶️ Casey I did not see that ending coming.

⏹️ ▶️ Marco But look at the other options are all terrible.

⏹️ ▶️ Casey All right, John, what do you got?

⏹️ ▶️ John We talked about the cloud computing platform, I think, a while back. And I think where I I came down that is that

⏹️ ▶️ John it’s basically unavoidable. It’s like Apple

⏹️ ▶️ John either needs to do what Amazon and Google and Microsoft have done

⏹️ ▶️ John or resign itself to forever paying one or all three of those companies huge amounts of money.

⏹️ ▶️ John Like that is a core part of their business, you know, own and control the key technologies, blah,

⏹️ ▶️ John blah, blah. Increasingly, that is a core part of their business, has been for a long time

⏹️ ▶️ John and it’s not going the other direction is just increasing. So by not doing that,

⏹️ ▶️ John Apple is not fulfilling its vision to own and

⏹️ ▶️ John control the most important technologies. And, you know, therefore it is dependent on

⏹️ ▶️ John its competitors to a degree that it might not like, and less of a concern now, but maybe more

⏹️ ▶️ John of a concern in the future, it is potentially losing a lot of money for

⏹️ ▶️ John that. And that’s The thing about cloud computing, as Marco pointed out, is it’s very convenient and

⏹️ ▶️ John it makes lots of sense when you’re looking at having to pay people

⏹️ ▶️ John to run all your stuff, right? If that’s the alternative, like we have to hire a bunch

⏹️ ▶️ John of employees and run around data centers or whatever, that’s no good. So let’s pay someone else to do it. But once

⏹️ ▶️ John you’re signed up to that thing, it’s a big money maker. I think I saw a story fly by that Azure is set

⏹️ ▶️ John to become the largest source of income for Microsoft, if trends continue, or maybe it

⏹️ ▶️ John already is, but like anyone who’s ever used AWS knows your AWS bills can get big. Like

⏹️ ▶️ John there’s profit margin on all of that stuff. It’s easy to accidentally use a lot of money and

⏹️ ▶️ John you have to very carefully control your resource usage to try

⏹️ ▶️ John to keep costs where you expect them to be. Lot simpler with something like Linode,

⏹️ ▶️ John but somehow Linode is not a solution for something at Apple scales, right? So

⏹️ ▶️ John Apple, you know, pays those other companies to run its stuff and that is money that it’s

⏹️ ▶️ John giving away. That said, I don’t think Apple would be particularly good at that, but it’s the type of thing where it’s like, well, at a

⏹️ ▶️ John certain point, you may have waited too long or it’s

⏹️ ▶️ John no time, the best time to plant a tree is 30 years ago, the second best time is right now, that whole thing.

⏹️ ▶️ John So I don’t know, I’m not gonna pick that item, but I still have that same itch about cloud

⏹️ ▶️ John computing. It’s not a need that’s going away And if Apple doesn’t do it itself

⏹️ ▶️ John at all, it’s going to be a disadvantage in the long run.

⏹️ ▶️ John Service at Swift, I think Apple is not the type of company

⏹️ ▶️ John that, I don’t know, it’s not a good fit. To make something take off on the server side, to

⏹️ ▶️ John make it actually be a viable thing, because Apple doesn’t

⏹️ ▶️ John really make servers and it doesn’t have a server OS and is not invested in the server ecosystem beyond running its

⏹️ ▶️ John own stuff. It’s very difficult to get over the hurdle to the point that

⏹️ ▶️ John popular server-side languages have, PHP, Java, even JavaScript. There

⏹️ ▶️ John are communities built up around that of developers all over the world whose job is

⏹️ ▶️ John to write server-side software. And they rally around IDEs,

⏹️ ▶️ John frameworks, libraries, all the whole Java ecosystem

⏹️ ▶️ John of web applications, all the different frameworks for doing that, all the Node.js stuff and that whole

⏹️ ▶️ John infrastructure. If you look at any of those successful efforts, or PHP for that matter, or Perl CGI,

⏹️ ▶️ John like any of the things that have been big in the server-side world in the past or currently,

⏹️ ▶️ John and you look at what they, like the shape of that community, it tends to be

⏹️ ▶️ John either a community not focused around a single company, or a community focused around

⏹️ ▶️ John the product of a single company, and that single company is all about server-side stuff, or becomes all about server side

⏹️ ▶️ John stuff. Java with Sun, although that getting bigger than them at various points, but everything else is kind

⏹️ ▶️ John of like, it is a bigger than one company thing, right? It has to be for

⏹️ ▶️ John the community to take off and thrive. You don’t see scenarios where there is a

⏹️ ▶️ John language made by a single company mostly for a single purpose on their platforms with aspirations to get bigger because

⏹️ ▶️ John Apple is never going to do what it takes and nor should they, I think,

⏹️ ▶️ John to become all things all people server side across the world. And if you’re not going to do

⏹️ ▶️ John that, if you’re not going to say, if you’re not going to become the next Java or the next PHP

⏹️ ▶️ John or the next node, then it’s, you know, I’m not going to say what’s the point because

⏹️ ▶️ John it is useful thing to do, but you’re like, I just don’t feel like they can

⏹️ ▶️ John fulfill their, the destiny of this item, uh, on server side languages. I wouldn’t want

⏹️ ▶️ John them to, I don’t want an Apple to become a company that is known for defining server-side development

⏹️ ▶️ John for the next two decades. That’s just not what Apple’s about. And if they did that, it would take their eye

⏹️ ▶️ John off of what they should be doing, which is making, you know, hardware, software integrated experiences, blah, blah, blah,

⏹️ ▶️ John like the things we know and love from Apple. So all this is a long way of saying I’m crossing that one off the list, despite

⏹️ ▶️ John the fact that I think cloud computing should be an inevitability. And I hope Apple

⏹️ ▶️ John is making moves in that direction, maybe possibly more important than trying to figure out how to make a car.

⏹️ ▶️ John saying. The one I’m gonna pick is easy. I’m crossing off the middle ones because I don’t

⏹️ ▶️ John know what they are I don’t care about them and the whole automation blah. Wi-Fi router that’s my easy

⏹️ ▶️ John pick and I’ll tell you why. It’s the same reason I liked their stuff before. It’s

⏹️ ▶️ John the same reason I wanted a monitor from them. Apple’s never gonna make a monitor that people are gonna buy. They’re probably not even

⏹️ ▶️ John gonna make that much money on these monitors but I wanted Apple to make a monitor because I wanted a fancy monitor that matches my computer.

⏹️ ▶️ John Apple for a long time made fancy Wi-Fi systems that match their computers that were really expensive and most people didn’t buy them. It’s not

⏹️ ▶️ John a great business, but I think that market

⏹️ ▶️ John is in need of competition. The question is in dire need of a competitive product from Apple because Apple of all the companies that we’ve

⏹️ ▶️ John named is the only company that still has its incentives aligned around privacy and security.

⏹️ ▶️ John Like despite Apple’s big service push, in general Apple is not using your information

⏹️ ▶️ John to figure out how to serve you more relevant ads, right? or sell

⏹️ ▶️ John you generic products or whatever. So Eero being brought by Amazon, I haven’t seen any ill effects of that,

⏹️ ▶️ John but it’s always out there of people wondering, well, what’s gonna happen? Is my Eero gonna start inserting Amazon

⏹️ ▶️ John ads into all of my whatever? People are afraid of that. Again,

⏹️ ▶️ John people can be afraid of things that never actually come to pass, and so far everything’s been good, and I really like Eero, and I’m using it right now.

⏹️ ▶️ John That’s my favorite product. But I would love for Eero to have a competitor,

⏹️ ▶️ John and a competitor that focuses solely on the idea of like, A, we look

⏹️ ▶️ John nice and work well with Apple products, and B, we have a privacy focus. The whole

⏹️ ▶️ John thing with VPNs and people not knowing which VPNs to get and which to trust and have them being difficult to set up and so on and so

⏹️ ▶️ John forth, that’s a place where Apple could differentiate itself.

⏹️ ▶️ John It’s never gonna be a particularly good business for them. Just like monitors are never gonna be, never have been probably,

⏹️ ▶️ John and never will be a good business for Apple, and yet I think Apple should still make monitors I think you just don’t make Wi-Fi routers. In the

⏹️ ▶️ John end, what I want is, if someone has like an Apple set up, like, oh, you should get a Mac and get an iPhone

⏹️ ▶️ John and get an Apple Watch. And if you’re having Wi-Fi reception problems in your home, get the Apple Wi-Fi

⏹️ ▶️ John thing. That’s what I used to tell people until their product sucked. And now I tell people to get a Eero, right?

⏹️ ▶️ John I would love for Apple to compete in that market because I think it’s a place where

⏹️ ▶️ John I would like there to be an option like that. I think like, it’s like we talked about before with like, why should Apple make,

⏹️ ▶️ John you know, USB hubs There’s all sorts of things you can argue for. Like, you just want to have an easy choice

⏹️ ▶️ John to say, there’s a good one of these, it’s a little bit expensive, but that’s true of everything that Apple makes. Just get the

⏹️ ▶️ John Apple one. You won’t have to worry about it. It’s a little bit more expensive, but it’ll all work together.

⏹️ ▶️ John And that conversation and that sort of like, sentence structure has become less and less and common

⏹️ ▶️ John over time as Apple has eliminated all the businesses that are not good businesses. And so now when it comes time to get a USB

⏹️ ▶️ John hub, you’re like, I don’t know. It’s a couple of good ones. Sometimes they’re flaky. Like there is no

⏹️ ▶️ John go-to recommendation for things from Apple. Apple’s really ramped up in the dongle department, but that’s a whole different

⏹️ ▶️ John thing. And even some of those they outsource to Belkin, so they can’t even make all those themselves. Yeah,

⏹️ ▶️ John that’s

⏹️ ▶️ John, Marco kind of sad actually.

⏹️ ▶️ John But anyway, that’s my answer. Wi-Fi routers. Basically, all I’m asking for is a competitor to Euro. It’s

⏹️ ▶️ John not because I’m disappointed in Euro, it’s just because that’s the business that I think could most

⏹️ ▶️ John benefit from competition from Apple specifically because of how different Apple’s incentives are from

⏹️ ▶️ John all the other companies that currently sell decent routers.

⏹️ ▶️ Marco We are sponsored this week by Indeed. When you start your hiring process, you may

⏹️ ▶️ Marco have questions like, will you find good applicants to choose from? What about education and experience?

⏹️ ▶️ Marco And how will you know you’ve made the right hire? Indeed is here to help. Millions of great candidates

⏹️ ▶️ Marco use Indeed every day to find their next opportunity. You can post a job in minutes. You can use

⏹️ ▶️ Marco screener questions to help create your shortlist of applicants really quickly. And you can add skill tests to your

⏹️ ▶️ Marco job posts so you can be confident in your applicants’ abilities. Indeed’s library of more than 50

⏹️ ▶️ Marco skills tests ranges from industry-specific skills like accounting to general attitude tests like critical thinking.

⏹️ ▶️ Marco Indeed gives you the smart tools to make hiring decisions quickly and to be confident that you’re making the right hire

⏹️ ▶️ Marco for your team. Post your job today at indeed.com slash podcast

⏹️ ▶️ Marco and get a free sponsored job upgrade on your first posting. That’s indeed.com slash

⏹️ ▶️ Marco podcast. Terms, conditions, exclusions apply offer valid through March 31st, 2020.

iOS 13.4 beta

Chapter iOS 13.4 beta image.

⏹️ ▶️ Marco Thank you so much to Indeed for sponsoring our show.

⏹️ ▶️ Casey I haven’t really played with iOS 13.4 so I don’t have much to say about it but perhaps Marco

⏹️ ▶️ Casey has?

⏹️ ▶️ Marco I mean I have it on my phone. Okay how is it? It’s been fine so far. I mean

⏹️ ▶️ Marco I think I still caught the mail bug once where it doesn’t show me all my new messages

⏹️ ▶️ Marco for a while until I go back out of the all inboxes view and back to the root view and then back into all inboxes.

⏹️ ▶️ Marco This has been a bug for every single version of iOS 13 since the summertime. They still, I don’t think

⏹️ ▶️ Marco have fixed it. I think I caught it happening the other day. Other than that, it seems fine. There are these small

⏹️ ▶️ Marco changes to mail, like they change the toolbar and stuff like that, but I haven’t really used it enough

⏹️ ▶️ Marco in that time to really have felt those differences.

⏹️ ▶️ John Fair enough, I’m excited. That’s the thing I put in the show notes is the mail toolbar thing. That’s what fascinated me. This

⏹️ ▶️ John is from weeks ago, but it’s still the case. now that the beta is out. The mail toolbar

⏹️ ▶️ John is sort of the perfect storm of things that can

⏹️ ▶️ John infuriate angry Apple users that probably have

⏹️ ▶️ John a much more benign explanation. But then on the other

⏹️ ▶️ John other hand, okay, it’s explicable and I understand why it happened, but it’s still annoying.

⏹️ ▶️ John And what we’re talking about here is if you use mail on your phone, There’s

⏹️ ▶️ John like

⏹️ ▶️ John, Casey a, what are they,

⏹️ ▶️ John is that a toolbar they call it at the bottom of the screen?

⏹️ ▶️ John, Casey I don’t

⏹️ ▶️ John know what the hell the terminology is these days, I always get confused. Anyway, there’s a bar at the bottom of the screen that

⏹️ ▶️ John previously had a bunch of little icons for stuff you could do with mail messages. So you’re looking at a mail message and it used to have little icons

⏹️ ▶️ John for, you know, archiving it or flagging it or replying to it or deleting it and stuff like that. I don’t even

⏹️ ▶️ John remember what the buttons used to be, right? But there used to be a bunch of buttons down there, right? Then iOS 13 comes out

⏹️ ▶️ John and I don’t remember the exact timeline of what they showed in the beta is whatever, what they shipped in 13.0,

⏹️ ▶️ John you’re in mail on your phone and you look at the bottom of the screen and instead of a bunch of icons to do things with your message, there

⏹️ ▶️ John are two icons. One of them is the little reply arrow and one of them is the trash

⏹️ ▶️ John can. Trash can makes sense, so you delete a message. Some people didn’t like the fact that

⏹️ ▶️ John it was close to reply, but you know, the spacing is pretty good on that, right?

⏹️ ▶️ John Then there’s the reply arrow, you’re like, okay, well I assume if I hit that, that’s how I reply. And

⏹️ ▶️ John you’re like, how do I file this message away? How do I

⏹️ ▶️ John flag it or say it’s junk mail? But most importantly, and this is the thing that infuriates people,

⏹️ ▶️ John why are there only two buttons? What were you saving all the room for over there

⏹️ ▶️ John where there are no buttons? There used to be things there, and now they’re not. And it wasn’t crowded,

⏹️ ▶️ John four buttons across the bottom of your phone, they’re pretty widely spaced, but now there’s just two.

⏹️ ▶️ John And you look at that and you think, Oh, you Johnny Ive, just before you left Apple, you said, you know what?

⏹️ ▶️ John Delete more useful buttons from things. Like, get rid of the ports on all the computers. And there’s too much utility

⏹️ ▶️ John in that toolbar. People can just tap that button and immediately flag a message. Preposterous. I don’t

⏹️ ▶️ John like that. We can’t have that. If we can make the side of the toolbar cleaner by removing

⏹️ ▶️ John buttons, let’s do that. Can we remove all the buttons? Like, no, Johnny, no, we can’t remove all the buttons. All right, fine.

⏹️ ▶️ John We’ll leave one button. No, we can’t just have one button. That’s not enough. All right, fine. Two buttons. But that’s it. No more

⏹️ ▶️ John buttons. This is the fantasy thing in your head of like, they just want to get everything off of the screen. They want it to be a thing

⏹️ ▶️ John where there are no buttons and it’s completely useless. I don’t think that’s true,

⏹️ ▶️ John but it doesn’t change the fact that iOS 13 shipped and it had two buttons at the bottom instead of four. And by the way,

⏹️ ▶️ John if you’re looking for the other functionality, it’s buried under one of the buttons. If you hit the button, like a menu,

⏹️ ▶️ John let me, I have to do this on my phone because I don’t use Apple

⏹️ ▶️ John, Marco mail, but it’s like-

⏹️ ▶️ Marco Yeah, I think like the reply button included things like moving the message. That’s right.

⏹️ ▶️ John Yeah, so it’s like the functionality was still there, but it was one tap farther

⏹️ ▶️ John away, which seems weird because it’s like, well, if you weren’t, you know, like people

⏹️ ▶️ John wouldn’t think to do that because if you hit the reply button, from the reply button, you can reply, reply to

⏹️ ▶️ John all, forward, trash, flag, markers on red, move message, archive message, move to junk, mute,

⏹️ ▶️ John notify me, and print. That’s all under the little reply arrow. So bananas. When you

⏹️ ▶️ John tap it, it doesn’t reply. When you tap it, it brings up a gigantic sheet with all those other options. And again,

⏹️ ▶️ John the whole rest of the toolbar is just blank and delete, I think just deletes. And maybe there’s a force press option

⏹️ ▶️ John or something, right? So the explanation that makes sense is,

⏹️ ▶️ John you know, iOS 13 had some, you know, birthing difficulties, let’s say,

⏹️ ▶️ John and it came out the door and it was missing a lot of features they talked about, like the iCloud drive stuff and everything that’s

⏹️ ▶️ John now appearing in the iOS 13.4 beta. And the idea is that mail, which

⏹️ ▶️ John also had some problems coming out the door, had a bunch of planned functionality and a cool new toolbar

⏹️ ▶️ John down there, and it wasn’t ready in time. It’s like, oh, last minute scramble.

⏹️ ▶️ John All the cool stuff that we were gonna have in that toolbar, you know, it’s not gonna make it to 13.0.

⏹️ ▶️ John So they just had to get something out the door for 13.0 that worked, and so whatever those other buttons were gonna be

⏹️ ▶️ John are just erased from the UI, and either they buried the other existing functionality under

⏹️ ▶️ John that reply, or it was always there. And it’s like, oh, that’s a shame. Sometimes you plan for a bunch of features

⏹️ ▶️ John to come out, you advertise them, and 13.0 comes out, and you can’t make them, so it’s better to pull them than to ship them and have them

⏹️ ▶️ John be like buggy and destructive and delete everyone’s mail or whatever. So that makes sense,

⏹️ ▶️ John but again, coming back as a consumer, saying, well, I can understand how it could have happened, but it still doesn’t change

⏹️ ▶️ John the fact that I upgraded to iOS 13, and the Mail app became less useful and more annoying for

⏹️ ▶️ John me to use, which is not the direction things should go. They should become less annoying and more useful,

⏹️ ▶️ John or one of those two. So iOS 13 restores

⏹️ ▶️ John the toolbar button, so there’s more buttons, then things are more widely spread out. I don’t know if it restores a bunch of

⏹️ ▶️ John functionality that wasn’t there before. I really don’t know what the story is, but I find it an interesting sort of

⏹️ ▶️ John litmus test for, or like to gauge, Rorschach test is better, like look

⏹️ ▶️ John at this ink blot. What does it look like to you? Does it look like Apple taking away ports of your MacBook? That’s probably because you’re an

⏹️ ▶️ John angry person who uses lots of dongles. Does it look like to you

⏹️ ▶️ John slimming down of useless functionality? I think you’d just be wrong there because lots of

⏹️ ▶️ John people do more than just reply to and trash things. And on top of that, like I said, if you’re just used to hitting reply,

⏹️ ▶️ John if someone hits the reply button and is presented with all these options, it can be very confusing and there’s another chance for you to make

⏹️ ▶️ John an error or whatever. This is, as CableSasser said, agreeing

⏹️ ▶️ John with the theory that stuff was removed, he says, but surely after changing that before W2C,

⏹️ ▶️ John they could have put the icons back during the five month beta cycle, or in the many months

⏹️ ▶️ John since then where the OS has been out, it seems like it took a long time to get those buttons back. Again,

⏹️ ▶️ John minor issues, not that big of a deal, just one minor annoyance.

⏹️ ▶️ John It’s better than the bugs that Marco’s talking about, like not seeing a new mail arrive is worse than this, but if

⏹️ ▶️ John slimming down the toolbar avoided like bugs that would have deleted all of our mail, that’s

⏹️ ▶️ John good, but this type of, this is, to get to what Marco was saying before, like this

⏹️ ▶️ John outcome is not what Apple should be shooting for. Having a big company with lots of people, lots

⏹️ ▶️ John of features and complex code base and complex products and lots of, you know, it’s a, it’s a very difficult job.

⏹️ ▶️ John And we’ve talked many times about the trade-offs of like. At a certain point, you have to make a call, whether this is

⏹️ ▶️ John going to be in there, it’s going to be out, it’s going to be saved this till next year or whatever, and it’s difficult to make those calls and you’re not sure how far

⏹️ ▶️ John you should go or really push the team to get it done or make a decision early on and say, we’re not going to make it

⏹️ ▶️ John and regroup. Sometimes you end up shipping something that’s not everything you hoped it would B, but at least you made error on

⏹️ ▶️ John the side of stability. But the bottom line is in the end you give a product

⏹️ ▶️ John to a customer and what you’re shooting for is at least neutral and hopefully

⏹️ ▶️ John slightly better than what they had before. When you miss that, all the explanations in the world don’t

⏹️ ▶️ John really help that customer. And the customer comes away thinking when I was 14 comes

⏹️ ▶️ John out having that experience of like when I erupted iOS 13, I don’t remember much stuff that got

⏹️ ▶️ John better, but I do know some things that got worse and they annoyed me for months until they got fixed. And that’s

⏹️ ▶️ John not a good outcome. So whatever balance of timing and

⏹️ ▶️ John deciding when to ship and knowing when to pull things they did for iOS 13, it’s not

⏹️ ▶️ John the right balance. They need to revisit.

⏹️ ▶️ Marco Yeah, it seems like they have trouble fixing mistakes quickly. Like

⏹️ ▶️ Marco both, you know, the hardware has this problem, obviously, with the keyboards and everything. Like, I’m sure there are good reasons for a lot

⏹️ ▶️ Marco of it. Like, you know, hardware takes time to engineer, software takes time for like

⏹️ ▶️ Marco design and QA, and you know, probably things like carrier certification and God knows what else. Like,

⏹️ ▶️ Marco I’m sure these things take time, but it seems like Apple takes a lot more

⏹️ ▶️ Marco time than other people do to fix mistakes. Some part of Apple’s

⏹️ ▶️ Marco process or culture or structure or something makes it take them

⏹️ ▶️ Marco a long time fix things that seem from the outside like clear

⏹️ ▶️ Marco mistakes, like things that like they probably aren’t still arguing whether it’s a mistake or not. It probably doesn’t take them

⏹️ ▶️ Marco a long time to figure that out. What is it that takes so long to fix?

⏹️ ▶️ Casey Well, let’s not lose sight of the fact that Apple is a big, big, big ship that turns slowly.

⏹️ ▶️ Casey Now it turns quicker than most ships of its size, but it’s

⏹️ ▶️ Casey still a big, big ship. I mean, fair, fair. I don’t know. I

⏹️ ▶️ Casey had my angry moment earlier.

⏹️ ▶️ John I mean, it depends. Like, you can have examples of other companies moving more quickly and other companies moving more slowly. When I see

⏹️ ▶️ John something like this, I mean, it seems pretty clear that, like, I would say it’s evidence of, like, a company that is somewhat overwhelmed.

⏹️ ▶️ John Because if you’re gonna prioritize things that you have to react to, this is a low priority. It’s not a crasher,

⏹️ ▶️ John it’s not data loss, it is one of the most minor of minor annoyances. You know, oh, you’re missing some

⏹️ ▶️ John toolbar buttons, right? So when you’re ranking the list of things that you really need to get on and fix right away, this is

⏹️ ▶️ John always gonna be low. And in big companies, what tends to happen is sort of like low priority starvation, where something near

⏹️ ▶️ John the bottom of the list, every time anything comes up, you force rank it again,

⏹️ ▶️ John and you’re like, is this more or less important than the buttons in the mail toolbar? And

⏹️ ▶️ John, Casey everything

⏹️ ▶️ John always ends up being more important. So you end up six months down the line and say, we never did get around to fixing those mail toolbar

⏹️ ▶️ John buttons. Then somebody goes and fixes it. This is, by the way, why Overcast

⏹️ ▶️ Marco doesn’t have an Alexa app.

⏹️ ▶️ John Yeah, that’s the right priority structure, but there is, I forget what the term

⏹️ ▶️ John is for like OS scheduling, but like, you know, resource starvation or low priority starvation where at

⏹️ ▶️ John some point you do need to boost the priority of those low priority things, otherwise they will just literally

⏹️ ▶️ John never get done. And when you’re in that situation, it makes me think that there’s too

⏹️ ▶️ John much on your plate. Like in a better scenario, you do release lots of high priority stuff, you work, work,

⏹️ ▶️ John work, and then eventually you get to the point after a month or two and you’re like, and now we can finally put to bed those low priority

⏹️ ▶️ John ones. And if that’s taking many, many more months than that, like six months into it, eight months into

⏹️ ▶️ John you had a release that was so bad that it was just, it took you a long time to get to those less important bugs,

⏹️ ▶️ John right? And nevermind like the beginning thing of like, well, why’d you end up in the situation in the first place? Again, assuming the idea is they

⏹️ ▶️ John didn’t intend to ship a toolbar with two buttons. It’s just what they could end up shipping safely in time.

⏹️ ▶️ John That’s the, on the other side of that process, how do we, how do we not get in that situation? The question

⏹️ ▶️ John we were saying is like, Hey, well, if you find yourself in that situation, why does it take you so long to fix them. And I feel like it’s not

⏹️ ▶️ John about fixing this one bug takes a long time. It’s about all the other stuff that they correctly

⏹️ ▶️ John prioritized above this. And the fact that that list is so darn long and manifests

⏹️ ▶️ John in little stuff like this not getting b getting

⏹️ ▶️ Marco fixed.

⏹️ ▶️ Marco We are sponsored this week by Handy. This time of year, the two scariest words

⏹️ ▶️ Marco on everyone’s mind, aside from tax season, are spring cleaning. If you don’t already have

⏹️ ▶️ Marco a million things in your to-do list, now you have to sacrifice an entire weekend deep cleaning your home. Thanks to

⏹️ ▶️ Marco Handy, there’s a better way to knock out spring cleaning. Handy is the easy and convenient way to book home cleanings

⏹️ ▶️ Marco on a schedule that works for you. You can book it in just 60 seconds. Handy will match you

⏹️ ▶️ Marco with a top-rated pro in your area, or you can choose who you want to work with. You can compare profiles,

⏹️ ▶️ Marco you can read customer reviews. You can choose a weekly, bi-weekly, or monthly cleaning plan. Handy will

⏹️ ▶️ Marco schedule your recurring bookings to make things absolutely easy for you. And all this is with very upfront

⏹️ ▶️ Marco pricing. What you see is what you pay. You pay securely right in their app. You don’t need to worry about cash or

⏹️ ▶️ Marco checks. You can even tip your cleaning pro directly in the app. And no need to worry because 100%

⏹️ ▶️ Marco of the tips go directly to the pros. And it’s super convenient to get your home cleaned anytime from 7am to 11pm, seven days

⏹️ ▶️ Marco a week subject to availability. And the pros on Handy are vetted, background checked,

⏹️ ▶️ Marco and rated by customers to ensure quality. You can learn more about their background checks at handy.com slash

⏹️ ▶️ Marco trust and safety. And if you’re not satisfied with the quality of the service, Handy will book another

⏹️ ▶️ Marco pro to make it right at no extra charge with their happiness guarantee. Handy now has a special

⏹️ ▶️ Marco limited time offer. You can get your first three hour cleaning for only $29 when you

⏹️ ▶️ Marco sign up for a cleaning plan. andy.com slash ATP and enter promo code

⏹️ ▶️ Marco ATP. Once again, that’s a three hour home cleaning for just $29 for the cleaning plan.

#askatp: Fix one trivial bug

⏹️ ▶️ Marco again at Handy, H-A-N-D-Y dot com slash ATP. Promo code ATP.

⏹️ ▶️ Marco Terms and conditions apply. Visit Handy’s website for more information. Handy, the most reliable name in

⏹️ ▶️ Marco house cleaning.

⏹️ ▶️ Casey Steve McLaughlin, host, The Daily Show. Louie

⏹️ ▶️ Casey Mantia was not asking us, but posted a question that I thought was interesting. And I don’t remember if I put this

⏹️ ▶️ Casey in the show notes or not, but maybe somebody else of the three of us thought it was interesting. John Dorsey, host, The Daily Show. Louie! Good

⏹️ ▶️ Casey to know. John, one day I’ll learn. Today is not that day. Louis asked,

⏹️ ▶️ Casey if you worked at Apple for just one day as a designer or an engineer and you could squash one trivial bug,

⏹️ ▶️ Casey what would it be? And Louis continues, in this fictional scenario, you have no managerial or directorial power.

⏹️ ▶️ Casey You cannot direct others to help you and it may not exceed one day’s worth of your time. I

⏹️ ▶️ Casey replied to this and I believe what I had said and if not, then I’m going to say it now.

⏹️ ▶️ Casey What I had said was, I don’t know if I could do it in a day, but here’s my bug and it drives me nuts.

⏹️ ▶️ Casey I am a devout and enthusiastic user of spaces, that is to say multiple

⏹️ ▶️ Casey virtual screens on, you know, there are multiple virtual desktops, if you will, on one

⏹️ ▶️ Casey or more physical screens. So you can see this most easily if you have a magic trackpad

⏹️ ▶️ Casey or, you know, equivalent, you can do a three finger swipe laterally to swipe between them. On a magic

⏹️ ▶️ Casey mouse, it’s a two finger swipe, if I’m not mistaken, laterally. And it’s it’s a nice way to arrange and organize

⏹️ ▶️ Casey different like workspaces, if you will. A lot of times when I use

⏹️ ▶️ Casey this feature, if I like Command Tab, I almost said Alt Tab, if I Command Tab

⏹️ ▶️ Casey into a different app, or if I use the dock to go into a different app that’s on another

⏹️ ▶️ Casey space, it will switch spaces automatically as it should and

⏹️ ▶️ Casey go to the correct space. Let’s say I have four spaces and I’m on the fourth of the four, and I’m trying to go to Finder,

⏹️ ▶️ Casey which is on space one. I click on the dock on Finder, I zoom over to space one, and then it immediately

⏹️ ▶️ Casey zooms back to space four, even though there’s no Finder window anywhere to be found. And

⏹️ ▶️ Casey it is infuriating because I’ll do it again, and again, and again, and it keeps happening and happening

⏹️ ▶️ Casey and happening. And there’s no real rhyme or reason why it’s happening as far as I can tell It just happens. And that’s the bug I would

⏹️ ▶️ Casey fix. Marco, what would you do?

⏹️ ▶️ Marco I had a really hard time deciding this because my answer will vary by the day, like

⏹️ ▶️ Marco whatever’s annoying me that

⏹️ ▶️ Marco, Casey day. Oh,

⏹️ ▶️ Marco true. I think, you know, there’s all sorts of like, you know, stuff that I encounter over time that like, man,

⏹️ ▶️ Marco if they would only fix this one bug in iOS or watchOS, I could do something cool with Overcast, you know, and

⏹️ ▶️ Marco that would be my pick a lot of the time. Currently I’m not, I don’t think I’m facing any of those

⏹️ ▶️ Marco right now that I could specifically nail down. But so I’m going now from a user perspective

⏹️ ▶️ Marco for my choice this particular moment. I’ve been using the iOS music

⏹️ ▶️ Marco app a lot more recently, just listening to more music and the music app

⏹️ ▶️ Marco is oh so many paper cuts, especially for somebody who

⏹️ ▶️ Marco listens to full albums and cares about the current album or current song

⏹️ ▶️ Marco that was playing when maybe the app gets terminated in the background at some point and then relaunches because it

⏹️ ▶️ Marco like music, like iTunes before it, the music app on iOS, every time you launch it pretends

⏹️ ▶️ Marco like it’s the first time it’s ever been launched. Like you weren’t playing anything. What do you mean? Or it

⏹️ ▶️ Marco remembers the song you were playing possibly even one song ago.

⏹️ ▶️ Marco Uh, but it doesn’t remember where in the song you were, which if you listen to a band that has long

⏹️ ▶️ Marco songs, that’s kind of like starting a podcast from scratch. Every time you open your podcast app, like that’s not really what you want.

⏹️ ▶️ Marco It also loses your place in the navigation hierarchy. So

⏹️ ▶️ Marco if you were in a playlist or if you’re in a certain album, if it remembers the

⏹️ ▶️ Marco song you were at, it might bring that up as the now playing song, but the place you

⏹️ ▶️ Marco were in the navigation to get to that song, like the album list, is just gone. And I know under the

⏹️ ▶️ Marco junk drawer menu, there’s now a show album button, which is buried, it took me months to find.

⏹️ ▶️ Marco Like, anyway, like, it’s just, there are so many paper cuts about the music app, but the one thing

⏹️ ▶️ Marco in particular that gets me, that makes me think, does anybody use this? Who works on it?

⏹️ ▶️ Marco I honestly want to know this question. When you are playing music that is not downloaded to your phone,

⏹️ ▶️ Marco when you are streaming music over cellular, every single time

⏹️ ▶️ Marco that the track changes to a new song, or if you resume from pause, if it’s been paused for a little while,

⏹️ ▶️ Marco it rebuffers the audio. It seems to be doing a true stream, so it’s not like, you know, when I say

⏹️ ▶️ Marco streaming and overcast, what I’m actually doing is a progressive download. I’m not doing like a only buffer

⏹️ ▶️ Marco from the network what you’re playing and don’t buffer very far ahead, like I’m not doing that. I’m just starting a progressive download and as soon as I have enough

⏹️ ▶️ Marco to play, I start playing. What Apple’s doing with music is definitely not that. What they’re doing is like taking

⏹️ ▶️ Marco up no disk space, which, you know, for the mass market for music, that might be the right idea, or at least close to the right

⏹️ ▶️ Marco idea. So when you stream through Apple Music, actually doesn’t download the whole track, it downloads some

⏹️ ▶️ Marco distance ahead and that’s it. And when you go to the next track, it throws away whatever it had about

⏹️ ▶️ Marco the last one and loads the next one again from scratch. If you pause it for a while, it discards all that

⏹️ ▶️ Marco data. Again, loads it from scratch. My bug that I would spend one day working on, and I think

⏹️ ▶️ Marco I could probably do this, is that every single time it starts a stream over cellular,

⏹️ ▶️ Marco it plays the first maybe half to one second of audio at a low bitrate

⏹️ ▶️ Marco and then it steps up to a high bitrate. This is extremely

⏹️ ▶️ Marco audible. It sounds like the first half second of every song you play

⏹️ ▶️ Marco is at like, you know, 20 kilohertz. Like some like super low sample rate. So it cuts off all the high frequencies

⏹️ ▶️ Marco and then it pops into the high frequency like a half second of the song every single time.

⏹️ ▶️ John Twitter does the same thing and it drives me nuts.

⏹️ ▶️ Marco It drives me nuts too. Yeah, like this, I understand that it’s nice to have like,

⏹️ ▶️ Marco you know, progressive bitrate things, but you’re a music player. The quality of your music

⏹️ ▶️ Marco matters a lot, and music isn’t that big. And it’s like these days on these

⏹️ ▶️ Marco networks, you know what, just, I would rather, you know, the dumb

⏹️ ▶️ Marco like one hour solution to this would be just wait one second. Buffer

⏹️ ▶️ Marco it for one second, then start playing. I could have a one second gap before the song starts fine if it would start at full

⏹️ ▶️ Marco quality Which it would that’s all it takes fine or the smarter thing to do

⏹️ ▶️ Marco You know what is going to play next? Just buffer

⏹️ ▶️ Marco a few seconds of the next song as you approach the end of the previous one

⏹️ ▶️ Marco This is like this is just like this this problem shouldn’t exist in this day and age like This is the kind of thing you’d expect

⏹️ ▶️ Marco from like the very first cell phones or the very first stream of music apps We are so far past that

⏹️ ▶️ Marco the first half second of every single song I play should be in freaking full quality on

⏹️ ▶️ Marco The music app on the premier device from the premier mobile company that makes this premier Apple music service like

⏹️ ▶️ Marco for God’s

⏹️ ▶️ John sakes like that’s It’s way more than a half a second on Twitter I remember when when you first did overcast clip sharing

⏹️ ▶️ John and everyone’s like why overcast Clip sharing sounds so bad. It’s been people would tweet them and you’d play them and it’s

⏹️ ▶️ John just a voice, right? But on Twitter, the audio quality was so bad for like the first

⏹️ ▶️ John seven words out of the person’s mouth. Of course, the video quality would be all grainy, and then the audio quality would be like

⏹️ ▶️ John worse than plain old telephone system. Like worst, like eight kilohertz, just incredible

⏹️ ▶️ John robot voice. You know, like how did Marco make such a terrible clip? It’s not the clip, the clip is fine, it’s

⏹️ ▶️ John Twitter. Like the Twitter clients and the Twitter web browser, like Twitter processes whatever

⏹️ ▶️ John it is that you give them to attach to a tweet, and when you try to play it, Like, sometimes

⏹️ ▶️ John it would be half the clip, it seemed like, and it would snap into good quality, and I have the same feelings. Like, I have a gigabit connection,

⏹️ ▶️ John Twitter. Just wait until you’ve got the whole thing ready to go. Like, it’s not,

⏹️ ▶️ John I’m not so desperate for it to start immediately that I need, want to listen to someone

⏹️ ▶️ John talking and have them sound like they’re inside a tin can. So this is, yeah, this is the, it’s the,

⏹️ ▶️ John like, I think we did better back in the bad old days when everyone had terrible connections, because all of those were adaptive,

⏹️ ▶️ John where it would be like, if it seems like you can’t accept whatever it is that we’re trying to show you at full data rate,

⏹️ ▶️ John you will get a crappy quality version. But these new systems are like unconditional. I don’t care if you’re

⏹️ ▶️ John on gigabit fiber, you’re gonna listen to seven seconds of crappy audio before it snaps into good quality.

⏹️ ▶️ John It’s like, why? There is no reason for that. Be adaptive, measure how much you’re actually

⏹️ ▶️ John able to send and how much you’re able to receive and adjust the quality based on that.

⏹️ ▶️ John And obviously with Marco’s case, this is not a dynamic scenario. It does know what it’s going to play. It

⏹️ ▶️ John does know as it approaches the end of a track what the next track is gonna be. Hopefully it knows in almost all scenarios unless you’re

⏹️ ▶️ John like some live streaming radio station or something, but either way, like buffering exists.

⏹️ ▶️ John Like real player did better than this. You

⏹️ ▶️ John, Casey know, just like, wait a second and

⏹️ ▶️ John buffer

⏹️ ▶️ John, Casey it.

⏹️ ▶️ John Like, yeah, that’s a tough one. Oh,

⏹️ ▶️ John so my answer to this, unfortunately, I have worked for

⏹️ ▶️ John big-ish companies for too long to believe that there is literally anything you can fix, no

⏹️ ▶️ John matter how trivial, in a company the size of Apple in a single day. Like, it is absolutely impossible, right?

⏹️ ▶️ John You can begin the process of fixing it. In fact, if you are a young and optimistic

⏹️ ▶️ John soul, you can think that you have spent one day’s worth of work and have fixed the problem, but you

⏹️ ▶️ John don’t understand the days and weeks and months of work that’s going to be required to get that

⏹️ ▶️ John supposed perfect, already done, completed work out the door. Say you’re fixing

⏹️ ▶️ John a typo. That typo, oh, does it need to be localized? Does it, did it change the metrics on

⏹️ ▶️ John this thing because you added a character or another one and now another word wrapped? Does it have to go through all the QA? Like,

⏹️ ▶️ John is it a special character that you wanted to add? Oh, did you change a straight quote to a curly quote? But now there was some part

⏹️ ▶️ John of the process that expected that all to be ASCII and it’s puking. And that’s gonna come up six months from now when I do integration

⏹️ ▶️ John builds. There’s nothing you can fix in a day, which is part of the problem with big companies. But if I’m going to

⏹️ ▶️ John pretend that something can be fixed in a day. Guys, it’s tough, because

⏹️ ▶️ John I don’t, like the things that bother me are not of a nature

⏹️ ▶️ John that can be even like quote unquote fixed of just like, well, I did the work part

⏹️ ▶️ John of it, right? I mean, the closest thing I can come to thinking for me personally is

⏹️ ▶️ John whatever it is that’s causing the Finder to occasionally decide that it doesn’t care what state a

⏹️ ▶️ John window was in before. You know, the applications folder is a good example. applications folder does not move

⏹️ ▶️ John and its contents more or less stay the same there’s not more than one of them it is in a well-known location it is

⏹️ ▶️ John more mostly more or less owned by the system although it’s a complicated amalgam of system applications and and

⏹️ ▶️ John slash applications these days but anyway putting that aside the applications folder in theory

⏹️ ▶️ John I should be able to open up the applications folder in the finder

⏹️ ▶️ John change the view settings and the window size and position to the way I want it and do that once and have it stay the

⏹️ ▶️ John same. Now I know I wrote many hundreds and thousands of words about the reason why this isn’t actually possible,

⏹️ ▶️ John right? You know, and fixing the finder to make it properly spatial or whatever is not

⏹️ ▶️ John one day’s work. But I feel like it’s possible in one day’s

⏹️ ▶️ John work to find the code path that makes it so when I open the, you know, when I do command shift

⏹️ ▶️ John eight open applications or I command option, click the applications folder in my doc, find the code

⏹️ ▶️ John that decides at a certain point, say, you know what, application window, I’m going to open a window

⏹️ ▶️ John that looks nothing like you had it before. It’s going to be in a different position. It’s going to have a toolbar. It’s going to be in

⏹️ ▶️ John a different size. It’s going to be in a different view. It’s going to bear no relation whatsoever.

⏹️ ▶️ John Uh, to however you arrange the applications, uh, window before, and you’re never going to see the other

⏹️ ▶️ John window again, whatever code path that is. I would reproduce it, which I feel confident I

⏹️ ▶️ John can do in a day. I would find that code path and I would sever it.

⏹️ ▶️ John, Casey I’m just saying. I’m just

⏹️ ▶️ John saying. Ha ha ha! You, whatever conditional, set of conditionals leads you in this direction to decide you’re

⏹️ ▶️ John gonna open a new window with new, just, just don’t. Like, there is only one path,

⏹️ ▶️ John which is to make the window appear just like it used to. Maybe I would only do it for well-known folders. Hell,

⏹️ ▶️ John maybe I would just do it for the applications folder. That is a one-day work narrowing of scope. All it would be

⏹️ ▶️ John is like, dedicated storage for the view settings for the application folder,

⏹️ ▶️ John And I feel like I can make that one code path work in a day. You’re going to open the Applications folder?

⏹️ ▶️ John Let me look up the settings? Let me make you a window according to those settings? That’s the logic. It’s fairly straightforward. There

⏹️ ▶️ John you go. Spot fix. Just one folder. Remember my settings. Always.

⏹️ ▶️ John And then, of course, it would take months to get through. And it would get rejected because there would be some regression. Because some part of some GUI

⏹️ ▶️ John automation that tests some part of the finder would rely on the functionality of it not remembering your settings. And it would break those

⏹️ ▶️ John tests. And I would have to revert.

⏹️ ▶️ Casey That was a better conversation than I expected.

#askatp: SSD partitions

⏹️ ▶️ Casey All right, James Irwin wants to know, what’s the best way to, or why shouldn’t you, partition your onboard

⏹️ ▶️ Casey boot SSD when doing a clean and complete overwrite slash install of Catalina? I typically

⏹️ ▶️ Casey create at least two partitions on my main iMac machine and make the non-booting partition the location where I write various

⏹️ ▶️ Casey apps, swap and temp files, such as those created by Photoshop, Premiere, as well as keeping frequently updated

⏹️ ▶️ Casey and access project files or databases. I’m wondering if this is an archaic practice under the latest versions of APFS.

⏹️ ▶️ Casey I suspect that John is going to tell us it’s actually better on APFS because of the whole like sharing space thing. But

⏹️ ▶️ Casey for me, I used to religiously partition my Windows computers and have like one drive that was the

⏹️ ▶️ Casey OS. I think I even had like a second one that was apps like a third one that was games or something like that. It was bananas. There was no

⏹️ ▶️ Casey need for it. It never, ever did any of the things I claimed it would do, but I did it. I have

⏹️ ▶️ Casey never partitioned a Mac knowingly like I believe it has a like

⏹️ ▶️ Casey a system partition or something like that now and I know it’s gotten the muddier with APFS and in locking

⏹️ ▶️ Casey down the OS itself. I think John will jump in and fix all these terrible half-truths

⏹️ ▶️ Casey that I’m telling. But anyways, I’ve never done it. Marco, have you ever really partitioned anything outside

⏹️ ▶️ Casey of your photos dance that you’re so fond of? And I

⏹️ ▶️ Casey, Marco understand

⏹️ ▶️ Marco why. Marco Petri – And that isn’t even a partition. That’s just a sparse image.

⏹️ ▶️ Marco, Casey Justin Perdue – That’s

⏹️ ▶️ Marco what

⏹️ ▶️ Casey I’m thinking

⏹️ ▶️ Marco of.

⏹️ ▶️ Marco, Casey Okay.

⏹️ ▶️ Marco Marco Petri – Yeah. Although now, if I was setting that up again from scratch, I would do an APFS

⏹️ ▶️ Marco space sharing partition. But now, yeah, that’s just an image. I mean,

⏹️ ▶️ Marco there There are special needs where having separate partitions is useful. I don’t have any of those special

⏹️ ▶️ Marco needs. And so I haven’t done this on a Mac. I like you in the Windows days, I would do it back

⏹️ ▶️ Marco then because that’s like, you know, you would like reinstall Windows from scratch every six or 12

⏹️ ▶️ Marco months for fun and to keep your computer in a good state. And you know, once you move to

⏹️ ▶️ Marco the Mac, I didn’t do that anymore. Thank God. And so yeah, I don’t, I

⏹️ ▶️ Marco don’t partition. But I think if you are a partitioner, if you already were before,

⏹️ ▶️ Marco this probably doesn’t change. Like, just, you know, yes, Kylena has like its new, like, two

⏹️ ▶️ Marco partition default layout, but if you had good reason to keep separate partitions

⏹️ ▶️ Marco before, you probably still have them now.

⏹️ ▶️ Casey John, what’s the right answer? And please fix all my completely awful half-truths from before.

⏹️ ▶️ John Well, the partitioning dance, the benefits

⏹️ ▶️ John that you historically got and can continue to get are about sort of logical

⏹️ ▶️ John and physical separation, just logically in your mind where you’re like, I know all of my X stuff is over here and I

⏹️ ▶️ John know all my Y stuff is over there. And you could say, well, you can get the same isolation with folders, can’t you? It’s just a little

⏹️ ▶️ John bit one level higher. Like you can’t, you know, you can unmount a drive, right? And you can

⏹️ ▶️ John reason about a drive and erase a drive and clone a drive in a way that is with a different set of tools than you

⏹️ ▶️ John can do for a folder, right? So you’re having some sort of, and the mental partitioning

⏹️ ▶️ John is, the physical partitioning is less real because physically speaking, things are so muddled that

⏹️ ▶️ John you’re not really getting whatever protection you think you’re getting. For the most part, it’s all just one big

⏹️ ▶️ John soup of stuff. But mentally, I can see how it can be something that people find

⏹️ ▶️ John reassuring. But I’m going to say that there is pretty much, except for in very weird

⏹️ ▶️ John scenarios, no good reason to incur this

⏹️ ▶️ John cost because the flip side of the sort of separation benefits is

⏹️ ▶️ John and again, this is less true with APFS, which we’ll get to in a minute. But thank you. Boy, some delay. You

⏹️ ▶️ John really must be sick. You

⏹️ ▶️ John, Casey know, it was coming

⏹️ ▶️ John to you. You know what the next track is going to be, Margo. Just buffer the bell.

⏹️ ▶️ Casey, John Oh, man. Man, brutal.

⏹️ ▶️ John Oh, goodness. You have to, there’s something else that people who

⏹️ ▶️ John are into Linux early on remember. You’re faced with that decision. Here I am

⏹️ ▶️ John trying to decide how I’m gonna divvy up a finite resource. How much do I put in slash user and how much do I put

⏹️ ▶️ John in slash just plain old slash? If I make a bad choice here, it’s

⏹️ ▶️ John gonna be really annoying later. Trying to think about those decisions, And it’s the same thing with like

⏹️ ▶️ John back in the bad old days of Windows and on the Mac when you partition things. You’d have

⏹️ ▶️ John to think really hard about how you’re going to divvy stuff up. You’d have to make predictions about your future self and the growth rate

⏹️ ▶️ John of things. And you know, in the bad, really bad old days, partitions weren’t changeable.

⏹️ ▶️ John Then there were partitions that you could grow and shrink, but only under certain circumstances, especially on the Mac, depending on fragmentation,

⏹️ ▶️ John how much you could grow or shrink partitions and all that other stuff. It was always just this fraught decision.

⏹️ ▶️ John Anytime you’re trying to sort of plan out your life and plan out the allocation of finite resources

⏹️ ▶️ John at a single point in time with limited flexibility to make adjustments later, that’s a bad decision point to

⏹️ ▶️ John make. And I have to say, like, weigh that against whatever sort of logical separation you think

⏹️ ▶️ John you’re gaining the benefit of. In particular, the things I talk about of like swap files, temp files,

⏹️ ▶️ John scratch, there is no benefit to putting those things there. The SSD doesn’t know or care where

⏹️ ▶️ John those things are in relation to other things. There’s no speed benefit for them being on outer sectors. Like we’re

⏹️ ▶️ John not using spinning hard drives, I hope, anymore for this type of stuff, right? Temp files like the

⏹️ ▶️ John OS is handled, like you can, if you want tools to manage those resources,

⏹️ ▶️ John partitions is not the tool to do it. Now all that said, APFS makes this so much

⏹️ ▶️ John better because you can essentially not make those decisions. You

⏹️ ▶️ John can say, I wanna have five buckets for things that all five of those buckets are the size of my entire drive

⏹️ ▶️ John and you never have to make decisions if you don’t want to about how much space is allocated. You can

⏹️ ▶️ John constrain them, but don’t, because unless you’re in a scenario like Marco where the whole point is you wanna constrain them,

⏹️ ▶️ John you can make a bucket that is of a limited size and fine, do that if that’s what you’re trying to do is

⏹️ ▶️ John prevent Apple’s photos from thinking it has the run of your whole, because that’s basically working around a problem

⏹️ ▶️ John in Apple software that you can’t tell photos, please don’t use more than X amount of my disk, right? But other

⏹️ ▶️ John than scenarios like that, with APFS, you can make as many continuous as you want and they all share all

⏹️ ▶️ John the space, and then they just grow at their natural rates. Now, there’s no more disk space available than there ever was,

⏹️ ▶️ John and whoever grows fastest ends up winning and using more space than other people, but that’s the way it should be.

⏹️ ▶️ John And it’s very easy to create them and destroy them. So if you really, really insist on

⏹️ ▶️ John using quote-unquote partitions as the way to organize your stuff

⏹️ ▶️ John mentally and quote-unquote physically, use APFS containers to do it.

⏹️ ▶️ John Now, I don’t wanna call these partitions. I forget what the parlance is there. It’s like, it’s not containers. There’s one APFS container

⏹️ ▶️ John with volumes in it, or I forget what the terminology is, right? There still is the ability to

⏹️ ▶️ John partition things. So you can partition things, and then one of them have an APFS container in one

⏹️ ▶️ John of the partitions. And as Casey was alluding to, Catalina has multiple,

⏹️ ▶️ John I mean, the Mac has had multiple partitions, actually, we have partitions for a long time.

⏹️ ▶️ John There was the recovery partition, then the regular system partition. I think there might’ve been one other one in the mix

⏹️ ▶️ John at various point. Now, their APS container is doing that same stuff, but there’s still recovery, and there’s

⏹️ ▶️ John the read-only system volume, which has the operating system on it, and that’s melded with the read-write

⏹️ ▶️ John volume that is hidden from you. Like, unless you’re looking in certain tools, it just looks like you have one hard drive, but everybody

⏹️ ▶️ John has their read-only one and the read-write one combined together. That’s what I was getting at before, the applications

⏹️ ▶️ John folder, slash applications on your Mac. Some of the things that you see in the applications

⏹️ ▶️ John folder are not in slash applications, they’re in slash system slash applications, the finder

⏹️ ▶️ John is creating this illusion for you. Again, maybe another excuse for not to retain my stupid Windows settings.

⏹️ ▶️ John You know, it’s more confusing than you think it is. So there are these multiple volumes behind the scenes being

⏹️ ▶️ John merged together. But all that shouldn’t concern you because if they make that illusion convincingly, and they mostly

⏹️ ▶️ John do, you can continue to add things, add volumes to your ABFS container

⏹️ ▶️ John as much as you want. They’re very lightweight, it’s very easy to add one. and you don’t have to

⏹️ ▶️ John make a commitment of size up front. So in general, I say, don’t do this.

⏹️ ▶️ John Just use one big volume. You’ll be happier. But if you insist on doing it, APFS has got your back and makes it way

⏹️ ▶️ John easier.

#askatp: Audiobook narration

⏹️ ▶️ Casey Corey Bachman finally Brian Hamilton wants to know if your favorite author asked you to narrate the next audio book would you do

⏹️ ▶️ Casey it? I don’t think so because I think it’d be terrible at it.

⏹️ ▶️ Casey I’d want to but I don’t think I would do it because I would I can’t do voices.

⏹️ ▶️ Casey I am very envious of people like a friend of mine Steve is very good at doing like different voices and

⏹️ ▶️ Casey things like that and I wish I could do that for when I read my own kids stories. my wheelhouse,

⏹️ ▶️ Casey so no, I don’t think I would do it. But what about you, Marco? What do you

⏹️ ▶️ Marco think? Like you, I know I’d be bad at it, but in addition, I

⏹️ ▶️ Marco also don’t want to do it. I think it’s probably going to be like some kind of massive time

⏹️ ▶️ Marco commitment. And I also can’t do voices very well, even when reading books to my

⏹️ ▶️ Marco kid. I try, it’s really sad. I’m glad those are private moments. But

⏹️ ▶️ Marco ultimately I’m not a good speaker. Like I don’t have good enunciation, I mispronounce

⏹️ ▶️ Marco certain word sounds, I stutter. The amazing thing, like I when I was a kid I

⏹️ ▶️ Marco used to want to be a radio DJ. As I got older I realized and was and was told like you know

⏹️ ▶️ Marco first of all that’s kind of a terrible career actually. Like it’s actually really hard to have a normal life

⏹️ ▶️ Marco and it doesn’t pay very well and it’s like it’s just not a good career. And then also I realized as I got older,

⏹️ ▶️ Marco I didn’t have the voice for it and I was never gonna do it. And you’re really just into

⏹️ ▶️ John the headphones. That’s all you really want to

⏹️ ▶️ John, Marco do, and you’ve got that

⏹️ ▶️ John part.

⏹️ ▶️ Marco Right, and the amazing thing about podcasting is that people like me who aren’t

⏹️ ▶️ Marco very good speakers, who have flaws in the way we talk or average

⏹️ ▶️ Marco voices or whatever, we can actually still make a living doing basically that same thing,

⏹️ ▶️ Marco but with more interesting content, with free form of whatever, you know, however long we want

⏹️ ▶️ Marco to talk about, whatever we want to talk about. And as long as someone cares, that can be a thing that you do that

⏹️ ▶️ Marco succeeds. And in podcasting, there isn’t an expectation that everybody is a perfect speaker. There

⏹️ ▶️ Marco isn’t, and thank God for that, there isn’t an expectation that, you know, that you are like

⏹️ ▶️ Marco a cool person who talks in the same way and all the radio DJs and use a lot of bass in your voice talk really up close

⏹️ ▶️ Marco to the microphone. You know, like, and you know, all that is thrown out the window. And this is just people talking

⏹️ ▶️ Marco normally sound like regular people. Listeners are more willing to overlook the flaws in our

⏹️ ▶️ Marco voices and our speaking styles and our enunciations and pronunciations and everything. So I’m able to succeed here,

⏹️ ▶️ Marco but in an audiobook reading context, it’s much more formal, it’s much more controlled,

⏹️ ▶️ Marco the expectations are much higher, possibly understandably so. And so I

⏹️ ▶️ Marco think I would be really terrible at that for lots of reasons, and the resulting audiobook would be

⏹️ ▶️ Marco not as good as it would be if a professional voice person did it. So that’s

⏹️ ▶️ Marco yet another reason why I’m very happy staying where I am and I would not want to do something like that.

⏹️ ▶️ Casey John?

⏹️ ▶️ John I think the part that Marco didn’t answer that is the key question here is, does Marco have a favorite author?

⏹️ ▶️ Marco Nope. I would, that would take me a long time to figure out.

⏹️ ▶️ John We got time. We’ll

⏹️ ▶️ Casey wait. Well, his favorite author is you, John.

⏹️ ▶️ Marco Thanks to our sponsors this week. Squarespace,

⏹️ ▶️ Marco, John Candle, Wait, John hasn’t given an answer has

⏹️ ▶️ Marco he? an answer, Azzy.

⏹️ ▶️ Marco, John All right,

⏹️ ▶️ John John. John, what’s your answer? I’m waiting for Marco’s favorite. You have to pick one. Doesn’t have to be, like, obviously it’s not gonna

⏹️ ▶️ John be like a super duper favorite because you’re not a big reader. We’re not expecting this, but you have to pick one. So

⏹️ ▶️ John just come, name an author. That’s like that name a state thing.

⏹️ ▶️ John Name, or was it, no, was it name a state or name a country? There was a good one recently, some internet sort of like, let’s

⏹️ ▶️ John find people on the street and laugh at how ignorant they all are. What was it? Name

⏹️ ▶️ John a country? Might’ve been name a country. Anyway, name an author. Who’s your favorite author,

⏹️ ▶️ John Marco? John Syracuse. I mean, you haven’t

⏹️ ▶️ John, Casey probably read

⏹️ ▶️ John, Marco more than I’ve read in all of the past. That’s what I was

⏹️ ▶️ John thinking, actually. Anyway, I will answer the question.

⏹️ ▶️ John I named my favorite author, and then Marco can get back to his coughing fit. My favorite author is Stephen King.

⏹️ ▶️ John That’s easy. I’ve read more of his books than anybody else’s books. I really like his books. They’re not for everybody,

⏹️ ▶️ John they are for me. Asked if I would narrate an audio book, would I

⏹️ ▶️ John do it? No, because narrating an audio book is the type

⏹️ ▶️ John of thing where, like say you’re super into it, like I love my favorite author, and my favorite author

⏹️ ▶️ John is gonna ask me to narrate her book, and she’s great, and I love everything she writes, and I can’t wait

⏹️ ▶️ John to do this. 17 hours into reading that book into a microphone,

⏹️ ▶️ John you are not gonna feel that way anymore. Like doing an audio book means

⏹️ ▶️ John speaking into a microphone without mistakes for hours and hours and hours. It is

⏹️ ▶️ John way harder than I think most people would think it would be. The first 30 minutes to

⏹️ ▶️ John one hour, you’re probably jazzed about it. That’s not what it’s gonna be like

⏹️ ▶️ John, Casey for the whole rest of that

⏹️ ▶️ John time. It is a hard job. Even if you’re good at it, it’s hard work. So

⏹️ ▶️ John I don’t wanna sign up to do that. Even if I was inclined to do that type of work, which

⏹️ ▶️ John I’m not, I would never want to do that. That’s hard work. It’s like, would you like to build a house

⏹️ ▶️ John for your favorite author? No, it’s hard to build a house. It’s a lot of hard work. I like the

⏹️ ▶️ John author and it’s cool, and I bet their house is cool, but you know, it’s hard work.

⏹️ ▶️ John So no, don’t agree to narrate anybody’s audio book. That is really hard work.

⏹️ ▶️ Marco Thanks to our sponsors this week, Squarespace, Handy, and Indeed, and we will see you next week.

Ending theme

⏹️ ▶️ Casey Now the show is over, they didn’t even mean to begin Cause

⏹️ ▶️ Casey it was accidental, oh it was accidental

⏹️ ▶️ Casey John didn’t do any research, Marco and Casey wouldn’t let

⏹️ ▶️ John him Cause it was accidental, oh it

⏹️ ▶️ Casey was accidental And you can find the show notes at ATP.FM

⏹️ ▶️ John And if you’re into Twitter, you can follow them at

⏹️ ▶️ John C-A-S-E-Y-L-I-S-S

⏹️ ▶️ Marco So that’s Casey

⏹️ ▶️ Casey Liss, M-A-R-C-O-A-R-M, and T. Marco

⏹️ ▶️ Casey Armin,

⏹️ ▶️ John S-I-R-A-C-U-S-A-C-R-A-Q-U-S-A It’s

⏹️ ▶️ Casey accidental, they didn’t

⏹️ ▶️ John mean to. Accidental, accidental, tech podcast

⏹️ ▶️ John so

⏹️ ▶️ Casey long.

SwitchGlass War Stories

Chapter SwitchGlass War Stories image.

⏹️ ▶️ Casey Oh, we have some war stories

⏹️ ▶️ John don’t we didn’t have an infinite supply of war stories

⏹️ ▶️ John, Casey all

⏹️ ▶️ Casey right Let’s do some switch glass war stories. I’m excited.

⏹️ ▶️ John There’s a pick

⏹️ ▶️ John, Casey Favorite

⏹️ ▶️ John here. I think I’m gonna pick the one that I’m currently mired in the war that I’m currently involved in

⏹️ ▶️ John Yeah, and and we’ll leave the rest of them for the eternal this is this is like secret weird things people

⏹️ ▶️ John do this topic We’re going forever Stupid app

⏹️ ▶️ John In my application switch class, which puts a little thing on your screen that lets you switch among applications

⏹️ ▶️ John There’s a preferences window and the preferences window lets you pick where on the screen you want the little palette to be and it’s not

⏹️ ▶️ John You can’t put it everywhere But you can just put it in the corners and on the top and the bottom the left and the right and you know That’s it. There’s

⏹️ ▶️ John like 12 different positions. You can put it in and to give a UI where you you know

⏹️ ▶️ John Choose where that palette appears I show a little rectangle roughly screen shaped with a bunch

⏹️ ▶️ John of radio buttons in there, and you click on the radio button in the upper right corner, and the thing goes to the upper right corner, and so on

⏹️ ▶️ John and so forth. Like, it’s a visual way to know, kind of like Mercedes’ presumably patented

⏹️ ▶️ John seat controls. Like, instead of having a bunch of buttons or a pop-up menu or having to read words, you just see a bunch

⏹️ ▶️ John of dots that are arrayed all around the edges of a rectangle, and you go, oh, that rectangle’s my screen.

⏹️ ▶️ John And if I want it to appear there on my screen, I’ll click here in the preferences window. And as a frill

⏹️ ▶️ John towards the end of development, I said, you know what? to make it clear that that thing is supposed to represent your screen, I should really put

⏹️ ▶️ John the person’s desktop background image in that little square. So it looks like a miniature

⏹️ ▶️ John version of their screen. And this is especially true because switch glass is configurable per display, which is a whole other war

⏹️ ▶️ John story. We’ll get to some other time. So you actually get a preferences window on every attached display and you can put

⏹️ ▶️ John it in different positions on different displays. So if you have two different desktop pictures on two different

⏹️ ▶️ John displays, I have to show two different images there. All right. So that was my idea for this feature. I had

⏹️ ▶️ John the feature all working without that and I said let me try to do this is just a fun little surprising delight thing

⏹️ ▶️ John and So it was fairly straightforward. It was an API that you can call and it gives you the

⏹️ ▶️ John you know the file path to the current desktop picture and then I would just read that picture and make a shrunken

⏹️ ▶️ John version of it and Shove it in the window like done and done really easy, right?

⏹️ ▶️ John And I more or less ship that except even in the first version The first version of this was

⏹️ ▶️ John like all right that seems to work But and I had a fallback path of like hey if you can’t load the thing

⏹️ ▶️ John You know fall back to just showing the old UI which just shows a box or whatever The two things I ran across

⏹️ ▶️ John in the initial release were first of all You haven’t looked on a modern Mac if you haven’t

⏹️ ▶️ John looked at like what the default Desktop pictures are like for example on Mojave that has those picture of

⏹️ ▶️ John the sand dunes I think it was the first dynamic desktop pattern where it’s like you can pick the sand dunes picture and as the day progresses

⏹️ ▶️ John it shows was different, like the morning and the noontime sun where it’s bright, and then the evening, then at night,

⏹️ ▶️ John right?

⏹️ ▶️ Casey I don’t remember how I did it, but there, maybe there was like a open source package. I think there was something that’ll

⏹️ ▶️ Casey generate a JSON file that you need, but what I did was,

⏹️ ▶️ Casey well, long ago for my laptop, when it went on Catalina, you know, shortly after Catalina came out,

⏹️ ▶️ Casey I took a picture that I had taken at Cape Charles on our beach vacation that year,

⏹️ ▶️ Casey and I’d taken a couple of different exposures, one of which was exposed properly, and one of which was way too dark,

⏹️ ▶️ Casey but it ended up working out great so that I made myself a custom-like transitioning desktop.

⏹️ ▶️ Casey And this is one of the things I actually really like about Catalina. And it’s a custom-like transitioning wallpaper

⏹️ ▶️ Casey such that during the daytime hours, it’s the two kids at Cape Charles during the day,

⏹️ ▶️ Casey and then when it becomes dusk, it automatically switches to roughly the same shot, but it

⏹️ ▶️ Casey looks as though it’s at twilight. And it’s just a really nice little, as you were saying earlier, like surprise and delight sort of thing.

⏹️ ▶️ Casey I don’t remember what package it was, whatever I did to generate this. If I can

⏹️ ▶️ Casey dig it up, I’ll put it in the show notes. But if you’re interested in that sort of thing, you should check it out or try it, because it is really

⏹️ ▶️ Casey neat. So anyway, I apologize for the interruption. Carry on.

⏹️ ▶️ John Yeah, and for the first version of Switch Class, I’m like, well, this is just a little frill feature, so I’m not going to spend too much

⏹️ ▶️ John time on it. But even just to do the thing of like, oh, there’s an Apple API that gives you the path

⏹️ ▶️ John to the image. And then, like I said, just open the image, read it, make an image small, shove it in. Like, yeah, not a big

⏹️ ▶️ John deal, right? But that, and I was using, during my testing, I was using, I think, the

⏹️ ▶️ John sand dune image, right? Or maybe I just had it on as a default from a holdover from Mojave, I don’t remember.

⏹️ ▶️ John It’s very difficult to find, as we’ve discussed in the past, 6K background images look

⏹️ ▶️ John nice. Anyway, that image file is 274 megabytes. Whoa!

⏹️ ▶️ John Okay, so if you think, oh, as a frill, when someone opens up the preferences window,

⏹️ ▶️ John I’m gonna read the desktop image, make a scaled version of it and stick it in the preferences

⏹️ ▶️ John window, you kind of have to read, well, maybe not all 274

⏹️ ▶️ John megabytes, which we’ll get that in a second, getting to what Casey was talking about, which is multiple images, but you

⏹️ ▶️ John do have to open a large file and then you have to read some portion of that. And it is

⏹️ ▶️ John actually a pretty high resolution image. And so it’s pretty fast, but

⏹️ ▶️ John it’s not instant. So now you’re, I was faced with this scenario. I’m like, here’s this this

⏹️ ▶️ John frill that I wanted to add, but there’s like a half second delay when I open my preferences window. And there’s a half second

⏹️ ▶️ John on my Mac Pro with 12 cores or 16, I don’t even know how many cores I have. With a bunch

⏹️ ▶️ John of cores and a fast SSD, what if someone has a spinning disk? I don’t wanna delay the opening of a

⏹️ ▶️ John preferences window just so I can show a little frill picture of a desktop image. So that

⏹️ ▶️ John was one challenge. I’m like, oh, maybe I shouldn’t bother with this feature. The second challenge is, thanks to

⏹️ ▶️ John the wonders of sandboxing, If your desktop image is just like a picture of your kids like

⏹️ ▶️ John Casey, I can’t read that image because it’s not part of the operating system.

⏹️ ▶️ John I could prompt you and say, oh, by the way, I’m trying to read your desktop image. They told me it’s in like, you know,

⏹️ ▶️ John users Casey pictures, you know, desktop background. Can you please give me permission to

⏹️ ▶️ John read your documents folder? I’m not gonna ask for permission to read the documents folder from my application switcher.

⏹️ ▶️ John I hate applications that are like that. They’re like, why do you need to read my documents folder? Even if I explain,

⏹️ ▶️ John oh, I just wanna show you desktop manage, people are gonna be like, that’s stupid, and I bet you’re gonna do more than that. You’re an evil program. So

⏹️ ▶️ John there was no way I was gonna prompt for, please give me permission to read your files.

⏹️ ▶️ John So I basically have to have two modes. If I can’t read it, oh well, I just show the box. And if

⏹️ ▶️ John I can read it, now I still have that problem of like, do I wanna delay the opening? So what I did for version 1.0

⏹️ ▶️ John was, Switch Glass doesn’t have a dock icon, it doesn’t have menus, it just has a menu bar

⏹️ ▶️ John icon. and in the menu, the little thing that drops down from the menu bar icon is the preferences

⏹️ ▶️ John choice. As soon as you click on the menu bar icon, I immediately start

⏹️ ▶️ John opening your desktop image and reading it and making the scaled thumbnail, hoping that you are slow in mousing

⏹️ ▶️ John from there down to the preferences thing. I’m doing this on like a background thread, right? And then

⏹️ ▶️ John when you open the preferences window, I say, okay, I know

⏹️ ▶️ John I started that job. I’m gonna give that job like half a second from the time you

⏹️ ▶️ John select preferences, just wait one half a second. And if it’s done in that half second,

⏹️ ▶️ John show the image. If it’s not done, forget it, don’t show the image. And I didn’t wanna put the image in after, but then it’s

⏹️ ▶️ John like you open a window and there’s no image and all of a sudden the image appears and it’s weird, right? And so I kind of tuned

⏹️ ▶️ John that for 1.0 to be like, okay, it’s a big image, but if you have a fast Mac, if you

⏹️ ▶️ John actuate menus at a normal human speed, I will beat you and by the time the preferences window

⏹️ ▶️ John opens, assuming you have a Mac with an SSD, I will have the thumbnail there, right? That’s 1.0.

⏹️ ▶️ John But you know, you know me, I’m not particularly satisfied with that. It’s just what I wanted to do for 1.0. Most people probably saw the image.

⏹️ ▶️ John I had to add an item to the fact, which nobody reads. The fact says, Hey,

⏹️ ▶️ John sometimes I see a desktop picture, but sometimes I don’t. What’s the deal? And I had to explain, well, it could be because I can’t read your

⏹️ ▶️ John image and I’m not going to ask for permission or it could be because things are too slow. Yada, yada, yada. the world is complicated.

⏹️ ▶️ John And you know, I’m fixing bugs and doing other minor things. And for some reason, this was just bothering me, the desktop

⏹️ ▶️ John picture thing, because as Casey alluded to before, these dynamic desktop pictures, which

⏹️ ▶️ John I don’t know if it’s an open thing, but people have reverse engineered it to make tools that let you make your own, but it’s basically a single

⏹️ ▶️ John image file with a bunch of images in it of different times a day, and then some metadata

⏹️ ▶️ John that tells you, okay, this image is for this time of day, this image is for that time of day, so on and so forth. And then if you pick

⏹️ ▶️ John that as your desktop picture, as time passes, the operating system picks a different thing, right? Lots of people have that

⏹️ ▶️ John as their default because it’s the default desktop, like whatever, the Catalina one has the picture of the island of Catalina,

⏹️ ▶️ John the Mojave one had the desert. Those are all dynamic and those are the defaults. And they’re good, they’re nice desktop backgrounds, like I use them a

⏹️ ▶️ John lot, right? And they do look cool and it’s the one sort of changing over time thing that I keep.

⏹️ ▶️ John But what that means is that for the majority of the day, when I show you a thumbnail,

⏹️ ▶️ John if you’ve selected dynamic desktop, It’s wrong because the dynamic desktop like my Mojave thing’s in the

⏹️ ▶️ John background right now, it’s nighttime. But if I just do the naive thing and read like basically the first image

⏹️ ▶️ John in the big giant file, it’s gonna show whatever the first image is, which is usually like the midday or dusk

⏹️ ▶️ John one or whatever. And that’s no good. Like I cheated in the screenshots. All my screenshots

⏹️ ▶️ John I show the background matches the time of day because I just made my background be

⏹️ ▶️ John the default time of day. You know what I mean? Like, so it looks like they match, but if you’re actually running it And I actually

⏹️ ▶️ John win the race and pull that image. When you open the preferences window, you’re like, well, I can see that’s

⏹️ ▶️ John the island of Catalina, but right now mine’s in bright sun and this picture is like twilight. So,

⏹️ ▶️ John oh well, maybe he won’t notice. But I was like, I can do better than that, right? I knew people had reverse engineered

⏹️ ▶️ John this format. So I’m like, okay, well, I can do the same thing. I can open the file, I can read that metadata

⏹️ ▶️ John and figure out which one of these images I’m gonna pull. Now, the first thing that surprised me was I thought

⏹️ ▶️ John there was like three images, like morning, noon, and night. I think there’s like eight or 16 or 12,

⏹️ ▶️ John like it varies from file to file. There’s a lot more images than you thought, which is why they’re 274 megs. Like, oh, this isn’t great.

⏹️ ▶️ John The second thing that surprised me, I don’t know if Casey’s tool accounts

⏹️ ▶️ John for this or maybe there are multiple supportive formats, but I expected it to be like, metadata

⏹️ ▶️ John would be like between the hours of, you know, 6 a.m. and noon, show this picture,

⏹️ ▶️ John and then from noon to three, show this picture, and you know, like that’s what I expected. but that’s not what it’s like at all.

⏹️ ▶️ John What’s in the metadata for Apple’s images is, first of all, it’s like a P-list,

⏹️ ▶️ John which are great to deal with in Swift, let me tell you.

⏹️ ▶️ John, Casey Just like a

⏹️ ▶️ John big, giant dictionary of arbitrary data and with single letter

⏹️ ▶️ John keys. And single letter keys are like, on one of the things is like I, A, and Z.

⏹️ ▶️ John The I is the index saying like, this is the information about image number five, right? Easy enough.

⏹️ ▶️ John The A is the azimuth and no, the Z is the azimuth and the E, that’s

⏹️ ▶️ John E, E for elevation. Anyway, it’s the position of the sun using, what are they called?

⏹️ ▶️ John Radial coordinates, horizontal coordinates. It’s the, it’s azimuth and elevation. It’s basically like if you’re sitting on

⏹️ ▶️ John the earth, how far do you tilt your head back to look up and how far do you look from

⏹️ ▶️ John left to right? And instead of time of day. So, and this is just two numbers,

⏹️ ▶️ John like the azimuth and the elevation. So I know what time it is,

⏹️ ▶️ John but I don’t know what the azimuth and elevation of the sun is, right? Because you have to know where they are.

⏹️ ▶️ John Exactly, so here we are back in Catalina again. It’s like, well, if I want to figure out which image to pick from this

⏹️ ▶️ John file, I need to know where the sun is. If I need to know where the sun is, I need to know where you are, which means I need to ask for location. Oh no.

⏹️ ▶️ John Ha ha ha. That’s not good. When you open the preferences dialog, I don’t want to throw

⏹️ ▶️ John up a thing in your face that says your application switcher would like to know your current location. Allow or deny.

⏹️ ▶️ John That’s not a good experience. I can’t be asking people where their location is.

⏹️ ▶️ John I thought I would get rejected from app reviews. I’m like, oh, this is such a pain. So I mean, I was kind of

⏹️ ▶️ John dedicated, you know, too far into it at this point to bail out. I just wanted to see this through. So I

⏹️ ▶️ John did go through the dance of figuring out what it takes to get permission. That it’s, you know, location

⏹️ ▶️ John is one of the fairly straightforward ones, but it’s still so weird. Like the APIs. On

⏹️ ▶️ John iOS, you get to ask, like I’m sure Marco’s familiar with these, there’s like APIs to ask for permission.

⏹️ ▶️ John You can ask her if you want, for a location where you can say always or only when using the application. Like there’s

⏹️ ▶️ John a way, there’s a sort of imperative way to say, I am now gonna throw a dialogue in

⏹️ ▶️ John your face that asks you permission to do a thing. On the Mac, at least when it comes to location, it’s different. You

⏹️ ▶️ John don’t ask, you just try to do it. When you try to do it,

⏹️ ▶️ John a couple things could happen. If in a clean slate, you just try to just call the API that

⏹️ ▶️ John asks for a location. When you call that API, a dialogue will pop up in their face and say, application whatever wants

⏹️ ▶️ John to use your location, allow or deny. If they say allow, good, you’re allowed

⏹️ ▶️ John and that’s it. And there’s no like, it’s just, you’re just allowed. And from that point on until they, unless they go into

⏹️ ▶️ John system preferences and, you know, uncheck your thing from the relevant thing, you’re allowed, great.

⏹️ ▶️ John If they hit deny, obviously your call fails and you don’t get any location. But also from

⏹️ ▶️ John that point on, if you ever call that API again, it doesn’t pop

⏹️ ▶️ John up a dialogue anymore, it just fails. Right, so what you have to do is make

⏹️ ▶️ John a call, make a preflight call that says, have I asked before and been turned down? If

⏹️ ▶️ John so, I gotta make up my own dialogue that says, hey, I asked you about this before, you might not remember,

⏹️ ▶️ John but you said no. But you’re trying to do a thing in my app that requires location.

⏹️ ▶️ John So if you wanna give me a location, I can’t present you with a dialogue that lets you allow. Instead,

⏹️ ▶️ John I have to, with words, describe to you, go to system preferences, go to security and privacy, go to the location

⏹️ ▶️ John tab, and then look for my thing, because it’ll already be in the list. I know you didn’t put it in the list, but it got there last

⏹️ ▶️ John time and you denied me. Look for it in the list. Oh, by the way, click the lock and enter your admin password to unlock it. Now

⏹️ ▶️ John look for my thing in the list, find the check mark next to it, and check it, and then come back here, and now you’ll be able

⏹️ ▶️ John to do this thing. There’s no way in hell I was gonna explain all that. Like, there’s lots of Mac

⏹️ ▶️ John apps that have very clever UIs that like, they will launch, you can launch system preferences to that exact tab,

⏹️ ▶️ John and I figured out how to do that too with like the URL scheme or whatever. But then other apps will like draw their own

⏹️ ▶️ John UI around system preferences with arrows pointing. Have you seen these ones? Like SuperDuper does something like this.

⏹️ ▶️ John Some of them have a proxy icon of their app in the windows that they’re controlling, and they’ll say, drag this little

⏹️ ▶️ John miniature picture of my app into the list with like a green arrow above it,

⏹️ ▶️ John and that proxy icon will represent their app. Like lots of very clever things. All of this is UI that no developer

⏹️ ▶️ John should ever have to do. Like Apple shouldn’t make this easier like it is in iOS where you can ask

⏹️ ▶️ John for permission, you can throw up a dialogue, and people can say yes or no. The fact that on the Mac, once you ask

⏹️ ▶️ John once, you can never make that dialogue appear again is terrible. Anyway, I did all this stuff

⏹️ ▶️ John and I said, okay, but it doesn’t change the fact there’s no way in hell I’m asking people for the location. So I can’t

⏹️ ▶️ John do that. What I can do instead is pick a reasonable default location, and it’s gonna be off

⏹️ ▶️ John by a little bit because if you’re in Canada and it’s dark already and I pick a location

⏹️ ▶️ John that’s closer to the equator, I’m gonna show the wrong desktop, but. Why don’t you pick Catalina? No,

⏹️ ▶️ John I pick Cupertino, because a lot of the examples online have that. Like I picked Apple Park,

⏹️ ▶️ John right? That’s not a great location, but at least there’s some excuse for it. And in general,

⏹️ ▶️ John in the middle of the night it will be dark. And in noon it will be light. And then

⏹️ ▶️ John sunrise and sunset might be a little off. But that’s a reasonable default.

⏹️ ▶️ John So then I was like, OK, this is fine. I can ship this. People will complain a little bit that it doesn’t match their background.

⏹️ ▶️ John But it’ll match their background within a couple of hours here or there. And if you’re in the Arctic Circle, well, you

⏹️ ▶️ John can’t help everybody.

⏹️ ▶️ Marco I actually have another suggestion if you want. Well, I’m not

⏹️ ▶️ Marco, John done.

⏹️ ▶️ John Far from done. But what is your suggestion about location, if that’s what it’s

⏹️ ▶️ Marco about? I was going to say you can look at their locale to get an approximation of what country they’re in.

⏹️ ▶️ Marco then you can look at their time zone and see approximately what part of the country they’re in. And you can kind of sort

⏹️ ▶️ Marco of make an educated guess of like, all right, well, what are the most populated areas of this country or whatever?

⏹️ ▶️ Marco Or just say like, whatever country they’re in, just like pick the middle longitude and then whatever

⏹️ ▶️ Marco latitude is the middle of the time zone they’re in.

⏹️ ▶️ John Yeah, you gotta hope they’re in a small place, a small place, like the locale, I’m not sure how precise

⏹️ ▶️ John locale is gonna get you either because locale is like, it’s a combination. Like you don’t necessarily

⏹️ ▶️ John know what country they’re in based on the locale. Right. You might. You might be able to get in the ballpark, but

⏹️ ▶️ Marco, John not necessarily. You can probably

⏹️ ▶️ Marco at least tell what hemisphere they’re in. And then when you combine that with time zone, you can get a pretty good estimate.

⏹️ ▶️ John Yeah. Anyway, I wasn’t too worried about the details. And in the end,

⏹️ ▶️ John I did write all the UI for a secret hidden feature that’s like, look, if you care about this, you can

⏹️ ▶️ John option click on the little thingy, and it will actually lead you through all the prompts to enable the location. But it’ll never

⏹️ ▶️ John do it on its own. But if you really care enough about this that you want it to be accurate, we can go through and we can get your

⏹️ ▶️ John location and it’ll be fine, right? Maybe I’ll throw in some locale stuff with better guessing, but

⏹️ ▶️ John I do wonder, you know, how much better that will be than just picking something that’s sort of like,

⏹️ ▶️ John I don’t know, it’s obviously a bias sort of thing, but like, Cupertino’s probably a little bit too far north. But I didn’t want to pick something in

⏹️ ▶️ John the equator, I didn’t want to pick something on the pole, so I’m trying to pick something like midway through the equator in the pole and it’s going to be more

⏹️ ▶️ John wrong if you’re in a different hemisphere or during, anyway. So, then I’m like, okay,

⏹️ ▶️ John well that’s fine. I can ship that. It will be more correct for most people and I can look at where

⏹️ ▶️ John my meager sales are coming from. It’s mostly from the US anyway, so it’s, you know, it’s like, it would

⏹️ ▶️ John be fine. It’s better than it was before. Most of the time it would match. But then I had the problem

⏹️ ▶️ John of, if before making that one thumbnail image took a long time,

⏹️ ▶️ John now I have to read the file, parse it, get the information. Like there’s more opportunities

⏹️ ▶️ John for caching. Like, well, I should really just like not read the file and parse it more than once. I should keep track of where everything is. Uh,

⏹️ ▶️ John and then I had a thing where once I did that once, if you pulled up the preferences window again, I wouldn’t redo

⏹️ ▶️ John the work. I wouldn’t redo that whole waiting. I already had the image for you, but now I have to expire that cache

⏹️ ▶️ John of an image at a certain point and no one that’s going to change over to something else. Right.

⏹️ ▶️ John Uh, and it just like, even just parsing the whole file and getting all that information was a little bit costly, I was like,

⏹️ ▶️ John I can probably make this, it was getting slow, it was like, it’s not doing

⏹️ ▶️ John that much work, but you know, half a second delay becomes a second delay, and now your app starts to feel sluggish

⏹️ ▶️ John and wise, you can show a little thing. So I’m like, I only want it to be sluggish maybe the first time when people won’t notice. So I wanted to

⏹️ ▶️ John pre-parse the file, pull out all the images, make all the thumbnails,

⏹️ ▶️ John and stash them away so that when they pull it up again, if they haven’t changed their desktop background, I can just show the

⏹️ ▶️ John next image from whatever the time has passed, right? Then at least my change over time would be

⏹️ ▶️ John accurate and I wouldn’t be delaying them every single time they bring anything up. And again, most people aren’t gonna bring up the preferences but whatever,

⏹️ ▶️ John that’s what I was doing. So I wanted to have the best of both worlds, which is

⏹️ ▶️ John I wanted you to be able to quickly get the thing up before I’ve done all that parsing, but then I

⏹️ ▶️ John wanted it to be replaced with the correct image if it did that fast enough. So now I’m doing multiple things. You click on that icon

⏹️ ▶️ John in the menu bar and I’m doing the default thumbnail real fast and getting that ready. And I’m also in

⏹️ ▶️ John parallel doing all the other thumbnails, you know, using those cores, right?

⏹️ ▶️ John How can I get my app switcher to peg all the cores in your computer? Briefly, I can do it when you click on the menu bar icon and I pre-process

⏹️ ▶️ John all of your images. And then when it comes up, if the correct one is ready, you see that one. If the incorrect one is ready,

⏹️ ▶️ John you see that one and it shortly gets replaced by the correct one, which is less jarring transition because it’s just a little bit brighter or darker, right?

⏹️ ▶️ John So I have that, I’m like, okay, That’s, I’ve already put too much work into this. I’m done. I’m just going to ship this.

⏹️ ▶️ John It’s fine. Who cares? It’s just a frill. It’s not an essential part of my application. I’ve already tempted fate by making

⏹️ ▶️ John these, having to check the location services thing and the sandboxing thing, just so I could potentially

⏹️ ▶️ John bring up that dialogue with a weird modifier click that nobody knows about, hopefully. Right? Let’s just do that.

⏹️ ▶️ John Then I found out sometimes when you ask the operating system for what the desktop background is, it’s not

⏹️ ▶️ John a picture. I don’t know if any of you do this, but there’s at least one person that I know who does this because

⏹️ ▶️ John he gave me the bug report, which is like, hey, if you don’t pick a picture for your desktop background, it’s wrong.

⏹️ ▶️ John I’m like, what do you mean if you don’t pick a picture? It’s like, well, you can pick solid colors too.

⏹️ ▶️ John If you go to the system preferences, there’s like solid colors and it’s not like a folder full of images.

⏹️ ▶️ John Well, it turns out, I did it. I’m like, hey, it works fine for me. I picked one of the solid colors and it’s fine. Because the solid

⏹️ ▶️ John colors are like cyan.tiff or whatever. They actually are files on disk that are just colors.

⏹️ ▶️ John And he was like, oh, I guess it’s because I have a custom color. What you can also do is

⏹️ ▶️ John pick a custom color and then it brings up a color picker and you just pick whatever color you want. And that’s not an image

⏹️ ▶️ John at all. When you pick custom color and you call that API that says, hey, what image are they

⏹️ ▶️ John using for the desktop background? It gives you this like transparent.tiff.

⏹️ ▶️ John And then you have to do some other API to figure out what color it is. And that took me a while to figure out because

⏹️ ▶️ John there’s no API that gives you that information. But there is an API that tells you stuff about the background, about the picture,

⏹️ ▶️ John it says, oh, should it be scaled to fill, or should it be this? And there’s also a background fill color for when your image

⏹️ ▶️ John doesn’t exactly fit your screen. Apparently it uses that background fill color to be your custom color as well. So

⏹️ ▶️ John I was happy to find that. So I’m like, all right, now I got some special case code. If your background is this exact

⏹️ ▶️ John path to this transparent TIFF, call this other API, get the fill color, make an image of that color, put it in the

⏹️ ▶️ John thing. All right? This can’t be worth it. Oh, no. We’ve not yet begun to

⏹️ ▶️ John fight. Oh, no. All right, so then I’ve covered

⏹️ ▶️ John that custom color case. And I was doing other stuff

⏹️ ▶️ John in bug fixes too. This has just always gone in the background. It was like my quote unquote fun project because I got to use multi-threading

⏹️ ▶️ John and it was kind of fun doing that type of stuff and watching you utilize your computer

⏹️ ▶️ John briefly and figuring out how to make it space efficient. I was compressing the thumbnails to a smaller form

⏹️ ▶️ John in memory so my memory wouldn’t be bloated. I was looking at instruments and watching the memory briefly spike up really

⏹️ ▶️ John high and then drop back down, which is a great thing that you usually don’t see in server-side development with high-level languages because once

⏹️ ▶️ John it allocates memory, it never wants to give it back to the OS, but this does. I was like, this is great. I was using the

⏹️ ▶️ John leaks tool and doing all this cool stuff, having fun. I thought I was ready to ship it.

⏹️ ▶️ John Actually, I did ship it. I shipped this update. It’s the one in the store now, 1.1.1. More or less described,

⏹️ ▶️ John it works exactly as I described. But in more discussions with developers, I was

⏹️ ▶️ John talking about this in one of the Show & Tell channels on one of the Slacks I’m on with developers, Someone mentioned, oh,

⏹️ ▶️ John you know, there’s another way to do this. This person had actually done it in his app. It’s like, apparently,

⏹️ ▶️ John if you walk the window list, you can find the desktop window and

⏹️ ▶️ John you can grab an image of it. Oh, God.

⏹️ ▶️ John, Marco I

⏹️ ▶️ John was like, well, don’t you, isn’t that gonna throw up the screen recording prompt? I don’t know if you’ve ever seen this,

⏹️ ▶️ John like application

⏹️ ▶️ John, Casey X wants to record your

⏹️ ▶️ John screen. Like, lots of applications do that, but they don’t really wanna record your screen, but if you do anything that involves

⏹️ ▶️ John like reading data from any other window thing. Like it’s kind of amazing on the Mac and Sandbox

⏹️ ▶️ John that you actually can get the window list. It’s just a bunch of metadata. It’s like this window is this size and this position,

⏹️ ▶️ John right? Like the ability to do stuff with those windows is severely limited to Sandbox and the apps.

⏹️ ▶️ John You can’t like close those windows or move them around without accessibility. Like there’s a bunch of other things, you know, permissions you need

⏹️ ▶️ John to ask for to do stuff. But you can get the window list with no permissions, right? And you can

⏹️ ▶️ John kind of find the desktop image. And once you find that window, Apparently,

⏹️ ▶️ John even on Catalina, because it’s the desktop window, if you ask just to

⏹️ ▶️ John read that window, you don’t have to ask for screen recording as far as I’ve been able to tell.

⏹️ ▶️ John I did get it to come up because initially I asked for the window and I didn’t pass the right option and it was giving me that

⏹️ ▶️ John window plus everything above it and that does prompt you for screen recording and I just hit deny. But I think

⏹️ ▶️ John if you just ask for the desktop, you get that. And that’s ideal because then I’m like, oh look at this, I’ve simplified all this code.

⏹️ ▶️ John I don’t have to read this weird ass file and parse it, I don’t have to figure out if it’s a transparent thing and synthesize my own

⏹️ ▶️ John thing. I’ll just get whatever the picture is on your desktop. In fact,

⏹️ ▶️ John someone else posted something, another approach to this, which was like this core animation plugin

⏹️ ▶️ John thing where not only can you get the contents of the desktop window, but what

⏹️ ▶️ John you can make is another little window on your screen that is essentially a miniature shrunken live

⏹️ ▶️ John version of some other window.

⏹️ ▶️ John, Marco There was like a demo

⏹️ ▶️ John app. That would be cool. There was like a demo app that was like, I’m gonna show you a shrunken version of your whole screen

⏹️ ▶️ John in a like in a postage stamp. And it’s like live updating, like you could drag things around and see it moving around in the postage stamp.

⏹️ ▶️ John As you can imagine, that totally does not work in Catalina. Like that is not, they’re not letting you just

⏹️ ▶️ John look at other windows. It doesn’t prompt you for screen recording. It’s just like, yeah, no.

⏹️ ▶️ John It doesn’t crash or error out, but it is totally non-functional. So I was excited about that for a second. I coded it

⏹️ ▶️ John all up. And then I realized this doesn’t work at all. And I use the demo app. I should have done this in the beginning.

⏹️ ▶️ John Let me try running the demo app. Yeah, the demo app just shows a gray window. So that was kind of disappointing, but I was excited about it. But I’m like,

⏹️ ▶️ John fine, well, whatever. I still got the thing where I can find the desktop window and I will just grab that image and

⏹️ ▶️ John it just, it’s gonna simplify all this crazy, stupid multi-threaded code and preloading

⏹️ ▶️ John and caching or whatever. This will make things simpler. I can just grab the picture that’s there.

⏹️ ▶️ John It never does make things simpler, does it? So I did that

⏹️ ▶️ John and it more or less worked, but the problem I ran into, and this is a whole other war story for another

⏹️ ▶️ John day, was that when you go through the window list, how do you find the window that’s the desktop?

⏹️ ▶️ John Like, well, you can kind of tell, like the owner is the doc and there

⏹️ ▶️ John aren’t many windows like that. It’s gonna be the same size as your screen. That’s a good clue.

⏹️ ▶️ John And the layer is gonna be like negative 2 billion or something like this, this, some, you know, the,

⏹️ ▶️ John the bottom layer or the bottomist or a very bottom layer, like, like, Oh, that that’s, you know,

⏹️ ▶️ John a human could find it. And I’ll, by the way, the name is called desktop picture, hyphen

⏹️ ▶️ John name of picture. Like look at this. How could you not find the desktop image? It’s really easy to find. And then

⏹️ ▶️ John you think, wait a second. And especially if you’ve been doing this multi monitor stuff that I’ve been doing,

⏹️ ▶️ John how do I distinguish one desktop picture from a different one? If you have two identical monitors

⏹️ ▶️ John that are the same manufacturer and the same model running in the same resolution But have two different desktop pictures

⏹️ ▶️ John on them How do I tell which desktop picture goes with which monitor?

⏹️ ▶️ Casey Oh no

⏹️ ▶️ John Not it’s not particularly easy There are some heuristics

⏹️ ▶️ John you can do like alright for the file name thing if you have your desktop background set to

⏹️ ▶️ John a file and it’s set to a different image, they’ll have different file names in the name. So one

⏹️ ▶️ John will say desktop picture hyphen mojave.heek and the other one will say desktop picture

⏹️ ▶️ John hyphen catalina.heek, right? And I can ask for the URL to

⏹️ ▶️ John the desktop picture and match it up, right? And I can say, okay, well, let me take the file name portion of the

⏹️ ▶️ John desktop URL and make sure it matches that. Now you can fake it out because if you make a file called mojave.heek and you put it in a different folder

⏹️ ▶️ John and that’s really a picture of your kids, Congratulations, you fooled me, but that’s all the information I have to go on and obviously

⏹️ ▶️ John I’m matching on size, right? I Can’t really match on screen origin because depending

⏹️ ▶️ John on the arrangement of the screens the origins It’s not I haven’t found a way to to sort

⏹️ ▶️ John that out. But just the file name part. I’m like, well again This is probably gonna be right people aren’t gonna

⏹️ ▶️ John intentionally fake it out if they literally have the same image It doesn’t matter if they name the picture of their kids

⏹️ ▶️ John in Mojave dot heek. Oh, well, but how common is that? that I’m probably good here, right? Let me just

⏹️ ▶️ John do this. It’s way easier than the other technique. And it was still a little bit of work because I

⏹️ ▶️ John was like, well, I do have the fallback where if I really can’t figure out what monitor something

⏹️ ▶️ John belongs to, I can always just fall back to the other code that I didn’t delete that does it the hard, the quote unquote hard way.

⏹️ ▶️ John So I left that all in there and there was this weird cascade of like, I’ll make the best effort to find the desktop images. If I find them, I’m gonna use

⏹️ ▶️ John them because that’s the way easier way to do it. But if I can’t find them or it’s too ambiguous, I’ll fall back to the other way. And I already had

⏹️ ▶️ John all the code to do that. And now, this is by far the most complicated part of my programming.

⏹️ ▶️ John The most lines of code, the scariest code, the most parallel stuff.

⏹️ ▶️ John The most CPU intensive, the most memory intensive. And by the way, getting better,

⏹️ ▶️ John doing it this way of finding the window takes way less memory and is way faster than the other ways I was doing it, so I vastly

⏹️ ▶️ John prefer this one. But again, the APIs provided to me, they do not make this easy.

⏹️ ▶️ John It’s like a mystery adventure. You can get 99% of the way really easy, and then you’re like, but how do I tell?

⏹️ ▶️ John How do I know? Right? So I did that. I was like, okay, this is what I’m gonna ship

⏹️ ▶️ John along with this other set of bug fixes and stuff I’m doing. Like, it’s better than it was before. It uses less memory. It is

⏹️ ▶️ John more accurate. There are some scenarios where it’s gonna get confused, but oh well, things are moving

⏹️ ▶️ John in the right direction. And yes, it’s 100 times more complicated, but it seemed to be working fine. Like, this whole time,

⏹️ ▶️ John no crashes or anything. I’m really enjoying Swift. Like, I’m not writing correct

⏹️ ▶️ John programs, but they are not crashing. Like they’re just not working right, which is great. I feel like I’m really getting the benefits of

⏹️ ▶️ John Arc and all that other good stuff. And not leaking too. And I found, by the way, I found the static analyzer. I’m like,

⏹️ ▶️ John I remember those sessions about the static analyzer. Where does that command the next code? Like is there a code to run the static

⏹️ ▶️ John analyzer? So I Googled it

⏹️ ▶️ John, Casey and I found the static

⏹️ ▶️ John analyzer. Yeah, and I ran it. And I realized that if it had

⏹️ ▶️ John ever said anything, like there was a little tab on the sidebar where it would be yelling at me, there was nothing in the thing. I kept

⏹️ ▶️ John running it. I’m like, nothing? Like literally nothing. Like, how is that possible?

⏹️ ▶️ John So either I’m doing something wrong or it is a not as mean a linter as I thought it would be.

⏹️ ▶️ John Or Swift is reading me, leading me down the correct path to just not write any code that the static analyzer

⏹️ ▶️ John yells about. Nothing, nothing is that anyway. So I was going to ship this

⏹️ ▶️ John and then I found yet another edge case that made me

⏹️ ▶️ John not be able to ship this. And that was what else can you set

⏹️ ▶️ John your desktop background to? Maybe Casey knows this. Solid colors, pictures of your own choice,

⏹️ ▶️ John dynamic desktop backgrounds, what else?

⏹️ ▶️ Casey You can set it to like photo albums, can’t you?

⏹️ ▶️ John Oh, you’re right, I found one more that I haven’t even found. Can you

⏹️ ▶️ Casey do it? I’m pretty sure you can say, yo, take a photos album.

⏹️ ▶️ Casey Does that make sense? Like an album

⏹️ ▶️ Casey, John from the photos app. Yeah, I know

⏹️ ▶️ John you can do it with screensavers. Can you do it

⏹️ ▶️ Casey with? Oh no, no, you’re right. Maybe I’m thinking of screensavers. I think you might be right.

⏹️ ▶️ John Oh no, I do see photos. Wow, yeah, that’s another one. So congratulations, you’ve made more work for me. But the

⏹️ ▶️ John, Casey one

⏹️ ▶️ John I

⏹️ ▶️ John, Casey found that’s

⏹️ ▶️ John not, yeah, it was disclosed. The one I found that is not photos, which God, what is it doing? You pick

⏹️ ▶️ John photos, I have to

⏹️ ▶️ John, Casey find out. Anyway, the one I found that is not

⏹️ ▶️ John photos, and like in the end, like for the photo stuff, like in the end that wouldn’t matter, right? Because

⏹️ ▶️ John like I don’t really care where the image comes from anymore with my new technique. I just find the desktop window and just read it. I

⏹️ ▶️ John don’t care how the bits got there. I just, I see it and copy it, right? So maybe that works fine with photos.

⏹️ ▶️ John The one it doesn’t work with, and maybe it doesn’t work, we’ll see. The one it doesn’t work with is, if you

⏹️ ▶️ John click the checkbox at the bottom that says, change my picture every n minutes or whatever,

⏹️ ▶️ John you know that one? If you do that, when you call the API that

⏹️ ▶️ John says, tell me what the URL to the desktop image is, it doesn’t give you the URL to the image.

⏹️ ▶️ John Instead, it gives you the URL to the folder where all the images are. Oh no. Which

⏹️ ▶️ John is the worst. It’s like, you know what the image is, you changed it. Just give me the URL of whatever image you’re currently showing. Nope, you’re

⏹️ ▶️ John gonna get the folder URL. As you can imagine, the folder URL is not particularly useful when it comes

⏹️ ▶️ John time to find the image that belongs to. So when you pick the rotating thing,

⏹️ ▶️ John I have to use the new way, because if I don’t use the new way of taking, you know, grabbing the picture of the desktop,

⏹️ ▶️ John I have no other information. I don’t know what image in that folder you’re currently showing. All I can do is

⏹️ ▶️ John pull from that thing. So now I’m much more reliant on the new technique. So now I’m really like sweating over.

⏹️ ▶️ John In this scenario, I can’t bail on the not being able to figure out which desktop. I just have to pick one. I

⏹️ ▶️ John just have to say, look, I’m just going to guess you have two identical monitors. I’m going to make a best guess. And the way

⏹️ ▶️ John I can make a best guess, I can help a little bit by saying, okay. I can find

⏹️ ▶️ John out what the name of the images, because that’s still in the window name, and I could find out

⏹️ ▶️ John in this folder that the image URL is returning. Is there an image name, the same as this one in this desktop? Because

⏹️ ▶️ John if there’s no image of that name in that folder, I know it doesn’t belong to this monitor. If there is an image of that name in that folder,

⏹️ ▶️ John I don’t know for sure, but it’s a stronger hint So I just up the my heuristics game a little bit

⏹️ ▶️ John and I did a little bit of work with the origins to try to figure Out that the origins were off a little bit But I did a little bit of wonky

⏹️ ▶️ John Stuff to try to make like a best guess of like well if the origin is within this range. It’s probably that monitor

⏹️ ▶️ John anyway more more special case code and I

⏹️ ▶️ John got that more or less working. I didn’t know about the photos thing. So I have to look at that Obviously, I didn’t shut

⏹️ ▶️ John, Casey this

⏹️ ▶️ John yet. Sorry Yeah, I got one like when I pick a photo album, what the hell is that image

⏹️ ▶️ John URL thing in their return? I don’t even know. And we’ll be able to do anything with it.

⏹️ ▶️ John And then, like I was, you know, someone mentioned on these very slack channels, we’re

⏹️ ▶️ John talking about this too, like, Oh, yeah, of course, when someone brings up the preface window, if they just leave that preface window open for a long time,

⏹️ ▶️ John like it’s gonna get out of date, right? Maybe the desktop background is changing every five minutes and it changes out from under them

⏹️ ▶️ John or like the time of day changes. I’m like, Oh, yeah, I’m fine with that. who’s gonna leave the prefs window open for a long time, right?

⏹️ ▶️ John But it started to bother me, I’m like, I got all this machinery in there.

⏹️ ▶️ John, Marco Like, it’s

⏹️ ▶️ John a desktop, I don’t know when the desktop background changes, but what if I just checked every 30 seconds

⏹️ ▶️ John or something? That shouldn’t be too hard, right? And so now I’m

⏹️ ▶️ John like, I had no polling and no timers in my whole app, I’m like, I can add a 60 second timer to

⏹️ ▶️ John each preferences window to check whether the things change. And that was a big mistake because

⏹️ ▶️ John it is horrendously complicated because guess what? If they have it set to a folder full of things,

⏹️ ▶️ John the URL is never gonna change. Like you’re gonna say, is the URL still desktop pictures folder? And it’s gonna say, yep.

⏹️ ▶️ John You’re like, okay, but did the image change? Well, I don’t know, it’s desktop pictures.

⏹️ ▶️ John Maybe I could wander the window list and look to see if the file changed there.

⏹️ ▶️ John And that like all my other caching mechanisms were built on the idea that the URL would change and the file, if the image

⏹️ ▶️ John changes, that’s not true. Oh, and by the way, the lowest setting in totally non-Apple-like fashion

⏹️ ▶️ John is that you can set your desktop picture to change every five seconds. Oh my

⏹️ ▶️ John, Casey goodness. Which there’s

⏹️ ▶️ John no way I’m going to pull that fast. Like I don’t even want to like read the image and make the thumbnail every five seconds. That’s

⏹️ ▶️ John way too fast. So I spent a while on that. I’m like, okay, what is a reasonable balance of

⏹️ ▶️ John being responsive to like, if you leave the window open for an hour, it has a chance of being correct versus being able to keep up with the

⏹️ ▶️ John every five second thing. And during the course of that, I found yet more bugs in this technique, which is,

⏹️ ▶️ John uh, this, I’m not going to get into the multi monitor stuff, but the way I’m doing multi monitors with sidecar with my iPad, right?

⏹️ ▶️ John Which has been a blessing cause I don’t want to keep looking at a second monitor over here. Um, and

⏹️ ▶️ John one of the many tests that I do for various scenarios is what if your app is in some state,

⏹️ ▶️ John one of its many possible states and you suddenly connect an external monitor, how do you handle that? Right?

⏹️ ▶️ John I don’t know if this is particular to sidecar or just second monitors in general, but all All

⏹️ ▶️ John the code that I have to do that is like, oh, second monitor appeared. Make sure you got a palette on it, make sure you find the preferences

⏹️ ▶️ John for that monitor, make sure you put it there on by the way. If the preferences window is up, the preferences window should also be up

⏹️ ▶️ John on the new monitor that just appeared. That all works great, except apparently,

⏹️ ▶️ John when you just connect the monitor, my app reacts fast enough that when it goes to read the desktop

⏹️ ▶️ John window, the desktop window is not done drawing into the backing buffer for the window, and I get

⏹️ ▶️ John an image of like the first third of the thing, like a half downloaded image instead

⏹️ ▶️ John of getting the full desktop image. So I had to like add a delay that says when a

⏹️ ▶️ John new monitor appears, just wait a second, wait for the desktop image to fill in behind it,

⏹️ ▶️ John then grab it out of there. And I hate adding crap like that. Cause it’s like how long is a long enough delay? You don’t want to wait too

⏹️ ▶️ John long, but you can’t get the image that way. If you don’t do it that way. And by the way, you don’t have a

⏹️ ▶️ John fallback technique if they have it on the rotating image thing. So here I am connecting and disconnecting monitors,

⏹️ ▶️ John making my desktop picture change every five seconds, making sure that there’s no scenario in which you could,

⏹️ ▶️ John you don’t see a reasonably up-to-date image and that the caching all works.

⏹️ ▶️ John So that’s where I am with this. I did not ship this updated version, which is, it doesn’t have many

⏹️ ▶️ John new changes. And in fact, there’s a bunch of other fixes that I want to add in before I do it. But the desktop picture stuff,

⏹️ ▶️ John this is a perfect example, and more of the war stories will come up, of like a scenario where

⏹️ ▶️ John ostensibly macOS offers APIs to do a thing, but they are so

⏹️ ▶️ John incomplete in frustrating sort of 1% edge case ways that to make

⏹️ ▶️ John an application that really does what people expect you to be able to do is incredibly complicated.

⏹️ ▶️ John Like literally all I want is give me a small version of the desktop images on this screen. If that was an

⏹️ ▶️ John API, oh, give me the full size image of the desktop images. If that was the API, I would be done. But there’s

⏹️ ▶️ John no API to do that. There’s an API that ostensibly gives you a URL, but as you’ve seen, it doesn’t give you a real

⏹️ ▶️ John URL. Sometimes it gives you a folder. Sometimes it gives you a transparent TIFF, and you have to know to look elsewhere for the things.

⏹️ ▶️ John And God knows what it gives you with photos. What about getting the picture? Sometimes you can get it. Sometimes you can’t.

⏹️ ▶️ John Will that URL change when the image changes? Sometimes it will. Sometimes it won’t. Can you go to the window list? Yeah,

⏹️ ▶️ John but you can’t tell which desktop belongs to each thing. Can you parse the files? Yeah, you can parse them. But then you have to know the location

⏹️ ▶️ John and the solar position. Like, the task that needs to be accomplished. If I was at

⏹️ ▶️ John Apple, this is more than one day’s work. You could make an API to do this. The API would be called, it

⏹️ ▶️ John would be like an NSScreen API or like get desktop image for screen. Like there would be an API named like the

⏹️ ▶️ John code that I’m writing and on the inside of it, if you’re in the OS, I can actually get that info. But instead

⏹️ ▶️ John I’m like I’m peeking through these little, peeking through the keyholes, peeking through these little windows saying, what’s going on

⏹️ ▶️ John in there with desktop image? Hey, hey guys, hey, is there something on the desktop? Can I

⏹️ ▶️ John get that image and know what screen it’s associated with? And the OS is like, don’t bother us here,

⏹️ ▶️ John Call this API, it returns something. You can probably find some other info out there. Just figure

⏹️ ▶️ John it out. You can really piece it together like a Columbo mystery. This is just one more thing. Can you just tell me what the name of the file

⏹️ ▶️ John is on that screen? Just one more thing. What is the origin and what coordinate system is that in again?

⏹️ ▶️ John Just one more thing. So I have not yet shipped this update.

⏹️ ▶️ John, Casey And

⏹️ ▶️ John I really need to stop doing anything having to do with desktop pictures. Because let’s remember,

⏹️ ▶️ John this is all just to put tiny picture of your desktop in the preferences window

⏹️ ▶️ John that most people will never see. They’ll go to once set it up and never look at it again.

⏹️ ▶️ Marco You need another app.

⏹️ ▶️ John I do have to actually fix some bugs and add some features to this. Um, lots of people want things that, the thing

⏹️ ▶️ John that surprised me the most with all the feature requests is people want this thing that I explicitly don’t

⏹️ ▶️ John want. I don’t know if people want it that I’m probably going to add it. But people, what people want is like, I guess that it’s

⏹️ ▶️ John used to the way the doc behaves. When you’ve got an application that has no windows open and you switch to it, people want

⏹️ ▶️ John it to open a window. That, I don’t, I hate that behavior.

⏹️ ▶️ John I just want to switch to it. But everybody’s like, if I have no windows open and I click the dock

⏹️ ▶️ John icon, or you know, a thing in Switch Glass, I want it to open a new window. Like, really?

⏹️ ▶️ John And like, or if it has minimized windows, they said, if I click on the thing and there’s no windows open, I want it to pick

⏹️ ▶️ John a window and unminimize it from the dock for me. Really, that’s what you want? That’s like

⏹️ ▶️ John the last thing I want. Some of those I can’t do. I’m not sure, I don’t think I can un-minimize stuff from the dock, but

⏹️ ▶️ John apparently a couple of them I can do, so I might have to add that. But yeah, and people, the window snapping, people want

⏹️ ▶️ John that, where you bring another window close to it and does that snapping thing, right? And you know, as an application,

⏹️ ▶️ John you have basically no control over that because it’s the OS doing it, but the OS does it based on what layer your window is

⏹️ ▶️ John in. And so if you’re a floating window like mine is, you don’t interact with the regular window, so I might have to make like an invisible

⏹️ ▶️ John regular window that’s hiding behind my real window for the purposes of snapping. People want full

⏹️ ▶️ John screen not to go underneath my thing. Like, again, I don’t think I have a way to do that. The dock and the menu

⏹️ ▶️ John bar can influence how much space is available. But if you’re just a window, you can’t

⏹️ ▶️ John be like the dock and be like, oh, this space is not available for you. Like whatever it is, like an iOS usable

⏹️ ▶️ John edge insets or whatever. I don’t think there’s a way for me to influence that from a sandbox Mac app

⏹️ ▶️ John to say, I’m just like the dock. Where I am, no window should go. That’s not gonna happen,

⏹️ ▶️ John but yeah, people have got a lot of ideas and a lot of suggestions, but I’m still

⏹️ ▶️ John plugging away on the basics here.

⏹️ ▶️ Casey Well, that was a journey.

⏹️ ▶️ John 4.99 on the Mac App Store. Peg all your cores briefly and the fallback method and the tertiary

⏹️ ▶️ John strategy for pulling up your desktop image and multi-monitor. Oh my God, too

⏹️ ▶️ John complicated.

⏹️ ▶️ Casey I’m already excited for the followup with regard to a photo album as a desktop.

⏹️ ▶️ John I’m not excited about that. I would have found it eventually, or someone would have found it probably after I ship.

⏹️ ▶️ John So at least thank you Casey for reminding me that I should hit this disclosure triangle, but God, what does this

⏹️ ▶️ John return? When I call image URL, what is it gonna return? It would be nice if it

⏹️ ▶️ John returned the URL to the image, but I don’t think I’m gonna be able to read it anyway. Like, which is fine. That’s like, there’s no

⏹️ ▶️ John way getting around that scenario. If you, you know, I don’t know.

⏹️ ▶️ John Maybe I won’t be able to tell what screen it is at all. Maybe it will be like, just empty.