365: Day-One Cowboy14 Feb 2020
Butterflies went mainstream, Marco gave up a fight, and John can’t stop making new apps.
- SwiftUI previews of UIKit
- Folder aliases in the Dock
- Snow Leopard Review
- Radar #59289423
- Shell scripts
- Snow Leopard Review
- John's new app (‼️)
- Taika Waititi on Apple Keyboards
- IBM Model M
- Marco's Best Laptop Ever Made
- Swift Playgrounds on macOS
- What's the situation with macOS security? (via Anthony Scardapane)
- What does Marco do to avoid recursive Voice Boost? (via Chris Wright)
- How do we use show notes as a listener? (via Simo Isto)
- Post-show: John's adventures in programming
- Chicken Shot
- UIKit live previews
- Dock folder aliases
- Sponsor: Bombas
- Taika Waititi on keyboards
- Sponsor: Linode (code atp2020)
- Giving in to Catalina
- Swift Playgrounds for Mac
- Sponsor: BlueVine
- #askatp: Mac antivirus
- #askatp: Double Voice Boost
- #askatp: Show notes
- Ending theme
- John’s War Stories
⏹️ ▶️ Marco That’s hops. We’re getting there. He wore a cool diabetes
⏹️ ▶️ Marco sugar monitor for two weeks. The good thing is the insulin shots are easy because
⏹️ ▶️ Marco dogs have all that loose skin behind their neck and you just stick it in there. You don’t even stick it in the muscle. He doesn’t even notice.
⏹️ ▶️ John Oh, that’s what you tell yourself. I told myself the same thing, but it’s still a needle going through your skin.
⏹️ ▶️ John He notices. I know, but you know, like it’s, thanks dad.
⏹️ ▶️ John Dogs are very tolerant.
⏹️ ▶️ Marco It was a branding exercise. I marketed it as chicken shot
⏹️ ▶️ Marco because I would give him chicken before and after the shot to try to develop a positive
⏹️ ▶️ Marco association with it. Or at least bribery. I don’t know. So I marketed it
⏹️ ▶️ Marco as chicken shot. You want to come get your chicken shot? And that seems to work where he actually seems okay with
⏹️ ▶️ Marco it. I wonder if Apple could take a lesson from that, like, you know, rebrand like apps for rejections like
⏹️ ▶️ Marco beer rejection. hey, here’s a beer. We’re sorry we can’t accept your app like this
⏹️ ▶️ Marco because of these reasons. Here’s another beer. Bye!
⏹️ ▶️ Marco I made it this far into winter. Uh oh. This far
⏹️ ▶️ Marco before taking out the
⏹️ ▶️ Marco, Casey fisherman’s friend. Oh, it’s
⏹️ ▶️ Casey that fisherman’s friend. Oh no. I’m sorry, Marco.
⏹️ ▶️ John I’m sick now too. I just, last night’s wrecked if I was talking to Merlin about that. I made it
⏹️ ▶️ John several winters without really getting sick, but it caught up
⏹️ ▶️ Marco with me. This is it. I have a feeling this is actually something that we caught from Merlin somehow through podcast
⏹️ ▶️ Marco because he was so sick for so long and we listened to all of his podcasts and you were even podcasting
⏹️ ▶️ Marco with him, so you’re totally screwed. Somehow, if it’s possible to transmit viruses over Skype, I guarantee you this is
⏹️ ▶️ Marco Merlin’s fault. So thanks Merlin, thanks a lot. I don’t have that much I can complain about really, because usually,
⏹️ ▶️ Marco like it’s mid-February, usually I am sick from November
⏹️ ▶️ Marco until WBDC. Just every year, because like school happens
⏹️ ▶️ Marco and winter happens, and so actually this is the furthest I’ve made it through winter without getting sick
⏹️ ▶️ Marco in years, ever since Adam started going to school. And even like this winter, like this has been such a ridiculously
⏹️ ▶️ Marco mild winter. I really can’t even complain about that. Really, I do and I will, but I like like I
⏹️ ▶️ Marco bought a new snowblower this past fall and of course then it hasn’t snowed at all. Not once I bought it right before
⏹️ ▶️ Marco Thanksgiving and it has snowed zero times since then and it’s just sitting there in my garage brand
⏹️ ▶️ Marco new untouched never use never run. I like I say
⏹️ ▶️ Marco I mean again I think I would buy a new snowblower every year if it made it not snow.
⏹️ ▶️ Marco I’ve only ever bought two and that happened both of the years now that that happened, so I don’t know there’s
⏹️ ▶️ Marco some kind of correlation there.
⏹️ ▶️ Casey Steve McLaughlin Definitely. Without question. All right.
UIKit live previews
⏹️ ▶️ Casey So last week, I think it was mostly me, I lamented the fact that
⏹️ ▶️ Casey it seemed to me to be a political problem that you couldn’t do
⏹️ ▶️ Casey SwiftUI style previews of UIKit controls. So SwiftUI is this
⏹️ ▶️ Casey new fancy declarative way of making user interfaces. UIKit is the old and busted, except it actually
⏹️ ▶️ Casey isn’t busted, it actually works, but that’s neither here nor there, way of doing things and I want to have that sweet, sweet
⏹️ ▶️ Casey live preview of UIKit stuff. And a bunch of people wrote to point to a couple of different
⏹️ ▶️ Casey links, one of which is NSHipster, which I definitely have read in the past. It just completely slipped my mind.
⏹️ ▶️ Casey That will show you that, yes, it is possible to do this with a UIKit view.
⏹️ ▶️ Casey So I feel like this kind of implicitly corroborates my theory that it’s all
⏹️ ▶️ Casey just political and little else. But one way or another, we’ll put a couple links in the show notes
⏹️ ▶️ Casey to indicate instructions on how to do this for yourself, if you are so interested.
⏹️ ▶️ John It was like I was saying last week that you can embed NS views in SwiftUI things. You can embed UI
⏹️ ▶️ John views like that’s, that’s kind of your escape hatch. And so this is sort of a, you know, the most
⏹️ ▶️ John simplified case where it’s like, I just want to see, I don’t even want to use SwiftUI. I just want to see a SwiftUI
⏹️ ▶️ John view. So I will make a, or I want to see a UI view or an NS view. So I will make a SwiftUI
⏹️ ▶️ John wrapper and the only thing in it will be, okay, now show my NS view or UI view here, which
⏹️ ▶️ John is not really using it for its intended purpose. you still have to end up like
⏹️ ▶️ John passing your data down through the straw. But I suppose you can hold onto a reference to the
⏹️ ▶️ John UI view and twiddle it elsewhere. So I do wonder how it behaves in those situations. But anyway, yeah,
⏹️ ▶️ John it’s possible if you want to go that route. Although to try to develop your app like this, you’d have all these
⏹️ ▶️ John weird sort of candy coatings of SwiftUI that don’t do anything, wrapping around all
⏹️ ▶️ John of your actual UI that does stuff that’s written in a different API just so you can get the live previews. Doesn’t seem
⏹️ ▶️ John like a great strategy to me.
⏹️ ▶️ Casey Well, maybe in the new version of Xcode. You never know. Moving on.
Dock folder aliases
⏹️ ▶️ Casey Folder aliases in the doc. This is not a problem that I feel like I have in my world, so I pretty much
⏹️ ▶️ Casey ignored all of this. But John, I presume you have many, many, many thoughts about the many, many, many pieces of feedback
⏹️ ▶️ John Last week, we were talking about the thing that happens when you click a folder in the doc. Sometimes you
⏹️ ▶️ John get the big springy bendy tower and sometimes you get the big grid. And I don’t like either one of those
⏹️ ▶️ John things. And Marco was saying how he uses them, but can never find what he wants in the big grid that comes up. and
⏹️ ▶️ John then I shared the command option click shortcut, which just opens the folder. And then I said, gee,
⏹️ ▶️ John wouldn’t it be nice if you just clicked a regular click and it opened the folder, or if
⏹️ ▶️ John that was one of the options, if you didn’t like any of the two other options. And I’d complained about that in the past.
⏹️ ▶️ John I complained about it again on the show. I said, that should definitely be an option. Lots of people wrote in
⏹️ ▶️ John with the suggestion that I should have brought up last week, which is if you make an alias to a folder and you put
⏹️ ▶️ John the folder alias in the doc, then when you click on the folder alias, the folder opens just like I want it.
⏹️ ▶️ John But that’s not exactly a solution because if you put a folder alias in the doc,
⏹️ ▶️ John it looks like a folder, aside from the little alias icon badge in the corner. And when you click on it,
⏹️ ▶️ John it opens the Finder window. And when you drag something to that folder, it highlights like it’s going to accept
⏹️ ▶️ John your drag. And then when you let go, whatever you’re dragging just springs right back. And this is
⏹️ ▶️ John a long standing complaint that I have. So long standing, in fact, that I went back and searched for it myself.
⏹️ ▶️ John uh, in my own past history that apparently can’t remember. And in 2009, in the snow,
⏹️ ▶️ John in my Mac OS 10 snow leopard review, I made this
⏹️ ▶️ John exact complaint, uh, for the exact same reasons because I’m nothing if not predictable.
⏹️ ▶️ John Uh, and in that complaint, uh, in, in the review I mentioned that I had filed a radar against
⏹️ ▶️ John this in, uh, I don’t, I didn’t say when I filed the radar, but the radar was closed in March of 2008 with
⏹️ ▶️ John the explanation not currently supported. So
⏹️ ▶️ John not only have I wanted this for over a decade, but it’s been more than a decade since my
⏹️ ▶️ John radar complaining about it was closed by Apple, saying no, no. And it’s,
⏹️ ▶️ John you know, I, like I said in the last episode, I do command option click all the time, just reflexively,
⏹️ ▶️ John but it still annoys me. And the folder alias thing, which I also talk about in this
⏹️ ▶️ John very same Snow Leopard review from 2009, that annoys me even more. because
⏹️ ▶️ John the fact that you can make an alias and stick it in the doc, like,
⏹️ ▶️ John that makes sense to me because it’s just like any other thing that you can drag from the finder into that part. You can put files there, you can put folders
⏹️ ▶️ John there, you should put aliases there, right? Once you have a folder alias in the doc,
⏹️ ▶️ John why can you not drag things into it? Like, what other sensible behavior is there for a docked
⏹️ ▶️ John folder alias? If you have a docked folder alias and you drag something into it and it highlights, it’s like, here I am,
⏹️ ▶️ John dragging stuff into a folder. What else should it do? That is literally the only thing it should do. And
⏹️ ▶️ John the fact that the bug was closed over a decade ago and in the time since no one has ever thought to either disallow
⏹️ ▶️ John aliases to be in the doc because maybe you’re like, no, the doc isn’t for aliases. This is just for real things, fine, whatever. But if you’re gonna
⏹️ ▶️ John allow them and you’re gonna allow aliases to folders, let us drag something into them. Anyway, lots of people
⏹️ ▶️ John had other potential solutions to this. One of them was to just write to the docs plist
⏹️ ▶️ John directly. You can just add an entry for a thing that actually is a folder, but if you added it like it
⏹️ ▶️ John so the doc thinks it’s a file, it basically behaves like a folder alias. And someone
⏹️ ▶️ John wrote an automator workflow that sits in your dock and looks kind of like a folder,
⏹️ ▶️ John but when you manipulate it, it’s really running this automator workflow to do the things that it’s supposed
⏹️ ▶️ John to do. All this is just way too much work for something that Apple should just support, which is either A,
⏹️ ▶️ John just add a third option for folders in the dock that says, hey, when I click it, open it in a Finder window, or B,
⏹️ ▶️ John let us do the thing with folder aliases, Which works in all ways except it doesn’t work as a folder. You can’t drag
⏹️ ▶️ John stuff into it So yeah, everything old is new again. And apparently this aspect
⏹️ ▶️ John of the dock has not been Revisited in more than a decade somebody I didn’t record who but somebody
⏹️ ▶️ John refiled this as a new radar. That’s I’m gonna read this number five nine two
⏹️ ▶️ John eight nine Four two three that is the more recently
⏹️ ▶️ John filed radar on the fact that if you put a folder alias in the dock It looks like a folder but doesn’t behave
⏹️ ▶️ Casey We’ll put a link in the show notes. All right. So you weren’t here before the show and the listeners weren’t here
⏹️ ▶️ Casey before the show, but I was lamenting to Marco that what kind of jerk releases an app 45
⏹️ ▶️ Casey minutes before we record the show? So I didn’t even realize that you had released it when I sat down to scroll through the show notes right
⏹️ ▶️ Casey before we recorded. It’s almost as bad as releasing an app live on the show. I mean, who would ever do
⏹️ ▶️ Casey that? So what’s going on, John?
⏹️ ▶️ John It was no surprise because you both knew about the app and I’ve been talking about it on on the show or whatever. I know, I know.
⏹️ ▶️ John And there was a little bit of app review excitement about this, but I’ll briefly describe what the
⏹️ ▶️ John app is and then we can move on to other things because I don’t want to spend too long on this and have this be like the show where we all release
⏹️ ▶️ John, Casey Next show it’s
⏹️ ▶️ John, Marco your turn, Marco, so get an app ready. Jeez, aggressive timeline.
⏹️ ▶️ John Right, but later, after we, maybe in an after show or maybe we get through some topics, I do
⏹️ ▶️ John want to talk about some war stories from the development of this app. But anyway, for now,
⏹️ ▶️ John my new app is called Switch Glass. No, it’s not a great name. It’s Switch and then the word
⏹️ ▶️ John glass and it’s all stuck together. It is another replacement for a drag thing functionality
⏹️ ▶️ John that I miss. The window layering thing was front and center. This is the application
⏹️ ▶️ John switcher palette that I like to have. It’s just literally a thing on your screen that shows an icon
⏹️ ▶️ John for every running application and you click on the icon to switch to the app, which sounds to most people like
⏹️ ▶️ John the most ridiculous thing ever. So anyway, it’s a very simple application. Most people
⏹️ ▶️ John do not want or need this. It has an even narrower, you know, potential customer
⏹️ ▶️ John base than front and center, which itself was very weird. But I wanted this app because I used the application
⏹️ ▶️ John switcher that was built into drag thing for years and years and years and drag thing is gone. And I just wanted this back. So I
⏹️ ▶️ John wrote it. It is not the simplest possible Mac app that was front and center because it literally had no UI
⏹️ ▶️ John that you interacted with. This actually has a little bit of UI, but is like the second
⏹️ ▶️ John most simple app that you can ever imagine. But I made it the way I like it. I included
⏹️ ▶️ John way too many options, just because that’s something that amused me to do. I
⏹️ ▶️ John do not recommend this when you’re making an app. Don’t make a million options. It’s too many options. No one needs that many.
⏹️ ▶️ John But I enjoyed that part of it, and so that’s what I did. We’ll put a link in the show notes to my post about it, or
⏹️ ▶️ John the product page and the giant fact where you can read answers to all of your questions, like why would anyone want this application,
⏹️ ▶️ John and what does it even do? And why does it only run in Catalina? The answer to that is it’s SwiftUI, and
⏹️ ▶️ John SwiftUI is only on Catalina. And the answer to a bunch of other questions, like
⏹️ ▶️ John all the sad limitations of sandboxing to let me not implement all the features that I want, that’s life.
⏹️ ▶️ John Anyway, it’s five bucks. I’m starting at the deterrent pricing level because look, no one’s gonna buy this thing anyway.
⏹️ ▶️ John honestly, when you have to explain why would anyone want this, you know you don’t
⏹️ ▶️ John have a big seller on your end. I just wanted this to exist, and if there’s someone else out there who also wants something
⏹️ ▶️ John like this, then here you go. This is my little app switcher. I like it, I’m happy it’s here.
⏹️ ▶️ Casey So I’m not trying to snark, I’m trying to understand. So you have a doc
⏹️ ▶️ Casey somewhere on your screen that is showing all of your running applications, and then you have Switchglass also
⏹️ ▶️ Casey on your screen, also showing running applications.
⏹️ ▶️ Casey should read the fact, Daisy. Well, I haven’t had the chance, I didn’t even know this was a thing.
⏹️ ▶️ John Yeah, I do, I do, yes. Part of this is kind of habit
⏹️ ▶️ John from the old days, but it’s like, it’s a habit that went away with Mac OS X, but
⏹️ ▶️ John then came back as I, you know, started to use drag thing to replace it. So
⏹️ ▶️ John classic Mac OS towards the end of its life had an application switcher palette that just showed little
⏹️ ▶️ John icons for every running application that you could just drag, it was just like a draggable window and you could just drag it
⏹️ ▶️ John around on the screen. And usually I had it as a vertical list in the upper right-hand corner. Remember classic Mac OS did not have
⏹️ ▶️ John a dock. It had an application switcher menu, like the upper right hand corner of the screen had a menu, like
⏹️ ▶️ John a pull down menu, from the menu bar that would show all your running apps, but you’d have to pull that down, and then they added like a little floating palette,
⏹️ ▶️ John right? And I used to use that, and in the absence of a dock, and if you’re not doing Command Tab, I don’t
⏹️ ▶️ John even remember if Command Tab was implemented at the time that thing came out, you click on the app and you switch to it.
⏹️ ▶️ John It’s convenient and, you know, it’s just kind of get used to it. Mac OS X obviously has a dock. The dock does
⏹️ ▶️ John the same exact thing, But as I complained about in my early Mac OS X reviews,
⏹️ ▶️ John the dock does tons of other stuff too, right? So the trash is there, you can put folders there, even though they behave weirdly,
⏹️ ▶️ John you can put files there. Also applications that are not running are in the dock and they’re mixed in with the applications
⏹️ ▶️ John that are running. Back in the day, you used to be able to pin the dock to the corners, right? So you could
⏹️ ▶️ John make the dock be centered on the bottom or you can make it be pinned to the left side or pinned to the right side.
⏹️ ▶️ John And same thing for, you know, when you had the dock on the left edge of the screen or the right edge of the screen, pin it to the top or the bottom.
⏹️ ▶️ John They took away that pinning feature, which was always a sort of undocumented plist hack. They took that away years
⏹️ ▶️ John and years ago, and that annoyed me. And I just
⏹️ ▶️ John started running the drag thing application switchers. One of the features of drag thing is you can make palettes and put them anywhere on your
⏹️ ▶️ John screen, but you could also make a palette that just always showed you’re running applications. So I did, and I put it pinned to
⏹️ ▶️ John the upper right corner of my screen, and I’ve just been using it for years. And you say, why do you need two places
⏹️ ▶️ John to click on your screen to switch applications? You know about me and mousing, right? Like, it’s not like I don’t use command tab. I do,
⏹️ ▶️ John I use command tab. I also obviously click on windows to switch them around. That’s the whole deal with front and center, right?
⏹️ ▶️ John One of the things I also do is click with my mouse. And very often, either my muscle
⏹️ ▶️ John memory or my cursor just finds itself there. The upper right corner is a convenient place for me to go
⏹️ ▶️ John to click on an app to switch to it. I also click on apps to switch to them in the dock. How do I decide when
⏹️ ▶️ John to do which? I don’t know. I just, I don’t think about it. I just find myself doing it. but when I
⏹️ ▶️ John didn’t have that palette there in the upper right, I missed it and I found my cursor going to that side and looking
⏹️ ▶️ John for the thing that wasn’t there anymore. So, you know, it’s just a thing that I enjoy.
⏹️ ▶️ John You can also make it smaller than the dock, or, you know, I guess you
⏹️ ▶️ John can probably make it the same. So you can make it very, very tiny. You can adjust the spacing between the icons.
⏹️ ▶️ John There’s never anything else there. You can keep your dock hidden, right? So dock isn’t visible
⏹️ ▶️ John at all and you just use this as a switcher. I don’t know, like, I honestly, I don’t have much of a pitch for this application
⏹️ ▶️ John other than to say, I wanted it to be exist and I made it for myself.
⏹️ ▶️ John And I tried to do a good job on the app to make it so that it’s useful for other people too. But if you don’t want this thing,
⏹️ ▶️ John you don’t want this thing. So it’s kind of like front and center, at least front and center, like, even if you don’t want it, it
⏹️ ▶️ John adds an ability that you didn’t have before. Like you can, you know, shift click to bring the whole app forward if
⏹️ ▶️ John you run it in moderate mode or whatever. That was an ability you didn’t have before. This doesn’t really give you any abilities you didn’t have before. It
⏹️ ▶️ John just gives you a different way to do things you could already do. That’s it.
⏹️ ▶️ Casey I mean, this looks very pretty and very well done. I am confused
⏹️ ▶️ Casey how you have found yourself in a position that you feel like this is a part of your computing world, but you know what,
⏹️ ▶️ Casey John? You do you. And I’m excited that this is here.
⏹️ ▶️ John Yeah, I mean, it’s just, I’m just as surprised as you were. When drag-throwing went away, I’m like, oh, well, I’ll just, you know, those habits,
⏹️ ▶️ John I won’t need those. But I knew probably, I knew I would need the window layering because I’d use many things to do it, but I didn’t think I would really
⏹️ ▶️ John need the application switcher, but I ran without it for a while and I said, you know what? I missed
⏹️ ▶️ John the stupid application switcher palette. And like I said, and I just posted on my website
⏹️ ▶️ John a short little thing about it. I’m not the only one. So the author of Keyboard
⏹️ ▶️ John Maestro, you know, the Mac automation utility, like when I was working on front and center,
⏹️ ▶️ John I noticed that Keyboard Maestro had added an application switcher palette, like to Keyboard Maestro.
⏹️ ▶️ John Like it was a new feature of the application, just like in one of the menus lurking In the keyboard maestro menu, there’s an option
⏹️ ▶️ John that said show application switcher or whatever. I’m like, what? And I showed it and it looks basically exactly like
⏹️ ▶️ John front, like a switch glass looks. Like I looked at that, I was like, wow, someone added an
⏹️ ▶️ John application palette. I don’t have to, I can use this to replace drag thing because I already own keyboard maestro and I run it, right?
⏹️ ▶️ John But then I had feature requests. So I wrote the author. I’m like, oh, could you change this about the application switcher? Could you change that?
⏹️ ▶️ John, Marco eh, not really.
⏹️ ▶️ John This is not really what my application does. Like keyboard maestro does his own thing. I just added this for the hell of it.
⏹️ ▶️ John And so that’s when I decided, rather than pestering this poor person who just added this feature to his
⏹️ ▶️ John much bigger, complicated, sophisticated application, I should just make it myself. Ha ha, good to be in, this thing’s used to
⏹️ ▶️ John use SwiftUI or whatever. But yeah, the whole, I don’t know why it was
⏹️ ▶️ John added to Keyboard Maestro, but obviously someone wanted this thing besides me. So there are
⏹️ ▶️ John at least two people, two people in the world who wanted to have an application switcher
⏹️ ▶️ John enough to code it up. Well, good
⏹️ ▶️ Casey for you. Yeah, I agree. And it is annoying to me how good this looks. Now, are you pulling, and
⏹️ ▶️ Casey I think I already know the answer to this because I’m pretty sure I saw some discussion about it, you are pulling the actual desktop
⏹️ ▶️ Casey background in the position preference. Is that correct?
⏹️ ▶️ John We’re going to save that for the war stories
⏹️ ▶️ John, Casey section. I don’t want to go
⏹️ ▶️ John into depth. I think we’ve more or less covered it. And yeah, read the blog post for more information. Read the FAQ for more information.
⏹️ ▶️ John I think I covered most of the questions people were going to ask. But yeah, we’ll get to war stories later. there are plenty, but I don’t want to bog down
⏹️ ▶️ John the whole beating the show with this. Anyway, Switch Glass is five bucks. Go pay for it and never use it again. That’s ideal. He
⏹️ ▶️ John, Marco definitely never sent me support email.
⏹️ ▶️ Marco Exactly. That’s pretty cool. I mean, it’s funny for somebody
⏹️ ▶️ Marco who is such a Mac person and a programmer, it is
⏹️ ▶️ Marco kind of funny that you have, up until a few weeks ago, never
⏹️ ▶️ Marco released a Mac app. And now all of a sudden, you’ve released two. That’s pretty cool.
⏹️ ▶️ Marco Like I feel like the world needs more, you know, public John Syracuse
⏹️ ▶️ Marco work that’s not just CPAN modules. Agreed.
⏹️ ▶️ John Yeah, I mean, no one needs my programming like this. It’s all silly, but like part of it is the Mac App Store, honestly, because
⏹️ ▶️ John I would not have gone through the hassle of, you know, making a website to
⏹️ ▶️ John even just distribute the software and update it and just deal with all that hassle if I couldn’t make like a couple bucks
⏹️ ▶️ John here and there, right? So, but the Mac App Store makes it easy enough that I can put in, like, I don’t have to
⏹️ ▶️ John run a store or do credit card processing because I’m not gonna make enough money. Like, I even thought about that for this app because this
⏹️ ▶️ John would be so much easier if it wasn’t sandboxed, I could do more stuff. I’m like, this app is never gonna make enough money to
⏹️ ▶️ John justify me making my own, like, website and payment processing. Like, it’s not,
⏹️ ▶️ John you know, I do want to distribute it. I want it to be out there for people to use and say, hey, here’s this thing. But there’s
⏹️ ▶️ John no way I would have ever done it if, you know, the Mac app store didn’t exist. Now, is it worth
⏹️ ▶️ John the 30% cut Apple’s taking? Not for an application that would actually make any money, but for my applications that are
⏹️ ▶️ John just making me, hopefully making me enough money to buy that stupid $400 bracket for the inside of my Mac Pro.
⏹️ ▶️ John That’s, I mean, this all goes to the Pegasus J2i fund.
⏹️ ▶️ John, Marco That’s so sad. For that amount
⏹️ ▶️ John of effort, God, I don’t understand why is it $400? An eight terabyte hard drive
⏹️ ▶️ John is like 130 bucks retail.
⏹️ ▶️ Marco Because they’re only gonna make like 100 of these.
⏹️ ▶️ John I know, but it’s a bent piece of aluminum painted black. I just, I don’t understand it.
⏹️ ▶️ Marco Yes, but it’s a custom vent piece of aluminum painted black and Apple’s probably taking 50% of that price
⏹️ ▶️ Marco for their retail margin.
⏹️ ▶️ John I think it’s just Pegasus. I don’t think there’s any profit sharing with Apple. It’s just a Pegasus.
⏹️ ▶️ Marco No, but is it sold in the Apple retail store? Yes. Then Pegasus is making
⏹️ ▶️ Marco probably 200 bucks of that. I
⏹️ ▶️ John don’t know, but I don’t know what that deal is. I think Apple has this big disclaimer about how these aren’t their products.
⏹️ ▶️ John I don’t know if there’s any profit sharing.
⏹️ ▶️ Marco but if Apple’s the retailer, Like, they take a large, like, retailers take a large
⏹️ ▶️ Marco slice of the retail price of items. Usually, it’s at least a third, and often half. I mean, is
⏹️ ▶️ Marco Apple fulfilling it? I think. Isn’t it sold, like, in the Apple Store?
⏹️ ▶️ John Yeah, I don’t know. I don’t know. Is it like a third-party seller on Amazon? I don’t know.
⏹️ ▶️ Marco no. I guarantee you, it’s like a standard retail arrangement. I’m sure Apple’s taking probably almost half
⏹️ ▶️ Marco the cut, as their retail markup. And so they probably have, it’s probably a $200 bracket,
⏹️ ▶️ Marco not a $400 bracket. that has to include the price of the hard drive, which is probably at wholesale, I don’t know, maybe 80 or 100 bucks.
⏹️ ▶️ Marco I don’t know how much any terabyte drives cost these days. So you figure it’s more like a $100 bracket, you know, for
⏹️ ▶️ Marco something that is machined to precise tolerances and is probably gonna sell in pretty low volumes.
⏹️ ▶️ Marco That isn’t that ridiculous, honestly.
⏹️ ▶️ John Hmm. Well, anyway, I’m glad that the Mac App Store exists because it’s part of what
⏹️ ▶️ John made me actually go through the formal I probably would have written these anyway just for myself But I would not have spent nearly
⏹️ ▶️ John as much time like polishing them to get them to the point where I’m not a hundred percent embarrassed to put them out into
⏹️ ▶️ John the world and that takes all the time It’s really easy to get this working enough for me to use it much harder
⏹️ ▶️ John to Productize it and that was part of the fun. Like I said talked about the front center I wanted to have that experience
⏹️ ▶️ John of like, go through app review, deal with Xcode, you know, get a thing on the store,
⏹️ ▶️ John like just all those different things. Of course, now that I’ve done it front and center, you know, it’s getting kind of old, but like,
⏹️ ▶️ John yeah, I’ve had the experience. I’m enjoying the programming experience as we’ll talk about in more stories
⏹️ ▶️ John later. But I’m just glad these apps exist because I’m running
⏹️ ▶️ Casey on both all the time. Well, I am happy for you that you’ve put a new baby into the world.
⏹️ ▶️ John pretty cool. Yeah, I’m gonna take a break for a while. Yeah, I guess that next week it’s Marco’s turn. So you’re not
⏹️ ▶️ John Casey. We’re gonna take a break and
⏹️ ▶️ John, Casey Marco is just gonna
⏹️ ▶️ Casey kick back, pour myself a beverage and watch Marco.
⏹️ ▶️ Casey, John Marco already
⏹️ ▶️ John did this. He made Quitter, which was exactly the same thing. It’s something that he wanted on the Mac and he made it, although
⏹️ ▶️ John he didn’t even bother with the Mac App Store. Do you still use
⏹️ ▶️ Marco it? Usually not. I have, I’ve kind of like trained myself
⏹️ ▶️ Marco to not use social media stuff too aggressively on my Mac enough that I
⏹️ ▶️ Marco usually don’t run it and I forget about it. But I do use Forecast a lot.
⏹️ ▶️ Marco I use Forecast because of the M3 encoder. That’s my Mac app that I use
⏹️ ▶️ Marco, John all the time. But you
⏹️ ▶️ John haven’t ever taken on that, I’m gonna do the final 90% to polish it to a commercial product. You’re still just writing
⏹️ ▶️ John it for yourself and using it and distributing it to friends, right?
⏹️ ▶️ Marco Correct. I mean, well, yeah, because to actually make enough money
⏹️ ▶️ Marco on it, because it’s such, I mean, talk about, you’re talking about super specialized products with very small audiences.
⏹️ ▶️ Marco Forecast is probably one of those, although honestly.
⏹️ ▶️ John It’s a bigger market than Switch Glass, I’ll tell you that. Does it? I mean. Yeah, there are more people who make podcasts
⏹️ ▶️ John than want a second thing on their screen showing running
⏹️ ▶️ Marco apps. But how many people are encoding chapterized podcasts and would know about this?
⏹️ ▶️ Marco It’s not a big, you know, it’s probably 100 people or less. Everyone you could sell to, you already gave
⏹️ ▶️ Marco the app to. That’s your problem. Well, right. And that’s the thing. It’s like, when I have an app that’s like Forecast,
⏹️ ▶️ Marco where it’s like, what would be a good price for Forecast? It actually has a lot of utility, so
⏹️ ▶️ Marco I think five bucks would actually be too cheap. You know, I think if I was gonna charge money for it, it would probably be,
⏹️ ▶️ Marco I don’t know, 20, 30, something like that. $99, it’s a pro app. Yeah, I was gonna say 100 bucks.
⏹️ ▶️ Casey Just make the window black. Eh!
⏹️ ▶️ Marco Maybe, but if I’m gonna charge that much money for it, I have to then also offer a level of support
⏹️ ▶️ Marco that would me commensurate with that level of money. And then that would be so much hassle and so much time
⏹️ ▶️ Marco for me, that it wouldn’t be worth having those sales in the first place, because there’d be so few of
⏹️ ▶️ John them. Yeah, because you’re not gonna use it, you’re not visualizing it as an income stream. You’d be like, oh, I tried to use this chapterize
⏹️ ▶️ John thing on this MP3, can you look at this file for me? And it’s like, what am I doing? Am I debugging your weird MP3 file
⏹️ ▶️ John for the, you know, 20 bucks you gave me three years ago on an app that no longer makes any money?
⏹️ ▶️ Marco Exactly, that’s why I like, if I make the decision that an app is probably never gonna bring in enough
⏹️ ▶️ Marco money to like notice, then I’d rather just have it be free than have it be cheap, because
⏹️ ▶️ Marco I don’t wanna deal with the support entitlement that people sometimes rightfully
⏹️ ▶️ Marco feel about the amount of money they spend on your app. Yeah, and if you
⏹️ ▶️ John make it five bucks, you could fund your next Mac Pro hard drive bracket or something, but then
⏹️ ▶️ John after that, put it to
⏹️ ▶️ Marco bed. I mean, you should see some of the emails I get for people who have paid the Overcast $10 a year
⏹️ ▶️ Marco subscription, like that’s, whoo, some people get really upset about things like that.
⏹️ ▶️ Marco, John But even though,
⏹️ ▶️ Marco and what crushes me so much is when people say, hey, I downloaded
⏹️ ▶️ Marco your app and it doesn’t have some feature like video, it doesn’t have video podcast playback.
⏹️ ▶️ Marco So I bought the subscription to see if it had it then and it still doesn’t, can I please have a refund? It’s like, oh,
⏹️ ▶️ Marco I never said that would add it and I can’t issue refunds because App Store, oh,
⏹️ ▶️ Marco like it’s just so,
⏹️ ▶️ John ugh. People do not like hearing that, I can tell you. They do not like hearing that you can’t issue refunds
⏹️ ▶️ John because nobody believes you.
⏹️ ▶️ Marco All I do is I send people a link, there’s an iMore article. If you search Google for
⏹️ ▶️ Marco App Store refunds, like every other Google search, there’s an I’m more article in like you know one of the
⏹️ ▶️ Marco first three results and so and it’s like how to get it refunds from the after I just send people that link. I’m like, I’m
⏹️ ▶️ Marco, John sorry. I can’t do it. I send
⏹️ ▶️ John them the official Apple.
⏹️ ▶️ John afraid if I send them to a to a third party site, they’re going to be like this isn’t true. This isn’t even Apple site. Just give
⏹️ ▶️ Marco I think it’s more likely that the I’m more page will remain there and
⏹️ ▶️ Marco, John remain current
⏹️ ▶️ Marco than some random Apple support document about App Store refunds.
⏹️ ▶️ John Yeah. I clicked through the Apple instructions to see that it looks like it works. And I think it does. People
⏹️ ▶️ John are getting refunds. So they can figure it out. I said it in Slack before we started the show that
⏹️ ▶️ John applications that are hard to explain and easy to misunderstand is my new niche on the Mac. Because
⏹️ ▶️ John front and center, you can’t even explain what the hell it does. Then people get it, and they think it does whatever they had in their head, and it doesn’t
⏹️ ▶️ John do that. And then they’re angry about it. And this thing, it’s like, you look at the screenshot and you think you know what it does.
⏹️ ▶️ John You think it’s basically a drag thing where you can make a configurable set of palettes everywhere. Like, that’s not how this works. And people don’t
⏹️ ▶️ John read and they just buy it and then they’re angry. So that is the thing I’ve carved out for myself. Weird
⏹️ ▶️ John little apps that satisfy my own needs that other people do not understand.
⏹️ ▶️ Marco And one thing I love about your apps, first of all, they are, you know, these
⏹️ ▶️ Marco kind of little utilities, they exist, but they usually are not
⏹️ ▶️ Marco nicely done. and you are actually caring about things like the GUI
⏹️ ▶️ Marco spacing of the preferences dialog. It’s like, how many people who launch
⏹️ ▶️ Marco one of your apps, even people who would use it every day, how many of those people are gonna see
⏹️ ▶️ Marco that preferences screen, A, at all, or B, more than once? And yet, you’re putting
⏹️ ▶️ Marco in all this effort into getting all the spacing.
⏹️ ▶️ Marco, John It’s like the only window in my app, you know? Right, I know. I have a
⏹️ ▶️ Marco lot of. I get it, but like, you know, if I tweak the interface for forecasts, which I should probably do
⏹️ ▶️ Marco because I don’t know what I’m doing. But the UI of the app is the app. You’re constantly
⏹️ ▶️ Marco using the UI. I feel like that’s a high reward thing to do. Whereas what you’re doing is
⏹️ ▶️ Marco putting tons and tons of time into perfecting a screen of the app
⏹️ ▶️ Marco that most of the users will never see or will see once.
⏹️ ▶️ Marco that’s kind of cool. And then the second thing I like about what you’re doing is that you are making
⏹️ ▶️ Marco apps that adjust Mac behavior in a way that A,
⏹️ ▶️ Marco provides utility to people, but B, that in our new world of quote, the future
⏹️ ▶️ Marco of computing called iOS, these wouldn’t even be possible. Neither would Quitter,
⏹️ ▶️ Marco neither would things like Clipboard Managers, which I love so much. Like, this is the kind of utility
⏹️ ▶️ Marco that makes the Mac so great. It’s like, you can actually customize it.
⏹️ ▶️ Marco Like, first of all, you can have apps that interact with other apps in non-trivial ways,
⏹️ ▶️ Marco and in ways that weren’t pre-programmed by the target apps. You can have apps that
⏹️ ▶️ Marco add things to effectively the system shell. That you can have something that’s always displayed or that’s displayed
⏹️ ▶️ Marco permanently in the background or whatever. You can do things like interact with the desktop. This is all stuff that
⏹️ ▶️ Marco you can’t do on iOS, at all. Nobody can make utilities
⏹️ ▶️ Marco like this for iOS except Apple and they won’t. Third parties can’t do this.
⏹️ ▶️ Marco And so, I think it’s cool from the point of view of like, A, kind of
⏹️ ▶️ Marco reinforcing the Mac as like, hey, this platform’s not dead or not like a relic
⏹️ ▶️ Marco of the past. This is actually a current thing that people use and love. And B, kind
⏹️ ▶️ Marco of just taking advantage of the power that we have in this platform of like, look, I
⏹️ ▶️ Marco know a lot of people love iOS and that’s great and there’s some advantages, certainly, but the Mac is really
⏹️ ▶️ Marco cool for lots of things and lots of reasons that iOS will probably never be
⏹️ ▶️ Marco able to offer. And the ability for utilities like this to exist on the Mac and to be
⏹️ ▶️ Marco as good as they are will never happen on iOS. And that’s pretty cool.
⏹️ ▶️ John Yeah. I mean, it’s kind of weird because the Mac is getting harder to do stuff like this on. And iOS
⏹️ ▶️ John is arguably getting slowly easier for things like third-party keyboards or the share extensions
⏹️ ▶️ John and stuff. So they’re moving towards each other, but they’re still very far away. And I’ve
⏹️ ▶️ John always liked this type of little utility thing for the Mac, like things that change how you
⏹️ ▶️ John use the Mac. Lots of people ask me with front and center everything, aren’t you afraid you’re going to get Sherlock that Apple will implement this
⏹️ ▶️ John functionality? I’m begging Apple
⏹️ ▶️ John, Marco to implement this functionality.
⏹️ ▶️ John Sherlock all of my apps. Make it so I do not have to continually keep these things running as you change the operating
⏹️ ▶️ John system and deprecate the APIs I’m using or whatever. Please take front and center’s functionality, build it into the OS.
⏹️ ▶️ John Let me pin the dock to the ends. Add a dedicated application switcher like I used to be in class, like I welcome
⏹️ ▶️ John that with open arms. Anytime you do any kind of system extension, that’s a possibility, right? If
⏹️ ▶️ John you’re trying to make your living for off of it, you don’t want Apple to Sherlock you. But if like me, the only reason
⏹️ ▶️ John you’re, you know, the reason you’re making these things is because you have no choice. Like then
⏹️ ▶️ John I’m totally happy for them to be integrated. And even if you’re trying to make your living off of something like that,
⏹️ ▶️ John be aware that if you make something that extends the system and it actually is popular, like this is awesome.
⏹️ ▶️ John I’m making tons of money. I made this cool thing and it’s like to give one example, which I don’t think Apple will make but like
⏹️ ▶️ John you mentioned clipboard history, right? I think clipboard history has broad appeal if implemented.
⏹️ ▶️ John Well, there are lots of third-party applications that implement it. I can’t live without it Apple
⏹️ ▶️ John could build that into the system. I Still think they I wouldn’t like their implementation as much
⏹️ ▶️ John as the third-party ones But it would be cool to just know that every Mac out there has clipboard history in some fashion You know
⏹️ ▶️ John what? I mean? Oh, yeah, and so if you’re making a really good clipboard history manager, like I use paste spot I think it’s
⏹️ ▶️ John really good. You have to be aware. It could be that despite you making this happen and
⏹️ ▶️ John maybe making lots of money off of it at any point, Apple could decide this year we’re gonna add that to the OS and that’s just
⏹️ ▶️ John the price of doing business when you’re extending the system. And it’s true of applications too. If you make,
⏹️ ▶️ John I don’t know, a thing that lets you read articles later, Apple could add that feature to its applications.
⏹️ ▶️ Marco What can you do? You could keep going because nobody uses it. Yeah,
⏹️ ▶️ John that’s the other thing. Just because they added it to the operating system doesn’t mean people still won’t watch your fancier,
⏹️ ▶️ John much more configurable version, but you never know.
⏹️ ▶️ Casey Well, congrats, John. I hope you earn enough money for a wheel for your.
⏹️ ▶️ John can’t afford a wheel. I just want a bracket that holds hard drives.
⏹️ ▶️ Marco Not even one wheel? You can’t do one wheel?
⏹️ ▶️ John If they sold the wheels individually, that’d be nice. You could go on to like a payment plan. I mean, you’d be a little lopsided for a while.
⏹️ ▶️ John Every six months you get one wheel for a hundred bucks. Oh my
⏹️ ▶️ Marco We are sponsored this week by Bombas. Working out is hard. It’s always been
⏹️ ▶️ Marco hard. Even when it’s easy, it’s still pretty hard. Bombas socks can’t change that, but
⏹️ ▶️ Marco they can make it more comfortable. If this year your theme or your resolution is to get fit,
⏹️ ▶️ Marco start by getting socks that can keep up every step of the way. You do a lot of things to stay active,
⏹️ ▶️ Marco lots of different things. So Bombas made lots of different performance socks designed for everything from running to hiking
⏹️ ▶️ Marco to cycling and more. If you’re very into sports or if you’re planning to get very into sports, Bombas
⏹️ ▶️ Marco can help there with performance socks and styles made specifically for basketball, tennis, running, golf and more
⏹️ ▶️ Marco there too. These are made with a lightweight poly cotton blend, which means no matter how hard you’re
⏹️ ▶️ Marco working, your feet will stay cool, dry and comfortable, never sweaty. And Bombas
⏹️ ▶️ Marco socks are just really good socks. They provide support in places you didn’t even know you needed like your arches.
⏹️ ▶️ Marco Each sock is built with a special arc support system that’s supportive, but not too tight. Kind of like a nice hug, but
⏹️ ▶️ Marco on your foot, like a foot hug. And constantly pausing your treadmill to adjust twisted bunched
⏹️ ▶️ Marco up socks is enough to make anyone ready to quit. That’s why Bombas are designed with left-right contouring
⏹️ ▶️ Marco and a Y-stitched heel, so they stay perfectly in place. And you ever notice that annoying
⏹️ ▶️ Marco toe seam most socks have along the toe, that little ridge on top? Bombas got rid of it. They designed
⏹️ ▶️ Marco it out. It’s gone. smooth sailing all the way across the top of your foot. I gotta say, I
⏹️ ▶️ Marco use Bombas socks myself a lot of the time. And I recently, you know, I got for Christmas, I got a couple of their
⏹️ ▶️ Marco Merino socks. These are my favorite socks. I like them so much, I actually just earlier today
⏹️ ▶️ Marco ordered more because I keep going through them like first thing in every laundry cycle, and then I run out and I gotta wait till
⏹️ ▶️ Marco the next laundry cycle to get more, get my Bombas back. So I had to order more to get more Bombas because they’re so good.
⏹️ ▶️ Marco So also did you know that socks are the number one most requested item in homeless shelters? Bombas Socks
⏹️ ▶️ Marco were created to change that. For every pair you buy, Bombas donates a pair to someone in need. So go to bombas.com
⏹️ ▶️ Marco slash ATP today and get 20% off your first purchase. That’s B-O-M-B-A-S
⏹️ ▶️ Marco dot com, bombas.com slash ATP for 20% off.
Taika Waititi on keyboards
⏹️ ▶️ Marco off. Bombas.com slash ATP. Thank you so much to Bombas for hugging my feet and sponsoring
⏹️ ▶️ Casey All right. So the Oscars were a couple of days ago and I would just
⏹️ ▶️ Casey like to let you gentlemen know that Apple’s laptop keyboards did not actually win an Oscar.
⏹️ ▶️ Marco They kind of anti-won an Oscar.
⏹️ ▶️ Casey So I actually, I saw that this was the thing, but I never got a chance to watch the video. So would one of you
⏹️ ▶️ Casey like to explain to me what happened here?
⏹️ ▶️ John Yeah, this is Taika Waititi. What did he do? He was directed Jojo Rabbit this year, which was nominated.
⏹️ ▶️ John He’s done a bunch of things and been in a bunch of things. And he was in that thing where you stand
⏹️ ▶️ John in front of the weird background, like the big backdrop and the press asks you questions. I believe it’s called a step
⏹️ ▶️ Marco this? That’s the picture taking thing. I’d like it. A red carpet. There’s like a big banner. I
⏹️ ▶️ Marco that. Yeah. Like the big banners and you stand in front of them, you get your picture taken, you keep
⏹️ ▶️ Casey Oh yeah. I know what you’re talking about. I just didn’t know that’s what it was
⏹️ ▶️ Marco called. Those are called step and repeats.
⏹️ ▶️ John Anyway, he’s standing in front of this and he’s taking questions. Someone asked him like, I don’t remember the question. It’s like, would the writer
⏹️ ▶️ John strike writer’s guild something or other? How do you feel about what, you know, what should writers do or what would you like to see
⏹️ ▶️ John happen? It was some question that really wasn’t leading in this direction at all. It was a Hollywood question about the
⏹️ ▶️ John entertainment industry and being a writer or whatever. And his answer
⏹️ ▶️ John was a whole big spiel about how Apple needs to fix its keyboards. Like that would help writers because writers are
⏹️ ▶️ John out there in Hollywood and they’re typing away on their Apple laptops because it’s Hollywood and they all love Macs, but
⏹️ ▶️ John those keyboards are terrible. Here’s the quote that keeps getting passed around, the money quote.
⏹️ ▶️ Casey What are some of the needs that you believe that writers should be
⏹️ ▶️ Marco asking for in the next round of talks with producers? Apple needs to fix those keyboards.
⏹️ ▶️ Marco Though they are impossible to write on, they’ve gotten worse, it makes me
⏹️ ▶️ Marco wanna go back to PCs, because PC keyboard, the bounce back for your fingers is way
⏹️ ▶️ Marco better. And hands up who still uses a PC. You know what I’m talking about. This
⏹️ ▶️ Marco is a way better keyboard. And those Apple keyboards are horrendous. Especially as the computers,
⏹️ ▶️ Marco as laptops get newer and newer, I mean,
⏹️ ▶️ Casey here’s the latest one, the latest new
⏹️ ▶️ Marco iMac. The keyboards are worse. And I’ve got some
⏹️ ▶️ Marco shoulder problems. I’ve got like a sort of ooze, I don’t know if you call it over here, like this sort
⏹️ ▶️ Marco of thing here, which is that tendon that goes from like the forearm down into the thumb. You know what I’m talking about,
⏹️ ▶️ Marco you guys who are writing. And what happens is you open the laptop
⏹️ ▶️ Casey and you’re like this. So we’ve just
⏹️ ▶️ Marco got to fix those keyboards. WGA needs to step in and actually do something.
⏹️ ▶️ John This, you know, went all around the web because it is, you know, the Oscars are a mass market thing.
⏹️ ▶️ John Apple’s keyboards, despite all us complaining about them in all the stories in tech world, generally
⏹️ ▶️ John don’t break out into the same world as Hollywood entertainment. But here, here it is the crossover event of
⏹️ ▶️ John the century. Famous Hollywood person hates Apple keyboards. Now
⏹️ ▶️ John a couple of things are interesting to know about this one when he’s describing it, he you know, he’s just,
⏹️ ▶️ John you know, speaking off the cuff and he mentions like on Apple’s new IMAX. And so
⏹️ ▶️ John you might start listening and say, is he actually complaining about laptop keyboards
⏹️ ▶️ John or because he said iMac, but really as he goes on, it becomes clear as he explicitly mentions
⏹️ ▶️ John keyboards later or laptops later, the massive brand footprint
⏹️ ▶️ John that the iMac name has still in people’s mind from that teal compute plastic computer all
⏹️ ▶️ John those years ago is such that when a brain just reaches for what was the name
⏹️ ▶️ John of that Apple product? Sometimes the thing that pops out is iMac, especially when you’re thinking of a Mac.
⏹️ ▶️ John So I thought that was fascinating. But no, he is actually talking about the laptop keyboards. But the second thing is because he’s not a super duper
⏹️ ▶️ John tech nerd, he’s not specifying, oh, I don’t like the butterfly keys. He doesn’t know what butterfly
⏹️ ▶️ John keys are. We also don’t know, does he hate the new 16 inch
⏹️ ▶️ John MacBook Pro with the good fixed keyboard? I don’t know. He might
⏹️ ▶️ John hate that one too. Like there wasn’t enough information for tech nerds to latch onto. But,
⏹️ ▶️ John uh, you know, all this, the summary here is, uh, that these keyboards,
⏹️ ▶️ John even if Apple fixes them all to everyone’s satisfaction tomorrow, which they still haven’t done because they’re selling
⏹️ ▶️ John the butterfly keyboards on all their laptops, except for the one that Marco bought, uh, for
⏹️ ▶️ John years, Apple will continue to have this reputation of keyboards that people don’t like. And if
⏹️ ▶️ John it is actually the case that people still don’t like the keyboard on the 16 inch MacBook pro,
⏹️ ▶️ John Apple still has more work to do. Again, I don’t know. This is just one person’s complaint. I suspect what they’re
⏹️ ▶️ John actually complaining about is the butterfly keyboard, whether they know it or not. And I suspect they don’t know or care that there’s a new laptop
⏹️ ▶️ John that has a different keyboard. And I suspect further that if you showed them the new keyboard, they might say they like it better, but it’d
⏹️ ▶️ John still be grumpy about it because in their minds, Apple and keyboards, like I said, they’ve gotten worse.
⏹️ ▶️ John It makes me want to go back to PCs because the keyboard is not satisfying to him.
⏹️ ▶️ John So much so that when you know at the Oscars in front of a bunch of press ask
⏹️ ▶️ John questions that have nothing to do with tech. They weren’t asked like what kind of tools would help you you know or maybe it was like what would
⏹️ ▶️ John help the Writers Guild or whatever but it wasn’t about a tech it wasn’t a technology question and this is what he came up with.
⏹️ ▶️ John So this is not good for Apple and this just goes to show
⏹️ ▶️ John the lasting legacy of the butterfly keyboard.
⏹️ ▶️ Marco Even though Apple thinks maybe that they have solved this problem with the combination,
⏹️ ▶️ Marco the official party line, what they have actually said from PR slash marketing, what they’ve
⏹️ ▶️ Marco actually said is A, the 16-inch has this wonderful new Magic Keyboard, blah, blah, blah,
⏹️ ▶️ Marco and that B, that the new materials revision of the Butterfly Keyboard is doing great.
⏹️ ▶️ Marco And so it kind of sounds, the public statement seems to
⏹️ ▶️ Marco currently be this problem is behind Now whether they believe that internally, we don’t know.
⏹️ ▶️ Marco A, they very much haven’t solved it. Like most people who are using their laptop
⏹️ ▶️ Marco for like non-super high-end stuff, like if he’s talking about it in the context
⏹️ ▶️ Marco of using it as a writer, you think he has a 15 inch? Maybe. I think
⏹️ ▶️ Marco it’s very clear that Apple sells a heck of a lot more 13 inches and Airs. So
⏹️ ▶️ Marco if this is a market that largely uses those, they might not even realize that
⏹️ ▶️ Marco there is a model with a better keyboard, because they aren’t shopping for a laptop that big, they don’t want one that
⏹️ ▶️ Marco big. And so, not only is this problem not solved
⏹️ ▶️ Marco in any of the smaller ones, from the butterfly reliability perspective, but this shows
⏹️ ▶️ Marco that also, he wasn’t talking about reliability. He just hates the low travel.
⏹️ ▶️ Marco So it isn’t enough that they simply might have fixed the reliability, or at least improved
⏹️ ▶️ Marco the reliability with the new materials revision last year. Like, they have to get rid of this keyboard altogether,
⏹️ ▶️ Marco because even if it works perfectly, a lot of people still hate it, which I’m one of those people, so I totally
⏹️ ▶️ Marco get that. So that’s one problem. The other problem is, what if they had
⏹️ ▶️ Marco actually replaced every single keyboard in the lineup, which I think this makes clear they have to do that.
⏹️ ▶️ Marco They still are going to have years of reputation damage
⏹️ ▶️ Marco from people who either don’t know that they have been fixed, or
⏹️ ▶️ Marco are still using an old one that hasn’t yet had the new keyboard put into it,
⏹️ ▶️ Marco or still remember being burned by having owned one of those.
⏹️ ▶️ Marco That’s gonna take years before it’s mostly behind them. And it just goes to show
⏹️ ▶️ Marco how immense the damage has been done to their reputation and to their brand image,
⏹️ ▶️ Marco and to their customer’s image of, do I wanna even buy Apple products anymore? the
⏹️ ▶️ Marco immense amount of damage that they did. I honestly think this has been the biggest screw up in
⏹️ ▶️ Marco the last, at least decade, for the Mac and possibly for Apple, period. It’s
⏹️ ▶️ Marco such a huge deal. And when we were all saying, you know, hey, this is kind of a problem, we
⏹️ ▶️ Marco were saying that for years, a lot of people were telling us, why don’t you just forget about it?
⏹️ ▶️ Marco Why don’t you just move on? Why don’t you just stop harping on it? It’s not that big of a deal. I like my butterfly keyboard. Like,
⏹️ ▶️ Marco no, this was a really big deal. it still is a really big deal, and it’s gonna continue to be a
⏹️ ▶️ Marco really big deal for years after they completely remove it from their lineup, which
⏹️ ▶️ Marco they now definitely have to do and still haven’t.
⏹️ ▶️ John Yeah, this is a tough thing for Apple too, because this is the type of press that Apple
⏹️ ▶️ John hates, which is basically not particularly informed and in some ways
⏹️ ▶️ John unfair criticism from someone very famous, right?
⏹️ ▶️ John So he went into a thing of talking about his
⏹️ ▶️ Marco way, is it unfair? I don’t
⏹️ ▶️ Marco, John know. I don’t think it is unfair.
⏹️ ▶️ John He was talking about his RSI and everything. And for all the faults you can have with the low travel keyboards, I have never
⏹️ ▶️ John seen anyone even imply that they increased the risk of
⏹️ ▶️ John RSI. If anything, they should help because you’re pressing less hard on the keys or whatever. There’s no foundation for that.
⏹️ ▶️ John But when you’re annoyed with something, when you’re just a regular person who doesn’t care about tech stuff or whatever, you’re
⏹️ ▶️ John just a regular consumer, and you have this thing, and the keyboard annoys you, and maybe you keep buying them and
⏹️ ▶️ John the keyboards used to be better and you keep buying these new Apple laptops and you don’t like the keyboards, you’re gonna map all sorts
⏹️ ▶️ John of bad feelings onto that. So you’re gonna say, yeah, my shoulder’s been bothering me and I bet it’s because of these new keyboards, which
⏹️ ▶️ John it’s not, it’s not because of the new keyboards, but you still don’t like the new keyboards. And that’s the worst
⏹️ ▶️ John case scenario for public relations where someone with a big microphone, like someone in front of a
⏹️ ▶️ John million cameras at the Oscars, right, is asked an unrelated question and of their
⏹️ ▶️ John own accord pulls out, let me complain about an Apple product. Like I can just imagine those people going, oh no.
⏹️ ▶️ John, Marco this is the worst.
⏹️ ▶️ John It’s like, you know, it’s not a good day for Apple. And it’s not, and you have to
⏹️ ▶️ John just deal with that. People are not going to try to be fair and even minded with their criticism. And if they just feel like saying, I think
⏹️ ▶️ John this thing caused my RSI, they’re gonna say that, right? And that’s gonna become the story, you know? Famous
⏹️ ▶️ John person says Apple products have bad keyboards. And it will, you know, even
⏹️ ▶️ John if it was 100% false, which it’s not, like some people don’t like keyboards, like even if there was nothing
⏹️ ▶️ John to this story, it would still have traction. So I feel for Apple PR,
⏹️ ▶️ John you know, like this is, I think, the first time that the keyboard problem has had something like this
⏹️ ▶️ John happen where it’s a magnified example of
⏹️ ▶️ John extremely, you know, like worst case scenario, potentially unfair criticism. everything else has been like,
⏹️ ▶️ John we’re a bunch of tech nerds and we love Apple, but we’re disappointed by this thing and trying to be
⏹️ ▶️ John reasonably fair and measured about it. But Hollywood director doesn’t
⏹️ ▶️ John care about being fair and measured about technology product opinions. He’s just going to say, I don’t like these darn keyboards. Right.
⏹️ ▶️ John And that’s, that’s what happened. So I kind of feel for Apple, but other people may be,
⏹️ ▶️ John you know, having the opposite feeling of just glee that, that Apple is getting slammed
⏹️ ▶️ John this. I don’t have any glee about it. Um, I mean, I do find myself wondering,
⏹️ ▶️ John Taika, give us a call.
⏹️ ▶️ John you know, do you like the new keyboard? Do you like, is the 16 inch better, right? Because if
⏹️ ▶️ John it’s not, then that’s even a worse scenario where it’s like, I don’t know, I mean, it’s just one person. Like, you know,
⏹️ ▶️ John some people will just never like keyboards that aren’t the IBM Model M or whatever, right? Everyone has
⏹️ ▶️ John their own personal opinions. And it’s a shame when that person is very famous and says, I’m never
⏹️ ▶️ John going to use anything except for a buckling spring keyboard and Apple doesn’t offer those on its laptops, therefore I had Apple laptops.
⏹️ ▶️ John That’s another example of unfair, bad PR from a single person, but that’s the world we live in, right?
⏹️ ▶️ John But I do wonder, like you were saying, Marco, you know, if everything had the new keyboard,
⏹️ ▶️ John is the problem solved? Marco likes the new keyboard, but, and, you know, and this wasn’t
⏹️ ▶️ John even about reliability, this was just about, you know, feel, but how does the rest of the world feel about the new keyboards?
⏹️ ▶️ John When it eventually replaces the old ones, Will people buy a new Apple laptop and say,
⏹️ ▶️ John oh, it’s better than the old keyboard, but they used to make them even better. Even if that’s not true, they might say that to
⏹️ ▶️ John themselves for the rest of their lives, right? Again, unfair, right? Like in reality,
⏹️ ▶️ John maybe this keyboard is better, but they have this rose colored glasses memory of Apple, of Marco’s
⏹️ ▶️ John best laptop ever, you know, whatever. Whatever they’re remembering about how the keyboards used to be, they’ll,
⏹️ ▶️ John even if Apple makes a keyboard that’s better than that in the future, they’ll always be like, yeah, they used to be better.
⏹️ ▶️ John Like that’s just human nature and you can’t fight them. That’s the danger of having a misstep like this. That,
⏹️ ▶️ John you know, you’re like, well, we corrected it and we made a new keyboard and it’s better. And in blind tests, everyone
⏹️ ▶️ John likes it better than the old one. It’s reputation and people are stubborn about reputation.
⏹️ ▶️ John You know, just think of all the people you’ve heard in your life who have told you how much they hate insert
⏹️ ▶️ John company X, you know, Weber grills, Delta airlines, you know, whatever, some company
⏹️ ▶️ John that did some bad thing or had some bad product three decades ago and forever,
⏹️ ▶️ John this person, every time they come up, just complains about it and says their new products are no good, whether or not
⏹️ ▶️ John that’s true. That’s the danger of taking a misstep. The reputational damage can live as long as
⏹️ ▶️ John the people it lives inside, which is not fair to the company, especially if they fix things or
⏹️ ▶️ John used to make crap products. It was true of Japanese cars. I don’t know if either one of you have talked to
⏹️ ▶️ John your grandparents about the reputation products from Japan used to have, like after World
⏹️ ▶️ John War II, right? Japan makes crap. And they’re like, I’d never buy a Japanese car, they make
⏹️ ▶️ John garbage. And for some of these people for their whole lives, just always thought Japanese cars were
⏹️ ▶️ John garbage. Whereas if you, you know, if you were in a later generation, you think Japanese cars reliability,
⏹️ ▶️ John they’re they’re well made, they’re reliable. And that’s the reputation Japanese cars have. And even if Japan’s quality goes
⏹️ ▶️ John downhill, maybe we’ll have that reputation in our mind. It’s very difficult to dislodge these things. Sometimes, the only
⏹️ ▶️ John way they ever go away is that generation people dying and the new generation of people thinking, oh, Japanese cars, that’s
⏹️ ▶️ John synonymous with reliability because they make good cars.
⏹️ ▶️ Marco Yeah, I think the way that you minimize the risk of this happening
⏹️ ▶️ Marco to you as a company, you know, A, obviously, try not to ship flaws, right? But nobody
⏹️ ▶️ Marco can do that every time. Nobody’s perfect every time. So I think, you know, B, if you ship a flaw,
⏹️ ▶️ Marco try to recognize it and rectify it as quickly as you can so that the
⏹️ ▶️ Marco number of people who have negative experiences with your product is as small as
⏹️ ▶️ Marco it can be. And here Apple seemed to do the opposite of that. They seemed to
⏹️ ▶️ Marco not only not recognize it because this was a problem since the 12-inch MacBook in 2015. They
⏹️ ▶️ Marco had plenty of time and then they moved to the whole product line with this keyboard in late 2016 and it took them
⏹️ ▶️ Marco three more years before they released a single model that didn’t have it.
⏹️ ▶️ Marco And now we are, you know, three and a half years into that timeline now, and they’re still
⏹️ ▶️ Marco selling this keyboard brand new in their probably highest
⏹️ ▶️ Marco volume laptops. They kind of did the worst possible thing here. Like, you know, not only do they ship a mistake, okay, everyone ships mistakes
⏹️ ▶️ Marco sometimes, but they have taken an eternity to fix it. And
⏹️ ▶️ Marco they have made the mistake affect the broadest possible swath of their customer
⏹️ ▶️ Marco base. Like, It isn’t that they continue just shipping one model with this, like if it was only ever the 12 inch MacBook,
⏹️ ▶️ Marco you know, it would maybe get a reputation for, okay, this keyboard kind of sucks and this tiny little laptop, but oh well, we’ll buy
⏹️ ▶️ Marco a bigger laptop, we can avoid that keyboard. But they didn’t do that, they put it in
⏹️ ▶️ Marco all of them. So everyone who buys Mac laptops, which is most people who buy Macs,
⏹️ ▶️ Marco was forced to have this keyboard for this entire time span. So this was a significant problem, and this
⏹️ ▶️ Marco affected a large portion of their customer base for a very long time.
⏹️ ▶️ Marco The damage from that is way bigger than if the new Mac Pro had a
⏹️ ▶️ Marco problem. Sorry, John. If the new Mac Pro had a problem, then that, okay, that would affect a
⏹️ ▶️ Marco very small customer base, and probably for not that long of a time. Whereas if
⏹️ ▶️ Marco the laptops have a problem that affects lots of people, and this problem has lingered for years.
⏹️ ▶️ Marco I’m happy to try to place blame on them for shipping this keyboard in the first place, But just as
⏹️ ▶️ Marco critical of an error was letting it sit for so long without replacing it.
⏹️ ▶️ John The interesting thing is you can actually be cranky
⏹️ ▶️ John and immature and bitter about it and still save
⏹️ ▶️ John yourself. So I was thinking when you’re talking about that, I was thinking about other examples of where Apple has screwed up.
⏹️ ▶️ John AntennaGate, they made a phone that had, you know, the story was if you wrapped
⏹️ ▶️ John your hand around it, the signal couldn’t get out, which was true, and you could demonstrate it. And Apple was cranky about it,
⏹️ ▶️ John particularly Steve Jobs saying, but you could do that to BlackBerry phones too, and you know, it’s not fair, and
⏹️ ▶️ John blah, blah, blah. And they had that press conference, like fine, you want a bumper? We’ll give everyone free bumpers. Like he
⏹️ ▶️ John was just so, you know, immature and not magnanimous about
⏹️ ▶️ John it at all. And he was just mad that he even had to have this press conference and give people free bumpers or whatever.
⏹️ ▶️ John But two things were different about that thing. or first of all, they did it fairly
⏹️ ▶️ John quickly. The AntennaGate story came out and they didn’t, you know, insist that there was nothing wrong for three
⏹️ ▶️ John years. Like they fairly quickly had an actual press conference about it and tried to fix it. And
⏹️ ▶️ John the next thing they did was, you can be damn sure the phones after that didn’t have that exact same problem.
⏹️ ▶️ John They changed the designs of their phone to be better in that regard. Whether or not they thought it was fair or
⏹️ ▶️ John thought that the previous phone actually was no worse than any other phone or whatever, it was
⏹️ ▶️ John kind of like Bendigate too, same deal. learn from it quickly, and in the very next phone, make
⏹️ ▶️ John it less bendy. And from that point on, have this as be one of your criteria, right? I mean,
⏹️ ▶️ John like, it wasn’t addressed as like, well, they did such a good job, and they just had perfect PR. Like, Steve Jobs
⏹️ ▶️ John was cranky about it, right? He was the face of the company, and he seemed like indignant
⏹️ ▶️ John that you could be complaining about this, which is not even really a problem. But his attitude did
⏹️ ▶️ John not dictate that the company, you know what, this isn’t a problem. We’re not gonna do anything about it. No, they still
⏹️ ▶️ John had a press conference. They still gave people free bumpers, right? If you, you know, and that’s
⏹️ ▶️ John the bar. Like, you don’t have to be perfect. You don’t have to be like, I’m a saint, and if I ever do anything
⏹️ ▶️ John wrong, I will be, you know, immediately contrite, and I will offer a sincere
⏹️ ▶️ John apology, and I will right all the wrongs. You don’t have to be that good. But time to action
⏹️ ▶️ John is key. Take reasonably appropriate action, learn from your mistakes, and do it quickly,
⏹️ ▶️ John and you can even be cranky, And now how many people think iPhones have a reputation that if you hold them in your hand, they
⏹️ ▶️ John don’t get a signal. You never hear that. Like even from people who remember AntennaGate, that
⏹️ ▶️ John is not a slam on iPhones. You say, iPhones, aren’t those the phones that don’t get a good signal when you hold them in your hand?
⏹️ ▶️ John Nobody says that. But that was a big story at the time, and they
⏹️ ▶️ John didn’t gracefully nip it in the bud, but they did act quickly
⏹️ ▶️ John and fairly decisively and did not continue to ship iPhones the exact same performance characteristics
⏹️ ▶️ John for years and years. And so, you know, I think obviously that was a different Apple and
⏹️ ▶️ John a different time and a different scope. And yeah, the iPhone wasn’t as big at that time. And there, you know, there’s many things about
⏹️ ▶️ John the current situation that are different, but I think Apple itself has shown good examples of
⏹️ ▶️ John quickly learning from and recovering from its mistakes in an imperfect way
⏹️ ▶️ John such that you avoid this sort of longterm unfair, put scare
⏹️ ▶️ John quotes around that if you want, reputational damage.
⏹️ ▶️ Casey I just don’t get it. I don’t understand why they would double and then triple and then quadruple down on
⏹️ ▶️ Casey it. And as you both were saying, I don’t understand why we don’t have this across
⏹️ ▶️ Casey the line, across the entire laptop line. And the answer is, is because it’s a big ship that moves
⏹️ ▶️ Casey slowly and I’m not appreciating how challenging it is to make these changes and have them
⏹️ ▶️ Casey be global changes, not only in the figurative sense of global across their line, their laptop line,
⏹️ ▶️ Casey but global in the sense of literally these devices are shipped around the world. But I mean, they seem to be able to
⏹️ ▶️ Casey do it phones. I mean, not exactly the same thing, but similar things like you were saying, like we can make it work for
⏹️ ▶️ Casey phones. We ship a hell of a lot more phones than we do computers.
⏹️ ▶️ Marco Well, I think it’s largely about attitude and about economics. Like it, it probably took
⏹️ ▶️ Marco them a long time, a longer time than I bet we would have guessed
⏹️ ▶️ Marco to even decide, you know what, this was the wrong move. Obviously,
⏹️ ▶️ Marco no one took the feedback in 2015 on the 12-inch. No one cared. Obviously,
⏹️ ▶️ Marco the high failure rate and low manufacturing yield of that initial 2015 keyboard,
⏹️ ▶️ Marco that information didn’t really go anywhere either. Obviously,
⏹️ ▶️ Marco there was an attitude that this is the way forward, this is great, period. By the way, that
⏹️ ▶️ Marco same attitude seems to apply to the Touch Bar still. They still think the Touch Bar is
⏹️ ▶️ Marco a universal good. Because if they didn’t think the Touch Bar was a universal good, they would make it optional.
⏹️ ▶️ Marco But they don’t. So clearly they think, why would anybody not like the Touch Bar?
⏹️ ▶️ Marco And I think that’s still the wrong move. Regardless, something kept that attitude
⏹️ ▶️ Marco going of, this keyboard is great, this is fine, we have no problems with this, through
⏹️ ▶️ Marco all those revisions and revisions because they didn’t want to admit to themselves properly
⏹️ ▶️ Marco that they were wrong. And then secondly, there’s a huge economic thing of like, you’re going to have this manufacturing
⏹️ ▶️ Marco line running for X years, it’s going to cost you, you know, X dollars to
⏹️ ▶️ Marco retool and redesign and re-engineer a different keyboard into this line. And
⏹️ ▶️ Marco I have a feeling they just spreadsheet it. And at some point, somebody decided, hey,
⏹️ ▶️ Marco you know what, it would be too expensive to fix this faster. And so we’re going to fix it
⏹️ ▶️ Marco on our timeline. And in the meantime, oh well, we’ll do a repair extension program
⏹️ ▶️ Marco and sweep it under the rug. The problem is that didn’t work.
Sponsor: Linode (code atp2020)
⏹️ ▶️ Marco We are sponsored this week by Linode, my favorite web host. Look, no matter what
⏹️ ▶️ Marco you need, if you need servers, whether it’s from a personal project, or a hobby thing, or learning how
⏹️ ▶️ Marco to use Linux, all the way up to larger scale things, like running an entire app, like I run all of Overcast
⏹️ ▶️ Marco at Linode, whatever it is you need, from small to big, Linode has the pricing, the support, and the
⏹️ ▶️ Marco scale that you need for your project. They have 11 data centers worldwide now, and they’re always adding more.
⏹️ ▶️ Marco They recently added Sydney, Australia. All of these data centers have enterprise-grade hardware. They just launched
⏹️ ▶️ Marco an S3-compatible storage option recently, and it’s all backed by their next-generation network.
⏹️ ▶️ Marco Leno delivers the performance that you expect at a price that you honestly don’t. You can see for yourself
⏹️ ▶️ Marco today, using code ATP2020 to get a $20 credit, and that’ll
⏹️ ▶️ Marco give you access to everything they have to offer. You have native SSD storage on all their servers, this 40-gigabit
⏹️ ▶️ Marco network behind it all. All these servers come with root access. You can install whatever software you need.
⏹️ ▶️ Marco You configure everything with their API to automate things like expansion or contraction. They have a CLI
⏹️ ▶️ Marco tool in Python. I use it all the time. And all this comes in starting at just $5 a month.
⏹️ ▶️ Marco This is great for people who just wanna get started, who you wanna try things out. And all their plans
⏹️ ▶️ Marco from, I use mostly the bigger ones, but all their plans, in my opinion, are the best value
⏹️ ▶️ Marco in the business. And I’ve been with them for almost a decade. And the entire time, they’ve stayed
⏹️ ▶️ Marco the best value in the business. Whenever new technology gets better or gets cheaper, they give you more for your
⏹️ ▶️ Marco money. So it’s super great to be a Linode customer. I’ve been with them for all this time. I run all of Overcast there.
⏹️ ▶️ Marco I run markups.org there. I run the live streaming server for this podcast there. Everything I run there, I’m very happy with.
⏹️ ▶️ Marco See for yourself, linode.com slash ATP. Using promo code ATP2020 to
⏹️ ▶️ Marco get a $20 credit. That could be four months free on a $5 a month plan.
Giving in to Catalina
⏹️ ▶️ Marco So, once again, linode.com slash ATP, promo code ATP2020. Thank
⏹️ ▶️ Marco you so much to Linode for hosting all my stuff and sponsoring our show.
⏹️ ▶️ Casey You posted some interesting things to Instagram today.
⏹️ ▶️ Marco Oh, yeah. Yeah, you’re not going to get away with this. We’ll close out the crank chapter here. This will be the last thing I’m
⏹️ ▶️ Marco cranky about tonight.
⏹️ ▶️ Casey So, I look at my Instagram stories at some point in the evening, in the evening and I see that you were
⏹️ ▶️ Casey lamenting the fact that you couldn’t debug something in Xcode, if I’m not mistaken, in the beta
⏹️ ▶️ Casey specifically. And then you were lamenting the fact that it required Catalina.
⏹️ ▶️ Casey And the next thing I know, you’re doing the thing that you swore that I was not allowed to do, dad,
⏹️ ▶️ Casey and you’re installing Catalina on a device, I’m presuming it’s your iMac Pro. Did you buy
⏹️ ▶️ Casey your Mac Pro before or after this travesty happened? haven’t had time
⏹️ ▶️ Casey yet. Are you going to?
⏹️ ▶️ Marco I don’t know my fan noise is back. I still got to figure that out but I’m so annoyed.
⏹️ ▶️ Marco No yeah I I’ve been resisting Catalina on my main iMac Pro.
⏹️ ▶️ Marco I’ve had it on my laptop because it came with it and it’s been you know I’ve been dealing with it it’s fine
⏹️ ▶️ Marco but as I said before I didn’t see any reason to upgrade to Catalina and there only seemed
⏹️ ▶️ Marco to be downsides and risks no real upsides and well now I finally
⏹️ ▶️ Marco had to do it because I upgraded my phone to the 13.4 beta which
⏹️ ▶️ Marco presumably sometime in the next few weeks will become the 13.4 release of iOS and
⏹️ ▶️ Marco you can’t develop for that phone with Xcode 11.3
⏹️ ▶️ Marco you can only develop for it which means I can only do like the build and run and install development builds on my phone easily
⏹️ ▶️ Marco from the new beta of Xcode 11.4, which requires Catalina.
⏹️ ▶️ Marco They do this every year, where like every year, like at some point, halfway through the year
⏹️ ▶️ Marco or so, they make the newest version of Xcode require the newest Mac OS. And that
⏹️ ▶️ Marco is what finally pushes developers who have been reluctant to install the new version of Mac OS to finally do it. Because
⏹️ ▶️ Marco while it is possible to continue doing my job without being able to instantly run development builds
⏹️ ▶️ Marco on my phone, it becomes much more cumbersome. And it’s just the cost
⏹️ ▶️ Marco of that to me is too great. So I bit the bullet and I upgraded
⏹️ ▶️ Marco on podcast day, mere
⏹️ ▶️ Marco, Casey hours before the podcast. That’s very
⏹️ ▶️ Casey bold. Very bold maneuver.
⏹️ ▶️ Marco Yes. And here I am running Catalina on my desktop finally. So
⏹️ ▶️ Marco I’m finally fully upgraded reluctantly.
⏹️ ▶️ Casey I’ve been really eyeing, both side-eyeing and excited eyeing Catalina
⏹️ ▶️ Casey on account of starting to do some SwiftUI work, and it would be so much nicer, as we discussed last
⏹️ ▶️ Casey episode, to be able to do that on my iMac Pro. But my two dads, that’s a reference,
⏹️ ▶️ Casey John, have told me that I am not allowed to upgrade to Catalina, so I haven’t. And here it is.
⏹️ ▶️ Casey Now, I am the only holdout on Mojave, is that correct? Because John, you have to run it on your Mac
⏹️ ▶️ John correct? Yeah, my wife’s iMac is still in my hobby. And I thought about upgrading her, but I’m like, you know
⏹️ ▶️ John what? Just don’t. I just, like, I don’t, I’m not, honestly, I don’t have
⏹️ ▶️ John many Catalina problems. Like I had one weird freak out
⏹️ ▶️ John where, I don’t know if it was Xcode related. I was always running Xcode, so I don’t know whether to blame it, but at a certain point,
⏹️ ▶️ John like, how did it manifest? Oh, I would select, I was fast user switching
⏹️ ▶️ John between people to take screenshots. and I selected a different account from the fast user switching
⏹️ ▶️ John menu and nothing happened. Cool, and just I was
⏹️ ▶️ John trapped. I could not switch to another user. And I was like, okay, this means time to restart. Like no error
⏹️ ▶️ John message, no nothing in the console, nothing like it just, you would pick something from
⏹️ ▶️ John fast user switching and it would just blink like and then it would just, nothing would ever happen. And that,
⏹️ ▶️ John I said, okay, this is a sign I need to restart. And so I did and everything was fine after that. But other than that,
⏹️ ▶️ John and of course, the bazillion permission dialogues and everything that Marco was putting in his story that we just know are inherent in Catalina,
⏹️ ▶️ John I haven’t actually had any Catalina
⏹️ ▶️ Casey You better knock on
⏹️ ▶️ John, Casey some wood real quick.
⏹️ ▶️ John And Mojave, by the way, which my wife is still running, every once in a while, like it decides to activate
⏹️ ▶️ John the screensaver in such a way that it won’t deactivate it and I have to SSH in and kill the screensaver process.
⏹️ ▶️ John Right, so Mojave is not without its set of weird bugs too. So I figured I’ll just stick with
⏹️ ▶️ John the set of bugs I know in Mojave and Catalina on my Mac Pro has been fine.
⏹️ ▶️ John But yeah, I saw the new Xcode beta come out and I’m not
⏹️ ▶️ John down with, especially I was about to release an app, not down with the Xcode betas, but I feel you, Marco, with like,
⏹️ ▶️ John at a certain point,
⏹️ ▶️ John have to upgrade and I guess your time has come. And I think you picked a reasonable time. Like, I don’t
⏹️ ▶️ John think it’ll be a disaster for you.
⏹️ ▶️ Marco This is about as long as I make it every year. This actually, I think, is longer than I usually tend make it because usually there’s some
⏹️ ▶️ Marco new feature of the OS that I eventually just break down because I want it. And
⏹️ ▶️ Marco like Casey, like you know your SwiftUI previewing thing that you want like that would be that’s a pretty
⏹️ ▶️ Marco good one of those features like it would it would make sense like
⏹️ ▶️ Marco you know the reason I did it was because okay now some like pretty important part of my job
⏹️ ▶️ Marco has become impossible on Mojave. That’s motivation enough for me to make the jump. For you, if you’re doing
⏹️ ▶️ Marco a lot of SwiftUI stuff, that live preview part of SwiftUI is pretty nice.
⏹️ ▶️ Marco And it would kind of make sense that, okay, you should probably update if that’s
⏹️ ▶️ Marco a really important thing to you. But for everyone, the threshold of where that is is going to be different.
⏹️ ▶️ Marco Again, in past years, there have been such compelling features sometimes that you do
⏹️ ▶️ Marco it for that. For everybody, the threshold is going to be different of when do you update to a new OS?
⏹️ ▶️ Marco And if the OS has compelling features, that threshold could be pretty soon
⏹️ ▶️ Marco after release. I mean, you could even be one of those day one cowboys that just, I don’t recommend that,
⏹️ ▶️ Marco but you could do it. More level-headed approaches, usually maybe wait until the.1
⏹️ ▶️ Marco comes out. That’s usually a pretty safe bet most years. But that threshold moves for
⏹️ ▶️ Marco various people depending on their priorities and depending on the particular release.
⏹️ ▶️ Marco You know, my threshold is like, well, I’m going to, I can stay on the old version as long as it doesn’t impede anything
⏹️ ▶️ Marco I really need to do. And that was true until today. And it’s no longer true, and so
⏹️ ▶️ Casey I’m sorry, but does that mean I’m allowed to, dads? Finally? Please?
⏹️ ▶️ John I mean, if you really are, you’re still doing SwiftUI stuff and you want to have the preview, I suppose,
⏹️ ▶️ John you have an actual reason to do it. Before, you didn’t have any reason, though. I mean, and you weren’t telling us about the details
⏹️ ▶️ John of the app you were making, so.
Swift Playgrounds for Mac
⏹️ ▶️ Casey Okay, we should quickly mention things that would perhaps require
⏹️ ▶️ Casey Catalina since this is related. Switch Playgrounds is out for the Mac
⏹️ ▶️ Casey and it requires Catalina because it’s not combined. What’s the other one?
⏹️ ▶️ Casey go. It took me a minute. So, yeah. So, that’s really exciting. I haven’t tried it yet because I’m not
⏹️ ▶️ Casey on Catalina, but this is super cool. And generally speaking from what I’ve read,
⏹️ ▶️ Casey it sounds like it’s a pretty decent Mac app, is exciting as well. It’s not flawless, but it’s pretty decent
⏹️ ▶️ Casey all in all. So hey, that’s a win as far as I’m concerned.
⏹️ ▶️ John I’ve seen some people complaining that like that it is Swift Playgrounds on the Mac, like literally, you know, Swift Playgrounds,
⏹️ ▶️ John the thing they demoed on the iPad. Hey, look at this, you can learn how to program this is cool little robot, you can make it hop around like all the stuff
⏹️ ▶️ John that you saw them demo on the iPad at WWC all those years ago. It’s that on the Mac.
⏹️ ▶️ John But I think when people saw it, they were thinking, oh, it’ll be like Swift Playgrounds, but all
⏹️ ▶️ John the APIs will be Mac APIs. And that’s not the case. This is a Catalyst app. And inside
⏹️ ▶️ John the app, like someone put a screenshot of trying to like instantiate an NS color. And it was like, no,
⏹️ ▶️ John I think you mean UI color. Like,
⏹️ ▶️ John, Marco oh, like, yeah,
⏹️ ▶️ John it’s Playgrounds. Like you saw on the iPad, on your Mac, literally, through Catalyst, which
⏹️ ▶️ John is great. And it’s cool. And it’s, you know, I downloaded it and, you know, it’s exactly
⏹️ ▶️ John what you would think it would be. It’s convenient if you don’t have an iPad and you have a kid who wants to
⏹️ ▶️ John do this type of thing, but you do have a Mac now, they can have a way to do it. I was confused
⏹️ ▶️ John at first when I saw the headlines flying around, because I’m like, wait, Playgrounds have been on the Mac forever. I use them all
⏹️ ▶️ John the time when I’m developing in Xcode and I wanna try out a quick little thing. I bring up a Playground, I type some stuff
⏹️ ▶️ John in it, and it works fine. But then I remembered, no, it’s the thing with the robot. Yeah,
⏹️ ▶️ John which, what is the name of the thing in Xcode? That’s called Playgrounds, but
⏹️ ▶️ John not Swift Playgrounds? What is that thing called?
⏹️ ▶️ Casey It’s just Playgrounds, I believe. It’s a new Playground.
⏹️ ▶️ John mean, yeah, you just do, from the File menu, File, New, what, and one of the things you can make is New Project, New
⏹️ ▶️ John File, you can also make a new Playground. And it makes a little thing where you can type in code and it runs it in real time and shows
⏹️ ▶️ John you the results in the right-hand side, everything they demoed in a different WWDC session all those years ago.
⏹️ ▶️ John But it doesn’t have a distinct name and it’s not its own application. It’s just a Playground file for Xcode. Anyway,
⏹️ ▶️ John this is Swift Playgrounds for the Mac. Some people have been poking around and finding
⏹️ ▶️ John all the non-Mac aspects of it, but it’s just like any other Catalyst file. Like the keyboard shortcuts don’t work the way you expect.
⏹️ ▶️ John Like the responder chain is weird. The window layering is weird. I think someone was saying if you bring up a window and hit
⏹️ ▶️ John Command W, it closes the window behind the active window, which is, you know, not right.
⏹️ ▶️ John Many things about iOS applications that are running on the Mac through Catalyst that is not quite
⏹️ ▶️ John right, but it’s better to have, this is an example of Catalyst, you know, quote unquote shovelware, where like, you wouldn’t
⏹️ ▶️ John have this app at all on the Mac. So maybe the one you got is not super duper Mac-like,
⏹️ ▶️ John but it’s better than not having it on the Mac. And the app itself, once you’re inside it, functions
⏹️ ▶️ John just like you would see it on the iPad, only you get to use the mouse on a keyboard. So even though Catalyst continues
⏹️ ▶️ John to not be a shiny example of good Mac applications, it is still vastly
⏹️ ▶️ John preferable to have a so-so Catalyst port of an app than to
⏹️ ▶️ John not have it at all, especially for an app like this, where it’s like this is not a professional app where you’re
⏹️ ▶️ John trying to say this is the new way all Mac apps are gonna work. This is just allowing people who have a Mac to use
⏹️ ▶️ John a cool application that was previously only on the iPad.
⏹️ ▶️ Marco I don’t have any problem with that. In fact, I’m with you. I think it’s overall, theoretically, it’s a good thing.
⏹️ ▶️ Marco Now in practice, Catalyst has had a really slow start. And that’s due to lots of reasons
⏹️ ▶️ Marco that the more Apple uses it, the more that they will see
⏹️ ▶️ Marco and feel these reasons. and the sooner they are likely to get fixed. So that’s actually a
⏹️ ▶️ Marco good thing. Like if Apple’s gonna keep bringing over apps like this that are like, you know, are not critical apps to
⏹️ ▶️ Marco macOS, but have some utility if they are present, bring as many over as they want to
⏹️ ▶️ Marco and have them use Catalyst and they can see, you know, how incomplete it is. They
⏹️ ▶️ Marco can feel like, oh, this actually is kind of crappy. Like, and there have been some recent changes.
⏹️ ▶️ Marco Like, I don’t know if we’re gonna get to this today, but like they have introduced a new date picker style that doesn’t use the stupid
⏹️ ▶️ Marco iOS wheels, finally, like in whatever the new Catalina beta is. And
⏹️ ▶️ Marco they recently announced, and we didn’t cover this yet either, they recently announced something last week that you’ll
⏹️ ▶️ Marco now be able to build Catalyst apps that use the same bundle ID, which is pretty important
⏹️ ▶️ Marco for lots of reasons, especially like sharing a purchase as your iOS app. When Catalyst was unveiled last
⏹️ ▶️ Marco summer, you had, it forced you to have this big like Mac Catalyst prefix on the
⏹️ ▶️ Marco bundle ID, So you couldn’t, your app that you ran on the Mac could not have the same ID for
⏹️ ▶️ Marco store and technical purposes as the app that you had on iOS. So you couldn’t
⏹️ ▶️ Marco do things like one purchase gets you all apps. And I think the reason for that was simply because they hadn’t set that all
⏹️ ▶️ Marco up yet, like on the store backend and everything else. So they were forcing this thing. And so like, Catalyst as it was released
⏹️ ▶️ Marco was pretty incomplete. They are very slowly chipping away at Catalyst’s various shortcomings and problems.
⏹️ ▶️ Marco And so the more Apple ships their own apps, like SwiftUI for it, the more
⏹️ ▶️ Marco they’re gonna feel these issues and hopefully prioritize them. So I don’t personally have
⏹️ ▶️ Marco really any feelings on this particular app, but hey, it’s a fun thing for people to
⏹️ ▶️ Marco use and if you’re learning and whatever else, it’s easier than Xcode. So, you know, good
⏹️ ▶️ John Yeah, it’s a very polished, like the application itself is like, you know, a very polished example
⏹️ ▶️ John of like a learning to program type thing because I remember a lot of those learning to program things from my youth. Obviously this is ancient
⏹️ ▶️ John and things, you know, but like just in terms of the production values, adjusting for the times and the technology stack,
⏹️ ▶️ John it’s a very fancy, well done sort of high production
⏹️ ▶️ John value in Hollywood parlance, as we’re talking about Hollywood this episode, a high production value
⏹️ ▶️ John example of learning to program. Like it’s, you know, like two, the production
⏹️ ▶️ John values are too high. It’s like, this is not what, is it really important, this important to learning the program to have
⏹️ ▶️ John this adorable of an interface and these kinds of graphics. No,
⏹️ ▶️ John it’s not. It’s just typical Apple over polish, overkill, and it’s great. It’s all the more disappointing
⏹️ ▶️ John when I couldn’t get any of my kids interested in it because they were just, at the time I tried to show it to them, they were like,
⏹️ ▶️ John not interested, don’t care about the robot, don’t care about typing things, why would I ever do this? Why wouldn’t
⏹️ ▶️ John I just use an analog stick to move the little robot around? Like they
⏹️ ▶️ John, Marco said in video games.
⏹️ ▶️ John Anyway, but anyway, I think if kids are into programming
⏹️ ▶️ John and they get their hands on something like this at the right age, it can be amazing. And I wish I had something like this because
⏹️ ▶️ John the things I had at my disposal had much lower production values and are much less friendly.
⏹️ ▶️ Casey Yeah, I very much admire Apple for doing this. And I think
⏹️ ▶️ Casey it is a really nice move to help people teach their kids,
⏹️ ▶️ Casey like you were saying, or teach themselves. And the Playgrounds
⏹️ ▶️ Casey as a scratchpad for trying to write code, that does
⏹️ ▶️ Casey exist in Xcode. And it’s for somebody like the three of us is a better answer. But
⏹️ ▶️ Casey for somebody who is just trying to
⏹️ ▶️ Casey learn how to write code, it’s so good. And I would never turn to this. I would just go to
⏹️ ▶️ Casey an Xcode playground. But if I was trying to show Declan how to write code, I would definitely use this. And I think that
⏹️ ▶️ Casey that’s extremely cool. And I think it should be commended that Apple still cares enough to do this sort
⏹️ ▶️ John The sad thing about me trying to teach my kids programs that eventually my son
⏹️ ▶️ John did get into programming more or less on his own, because, you know, another example of kids not wanting to hear from their parents, but if they
⏹️ ▶️ John just go to other homes, they’re into it. Right. And now he’s taking courses in high school, programming courses
⏹️ ▶️ John in high school and he’s doing it in Netbeans. Like we had to install Netbeans
⏹️ ▶️ John on the Macs because it’s Java and you have to install this Netbeans IDE which is this ancient
⏹️ ▶️ John thing and then Java doesn’t come on the Mac anymore. So he turned his nose up at Swift Playgrounds which are like
⏹️ ▶️ John you know a glass of ice water and hell compared to Netbeans.
⏹️ ▶️ Marco Are they? I still think Swift is a terrible beginner’s language but that’s
⏹️ ▶️ Marco you know that’s just me I guess.
⏹️ ▶️ John It’s better than Java I can tell you that
⏹️ ▶️ John, Marco and anyway he’s doing Java now he’s not
⏹️ ▶️ John yeah. He’s doing Java in NetBeans. Because that’s what’s on the computer science AP
⏹️ ▶️ John test is still in Java, because, you know, legs behind the rest of the world, I suppose. So he’s gotta,
⏹️ ▶️ John you know, learn and use Java. What should it be instead? I don’t know, I mean, I would feel better
⏹️ ▶️ John about C for that. Or like a pseudo-language, like, is it, computer science is not about, you know, computer
⏹️ ▶️ John science is as much, as they say, is as much about computers as astronomy is about telescopes. Right, right.
⏹️ ▶️ John So like, if you’re learning actual computer science, the details of any particular language
⏹️ ▶️ John be immaterial. And I understand you have to have something to do the test with, but
⏹️ ▶️ John you know, it could just be like an algorithms test. I don’t know. AP Computer Science, as far as I’m aware, did not exist
⏹️ ▶️ John when I was in school. So I have no idea what he’s in for, but he’s doing it and I installed NatBeans. So there
⏹️ ▶️ Marco I wish it existed when I was in high school.
⏹️ ▶️ Casey Agreed. Can we just state publicly that you are aware that there are other better Java IDEs
⏹️ ▶️ Casey that exist. And that is not the point.
⏹️ ▶️ John Oh, I’m not choosing to install NetBeans. It’s like anything in school. Here’s the calculator you have to
⏹️ ▶️ John buy. Here’s the IDE you have to install for this class. Exactly. He’s not picking this.
⏹️ ▶️ John And it’s not just NetBeans. It’s like a specific old version of NetBeans that really is angry about
⏹️ ▶️ John both Mojave and Catalina. It’s not as bad as me trying to install Minecraft
⏹️ ▶️ John mods, but it’s close.
⏹️ ▶️ Marco I’m going to go out on a limb here and say that Java is no worse a learning language than Swift.
⏹️ ▶️ John don’t think I agree. I think Swift is way better than Java. Way better. Yeah, I agree.
⏹️ ▶️ Marco Million miles better. As a language I’d want to use today, I agree. But a learning language has
⏹️ ▶️ Marco different needs. And
⏹️ ▶️ John I think as a learning language as well.
⏹️ ▶️ Marco I think they’re both mediocre learning languages, honestly. I think I would want to go something simpler
⏹️ ▶️ John is too weird. It’s a reasonable second choice, but honestly, I think Swift is a great language
⏹️ ▶️ John to learn programming in, of all the real languages out there that we can pick. Because I think both
⏹️ ▶️ John And if I was teaching a course, I wouldn’t want to have to explain the weird basics, whereas I think I could go a long time without
⏹️ ▶️ John explaining any weirdness for just doing the basics in Swift.
⏹️ ▶️ Marco Yeah, until you do something wrong.
⏹️ ▶️ Marco We are sponsored this week by Bluevine. Running a business is filled with unexpected events
⏹️ ▶️ Marco that require sudden cash flow. Bluevine can help you secure cash fast. Applying
⏹️ ▶️ Marco online is easy and takes just a few minutes. Bluevine is an easy, fast way to help support your
⏹️ ▶️ Marco business growth with a line of credit of up to $250,000. Whether you need money to offset some
⏹️ ▶️ Marco upfront costs, secure new inventory, or maybe pay an unexpected expense, through Bluevine,
⏹️ ▶️ Marco you can help yourself and your business stay secure for any reason. There’s no no fee to set up your line of credit, and
⏹️ ▶️ Marco Bluevine never charges maintenance or prepayment fees. Applying is easy. Just go to getbluevine.com.atp,
⏹️ ▶️ Marco fill out a few simple details, and you’re done within minutes. Seeing an offer will not affect your credit score,
⏹️ ▶️ Marco and once approved, funds can be received in as quickly as 24 hours. So you can have peace of mind knowing
⏹️ ▶️ Marco that funds can be drawn with a click of a button for any business expense. Bluevine has helped
⏹️ ▶️ Marco more than 20,000 customers and has delivered over $2.5 billion in funds to businesses.
⏹️ ▶️ Marco Bluevine also has advisors available by phone to answer any questions you might have and help meet your business needs.
⏹️ ▶️ Marco With an A-plus rating from the Better Business Bureau and nearly five-star review on Trustpilot, see
⏹️ ▶️ Marco why thousands of satisfied business owners have chosen Bluevine as their go-to source for financing. Bluevine is offering
⏹️ ▶️ Marco our listeners a special limited-time promotion of a $100 gift card when you take out a loan or
⏹️ ▶️ Marco open a line of credit with Bluevine. So go to getbluevine.com slash ATP
⏹️ ▶️ Marco for more details. All you have to do, once again, get bluevine.com slash ATP
⏹️ ▶️ Marco apply. That’s quick, easy and meaningful help to your business in as little as 24 hours.
#askatp: Mac antivirus
⏹️ ▶️ Marco hours. This promotional offer is subject to terms and conditions that can be found at getbluevine.com slash
⏹️ ▶️ Marco ATP. Thank you so much to Bluevine for sponsoring our show.
⏹️ ▶️ Casey Shall we do some Ask ATP? Let’s do it. So we start with Anthony Scartapani.
⏹️ ▶️ Casey I should have tried that before reading it just now. I hope I got that right. Anthony writes, today at work, we
⏹️ ▶️ Casey started debating the differences between Mac and Windows on the basis of security people were discussing having antivirus
⏹️ ▶️ Casey software like AVG or Kipersky or etc. on their Windows machines, but there weren’t any Mac owners that did the
⏹️ ▶️ Casey same. Some of the Windows users mentioned that they only use Windows Defender as their defense to malware. It made me realize that macOS
⏹️ ▶️ Casey doesn’t really have any in-your-face software that is quote-unquote protecting you at all times. Anthony writes,
⏹️ ▶️ Casey I understand macOS has built-in security like X-Protect and Gatekeeper. Is the software essentially doing the same thing as other
⏹️ ▶️ Casey antivirus software? Also, do you think that macOS is really better at defending malware or viruses beyond the fact that there are less
⏹️ ▶️ Casey machines running macOS versus Windows? If so, So how? There’s a lot here, but no,
⏹️ ▶️ Casey there’s no real antivirus that comes with Mac OS that I’m aware of, or am I crazy?
⏹️ ▶️ Marco I mean, you know, as this person mentioned, just XProtect really, but XProtect is really
⏹️ ▶️ Marco doing, I think, as I think it is basically serving as antivirus. Like it is,
⏹️ ▶️ Marco it is a system thing that runs in the background all the time that, uh, that silently downloads updates from Apple whenever
⏹️ ▶️ Marco there is one, and that can be used to target and block the execution
⏹️ ▶️ Marco of binaries with certain signatures. And that’s what antivirus programs do, as far as I know.
⏹️ ▶️ Marco John, what am I missing here?
⏹️ ▶️ John Well, but they do more than that. So, yeah, X-Protect and Gatekeeper and the general design of macOS is made
⏹️ ▶️ John to, like, there are multiple ways. One is to protect it against known threats. Like, that’s what X-Protect
⏹️ ▶️ John is doing. Like, if there’s a thing that’s bad and we know it’s out there, we can describe it and quickly tell all the Macs about it so they will not
⏹️ ▶️ John run that thing. Gatekeeper is like, don’t just run stuff willy-nilly. Make sure you prompt for permission
⏹️ ▶️ John and the quarantine attribute and downloading stuff or whatever. So that’s all kind of like sort of
⏹️ ▶️ John passive preventative stuff. And then there is the other passive stuff, which is like in the design of the
⏹️ ▶️ John OS, like address space randomization and protecting against loading, dynamically
⏹️ ▶️ John loading libraries from weird locations and sandboxing. So that’s sort of baked into the thing.
⏹️ ▶️ John But antivirus software of the type being described in this
⏹️ ▶️ John question and of the type that people think of when when you think of Windows, does something
⏹️ ▶️ John above and beyond that, because Windows at various times has had equivalence of all the things I just described,
⏹️ ▶️ John less so maybe in the Windows XP days, but much more so now, because Microsoft has gotten very serious about
⏹️ ▶️ John security after getting totally reamed on security back in the, what was it, late 90s,
⏹️ ▶️ John early 2000s? I don’t know. I don’t know
⏹️ ▶️ Marco guys work. Well, and talk about long-term reputation damage. Like, Microsoft had horrible
⏹️ ▶️ Marco security on Windows basically for what, 20 years at least, or longer?
⏹️ ▶️ Marco Like, it was until, when did they introduce Windows Defender, which was like their built-in antivirus
⏹️ ▶️ Marco stuff? That was not that long ago. Right, but like
⏹️ ▶️ John their security problems were there, but didn’t come and bite them until it all landed at
⏹️ ▶️ John once, right? So yeah, maybe they had like lax security for a long time, like everybody else in the industry, but they,
⏹️ ▶️ John because they were so prominent and dominant, they bore the brunt of this big
⏹️ ▶️ John security catastrophe, And then they got serious about security after that. So they acted as
⏹️ ▶️ John quickly as possible. It’s just that people kept running Windows XP
⏹️ ▶️ John for a long time. But yeah, for the antivirus stuff, like what the difference is,
⏹️ ▶️ John they’re thinking of programs that run on your computer and periodically and
⏹️ ▶️ John or continuously wander over every single file on your computer and say, let me look at this file.
⏹️ ▶️ John Is there anything bad in here? Nope, okay, let me go to this file. Is there anything bad in here? Nope, okay. And then beyond that,
⏹️ ▶️ John say, every time you do any file I own, anything, or try to launch anything or whatever, this third
⏹️ ▶️ John party program jumps in and says, you’re trying to write to this file? Who are you? Are you allowed to write to this file? You’re trying to launch this
⏹️ ▶️ John program? Is it okay to launch this program? Let me look at this program, right? Which is more invasive than
⏹️ ▶️ John XProtect. Like, that’s the general complaint of, you know, the Mac users
⏹️ ▶️ John at a big corporation have to run antivirus software, is that, oh, it’s destroying my computer, it’s killing my battery life, because
⏹️ ▶️ John it is literally looking at every single file on your computer, right? Or when you’re trying to do lots
⏹️ ▶️ John of file I O, this third party program is intervening and saying, ah, ah, ah, before you do that file
⏹️ ▶️ John I O, let me look at what you’re doing and let me see who you are and what you’re writing and what this file is and make sure it’s okay. And that slows
⏹️ ▶️ John everything down, right? All the things we described, extra tech, gatekeeper, address space randomization,
⏹️ ▶️ John sandboxing, they don’t do that. They do not, like, there’s not suddenly a process using 100% CPU
⏹️ ▶️ John grinding over your entire disk, right? Well, except Dropbox. Yeah,
⏹️ ▶️ John separate issue entirely. For the purposes of antivirus, there’s not something that is causing your file IO to
⏹️ ▶️ John be slower, again, except for Dropbox,
⏹️ ▶️ John, Marco because it is
⏹️ ▶️ John intercepting or doing something in every single bit of file IO, like Dropbox drinks from the FS Events fire hose,
⏹️ ▶️ John and it can actually slow down IO significantly. So if you’re worried about that, quit Dropbox
⏹️ ▶️ John and then do whatever, anyway. Those programs absolutely do exist for the Mac.
⏹️ ▶️ John I personally hate all of them, even the quote-unquote good ones, because they screw with my Mac, because I feel like they’re
⏹️ ▶️ John doing something that I don’t need to be done. Like I’ve never voluntarily run that kind of antivirus
⏹️ ▶️ John software on my Mac. And I’ve also never had a problem with viruses. And I don’t think I’m just lucky, right?
⏹️ ▶️ John So is that because Macs have better security? I doubt it.
⏹️ ▶️ John I think it’s mostly, you know, right now Windows has pretty good security.
⏹️ ▶️ John And I think so does the Mac because the Mac OS X sort of grew up in an era when Windows was getting slammed
⏹️ ▶️ John with security threats. So Apple took that lesson to heart, even though it wasn’t happening to them, right? So
⏹️ ▶️ John I think the security of it’s probably fine, but bottom line is that it is a less popular operating
⏹️ ▶️ John system that is less profitable to exploit because there are fewer Macs and many more Windows
⏹️ ▶️ John machines. So I don’t recommend that Mac users run any kind of antivirus
⏹️ ▶️ John software, because I think the antivirus software itself is more of a problem than viruses will be, but that doesn’t mean you’re not vulnerable.
⏹️ ▶️ John It just means I think that’s the correct balance for most people, because these antivirus programs,
⏹️ ▶️ John they really, they make the experience of using a Mac worse. They’re complicated, they’re
⏹️ ▶️ John buggy. I used to get kernel panics from one of them that I had to run at work. They slow your computer down, they kill your
⏹️ ▶️ John battery, and in practice thus far, being a Mac user since 1984, I have never needed
⏹️ ▶️ Casey Well, I hope you knock on some wood.
#askatp: Double Voice Boost
⏹️ ▶️ Casey Chris Wright writes, Marco, you said that you apply Voice Boost here
⏹️ ▶️ Casey on recordings and post, which will typically be processed once again with an overcast at playback time.
⏹️ ▶️ Casey Have you done anything to mitigate recursive processing resulting in exaggerated or undesirable audio artifacts?
⏹️ ▶️ Marco Yeah, so I, and actually, and I believe Chris wrote this before I released Voice Boost 2 and I went into this very
⏹️ ▶️ Marco slightly in the blog post, I think mostly in a footnote, but basically, Voice Boost 2
⏹️ ▶️ Marco is a whole effect set. can apply lots of different effects in lots of different
⏹️ ▶️ Marco configurations. What chips and overcast is basically a preset that’s
⏹️ ▶️ Marco like here’s one configuration of this engine. It is applying the loudness, the compressor,
⏹️ ▶️ Marco and the EQ. What I have been processing my files through all these months that I’ve
⏹️ ▶️ Marco been testing this is a command-line utility that I’ve been you know that basically is like a test harness
⏹️ ▶️ Marco for the voice boost 2 engine and I can specify as arguments to that mainline utility,
⏹️ ▶️ Marco which of the filters to engage and with which settings. So I’m not actually engaging all
⏹️ ▶️ Marco of Voice Boost 2, I’m engaging parts of it. Specifically what I’m processing our files through
⏹️ ▶️ Marco is I’m processing each individual track, each of our three voice tracks, through
⏹️ ▶️ Marco the loudness normalizer to a certain loudness and applying a custom EQ
⏹️ ▶️ Marco to each of our tracks based on each of our voices and microphones to make us sound good. And I do
⏹️ ▶️ Marco all that just like with an automated shell script that runs this command utility and you know every time I process the
⏹️ ▶️ Marco files and so out you know out of that I get three tracks that have been all normalized to
⏹️ ▶️ Marco the same volume and have had our personal EQs applied. What the Overcast app is doing
⏹️ ▶️ Marco is applying a it’s applying the loudness matching thing and then also a little bit of compression and
⏹️ ▶️ Marco a little bit of EQ and the EQ it’s applying is a very gentle EQ that
⏹️ ▶️ Marco is kind of like a all-purpose, broad appeal EQ that’s gonna do
⏹️ ▶️ Marco a small tweak to make most voices sound a little bit better, but is not especially severe
⏹️ ▶️ Marco and not especially targeted to any particular voice. So, if that’s basically,
⏹️ ▶️ Marco if it’s double applied, like by me having done loudness matching first and then applying EQ
⏹️ ▶️ Marco in my pre-process, and then having the Overcast app play back those files and
⏹️ ▶️ Marco possibly apply voice boost if the user has it enabled, the loudness matching part of it actually not going to be changed
⏹️ ▶️ Marco much at all because voice boost 2 reads the loudness first and then decides how much
⏹️ ▶️ Marco to adjust it and so if it’s already at the target loudness voice boost 2 doesn’t really do any adjustment
⏹️ ▶️ Marco there. So there is not much of an effect in double applying loudness normalization.
⏹️ ▶️ Marco The only thing that’s really being double applied here is the EQ but because the EQ
⏹️ ▶️ Marco settings in voice boost for the you know in the overcast default configuration Because
⏹️ ▶️ Marco those are such subtle EQ tweaks, the fact that they’re being applied to
⏹️ ▶️ Marco a podcast like mine that I believe is already well EQ’d, they’re by design configured
⏹️ ▶️ Marco to be pretty subtle and to not be a massively noticeable change on already
⏹️ ▶️ Marco well-produced podcasts. Because the reality is most people listening to podcasts
⏹️ ▶️ Marco most of the time are listening to professionally made shows that probably don’t need a lot of EQ
⏹️ ▶️ Marco and probably don’t need a lot lot of volume leveling. So part of the design of VoiceBoost 2 was to be
⏹️ ▶️ Marco like a gentler touch and especially to be dynamic with the volume leveling and to not
⏹️ ▶️ Marco apply more correction than is necessary from the input. So double applying it
⏹️ ▶️ Marco doesn’t really do that much with the sole exception of the EQ which Which is pretty subtle.
#askatp: Show notes
⏹️ ▶️ Casey Seymour Huston writes, how do you guys use show notes as a listener before or after listening
⏹️ ▶️ Casey to the episode? Scared of a spoiler? What makes for good show notes? Personally, I almost never read them, but you seem to
⏹️ ▶️ Casey actually put quite a lot of effort into it. So maybe I’m missing something here. Well, thank you for noticing because the show
⏹️ ▶️ Casey notes are done by me with Marco tweaking and John occasionally adding some missing
⏹️ ▶️ Casey stuff from time to time. So thank you. How do I use them as a listener? Generally speaking,
⏹️ ▶️ Casey I will at least glance at some point, but I usually only take a deep
⏹️ ▶️ Casey dive if I’m looking for a particular link of something that’s mentioned on the show. I also
⏹️ ▶️ Casey feel like, thanks to Forecast and some of the work that Marco has done, I
⏹️ ▶️ Casey miss out on a little bit because I don’t often pay attention to show art, which can change during an episode.
⏹️ ▶️ Casey And I think it’s mostly like us and some of the Relay folks that do that. I don’t know, Marco, if you
⏹️ ▶️ Casey know some other good examples, but yeah, Marco is very good about putting in relevant chapter
⏹️ ▶️ Casey art for each of our chapters and sometimes there’s some really good gags there that I don’t see because
⏹️ ▶️ Casey I am not typically looking at a screen when I’m in the midst of listening to a podcast.
⏹️ ▶️ Casey If anything, or if I’m looking at a screen, I’m looking at like code or something. So I don’t
⏹️ ▶️ Casey typically pore over them, but I almost always glance at them. Marco, you were just talking a lot, so let’s
⏹️ ▶️ Casey go to John. John, how do you use show notes as a listener?
⏹️ ▶️ John John Greenewald I mostly, I mean, so in the podcast I listen do people will refer to them. We do it all the time. The
⏹️ ▶️ John link will be in the show notes, right? If I’m interested in that thing, I will then go to the
⏹️ ▶️ John show notes and seek out that link. Uh, in terms of spoilers, that’s a possibility, like especially if they chapterize
⏹️ ▶️ John it and I can see the chapter titles, but I’m not listening to narrative podcasts that have spoilers of that kind of
⏹️ ▶️ John the thing. It’s not really a spoiler to know that later they’re going to talk about cars, like whatever, you know, I can live
⏹️ ▶️ John with that. So I will seek out the links for that purpose. The second time I do it is when something
⏹️ ▶️ John is being discussed on a show and it’s visual. And even if they don’t
⏹️ ▶️ John mention it, if I know if I listen to the show, when they talk about this, that someone got a new car and they’re talking about,
⏹️ ▶️ John uh, you know, the new car and the new something in the new car. If I know
⏹️ ▶️ John this is the kind of show where that there’s going to be pictures and show notes of that car, I will then pick up my phone and go
⏹️ ▶️ John to the show notes and see it so I can look at the picture that they’re talking about right now. They’re talking about the car. I want to see this
⏹️ ▶️ John car. I want to see the color of the seats or whatever. Right. And when I know that’s going to be there.
⏹️ ▶️ John Shows basically train you. You look for it one time, and it’s not there, and there’s no show notes. You’re like, oh, I guess this isn’t a show where they do
⏹️ ▶️ John that, right? And by the way, I think more shows should do this. It seems to me the higher the production values
⏹️ ▶️ John of the show, like multimillion dollar shows with celebrities that have millions and millions
⏹️ ▶️ John of listeners, no show notes.
⏹️ ▶️ John, Marco Nothing. No show notes. None.
⏹️ ▶️ John They’ll be talking for an hour about, oh, my dog made this mess in the kitchen, and they’re
⏹️ ▶️ John all looking at a picture of it, and they’re sharing a picture, and they’re like, oh, look at this picture. Oh, they’re talking about it. They talk about the picture for a half an hour of the
⏹️ ▶️ John master dog man in the kitchen. No way to see that picture. No show notes, no link, no nothing.
⏹️ ▶️ John It boggles my mind. But anyway, that’s what makes good show notes is when you want to know more
⏹️ ▶️ John or want to learn more or want to share in the experience in a way that you can’t when it’s just audio, go to
⏹️ ▶️ John the show notes and there should be something there for you. And that’s what makes them good. Like I don’t see people like
⏹️ ▶️ John looking at the show notes ahead of time or even, you know, like they’re there for you when you wanna learn more.
⏹️ ▶️ John And I think that the two reason ways to do it that are in real time while you’re listening, go to them so you can share an experience.
⏹️ ▶️ John And then at the end, oh, what was that app they talked about, you know, that did the thing, I don’t remember,
⏹️ ▶️ John and they go to the show notes and find it, and you know, occasionally we don’t put it there, and if we don’t, someone sends us a tweet and
⏹️ ▶️ John says, hey, I was looking for the app you talked about, and we’ll add it to the show notes later. That’s another thing, by the way, that I’m assuming no
⏹️ ▶️ John multi-bazillion dollar podcast ever does, but that we do all the time. If we forget a link in the show notes, oh, we
⏹️ ▶️ John talked about this app, but we didn’t put a link in there, and three people ask us, hell, if one person asks, but what was
⏹️ ▶️ John that app? We’ll add it to the show notes and good podcast players will notice that
⏹️ ▶️ John we changed the show notes and load new versions of them. And bad podcast players will never reload the show notes and people
⏹️ ▶️ John will say, I still don’t see it in the show notes and we’ll have to send them to ATP.fm because the show notes on the web will actually update
⏹️ ▶️ John because web browsers know how caching works. So yeah, like
⏹️ ▶️ John I think good show notes add to the program. I’m angry when they’re not there and I think any way you wanna use them is
⏹️ ▶️ John fine. Like they’re there for you to use them. Same thing with chapters. But the way I use them is in real time to enjoy
⏹️ ▶️ John the show more and then afterwards when I remember something they talked about and I wanna actually see what it is and follow the link.
⏹️ ▶️ Marco Marco? Most people never look at show notes. Most podcasts
⏹️ ▶️ Marco don’t have show notes or don’t have meaningful show notes. You know, for those that do,
⏹️ ▶️ Marco I think the role of show notes is mostly what John said, is like to provide links and
⏹️ ▶️ Marco context. Now, some producers go way into it and put entire
⏹️ ▶️ Marco topic outlines and summaries and timestamps that link directly to certain topics and everything,
⏹️ ▶️ Marco kind of like a lightweight chapter marker kind of thing. That’s done occasionally, but it’s not common.
⏹️ ▶️ Marco By far, the more common use of them is either not having them at all or making them a handful,
⏹️ ▶️ Marco a very small handful usually, of links that are mentioned. And I think that’s totally fine. As a listener, that’s how
⏹️ ▶️ Marco I use them. I use them as, you know, they’re talking about something and I wanna
⏹️ ▶️ Marco see it, I’ll check the show notes to see if there’s a link to it. And about half the time there
⏹️ ▶️ Marco is, and about half the time there isn’t because people are so bad at it. And yeah, and you’re right,
⏹️ ▶️ Marco generally the more popular the podcast, the less likely it is to have even
⏹️ ▶️ Marco basic show notes. These podcasts that have staffs
⏹️ ▶️ Marco of 30 people working on them, they won’t have show notes, they won’t do anything.
⏹️ ▶️ Marco They’ll have the weakest stuff. you wouldn’t believe how many proposals
⏹️ ▶️ Marco for new standards I hear and get pitched on from
⏹️ ▶️ Marco major podcast companies that can be solved already by either show notes
⏹️ ▶️ Marco or chapter markers with links. Which like, literally like, almost
⏹️ ▶️ Marco every month, some big podcaster tries to start a new standard. And
⏹️ ▶️ Marco it’s like, you know, you can do this already today in every single podcast app
⏹️ ▶️ Marco by using chapter markers to show a link and or an image
⏹️ ▶️ Marco at a certain time.
⏹️ ▶️ Marco that. And you would not believe how many standards people have tried to make to do this.
⏹️ ▶️ Marco And then do any of them actually ever try that? No.
⏹️ ▶️ Marco Zero major podcasts from the big public radio style producers, zero
⏹️ ▶️ Marco of them ever use chapter markers. I don’t know why, but they just don’t. they pretend like that doesn’t exist.
⏹️ ▶️ Marco And they do the exact same thing with show notes. Pretty much zero of them have meaningful show notes.
⏹️ ▶️ Marco And I guess their loss, but the general
⏹️ ▶️ Marco inconsistency of use of show notes means that as podcast listeners, we
⏹️ ▶️ Marco can’t ever really rely on them for much. So it’s just kind of like a nice little reference to look at
⏹️ ▶️ Marco and sometimes be helped by.
⏹️ ▶️ Casey Do you think that the reason that the big producers aren’t interested is because of
⏹️ ▶️ Casey dynamic ad insertion. I mean, I would assume that there’s no reason why they couldn’t just reprocess the chapter markers
⏹️ ▶️ Casey based on new times, based on the ads that are inserted. But is that something to do with it, do you reckon?
⏹️ ▶️ John I mean, I think Marco nailed it before. The reason people don’t do it is because no one looks at the show notes. Like it’s
⏹️ ▶️ John a cost-benefit, like they make that calculation in their head. They say, okay, 0.01% of our listeners ever look at show notes. Should we invest
⏹️ ▶️ John even a single person’s, two hours of a single person’s time in making them? Answer, no. That’s my theory.
⏹️ ▶️ Casey but if they’re coming to Marco and saying, here’s the spec that we think you should implement, then obviously they
⏹️ ▶️ John it. They’re just doing that because they want better tracking. That’s all about ad. Yeah, true. Like, they want
⏹️ ▶️ John to know where you’re located when you’re listening and cookie you and do all sorts of stuff like that. That’s what I assume those proposals
⏹️ ▶️ John are about, if not Marco. What do you think they’re actually asking for when they make those proposals?
⏹️ ▶️ Marco I mean, certainly they ask about that as well. But a lot of times, like, oh man,
⏹️ ▶️ Marco I was approached by some kind of large podcast thing a couple
⏹️ ▶️ Marco years back about possibly wanting to invest in Overcast, and what they mainly wanted to do
⏹️ ▶️ Marco was be able to pop up at certain time ranges like
⏹️ ▶️ Marco a listener survey or a link to something they’re talking about. And I
⏹️ ▶️ Marco was like, you know you can do that already. Like literally, they wanted to spend large
⏹️ ▶️ Marco amounts of money to just do that. And I told him, I’m like,
⏹️ ▶️ Marco you shouldn’t be buying anything for this because you can literally do this today. You can get
⏹️ ▶️ Marco like 90% of what you want. Chapter Markers can already
⏹️ ▶️ Marco today, in every podcast app, display images or links
⏹️ ▶️ Marco within certain time ranges. That is literally what they do. And it’s supported
⏹️ ▶️ Marco by every major player, including Apple Podcasts, which if you go around trying to get individual podcast
⏹️ ▶️ Marco apps to add some kind of functionality, you’ll never get that many of them, especially on Apple, to add any kind of
⏹️ ▶️ Marco new standard. But literally this standard already exists and has existed for like 15 years, that
⏹️ ▶️ Marco it’s already supported everywhere. Just use it. Do you think they use it today? No,
⏹️ ▶️ Marco they don’t use it at all. And this meeting was like two years ago. No one knows
⏹️ ▶️ Marco about these, no one uses them. And I think part of it is a cultural thing, And I think a big
⏹️ ▶️ Marco part of it is also a tooling and workflow thing. Many of these large podcast producers are using their own custom built
⏹️ ▶️ Marco CMSs from forever ago, and their CMS probably doesn’t even support show notes.
⏹️ ▶️ Marco Their workflow doesn’t support any of this. They don’t have anybody even on staff who would think it would be their job to write show notes or
⏹️ ▶️ Marco to put in chapter markers. And Casey, as for dynamic ad insertion, so far my experience
⏹️ ▶️ Marco has been the people who write dynamic ad insertion software not
⏹️ ▶️ Marco good programmers, but it is totally, totally fine for, you
⏹️ ▶️ Marco know, for you to just adjust the chapter markers by timestamp as you’re writing the file out. Like
⏹️ ▶️ Marco the chapter markers, it’s just, it’s just a, you know, a binary blob of data at the beginning of the file, like all the other ID three info
⏹️ ▶️ Marco and the same little blob that says this file is 19 minutes long. It’s very easy
⏹️ ▶️ Marco to say, all right, I’m inserting an ad at 10 minutes into the file. That’s one minute long. So this chapter
⏹️ ▶️ Marco marker that’s at 11 minutes, I got to move it forward one a minute. It’s very, that’s simple logic
⏹️ ▶️ Marco to do. Forecast has a feature where you can export what they
⏹️ ▶️ Marco call air checks, which is like, basically copies of your sponsor reads. So if you have chapters
⏹️ ▶️ Marco prefixed like we do with sponsor colon or whatever you set the prefix to in the settings, you can automatically and
⏹️ ▶️ Marco quickly export little segments of the file that have been trimmed out that include
⏹️ ▶️ Marco that chapter. And I do the math for that. So that little segment that you trim out
⏹️ ▶️ Marco that has a certain amount of, I think it’s like 15 seconds on your side of it or whatever it is. It includes
⏹️ ▶️ Marco the chapter markers that apply to that segment reset to zero or whatever,
⏹️ ▶️ Marco you know, whatever the time is that that you have there. That took me like 10 minutes to write. Like it’s not, this is
⏹️ ▶️ Marco not a big deal. Like this is not hard stuff. It’s very, very easy stuff. And if you’re writing code
⏹️ ▶️ Marco that chops and dices MP3 files already like DAI stuff does, it is trivial
⏹️ ▶️ Marco to also do this. I just think fundamentally, nobody who makes podcasts
⏹️ ▶️ Marco that are big enough to use DAI has ever asked anybody about this because they don’t even
⏹️ ▶️ Marco know it exists. I think that’s the real problem.
⏹️ ▶️ John And there is a difference in the audience too. Like if you’re doing a tech podcast with a bunch of nerdy people, a lot of which
⏹️ ▶️ John you think are probably using the podcast player written by one of the hosts of the show, like this is
⏹️ ▶️ John the ideal audience for people who would look for, understand how to use and appreciate chapters,
⏹️ ▶️ John good show notes, all the other stuff. Whereas if you are a mass market true crime
⏹️ ▶️ John podcast, maybe you don’t even have that many links. You’re certainly not going to be
⏹️ ▶️ John linking to a bunch of apps that you discussed and stuff like that. Obviously everything exists on the web and maybe if you’re talking about crime scene
⏹️ ▶️ John photos, you might have a link to that crime scene photo or something. But in general, I think people, it’s like I was
⏹️ ▶️ John saying before, I don’t think people go to the show notes. So that can change. Like if suddenly a very popular mass market podcast
⏹️ ▶️ John uses show notes well and people appreciate it, then they’ll stop expecting it of other shows. That’s what our
⏹️ ▶️ John listeners say a lot. They’ll say, oh, I’m an ATP listener and when I listen to Popular Podcast X, I’m disappointed
⏹️ ▶️ John that they don’t have good show notes because I’m used to that from ATP, which is great, but there’s not
⏹️ ▶️ John that many of those people, right? So as with many of these things, lots of stuff
⏹️ ▶️ John starts in the tech world and only like the weird hardcore enthusiasts are into it
⏹️ ▶️ John and eventually spreads to the mass market. But so far, that has not happened with
⏹️ ▶️ John good show notes and chapters and what do we call the images? Chapter art,
⏹️ ▶️ John chapter images? Yeah, just chapter images, yeah. Yeah, and we use them,
⏹️ ▶️ John I’m like hazy. I feel like sometimes I miss out on gags because I know Marco does a ton of them, but I’m not always looking
⏹️ ▶️ John at my phone. And a lot of the relay shows do them. When I catch them, I appreciate them, but podcasts
⏹️ ▶️ John are inherently an audio medium, So you can’t like don’t spend too much time and clever chapter art
⏹️ ▶️ John because if you thought a lot of people don’t see the show notes, even fewer are going to see the chapter art.
⏹️ ▶️ Marco Thanks to our sponsors this week, Linode, Bluevine and Bombas and we will see you
⏹️ ▶️ 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 him Cause
⏹️ ▶️ Casey it was accidental, oh it was accidental
⏹️ ▶️ Casey And you can find the show notes
⏹️ ▶️ John at ATP.FM And if you’re into Twitter,
⏹️ ▶️ John you can follow them at
⏹️ ▶️ Marco C-A-S-E-Y-L-I-S-S So that’s Casey Liss,
⏹️ ▶️ Marco and T. Marco Armin, S-I-R-A-C-U-S-A-C-R-A-Q-U-S-A
⏹️ ▶️ John didn’t mean to Accidental, check
John’s War Stories
⏹️ ▶️ Marco So John, you wrote an app. Did you have any adventures in programming?
⏹️ ▶️ John I sure did. So Front and Center, such a simple application, no real
⏹️ ▶️ John UI to speak of, just does a simple thing. Fairly straightforward, it was my first app, so
⏹️ ▶️ John there’s complications there and all the overhead of making an app. This app,
⏹️ ▶️ John like I said earlier, is a little bit more complicated, but not much. It does have some form of UI.
⏹️ ▶️ John But I learned some things from dealing with front and center, and I have a bunch of war
⏹️ ▶️ John stories from the development of this very simple application that, you know, they’re not
⏹️ ▶️ John novel, like everyone who writes any app of any sophistication is gonna run into tons more of these things and be even weirder
⏹️ ▶️ John or whatever. But for someone who’s not a programmer, it may surprise you that such a simple application
⏹️ ▶️ John can have all these complications. So take this as like a microcosm of what programming is actually
⏹️ ▶️ John like. And I’ll preface this by saying both of the applications that I made
⏹️ ▶️ John inherently deal with a bunch of APIs on macOS that are buggy
⏹️ ▶️ John and have been buggy for years. And it’s painful for me to say that, but it’s like, you know,
⏹️ ▶️ John blaming the compiler or blaming the operating system. But the Mac operating system does indeed have bugs.
⏹️ ▶️ John And both of my applications sit square in the center of one particular set of bugs, which is,
⏹️ ▶️ John and I even put this in the fact, When you know, the Mac operating system has API’s that you can
⏹️ ▶️ John call that are supposed to do a thing to an application, they’re supposed to say, bring
⏹️ ▶️ John all the windows from that application to the front Apple who rides these API’s, they’re part of the operating system. There’s a couple different
⏹️ ▶️ John ways to do it. Most of them are deprecated except for one or two, but that’s what they’re supposed to do. Either activate
⏹️ ▶️ John this application and just bring it to the front or activate the application and bring
⏹️ ▶️ John all of its windows to the front. That’s and I have to call those APIs to make my programs work
⏹️ ▶️ John because I don’t have any other way to do that I just have the APIs that Mac OS provides
⏹️ ▶️ John the bug is that sometimes you call those APIs and nothing happens
⏹️ ▶️ Marco and that’s it like there’s no failure code like literally just it doesn’t work nope
⏹️ ▶️ John just doesn’t happen
⏹️ ▶️ John, Marco can you at least
⏹️ ▶️ Marco like do you have any way to detect like can you like can you call the API like bring this app to front and then can you check
⏹️ ▶️ Marco is the app in front like a half second later or something?
⏹️ ▶️ John You can do stuff like that. But here’s the question. What’s your recourse, then? You going to call it again? I guess. I can
⏹️ ▶️ John tell you from experience that calling it again will not help
⏹️ ▶️ John Are you going to call it 100 times? Like at a certain point, you can’t, you know, if it works the 7,000th time,
⏹️ ▶️ John that’s going to be surprising to the user who’s moved on to other things and suddenly that app that you asked for, right? Like
⏹️ ▶️ John in my experience, calling any of these APIs a second or third or fourth time
⏹️ ▶️ John does not help when it stops working. And by the way, you can see this in action by not running
⏹️ ▶️ John any third party applications whatsoever. And occasionally what will happen is you’ll, for example,
⏹️ ▶️ John click on the dock icon for Safari in the, in the dock, you know, it’s already running
⏹️ ▶️ John and you’re clicking on it because what you want to happen is what’s supposed to happen when you click on an icon in the dock and it’s supposed to bring all the Safari windows
⏹️ ▶️ John forward and you’ll click on a Safari dock icon and maybe one Safari window will come forward.
⏹️ ▶️ John Another one is you’ll be in an application and you’ll do, you’ll select hide others
⏹️ ▶️ John to hide all the other applications. That’s a, that’s a menu command in a lot of Mac applications, hide others, hide all the other
⏹️ ▶️ John windows that are on my screen. I just want to see the Safari windows and you’ll select hide others. And a couple of applications will
⏹️ ▶️ John hide, but a couple won’t. And you can pick it again, hide others. Nope. You can
⏹️ ▶️ John pick it again, hide others. Nope. There’s Xcode still in the back there. Why is it? Why am I still seeing my giant Xcode window? I said,
⏹️ ▶️ John hide others and I’m in Safari. It’s not gonna work. Anything having to
⏹️ ▶️ John do with hiding, showing, hide all, show all, hide this application, show this other one,
⏹️ ▶️ John there are bugs. And I have yet to find any kind of workaround for
⏹️ ▶️ John them. And unfortunately, these two applications I made lean heavily on the APIs
⏹️ ▶️ John for hiding and showing applications that when I call those APIs and they don’t work and I don’t
⏹️ ▶️ John have a workaround, I get bug reports. So that’s just like background
⏹️ ▶️ John noise for all of this. There’s nothing I can really do about that right now, but it’s just adding to the
⏹️ ▶️ John general malaise of these two applications I chose to make. Now I knew this going in, because I do
⏹️ ▶️ John things like that all the time. I do try to hide others. I do try to click on an application and bring it all to the front, and sometimes it doesn’t
⏹️ ▶️ John work. And it’s been this way for years. Like nothing to do with third-party applications, just in the Mac OS.
⏹️ ▶️ John I don’t remember when it started, but it’s just a years long thing. So I knew going in that this was gonna be a struggle.
⏹️ ▶️ John I thought there might be workarounds. So far, I haven’t found any. I haven’t found any heroics that I can do to make it work. When
⏹️ ▶️ John it stops working, it doesn’t stop for all applications most of the time. Usually it stops for one or two of them. Finder and Safari are
⏹️ ▶️ John big culprits, but that may also just be because they’re commonly used. I don’t have a
⏹️ ▶️ John rhyme or reason for this. So anyway, that’s not my adventure. All that is to say that these two applications that I made that look
⏹️ ▶️ John super simple, inherently what they do is already challenging because
⏹️ ▶️ John it’s not always gonna work. I think the one war story I will bring out today is an
⏹️ ▶️ John interaction between them that is a complexity that I added that
⏹️ ▶️ John I didn’t think of until about midway through development and then just had a very sad face when I did. So,
⏹️ ▶️ John getting to another set of, I don’t wanna talk about other set of APIs, but anyway, front and center, you know what it does. Like when you click
⏹️ ▶️ John on a window, it does stuff, it brings all the windows forward, or if you shift click, it just brings one of them, does all
⏹️ ▶️ John that stuff or whatever, right? how front and center works is it’s
⏹️ ▶️ John able to listen through an API for an event, which is new activation.
⏹️ ▶️ John A new app has been activated, right? So anytime a new app has been activated, the operating system
⏹️ ▶️ John lets front and center know and says, hey, by the way, I know you’ve just been hanging out there front and center, but here’s what happened. A new
⏹️ ▶️ John application has been activated. At that point, front and center gets to choose what to do. You
⏹️ ▶️ John can say, oh, if I’m configured and it’s supposed to bring that application to the front,
⏹️ ▶️ John I’ll do that now. I’ll call that API that says bring all the windows to that application to the front, right? That’s
⏹️ ▶️ John basically what it does. Like it waits for activations. It doesn’t know how the app got activated.
⏹️ ▶️ John It can tell which app is activated, but it doesn’t know why. And so there’s a bunch of weird heuristics the front and center
⏹️ ▶️ John has to do to figure out, should I do anything about this? Or should I just hang back and not do anything?
⏹️ ▶️ John And it doesn’t get notified about every activation, just certain ones. Because like, for example, if you use
⏹️ ▶️ John like Expose or Mission Control to activate an application, it looks different
⏹️ ▶️ John to front and center. Anyway, there’s front and center doing that thing over there. Here I am right in switch class,
⏹️ ▶️ John and I decide when I’m making it that it should have the same kind of options as front
⏹️ ▶️ John and center does, where it’s like, oh, you can put it in one mode when you click and it will bring all the windows to the front,
⏹️ ▶️ John and then shift click to just bring one, right? And I did that and I said, well, front and center has that opposite
⏹️ ▶️ John mode where you can do a modern mode and it does the opposite behavior where shift click works the way click did and vice versa.
⏹️ ▶️ John So I should do that in switch class too, So that because if you like using it in modern mode,
⏹️ ▶️ John if you want your default to be just a single window comes forward, wouldn’t it be nice to have the default be
⏹️ ▶️ John a single window come forward in switch glass as well? And that would make it different than the dock because you can’t control that in the dock. When
⏹️ ▶️ John you click on a dock icon, it always brings all the windows forward in theory, if it’s not, if it’s not bugging out at that
⏹️ ▶️ John particular moment. Right. So I did that. So I added the options easy enough to go two different
⏹️ ▶️ John ways in switch glass. And then it occurred to me that if you have front and center
⏹️ ▶️ John and switch glass installed and you have their preferences set the opposite way So
⏹️ ▶️ John if you have front and center setting classic mode But switch glass set so that when you click a single icon, it’s
⏹️ ▶️ John supposed to bring a single one window forward This will happen. You’ll go to switch glass. You’ll click
⏹️ ▶️ John on an app icon It will say I’m in the mode where I’m supposed to bring a single window forward so we’ll go
⏹️ ▶️ John and say you I’m activating Chrome and I’m bringing a single Chrome window to the front and And then
⏹️ ▶️ John front and center will get notified. Hey, front and center, a new application was just activated. You think
⏹️ ▶️ John you should do something in front or center will say, oh, there was a mouse click and an app was activated.
⏹️ ▶️ John And I’m in the mode where if you click them, if you click activates an application, I’m supposed to bring all those windows forward.
⏹️ ▶️ John So it will. So front and center will undo the action that was supposed to happen
⏹️ ▶️ John in SwitchGlass. SwitchGlass said bring one window forward then front and center said, oh, I know you want all the windows forward and it will bring them all
⏹️ ▶️ John forward. And what this looks like if you’re using Switch Glass is, I configured Switch Glass to just bring
⏹️ ▶️ John one window forward, but every time I click on it, it brings them all forward. And it’s not Switch Glass that’s doing it, it’s Front and Center
⏹️ ▶️ John doing it, right? So you see, like, I could say, oh, this is an invalid use
⏹️ ▶️ John case, don’t set your preferences that way. But they’re two different applications, and it seems
⏹️ ▶️ John like a reasonable thing to wanna do. When I click on Switch Glass, I just want one window to come forward.
⏹️ ▶️ John But the other times I click, I want all of them to come forward because that’s how I have front and center
⏹️ ▶️ John configured. So this is a complication entirely of my own making.
⏹️ ▶️ John But once I realized that it existed, I’m like, oh, this will, like people will end up setting it this way and they will think it’s buggy.
⏹️ ▶️ John And they’ll be like, your app doesn’t work. I said one window and every time I click it, they all come forward, right?
⏹️ ▶️ John And I don’t want to have to explain to them that, you know, well, don’t set your preferences that way or whatever.
⏹️ ▶️ John And I don’t have enough information to sort that out on either end, because like when front and
⏹️ ▶️ John center gets notified that something was clicked. I don’t even know what event
⏹️ ▶️ John caused that to happen. Front and Center itself has some very scary, weird code
⏹️ ▶️ John to do heuristics to keep track of the last time a mouse
⏹️ ▶️ John was clicked, but I don’t know where or why it was clicked. I just know that it was clicked. And I do this time
⏹️ ▶️ John windowing around activations to figure out if that click belongs to a thing. It’s scary and everything,
⏹️ ▶️ John but it mostly works. And that’s not where the bugs come from. the bugs are all like nothing
⏹️ ▶️ John happened because you know the I call the API and the windows didn’t come to the front or whatever
⏹️ ▶️ John anyway that there’s front and center doing that over there I but in from front and center
⏹️ ▶️ John was like that I have no idea if you just clicked on switch glass like I have no way of knowing that I can know that you clicked
⏹️ ▶️ John but I don’t know if you like legit clicked on a single Chrome window or if you click down the Chrome icon and switch
⏹️ ▶️ John glass I have no idea that that happened and so I need I need to figure out a way
⏹️ ▶️ John to deal with this. And the simple application used to be like, oh, I’ll make a little palette and there’ll
⏹️ ▶️ John be icons and you click on them and I’ll call a single API. That all went out the window as soon as I realized this was
⏹️ ▶️ John an issue. Maybe I made the wrong choice. Maybe I should have said, you know what, this is again,
⏹️ ▶️ John an invalid use case, or I’ll take away that preference and switch class and you can’t run it in that mode. But
⏹️ ▶️ John I’m going to run both applications at once. And I would know that there was this problem. And I just, I decided I
⏹️ ▶️ John wanted to tackle it. So I had to figure out a way to get these two
⏹️ ▶️ John apps to talk to each other. And they’re both sandboxed. So a lot of
⏹️ ▶️ John things are out of the question. And I had some
⏹️ ▶️ John ideas about I mean, I don’t know, you two are iOS programmers, but I think you
⏹️ ▶️ John know enough about the API’s that are similar enough. How would you handle this? What can you come up with some
⏹️ ▶️ John spur of the moment technical solutions to the problem that I have here?
⏹️ ▶️ Marco An automatic kicking machine?
⏹️ ▶️ John I just, I’ve been doing a lot of clips that I’ve seen your kicking machine in action. Yeah, like I’m not going to reject
⏹️ ▶️ John anything for grossness, but literally how can I make this happen? Again, what I want to happen is I click on switch glass
⏹️ ▶️ John and it brings a single window forward. And even though front and center is configured that it’s supposed to bring all windows forward when a
⏹️ ▶️ John new app is activated, it has to somehow know that, you know, this time lay off
⏹️ ▶️ John because it was switch glass that brought that window to the front. And it’s configured to say, don’t bring them all to the front. So
⏹️ ▶️ John front and center lay off. How do I make that
⏹️ ▶️ Marco happen? Can you do Darwin notifications between the two apps? What would I say between
⏹️ ▶️ Marco them? I guess you would post a notification
⏹️ ▶️ Marco from the one that is activating, basically
⏹️ ▶️ Marco saying, hey, I’m about to activate this behavior, and then post another one saying,
⏹️ ▶️ Marco I’m done activating this behavior, and have a slight delay between those things. I don’t know.
⏹️ ▶️ John As you’re thinking about it, you’re realizing, I’m creating a race condition. So this was my first inclination too, is like,
⏹️ ▶️ John I want Switch Class to tell front and center, I’m doing a thing, lay off. Right.
⏹️ ▶️ John Right? But all the things, all these APIs that I’m using, so Switch Class,
⏹️ ▶️ John that’s like synchronous. Like someone clicks and I get to run code in response to that click. But on the
⏹️ ▶️ John front and center side, I’m just there like listening for notifications that the operating system
⏹️ ▶️ John gives me. The operating system tells me, by the way, a new app became active, and I have no control
⏹️ ▶️ John over when the operating system tells me that. Also, I’m watching for mouse clicks in front and center,
⏹️ ▶️ John just so I can know, hey, they clicked the mouse. Can’t tell you anything else about it, but they clicked the mouse.
⏹️ ▶️ John I also have no control over when those notifications come, which is part of the complexity inside front and center, which is,
⏹️ ▶️ John sometimes I get the mouse click before the activation, and sometimes I get it after. So to
⏹️ ▶️ John make a decision, I need both pieces of information, but there’s a time windowing thing there, and I don’t want it to be laggy
⏹️ ▶️ John or slow, right? So if I’m going to have Switchglass say, hey, front and center,
⏹️ ▶️ John I’m about to activate an application, leave it alone, just don’t touch it. I know you’re going to get, at some point in the future, you’re going to get an
⏹️ ▶️ John activation notification, but do not react to it. I can send that with Darwin notifications, which is just
⏹️ ▶️ John this kernel mediated messaging mechanism that’s in theory very fast between two applications that are on the
⏹️ ▶️ John same operating system. It’s not a socket connection, it’s not networking, it is just a
⏹️ ▶️ John way through the kernel for you to pass simple messages to each other. First hurdle to that is,
⏹️ ▶️ John sandbox applications can’t send Darwin notifications to other sandbox applications, unless they’re
⏹️ ▶️ John inside the same app group. App groups exist on iOS and on Mac, and you have to make an app
⏹️ ▶️ John group, and it gives them a shared container, but it also lets them send messages to each other. So that was the first hurdle. So I had to get them both into an
⏹️ ▶️ John app group, and the rules for that on the Mac are totally different than iOS, and all the tutorials talk about
⏹️ ▶️ John, Marco iOS. But eventually, I figured
⏹️ ▶️ John it out, despite that there’s some weird bugs in Xcode’s GUI for doing this.
⏹️ ▶️ John Shocking. Yeah. But then of course I knew when I was implementing this, I’m like, this is not going to actually solve the problem
⏹️ ▶️ John because the race condition is I’m going to send that notification, but I have no idea in what order
⏹️ ▶️ John front and center will see things front and center could see a mouse click and then an activation
⏹️ ▶️ John and then have to make a decision. And then three milliseconds later, get a notification that says, Oh,
⏹️ ▶️ John by the way, I’m switch glass. I just did that. And front and I was like, Oh, too late. I already activated all the, I only pulled all the windows
⏹️ ▶️ John to the front. I didn’t know you like there’s, it’s a race condition. I have no idea when those things will
⏹️ ▶️ John come in practice. The timing is, you know, it’s a pretty good race condition.
⏹️ ▶️ John Most of the time it comes in time,
⏹️ ▶️ John, Marco but sometimes it doesn’t.
⏹️ ▶️ John Goodness. Right. And you can mess with the windows or whatever, like, like the window of time of like how long you’re
⏹️ ▶️ John going to wait. But I don’t want it to be slow. I don’t want it to be like, I’m going to wait three seconds to see whether I should bring all
⏹️ ▶️ John the windows for it. Cause that’s a terrible experience. Like I want it to be fast. So I did the notifications
⏹️ ▶️ John and it worked most of the time, but that’s not a solution. Now that’s just a race condition.
⏹️ ▶️ John So I had to come up with a another solution. And this is where I had to get creative
⏹️ ▶️ John and or even more disgusting, but already this is by the way, way too complicated. Cause now I have, you
⏹️ ▶️ John know, these things, they’re already listening for different events and they have these Darwin notification centers and then I have them sending messages and they’re in an
⏹️ ▶️ John app group and all this other stuff like for, for a very rare use case. And it doesn’t even cover a hundred percent
⏹️ ▶️ John of the cases. Cause especially with race conditions, I’m using whatever my 12 core Mac pro,
⏹️ ▶️ John I have no no idea what these timings are like on someone’s, on Casey’s crappy 12-inch MacBook, right?
⏹️ ▶️ John Number of cores and what else is going on and how much memory, like, do not trust
⏹️ ▶️ John how things behave timing-wise on your computer, you know? And then half the ones I’m running in like Xcode debug builds, what
⏹️ ▶️ John is it like with release builds? So I’m making release builds or whatever. So my belt and suspenders
⏹️ ▶️ John approach was, yeah, do that, and when that works, great. But
⏹️ ▶️ John you know sometimes it’s not gonna work because you’re gonna lose the race and things are gonna come in a different order. How do you handle that?
⏹️ ▶️ John So the way I handled that was, since these things are in the same app group and I have a shared
⏹️ ▶️ John container where they can both write files, and since one of the things that is the nature
⏹️ ▶️ John of Switch Class is that the Switch Class window doesn’t move around or change
⏹️ ▶️ John size too much. It only moves when either an application is quit or launched
⏹️ ▶️ John or if you use the preferences to move it around. What I can do
⏹️ ▶️ John is anytime the Switch Glass window moves or changes size,
⏹️ ▶️ John I can record the coordinates, the frame of every
⏹️ ▶️ John Switch Glass switcher that supports multiple displays, and I can write
⏹️ ▶️ John that to a file in the shared container. And then front
⏹️ ▶️ John and center can read that file and always know the coordinates
⏹️ ▶️ John of the Switch glass thinks. So when a mouse click comes along there’s no more
⏹️ ▶️ John race because front and center will have read those coordinates ages ago
⏹️ ▶️ John and as long as the window hasn’t moved since then, even though it doesn’t know where the click happened like in terms of what application
⏹️ ▶️ John or event, it does know the x and y coordinates on each screen and I can see based
⏹️ ▶️ John on your coordinates of all the Switch Glass app switcher frames,
⏹️ ▶️ John did that clicks XY coordinates land in a Switch Glass
⏹️ ▶️ John thing, in which case you should ignore it because Switch Glass is the thing that made that app activate.
⏹️ ▶️ John Wow. That still doesn’t cover 100% of the cases because you can imagine a scenario
⏹️ ▶️ John where you very quickly quit an application and move the palette and click on it like
⏹️ ▶️ John you can do some video game gymnastics
⏹️ ▶️ John, Marco to outrun this thing,
⏹️ ▶️ John right? Because it is writing a file to disk and it’s being read. And by the way, I use a Darwin notification
⏹️ ▶️ John to tell it immediately to read the
⏹️ ▶️ Marco like the file has changed. Yeah.
⏹️ ▶️ John But it does work. And I have not been able to induce any kind of buggy behavior
⏹️ ▶️ John in all of my testing with both of these approaches. Occasionally, one will miss. But there’s always the other one there
⏹️ ▶️ John underneath. And a surprising amount of time, the synchronous one with the notification, like 90% of the time, that
⏹️ ▶️ John one works and wins and doesn’t rely on this fallback. The fallback is just there for the scenarios the race
⏹️ ▶️ John and then that one works. And then of course the complication is, but do you really want to be sending all these notifications
⏹️ ▶️ John or writing these to a P list files? So I need them to not both applications to not
⏹️ ▶️ John do this crap. If the other one isn’t there, if you just have switch class, I don’t want any of this stuff running. If you just have
⏹️ ▶️ John front and center, I don’t want any of this stuff running. Luckily, both of them are constantly watching
⏹️ ▶️ John applications be launched and quit. So they always know when the, when their companion appears
⏹️ ▶️ John it disappears, right? They both do that already. So there is no polling. There
⏹️ ▶️ John is no, you know, there are no spin locks, no loops, and both of them will just shut up and be
⏹️ ▶️ John and be quiet and be themselves when they’re just there in isolation. But as soon as their companion appears, they’ll start communicating
⏹️ ▶️ John and cooperating with their frames behind the scenes. And if one of them quits, they’ll stop doing that and they will stop listening and stop
⏹️ ▶️ John sending notifications. It’s way too complicated for what looks like a stupid application switcher
⏹️ ▶️ John thing but I have to say it was one of the most fun things that I did in this development because it is completely
⏹️ ▶️ John not needless complexity but like surprising complexity for what looks like a very
⏹️ ▶️ John simple application again of my own making because I made two of these stupid apps that both do weird things and I made
⏹️ ▶️ John both of them have way too many options and be way too flexible instead of being like opinionated and saying it just should be classic
⏹️ ▶️ John mode everywhere that would have avoided all this problem but it was a fun programming
⏹️ ▶️ John challenge. And this was the, I guess the, uh, the most interesting
⏹️ ▶️ John technical, the most interesting thing that didn’t have to do with working around bugs. It was just entirely, it was just
⏹️ ▶️ John me and my own bad decisions about my own applications that I had to solve a problem. Uh, and
⏹️ ▶️ John it was, it was fun doing it. And it was fun, like essentially doing
⏹️ ▶️ John server like programming without any servers. Cause it’s, you know, sending requests and responses and notifications
⏹️ ▶️ John and all that other stuff is a lot like server side program, but there’s no no servers running, there’s no networking, it’s all through the kernel and
⏹️ ▶️ Marco pretty neat. May I propose an alternate solution? Sure.
⏹️ ▶️ Marco Why don’t you just build in the front and center functionality as an option
⏹️ ▶️ John I absolutely thought of that. I absolutely thought of that. Before I did the stupid frame thing, I’m like,
⏹️ ▶️ John I should just combine these two apps because then you don’t have this problem. They’re both the same application. There’s no coordination things. They
⏹️ ▶️ John are literally the same app. I thought about it seriously for a long time.
⏹️ ▶️ John The reason I decided against it, well, two reasons. One, not everyone
⏹️ ▶️ John wants both these apps.
⏹️ ▶️ John, Marco I know there’s not really a market for either
⏹️ ▶️ Marco one of them. What I’m proposing is not that you combine the apps. What I’m proposing is that Cyclast becomes
⏹️ ▶️ Marco the both app and that front and center becomes the smaller baby version
⏹️ ▶️ Marco if you don’t want the
⏹️ ▶️ Marco, John Cyclast mini
⏹️ ▶️ John thing. Switchglass not
⏹️ ▶️ John I know it’s a bad name. I have had
⏹️ ▶️ Marco problems. Sorry, I was thinking expensive coffee places.
⏹️ ▶️ John Yeah. No, I didn’t want it. Well, the first thing was some people don’t want both. So
⏹️ ▶️ John if you make switch glass the one that has both, still same issue. What if people don’t want that
⏹️ ▶️ John other functionality? You’re like, well, if they don’t want it, they don’t have to use that functionality to switch glass. Like, make an optional. Then we get to the second problem.
⏹️ ▶️ John The second problem is it is so hard to just explain what front and center
⏹️ ▶️ John does. You can’t even keep the name
⏹️ ▶️ John, Marco straight. Yeah. I
⏹️ ▶️ John know. What can I tell you? I only made up one of these names, and it’s the one I like less. Anyway,
⏹️ ▶️ John front and center is hard enough to explain as it is, right? And it’s like preferences
⏹️ ▶️ John UI and its settings are themselves weird and hard to explain. Switch Glass
⏹️ ▶️ John is also surprisingly strange to explain and has a ton of options
⏹️ ▶️ John because that’s the way I wanted to, like, listeners, this is the time when you should go to the show
⏹️ ▶️ John notes. Go and look at my website, like, you don’t have to buy the app, just look at the website and look at the stupid preferences
⏹️ ▶️ John window for Switch Glass and get an idea of exactly how far down the rabbit hole I went with customization.
⏹️ ▶️ John It’s a little bit silly, but it’s what I wanted to do. If I combined both these applications,
⏹️ ▶️ John just trying to find a way to communicate all of the functionality would have been incredibly hard,
⏹️ ▶️ John especially because this is a complication maybe we’ll get to in another War Story. Switch Glass is configurable
⏹️ ▶️ John per monitor. So on each display, you can choose whether or not you want the
⏹️ ▶️ John palette to appear and every single setting about how, like where it appears and everything, right?
⏹️ ▶️ John And so when you bring up the preferences, it brings up a window in every single monitor, kind of like display
⏹️ ▶️ John, Marco preferences, you know when you go to system
⏹️ ▶️ John preferences and you do displays, and it brings up a separate window in every display, that’s how you configure displays separately.
⏹️ ▶️ John That’s how this works. That’s not how front and center works. Like just dealing with the UI issues and the explanation
⏹️ ▶️ John of how this stuff works alone, it was just, it would have been a much bigger task. Like at that point,
⏹️ ▶️ John I’m basically signing up to start making drag thing, and I’m not ready to sign up for that yet. So I’m gonna
⏹️ ▶️ John, Marco make two. You’re gonna give it another two weeks.
⏹️ ▶️ John I’m gonna make two purpose-built applications that do specific things. If you want
⏹️ ▶️ John one, or you want the other, or you want both, like, they’ll work in all scenarios, but they’re
⏹️ ▶️ John like single-purpose things. And within those single-purpose things, it’s hard enough to explain and
⏹️ ▶️ John get working, right? But you’re right, that is a technically better solution. Obviously, the real solution is, why don’t you
⏹️ ▶️ John just make a new drag thing? Like, you’re 2% of the way there already, why not just do
⏹️ ▶️ John the other 98%? I am thus far very capably resisting the urge
⏹️ ▶️ John to do that because that is way more work than I’ve been doing. And I just want these two little things and I just want them
⏹️ ▶️ John to work together. So yes, that did occur to me and would be more straightforward technically,
⏹️ ▶️ John but I would still be working on that and I would probably get to a point
⏹️ ▶️ John where I regretted it terribly because just trying to figure out how to massage
⏹️ ▶️ John the preferences of UI into something sensible would just be, you know, and not from a technical perspective, of just like
⏹️ ▶️ John user interface design. How do I convey to the user how all these different things work? It’s hard enough. Like if you look at the
⏹️ ▶️ John Switchglass preferences, there’s a section of it that applies globally and there’s another section that applies just to the display
⏹️ ▶️ John and I try to label that and try to explain that, but even that, it’s not a great interface. Like it’s a difficult
⏹️ ▶️ John problem. If you want to have per display settings but also have global settings but not have two different preferences
⏹️ ▶️ John things, you end up having to make like, you know, like a quote unquote real preferences dialogue with like
⏹️ ▶️ John the toolbar at the top and the different images And it’s just, it’s complicated.
⏹️ ▶️ John So anyway, that’s enough war stories for this week. I can
⏹️ ▶️ John revisit it in future weeks because there are plenty more interesting and fun things about developing what looks like
⏹️ ▶️ John a very simple application. But just to give you an idea of the ridiculousness that’s lurking under the covers
⏹️ ▶️ John of this thing that lets you click on an icon and bring an app to the front.
⏹️ ▶️ Casey Awesome. It’s so true. I mean, I had the bare bones of
⏹️ ▶️ Casey Peak of You done really, really quickly, but it was trying to get it
⏹️ ▶️ Casey to work the way I wanted to and do the things I wanted to do and be more polished. And like,
⏹️ ▶️ Casey golly, I spent probably a couple of days on the zoom-in animation,
⏹️ ▶️ Casey and I had already done almost the exact same thing on vignette, but I was doing it differently and I wanted it to
⏹️ ▶️ Casey work a little differently. And that alone took me days, which is probably an indictment of my own skill
⏹️ ▶️ Casey in UI programming more than anything else. But that’s just not the sort of thing that comes naturally for me.
⏹️ ▶️ Casey And there’s so much, there’s so much to even the simplest
⏹️ ▶️ Casey app. And I don’t think I have it as bad as you, John, but I run into Apple APIs
⏹️ ▶️ Casey that are not really as robust as I would like them to be and not really as bug-free as I would like them
⏹️ ▶️ Casey to be. And like you, if something happens in an Apple API, like a lot
⏹️ ▶️ Casey of times, Vignette would just stop writing updates because Apple’s APIs
⏹️ ▶️ Casey have decided, no, you’re done now. Okay.
⏹️ ▶️ Casey, John Like, they don’t really tell me I’m
⏹️ ▶️ Casey done. It’s just, it doesn’t work. And I don’t know why. And
⏹️ ▶️ Casey the best theory I’ve had, and I wrote some code to try to slow everything down because maybe I was hammering the context database
⏹️ ▶️ Casey too quickly. And it’s just stuff like this is infuriating because there’s no way for any regular outside of Apple human
⏹️ ▶️ Casey to know what the issue is and or there’s just legitimately a bug. Maybe Apple
⏹️ ▶️ Casey didn’t design it that way. In my case, I have a theory that they designed it so that you can only write so much
⏹️ ▶️ Casey to the contacts database so quickly, which is fine if you tell me what the limit is, but they don’t tell you what the limit is.
⏹️ ▶️ Marco Lyle Troxell, Chief Investment Officer,
⏹️ ▶️ Casey Coinbase Welcome to iOS. Jim Collins Yeah. Well, and you, John, I think you’re probably bumping up against legitimate bugs.
⏹️ ▶️ Casey And so Apple is made of humans, humans write bugs, but still just infuriating
⏹️ ▶️ Casey because there’s nothing you and I can do about Or Marco, I mean all three of us. There’s nothing we can do about it. We just have to sit there and go,
⏹️ ▶️ John yep. If you’re lucky, the API that you’re running into a problem with will be a commonly used API for
⏹️ ▶️ John normal apps. That’s
⏹️ ▶️ John the consequences of me choosing to make these weird apps. Like regular apps don’t ever
⏹️ ▶️ John need to call the APIs that bring other applications to the front. Like that is a rare
⏹️ ▶️ John piece of functionality. So who cares if there’s some weird minor bugs in it? And I’m saying that from Apple’s
⏹️ ▶️ John perspective, but honestly, I care as a Mac user. Set aside all of my applications. Like I’m frustrated when I can’t
⏹️ ▶️ John bring all the windows of an app to the front. It happens to me a surprising amount of the time. Again, nothing
⏹️ ▶️ John to do with my apps, just literally clicking on the dock icon for Safari and I want all my Safari windows to come to the front and
⏹️ ▶️ John they won’t. It’s been driving me nuts for years. But if you’re writing a text editor, hell, if you’re writing
⏹️ ▶️ John Photoshop, if you’re writing Final Cut, you will never call those APIs. They are not relevant to app development.
⏹️ ▶️ John So it doesn’t surprise me that they haven’t gotten fixes. Whereas if you’re using the Contacts API,
⏹️ ▶️ John that is widely used on iOS. And there’s a slim chance that if you file that bug, maybe they’ll add
⏹️ ▶️ John in a subsequent release, oh, yeah, there’s a limit and we’ll notify you if you call it too many times, or we’ll document it or something like
⏹️ ▶️ John that. But I don’t think anything’s gonna happen for these. What I think
⏹️ ▶️ John is more likely to happen is Apple will be like, why do we even have that API? Third party applications
⏹️ ▶️ John shouldn’t be asking for other applications to come to the front. Deprecated, you can’t use it anymore, it’s gonna go away in two versions.
⏹️ ▶️ John You almost don’t wanna call attention to those type of APIs because they’re like system extension stuff. It’s
⏹️ ▶️ John not, you never need to, to make Microsoft Word, you never need to call those APIs. So,