491: Salmon and SwiftUI
14 Jul 2022Sometimes, you just have to force yourself to keep eating until you like it.
Episode Description:
- Casey and Marco have 99 problems, and SwiftUI is every. damn. one. of. them.
- Casey’s problems
PhotosPicker
- FB10491818
- FB10566546
presentationDetents()
- FB10636765
ImageRenderer
- FB10393458
- Under the Radar #246: Hard Forks
UIStackView
UIViewRepresentable
UIHostingController
- Pointer
- Casey’s problems
- Follow-up:
- Alternative pi-hole fix
BLOCK_ICLOUD_PR=false
inpihole-FTL.conf
- Switching bbetween SwiftUI’s
HStack
&VStack
- Updating the
.if()
modifier - macOS Support Lifetime
- IPv6 Benefits (via Dan Chandler)
- Alternative pi-hole fix
- Apple & Ive Break Up
- Sony’s new gaming monitor
#askatp
- How does one diagnose a Mac randomly waking from sleep? (via Radu Piroșca)
- What do we do when someone changes their phone number?
- What would get us to leave the hell site? (via Carl Rozas)
- Post-show: BMW is charging subscriptions for… seat heaters‽
Sponsored by:
- Linode: Instantly deploy and manage an SSD server in the Linode Cloud. New accounts get a $100 credit.
- Hover: Find a domain name for your passion. Get 10% off your first purchase.
- Stack Overflow Podcast: Exploring what it means to be a developer, and how the art and practice of software programming is changing our world.
Become a member for ad-free episodes and our early-release, unedited “bootleg” feed!
Chapters
- SwiftUI updates
- Sponsor: Stack Overflow Podcast
- Alternative Pi-hole workaround
- HStackOrVStack {
- } else { 🖼️
- }.if()
- macOS support lifetime 🖼️
- Benefits of IPv6
- Sponsor: Hover
- No more LoveFrom Apple
- Sony’s new gaming monitor 🖼️
- Sponsor: Linode
- #askatp: Insomni-Mac
- #askatp: Phone-number changes
- #askatp: Leave Twitter?
- Ending theme
- Neutral: Subscription seat-heaters
SwiftUI updates
⏹️ ▶️ Marco Oh, I have a very tense neck and shoulder
⏹️ ▶️ Marco situation going on this week because I’ve been doing SwiftUI.
⏹️ ▶️ Casey Ah, yes. You know, so I’m trying, I should get a list together. So with
⏹️ ▶️ Casey DubDub this year, they gave me all sorts of gifts. They gave me a
⏹️ ▶️ Casey photo picker because the one I’m using right now is the UI kit one, which that you can’t launch from SwiftUI,
⏹️ ▶️ Casey and I have this like utter pile of hacks to get that to work. They gave me a native photo picker. They gave
⏹️ ▶️ Casey me a native drawer, which is, you know, on Masquerade, it’s the thing where you select what emoji you wanna use.
⏹️ ▶️ Casey They gave me a native one of those. And then there was some, oh, they gave me a native screenshotting mechanism,
⏹️ ▶️ Casey which is between just the three of us, how you actually export an image from Masquerade, is that just screen capture,
⏹️ ▶️ Casey which I know is not the way I should be doing it, but I’m not here to argue about that right now. Anyway, of those three things. Wait, what?
⏹️ ▶️ John Is the maximum resolution is the resolution it is on your screen?
⏹️ ▶️ Casey No, no, no, because it’s at 3X.
⏹️ ▶️ Casey, John So, yes-ish. Yes, though, that is how you’ve been doing it. So, yes-ish.
⏹️ ▶️ Casey I’m not here to argue about that right now.
⏹️ ▶️ Casey, John anyway. You need to fix that. So, I’m on the list.
⏹️ ▶️ Casey So, anyway, concentrate, concentrate. So, the PhotoPicker thing, the PhotoPicker
⏹️ ▶️ Casey thing gives you a SwiftUI image view, which is useless if you wanna do
⏹️ ▶️ Casey any sort of manipulation of the image. So because I need
⏹️ ▶️ Casey a UI image instead of just a Swift UI image. And the officially blessed way to do
⏹️ ▶️ Casey that is this new transferable protocol, where it’ll give you a URL where the file is sitting in the file system
⏹️ ▶️ Casey for you to copy to your own sandbox and do something with, except that in all the beta seeds so far,
⏹️ ▶️ Casey it gives you the URL. And the file’s already fricking gone by the time you get the URL. Cool. The
⏹️ ▶️ Casey screenshot-y thing doesn’t work. And that’s mostly a Casey problem that’s not terribly interesting. but it’s another thing
⏹️ ▶️ Casey that doesn’t work the way I want it to. The drawer, the way it works is it’s presenting
⏹️ ▶️ Casey a sheet, a modal sheet not taking over the entire screen.
⏹️ ▶️ Casey My drawer can’t be modal because you’re supposed to interact with both the drawer and the backing view that launched
⏹️ ▶️ Casey the drawer. So of the three things that I so desperately wanted and seemed like Christmas in June just
⏹️ ▶️ Casey for Casey, none of them are working right now and I am very sad
⏹️ ▶️ Casey about it. So with that in mind, Marco, tell me about SwiftUI and how great it is. Where we
⏹️ ▶️ Marco, Casey show. Our intrepid hero.
⏹️ ▶️ Marco Yes. I had come to the realization that if I’m going to continue being
⏹️ ▶️ Marco a professional iOS developer as my career, it was my responsibility
⏹️ ▶️ Marco to switch as much as I possibly could to SwiftUI. Really dive in
⏹️ ▶️ Marco eagerly and dive in headfirst and try to do as much of it as I possibly could.
⏹️ ▶️ Marco My task for this past week has been, you know, in the,
⏹️ ▶️ Marco you know, I’ve been kind of juggling a few things. I’ve been doing some server work, I’ve been doing a minor overcast update with the existing code base.
⏹️ ▶️ Marco And then in the spare time I had between those two things, I was trying to start
⏹️ ▶️ Marco clean with SwiftUI. I have a brand new project that’s just basically a test to see, can
⏹️ ▶️ Marco I replicate some of the basics of the overcast interface with SwiftUI?
⏹️ ▶️ Marco I mentioned in the past a lot how I feel very burdened and trapped
⏹️ ▶️ Marco by the sheer amount of UI code I have. It’s a lot of code,
⏹️ ▶️ Marco it’s old code, it is all in a legacy language using legacy frameworks,
⏹️ ▶️ Marco and it is a huge amount of tricks and hacks to try to get exactly what I want to happen.
⏹️ ▶️ Marco And so my goal with SwiftUI has been, as I’m doing this exploration and
⏹️ ▶️ Marco my new prototype of how this thing could work, I want as little code as I
⏹️ ▶️ Marco can. I want to do things in the cleanest, least complicated way that I can do them.
⏹️ ▶️ Marco And if I have to give up certain details of how things look or work, as long as it’s not too bad, I’m
⏹️ ▶️ Marco willing to do that.
⏹️ ▶️ Casey Which, just to interrupt briefly, I think that this is a very smart and pragmatic way of doing things, which
⏹️ ▶️ Casey was born, it seems, in no small part from your discussion with Dave on under the radar, which was excellent.
⏹️ ▶️ Casey And I am in full support of this technique. I think this is a really great way for you to dip your toe in,
⏹️ ▶️ Casey decide whether or not you hate it, and not have damaged your existing
⏹️ ▶️ Casey app. And to either fork, or like you said, sounds like you started a new project, one way or another.
⏹️ ▶️ Casey I think this is a really great way to do it. And I’m curious to hear how it’s going so far, because I’m guessing it’s not great.
⏹️ ▶️ Marco first of all, and what you just said, decide whether I like it or not. That’s not a question I’m considering.
⏹️ ▶️ Marco I’m requiring myself to like it. Like, I’m going to like this and
⏹️ ▶️ Marco I’m just going to keep eating it until I like it. I’ve been there. Me too. And it does eventually
⏹️ ▶️ Marco work for most things. Still not there on salmon, necessarily. But we’ll get
⏹️ ▶️ Casey just had salmon for dinner tonight. Salmon’s great.
⏹️ ▶️ Marco Anyway, well, it has a lot of benefits. Anyway, I’m trying to like it. I’m still working on that one, but I’ve gotten almost everything else.
⏹️ ▶️ Marco Salmon and SwiftUI. So here’s, So, first, the first thing I tried was, let me see if
⏹️ ▶️ Marco I can get what my player currently does now, which is, you know, a navigation view,
⏹️ ▶️ Marco you know, in the main screen. Below it is this little mini player, when you have a podcast loaded, and you
⏹️ ▶️ Marco can swipe that mini player up and it expands into the now playing view.
⏹️ ▶️ Casey Oh, and that’s all custom animation in UIKit, isn’t
⏹️ ▶️ Casey, Marco it? Yes, that is
⏹️ ▶️ Marco, Casey custom transition with, I believe it’s
⏹️ ▶️ Marco UI view property animators, I think are powering that right now. And an interruptible
⏹️ ▶️ Marco presentation, custom transition stuff. So anyway, it’s all that stuff that they introduced all that stuff like five years ago or
⏹️ ▶️ Marco geez, probably more, ten years ago. Anyway, I wanted to just replicate that basic thing in SwiftUI.
⏹️ ▶️ Marco Day one of this was just trying so many different things to replicate that, like
⏹️ ▶️ Marco being able to drag something up, have a view within it that expands into a new location and position,
⏹️ ▶️ Marco drag it back down, have it be interruptible. You can, you know, not drag it all the way if you want and have it be full
⏹️ ▶️ Marco screen when it gets there not a presented sheet but an actual full screen cover modal all
⏹️ ▶️ Marco these little details of just like okay let me just see if I can get this to work and I kept going through this pattern of all right well I’ll
⏹️ ▶️ Marco try I’ll try the obvious way that doesn’t work do some google searching because of course you know the documentation is not super helpful
⏹️ ▶️ Marco find some you know often ancient blog posts from you know from swiftui three years ago it’s
⏹️ ▶️ Marco no longer relevant or things have changed or names have changed or parameters have changed protect the innocent
⏹️ ▶️ Marco all the experimentation eventually the code would balloon up into a
⏹️ ▶️ Marco giant complex beast that would still actually not really work exactly the way it should and
⏹️ ▶️ Marco usually will have at least one deal killer. So when I was doing that part of it the deal killers were like
⏹️ ▶️ Marco as I would drag the sheet up as soon as it would hit right below
⏹️ ▶️ Marco the safe area on the top where the notch cuts in in, it would snap
⏹️ ▶️ Marco to the height of the full screen. And so it would like so as you were dragging it right at that top
⏹️ ▶️ Marco pixel, it would go from you know, 95% 200% of the height and there I could not figure out
⏹️ ▶️ Marco a way to not do that. I tried how about instead of moving the frame, let’s move the offset. Nope, that doesn’t work either. There
⏹️ ▶️ Marco were so many little details like that, that like I would get it like 80% of the way
⏹️ ▶️ Marco there but then I would run into something where like I literally couldn’t ship this like it’s
⏹️ ▶️ Marco, Casey it’s like it
⏹️ ▶️ Marco, John looks like a
⏹️ ▶️ Marco Like, I can’t, like, you know, I can, if something is less fancy than it used to be, that’s fine,
⏹️ ▶️ Marco I can take that. But if something looks like a bug or acts like a bug, I can’t take that. So,
⏹️ ▶️ Marco eventually I gave up, I’m like, you know what, forget it, I’ll just present a sheet. And call it a
⏹️ ▶️ Marco day, like, I’m not gonna do the interactive transition, I’m not, I’m willing to give up the cool
⏹️ ▶️ Marco thing where the artwork, you know, grows into the new location and shrinks back down, like, I’m willing to give that up
⏹️ ▶️ Marco if everything else can be much more
⏹️ ▶️ Marco and simple and maintainable, et cetera. I know it’ll be less nice. Oh well, I’m willing to give that up. So
⏹️ ▶️ Marco eventually I figured out regular presenting of a now playing thing. All right, next.
⏹️ ▶️ Marco Theme options. Can I do in the app, changing of the
⏹️ ▶️ Marco tint color live and have it change everything in the whole app? And can I have it change
⏹️ ▶️ Marco dark mode programmatically? Because I have the option now where you can always run it in dark mode. This
⏹️ ▶️ Marco is not used by a ton of people, but it’s used by enough people if I remove
⏹️ ▶️ Marco that, it would be a problem. Like I would I would hear about it a lot. People would leave one star
⏹️ ▶️ Marco reviews for years over just that. So I know like, all right, I should I really
⏹️ ▶️ Marco need to have a way to override dark mode system wide with a preference. And again, have that
⏹️ ▶️ Marco be able to be changed while the app is running and update everything. I have that now in my current
⏹️ ▶️ Marco system. So how do I do that? Oh, also one of my goals
⏹️ ▶️ Marco during during this. So small code, Simple straightforward code, no hacks
⏹️ ▶️ Marco and also trying not to dip back into UI kit if I don’t have
⏹️ ▶️ Marco to Well Doing this was the first thing that broke that
⏹️ ▶️ Marco rule because I could not get it to do everything right without
⏹️ ▶️ Marco Using a scene delegate which is not part of the new architecture You’re not supposed to use those anymore, but
⏹️ ▶️ Marco I had to eventually make a scene delegate. It’s at least Swift You know, I’m not
⏹️ ▶️ Marco ducking down to Objective-C yet. It’ll happen, I’m sure, but, you know, it’s at least
⏹️ ▶️ Marco swift, but I had to use some of UIKit in order to get that part working.
⏹️ ▶️ Marco And that took like three days, just trying to get the theme system working. So eventually, I got
⏹️ ▶️ Marco that. I got tint colors being able to be changed, I got programmatic dark mode control so I can have an always-on dark mode
⏹️ ▶️ Marco or not, and also respond to the system dark mode and not override that and not get stuck in dark mode forever because the stupid
⏹️ ▶️ Marco environment variable gets overwritten without a scene delegate. like all this, all these little like, so again,
⏹️ ▶️ Marco same kind of thing. The code slowly balloons up with hacks. Eventually, I figure out
⏹️ ▶️ Marco not going to do this too many hacks clear it all back. And then eventually I find a simpler way to do it that might involve
⏹️ ▶️ Marco some breakage of my purity laws here. So finally, now I’ve been working on all right,
⏹️ ▶️ Marco I have the now playing just simple, you know, present, dismiss, full screen. I have
⏹️ ▶️ Marco the theme basics. Now let me try to do
⏹️ ▶️ Marco a three column layout. What I’ve wanted to do forever
⏹️ ▶️ Marco is a three column layout for Mac and iPad. And then when you drag the
⏹️ ▶️ Marco window to be too small for that, or when you’re running on an iPhone, it collapses into a regular navigation view.
⏹️ ▶️ Marco And Overcast is actually not a three column, it’s actually a two column app with an outplaying screen, which makes it
⏹️ ▶️ Marco even easier. really I just need the navigation view to do two columns. Either the root screen
⏹️ ▶️ Marco with the podcast or playlist screen on top of it, or next to it. Very simple, this
⏹️ ▶️ Marco should not be a hard thing. And in fact, that has been a feature of
⏹️ ▶️ Marco UI split view forever. Obviously this should not be a hard thing
⏹️ ▶️ Marco in SwiftUI. Especially since this year at WBDC with iOS 16
⏹️ ▶️ Marco and the coordinated releases, there is an entirely new navigation stack
⏹️ ▶️ Marco view and navigation split view pair of APIs. And there’s all these new
⏹️ ▶️ Marco ways to represent how they are presenting their views and representing their paths and everything else. Great.
⏹️ ▶️ Marco They don’t work. Cool. I keep thinking, you know,
⏹️ ▶️ Marco usually when you’re a programmer and you are using an API in a relatively
⏹️ ▶️ Marco straightforward way and it’s not working, you can almost always blame yourself. It’s almost always your fault.
⏹️ ▶️ Marco And in this case, it might still be. It probably is my fault. But
⏹️ ▶️ Marco so many little details just break. And this is, again, this is not like my entire app. This is a simple
⏹️ ▶️ Marco test project that has like three files in it and I just, and I know it’s still a beta and I
⏹️ ▶️ Marco should file bugs and I’ll get to that, but like I keep going back to
⏹️ ▶️ Marco the WDC videos and how the navigation split view and stack view and even, I even tried using the
⏹️ ▶️ Marco old navigation methods. I’m like, well, you know, what if I can do this without requiring iOS 16? That’d be nice. I could deploy it
⏹️ ▶️ Marco earlier. I’m going to require iOS 15 in my next update. I’d love to use things that require 15,
⏹️ ▶️ Marco and that’s fine. And I just couldn’t get it to
⏹️ ▶️ Marco work reliably in a good way. And even when I did, for the parts of it that I could get working
⏹️ ▶️ Marco reliably, there are so many limitations on the control you get over
⏹️ ▶️ Marco that. So for instance, one thing that I absolutely want in my split view
⏹️ ▶️ Marco interface is I want all three columns to always
⏹️ ▶️ Marco be displaying. And I do not want the little side
⏹️ ▶️ Marco view collapse-y button in the corner that like hides and shows the side view. I don’t want that button to exist in the app.
⏹️ ▶️ Marco I just want all three views to be showing when there’s space, and when there isn’t space, I will put my own
⏹️ ▶️ Marco layout in there with the regular stacked area. And as far as I can tell, there’s no
⏹️ ▶️ Marco way to tell the new SwiftUI split view thing, don’t show that show toolbar button.
⏹️ ▶️ Marco Like it’s always there, no matter what, as far as I can tell. And, and you look at
⏹️ ▶️ Marco UI split view and there’s tons of options for controlling it and they made this whole thing that’s supposed to replace
⏹️ ▶️ Marco it and there’s like one option and so anyway, so
⏹️ ▶️ Marco now I’m like, all right, now I’m going to break my other law. Let me see if I can get this to work with
⏹️ ▶️ Marco using UI view representable and UI hosting controllers and
⏹️ ▶️ Marco seeing if I can use a UI split view inside of my otherwise Swift
⏹️ ▶️ Marco UI layout and now there’s all sorts of complexities with that and I can’t get the safe area insets
⏹️ ▶️ Marco to work and like it’s just oh I’m trying so hard
⏹️ ▶️ Marco to get something that’s gonna end up hopefully being so little so simple and so maintainable code but
⏹️ ▶️ Marco if everything ends up being super fragile and really like delicate to
⏹️ ▶️ Marco actually work in and tweak, then am I really achieving that goal?
⏹️ ▶️ Casey yeah. I think it’s hard for me to tell when I
⏹️ ▶️ Casey complain about SwiftUI, it’s hard for me to tell if I’m just holding it
⏹️ ▶️ Casey wrong. And I mean that kind of genuinely because it is a very different paradigm
⏹️ ▶️ Casey than what I’m used to. And so the best, and this is going to turn so many people off, and I’m sorry,
⏹️ ▶️ Casey but just bear with me here. The best recent experience I’ve had that’s similar to this is when I was learning RxSwift
⏹️ ▶️ Casey or in modern stuff, learning Combined. Because it’s a very,
⏹️ ▶️ Casey very different way of going about doing things. Isn’t necessarily better, isn’t necessarily
⏹️ ▶️ Casey worse. It’s just different. There’s advantages to RxSwift and Combined. There’s advantages to
⏹️ ▶️ Casey SwiftUI. It doesn’t make it better, doesn’t make it worse. It’s just different. And
⏹️ ▶️ Casey when I was learning RxSwift for a long time, to the order of like months,
⏹️ ▶️ Casey I was trying to accomplish things in the more procedural, you know, traditional
⏹️ ▶️ Casey way, rather than just really embracing this whole new world
⏹️ ▶️ Casey that I was trying to dive into. And because of that, a lot of my early RxSwift code was kind of garbage
⏹️ ▶️ Casey because I wasn’t really doing it the RxSwift way. And I wonder, and actually my problem with image
⏹️ ▶️ Casey render, which is the thing that captures the screen or captures a SwiftUI view. I think that the
⏹️ ▶️ Casey problems I have with that as much as I want to blame Apple, I think that’s actually me holding it wrong and I’m not doing things exactly the way I should
⏹️ ▶️ Casey be, and that’s the problem. I wonder if for some of the stuff that you’re talking about,
⏹️ ▶️ Casey and certainly for a lot of the stuff that I’m running into problems with SwiftUI, I wonder
⏹️ ▶️ Casey if, and I think Dave made the speech to you as well, I wonder if the issue is less with SwiftUI
⏹️ ▶️ Casey and more that I’m just too busy thinking in a UI kit way. Even
⏹️ ▶️ Casey though I’m not doing it deliberately, I’m not doing it consciously, I’m thinking in that old way of thinking, in that
⏹️ ▶️ Casey old style of thinking. Because of that, I’m trying to implicitly replicate
⏹️ ▶️ Casey UI kit in SwiftUI, which is not the way to do SwiftUI. Dave had a really great way of
⏹️ ▶️ Casey putting this on under the radar. I forget exactly how he phrased it and I won’t try to parrot it now because I’ll ruin his argument. But
⏹️ ▶️ Casey I can’t speak for you, Mark. Maybe you are doing it in thinking of things in SwiftUI way and so on and so forth. I don’t know,
⏹️ ▶️ Casey but that’s something that I feel I’m running into and that’s a problem. But even with all of that said,
⏹️ ▶️ Casey I do feel like and with the vibe I get from people that are doing a lot of SwiftUI,
⏹️ ▶️ Casey is that yeah, a lot of it, you just can’t freaking do. The tough
⏹️ ▶️ Casey thing is, it is a big black box and once you hit the wall
⏹️ ▶️ Casey or the edge of that big black box, you’re screwed. Okay, I guess it’s UI kit time baby,
⏹️ ▶️ Casey because what other choice do I have? And that’s, I understand why that is given the
⏹️ ▶️ Casey nature of a declarative, you know, user interface development scheme,
⏹️ ▶️ Casey language, whatever you want to call it. But that’s kind of a problem, right?
⏹️ ▶️ Casey Especially since we have been trained by Apple or maybe not by Apple, but certainly third party developers
⏹️ ▶️ Casey have made it our thing to have these like super bespoke custom user interfaces. And I know that you’ve talked Marco
⏹️ ▶️ Casey recently, or at least I believe you have, about how that maybe isn’t necessary anymore. And I agree with you. But we want
⏹️ ▶️ Casey everything to look good and feel good. And it is very hard
⏹️ ▶️ Casey to make anything look or feel any way that SwiftUI isn’t familiar
⏹️ ▶️ Casey with already. If you want to make something super custom, it is very difficult. Now there are things that make that better. There’s a
⏹️ ▶️ Casey new layout system, which honestly I haven’t really dabbled with yet. And actually might work for you in this case, maybe.
⏹️ ▶️ Marco I don’t really need the layout. One of the reasons why I like using SwiftUI for this,
⏹️ ▶️ Marco I like the idea of it at least, is that having a layout that like, oh, sometimes I have a mini player, sometimes
⏹️ ▶️ Marco I don’t. I have a now playing screen come up and it’s arranged in different ways depending on the size of the screen. Like
⏹️ ▶️ Marco that stuff, SwiftUI makes that super easy. That’s why I wanna use it. And there’s a lot of other stuff that it makes super
⏹️ ▶️ Marco easy as well. I’m not even talking about doing stuff that’s necessarily that custom. You know,
⏹️ ▶️ Marco this thing where I have like, you know, a stack view or a split view, depending on the size. Like that,
⏹️ ▶️ Marco theoretically, I shouldn’t even need to have that distinction. Theoretically, the split view should just do this. like when
⏹️ ▶️ Marco it’s small, it should just present the phone interface. In practice, in my experience so far, it just
⏹️ ▶️ Marco doesn’t work. But maybe I’m doing like one little wrong thing,
⏹️ ▶️ Marco but it’s very hard to figure that out. And I mean, even simple things like
⏹️ ▶️ Marco my root list screen, like the first level list screen, Overcast displays two kinds
⏹️ ▶️ Marco of things on that list screen, playlists and podcasts. And so I have my little demo, I have two
⏹️ ▶️ Marco basic structs, playlist and podcast. And so I’m trying to make a list that has two sections. And
⏹️ ▶️ Marco depending on which one of those you tap, it presents a different detail view for that, because it’s
⏹️ ▶️ Marco either showing a playlist or a podcast. So many of these abstractions that are built into the
⏹️ ▶️ Marco new navigation things either become very messy or totally break when
⏹️ ▶️ Marco the content in a list can be more than one type. Almost all of these new APIs
⏹️ ▶️ Marco they’ve made seem to make that very difficult and seem to have not been designed with that in mind.
⏹️ ▶️ Casey That’s why you got to use an enumeration. That’s the answer to all problems when it comes to the Swift type system. And I say that only slightly,
⏹️ ▶️ Casey jokingly. I’m snarking right now, but Swift enums are really,
⏹️ ▶️ Casey really incredible. And you can do some incredibly powerful things with them with little to no, like, quote
⏹️ ▶️ Casey unquote, overhead to do
⏹️ ▶️ Marco it. Yeah. And part of the reason why this has been such a frustrating journey for me is that some of the time I’ve spent
⏹️ ▶️ Marco battling this has been battling the language. Because a lot of those little details, like, because I’m not a Swift
⏹️ ▶️ Marco expert yet, I don’t know a lot of these hacks and workarounds. So you know, I have a situation where it’s like, okay,
⏹️ ▶️ Marco well, I want this binding to be optional, not to bind to an optional
⏹️ ▶️ Marco value, but I want the binding itself to be optional. And you can do that, it turns out you just can’t use
⏹️ ▶️ Marco at binding as the prefix, you have to like write out the whole type afterwards. And it’s like, and you know, every time you do, they got to look that
⏹️ ▶️ Marco up. Things like having having these two different things playlist and podcast, I had them both inherit from a
⏹️ ▶️ Marco common protocol. Try using a protocol anywhere in SwiftUI. You can’t.
⏹️ ▶️ Marco And some of the… because SwiftUI itself is also such a giant pile of hacks in the Swift
⏹️ ▶️ Marco language, some of the error messages are comical and they send you in such a weird direction.
⏹️ ▶️ Marco Like, you know, like you’ll get like error messages about things like the initializer can’t be called because it’s private
⏹️ ▶️ Marco because a value that SwiftUI expects to be optional wasn’t marked optional. Like that
⏹️ ▶️ Marco has nothing to do with the message. Like it’s just… there are so many like little things where I’m just hitting wall
⏹️ ▶️ Marco after wall after wall and I’m at the point now where I actually am motivated
⏹️ ▶️ Marco to keep going I’m excited to get to my perceived future where I think
⏹️ ▶️ Marco I can do this all in a relatively clean way and save a bunch of code and update my knowledge and my code base
⏹️ ▶️ Marco and all this stuff like I am sold on the benefits of getting there and I’m just beating
⏹️ ▶️ Marco my head against the wall constantly along the path there and I’ve now been beating my head against the wall
⏹️ ▶️ Marco for like a week and I have relatively little to show for it so far
⏹️ ▶️ Marco all I have is a bunch of ways to do things that don’t work and a few things I got working but
⏹️ ▶️ Marco I am still going I’m stopped missing I still think this is the right path but this is
⏹️ ▶️ Marco hard and and I think Apple is deluding themselves if anybody
⏹️ ▶️ Marco there thinks that either Swift or Swift UI is suitable
⏹️ ▶️ Marco for beginners They are, it is so not, like, at all, like,
⏹️ ▶️ Marco and, you know, part of, I think part of the reason I’m finding some of this stuff so difficult is obviously because the way
⏹️ ▶️ Marco I’m used to doing things is different. And so somebody learning from scratch probably wouldn’t have a lot of this
⏹️ ▶️ Marco baggage that I have. Oh, that’s an
⏹️ ▶️ Casey interesting point,
⏹️ ▶️ Marco yeah. However, there are so many things where, here’s a common need I have to fix,
⏹️ ▶️ Marco or here’s an error I ran into, how do I fix this? And the answer is so technical
⏹️ ▶️ Marco and so language nerdy and so obtuse and the only thing you can really do is Google
⏹️ ▶️ Marco for it and hope somebody answered it the right way that you understand. Like I don’t know how
⏹️ ▶️ Marco anybody expects people to use this language and this framework,
⏹️ ▶️ Marco which itself is a giant pile of hacks on top of an already complex language, as a beginner to
⏹️ ▶️ Marco programming. you know, one of the great things, beginner languages should be
⏹️ ▶️ Marco fairly understandable at a deep level, like you should be able to know everything that’s going on.
⏹️ ▶️ Marco If you if you’re a beginner, and you start asking questions and say, you know, you see like, what you know, what does you
⏹️ ▶️ Marco know, arg C and rv mean, and my main function here, you should be able to know that, like if you ask somebody,
⏹️ ▶️ Marco they will tell you and you should understand the answer, things should be relatively knowable, you should know, okay, if I write this
⏹️ ▶️ Marco statement, this is going to happen. I get this error. Here’s why that happened. If you’re learning with Swift
⏹️ ▶️ Marco and Swift UI, there is so much, there’s such a vast
⏹️ ▶️ Marco constellation of non-trivially complex topics that you really should
⏹️ ▶️ Marco know or have some familiarity with, because you’ll run into these problems all the time and you’ll need to know how to do it. Like,
⏹️ ▶️ Marco this is a very advanced language and a very advanced complicated framework that requires a lot
⏹️ ▶️ Marco of like brain messing. And I I don’t know, like I know
⏹️ ▶️ Marco back when I was learning languages what was taught in college was Java
⏹️ ▶️ Marco and then C. I heard from all the professors all the time that the big challenge with
⏹️ ▶️ Marco where people would drop off was the concept of pointers in C. Because it’s
⏹️ ▶️ Marco a level of indirection. And it makes sense, it’s a complex topic for most
⏹️ ▶️ Marco people who are just learning this stuff. And it takes a certain intellectual leap of complexity and of
⏹️ ▶️ Marco abstraction to understand a pointer and things you can do with pointers and where
⏹️ ▶️ Marco they are used and how they are used. SwiftUI is full of things like that. There
⏹️ ▶️ Marco are tons of that type of abstraction or that type of difficult or
⏹️ ▶️ Marco indirect concept in SwiftUI. And so I don’t know how people are going to learn
⏹️ ▶️ Marco this as beginners and not just hit their heads against the wall all the time. Because what Apple
⏹️ ▶️ Marco shows in the conference slides is like, oh, this thing is super easy. You just do this, this, and this,
⏹️ ▶️ Marco and then this wonderful thing pops out. But first of all, what they’re doing
⏹️ ▶️ Marco is very, very trivial. Like what they’re showing in their examples is very trivial. And then
⏹️ ▶️ Marco second of all, when you’re greeted with an empty screen and you have to just type code, it’s very hard to know
⏹️ ▶️ Marco what even to type to get what you want without just Googling and finding examples
⏹️ ▶️ Marco and copy and pasting. And those areas of SwiftUI, I think, so entrenched
⏹️ ▶️ Marco to just the way the language and the framework have developed and are designed from the start.
⏹️ ▶️ Marco And even though a concept of declarative UI in the complexity we have of it today
⏹️ ▶️ Marco is so like complicated to get going and to not, you know,
⏹️ ▶️ Marco break, I think people are gonna have a very hard time learning this. I mean, maybe it’s just me. Maybe this is because I’m now
⏹️ ▶️ Marco considered an elderly programmer at age 40. Maybe I’m just too
⏹️ ▶️ Marco old to learn these new concepts. But I don’t think that’s entirely it. I mean, that’s probably part of it.
⏹️ ▶️ Marco But I think this is just really hard. And it looks easy. When you see
⏹️ ▶️ Marco the conference slide code, it looks really easy. And in practice, it really isn’t.
⏹️ ▶️ John I just want to point out that my high school-age son wrote an app in SwiftUI and put it on the App Store, and it’s got
⏹️ ▶️ John a lot of screens and a lot of buttons and stuff on it. And he doesn’t know any language.
⏹️ ▶️ John an app in the app store, doesn’t know. No, like no one that young mostly knows anything. It’s like the first
⏹️ ▶️ John major program. So beginners figure it out. That idea of Googling and copying and pasting can take you
⏹️ ▶️ Marco I mean, he’s also a Syracuse.
⏹️ ▶️ Casey Well, that’s a fair point. Yeah, we should grade on a curve here. But I think
⏹️ ▶️ Casey you and me are lamenting all the crummy parts of SwiftUI, of which there are many. But I will
⏹️ ▶️ Casey say, and I think, didn’t I say this last week, that when SwiftUI does work,
⏹️ ▶️ Casey when you are within the guardrails that SwiftUI lays out, it is pretty
⏹️ ▶️ Casey fantastic. It’s really incredible how quickly you can build a really
⏹️ ▶️ Casey good looking user interface with not an overabundance of code. And
⏹️ ▶️ Casey a lot of it just really does work if you stay in the guardrails.
⏹️ ▶️ Casey But that’s the problem, is that those guardrails aren’t just guardrails, they’re entirely 500
⏹️ ▶️ Casey foot tall brick walls. And getting around them is not easy. Whereas in UIKit, for all
⏹️ ▶️ Casey the good and bad of UIKit, when you need to jump over a guardrail, it’s like, you just
⏹️ ▶️ Casey step right over. Like, oh, there we go. All right, done. Problem solved. Whereas with this, you’re like
⏹️ ▶️ Casey trying to figure out how to like put the little rock climbing things in
⏹️ ▶️ Casey between the bricks so you can find a foothold to raise yourself up the 500 foot brick wall that’s completely
⏹️ ▶️ Casey vertical in order to get what you need. It’s just, it’s so frustrating. I don’t
⏹️ ▶️ Casey know, I feel like I need Underscore to like sit next to me and just smack my hand with like a ruler
⏹️ ▶️ Casey every time I go to do something that’s not the right way. Just be like, nope, try again. All right, well, what if I did,
⏹️ ▶️ Casey nope, not that either. You know, like I just need him next to me. Pair programming is like not my thing. I
⏹️ ▶️ Casey hate it, I don’t like it. I’ve thought about like going on Twitch and recording myself as I’m writing code.
⏹️ ▶️ Casey And as soon as I think about that, I’m like, Nope, nope, nope, nope, nope, nope, nope, nope. That’s a terrible decision.
⏹️ ▶️ Casey But I feel like I need a trusted friend to sit next to me and show
⏹️ ▶️ Casey me the way because clearly what I’m doing ain’t working.
⏹️ ▶️ Marco Well, and the thing is, and I’ve had those moments where everything is going great and super easy. Like
⏹️ ▶️ Marco when I had to make my stupid placeholder now playing screen for this little mock-up thing I’m working in,
⏹️ ▶️ Marco I was able to make such a nice screen with so little effort.
⏹️ ▶️ Marco Like it’s so good and it was like, oh, let me border this artwork
⏹️ ▶️ Marco and crop it with Johnny Ive corners and
⏹️ ▶️ Marco, Casey all this stuff. And it’s like
⏹️ ▶️ Marco perfect, easy, one line, two seconds, done, live previewing, done, done, done, great. Let me pad
⏹️ ▶️ Marco that, oh, let me, it’s a little drop shadow on that, oh, perfect, done. I’ve done all of those things in
⏹️ ▶️ Marco UIKit in Objective-C and it’s so much harder. And it took
⏹️ ▶️ Marco so much longer and it’s so much more code. And so that’s where I’m trying to get. Like I
⏹️ ▶️ Marco can see in the distance, I can see, I hope it’s not a mirage, I can see like how good
⏹️ ▶️ Marco SwiftUI can be and how much value this can deliver to me. But first, I
⏹️ ▶️ Marco have to like make sure that I can get the structure working. And again, I’m trying to do this in the
⏹️ ▶️ Marco most modern way possible. Like look, if the iOS 16 requiring APIs
⏹️ ▶️ Marco are the thing I need to do this, fine. Like my prototype is requiring iOS 16 so far, just so I
⏹️ ▶️ Marco don’t get any warnings anywhere. I just want to see what’s possible and I’ll decide then. But I
⏹️ ▶️ Marco want to try to get things to be clean and correct and idiomatic if I can. Like I don’t want
⏹️ ▶️ Marco to be doing a lot of hacks. I don’t want to be doing a lot of weird customization. I don’t want to have to use UI kit
⏹️ ▶️ Marco bridging inside of it to get certain things to work. I want to use only SwiftUI if I can
⏹️ ▶️ Marco as much as possible because the whole point of doing this is to pull my code forward 10
⏹️ ▶️ Marco years and actually be able to work in that clean modern way like the conference slides do.
⏹️ ▶️ Marco And just getting there, I’m just hitting so many walls. And parts of it are
⏹️ ▶️ Marco so good that it motivates me to keep going. And I’m sure a lot of this is, again, just because
⏹️ ▶️ Marco I’m new at this, but I hope I can get there.
⏹️ ▶️ Marco I’ve tasted, do you taste the promised land? That sounds kind of gross. You’ve seen
⏹️ ▶️ Marco the promised land. Okay, you’ve seen the promised land. I’ve seen the mirage
⏹️ ▶️ Marco of how good this can be in my dumb little, you know, now playing placeholder screen. And I
⏹️ ▶️ Marco just am trying to get there. And it’s so, so hard to get there. Yeah. And
⏹️ ▶️ Casey it’s tough too, because, I mean, I’ve never seen the code for Overcast, but just imagining it,
⏹️ ▶️ Casey the now playing screen in particular to my eyes, like screens combine in
⏹️ ▶️ Casey SwiftUI. Like it’s a bunch of things, it’s a bunch of events happening over time where not
⏹️ ▶️ Casey a lot of things, well, leaving aside the user input, like not a lot is changing. You just need to update
⏹️ ▶️ Casey like counters and the state of whether or not you’re played or playing or paused or whatever like all Of this stuff
⏹️ ▶️ Casey is just like custom Tailor-made for combined and SwiftUI like this is the perfect problem
⏹️ ▶️ Casey statement for combined and SwiftUI But the problem is there’s all that other stuff around it, which I which
⏹️ ▶️ Casey is important It’s super important Like I’m not trying to say you’re wasting your time or anything all of the user interface stuff is super
⏹️ ▶️ Casey important And if you can’t get through that hurdle then it’s almost like
⏹️ ▶️ Casey you failed before you’ve even begun. And it’s too bad because I can see how this would be such a perfect match
⏹️ ▶️ Casey made in heaven if you can just get there. And I don’t blame you if you can’t.
⏹️ ▶️ Marco Yeah, and this is why I decided to start with what I thought would probably be the hardest
⏹️ ▶️ Marco part, which is like this big structural navigation. So like where SwiftUI I think shines and
⏹️ ▶️ Marco has shown, shown, yeah, has shown since it was introduced for the most part
⏹️ ▶️ Marco is in the design of single screens. When you have just a screen, a view,
⏹️ ▶️ Marco laying that out with SwiftUI is awesome. Where SwiftUI I think has had a lot of challenges
⏹️ ▶️ Marco is in navigation, presentation, modal, like all the things where you are
⏹️ ▶️ Marco changing screens, you are structuring multiple screen things or navigational patterns and directions,
⏹️ ▶️ Marco that kind of stuff, it has had a very hard time with and I don’t yet know for out of the woods
⏹️ ▶️ Marco on that. But I decided, let me start with that because if I can get that right, then
⏹️ ▶️ Marco I will be much further along on the path towards my goal of being all SwiftUI.
⏹️ ▶️ Marco I would love if, you know, whenever this crazy UI project is done, maybe,
⏹️ ▶️ Marco I don’t know, a year from now, I would love if I can say this whole new branch of
⏹️ ▶️ Marco the app now that’s using this is all SwiftUI. That would be great, I would love to get there.
⏹️ ▶️ Marco I don’t know that I can yet.
⏹️ ▶️ Marco and you know, all might have an asterisk, like, you know, the AirPlay view doesn’t have a SwiftUI thing, so I had to
⏹️ ▶️ Marco But you know, other like for the most part, I want as much of it as possible to be Swift UI,
⏹️ ▶️ Marco because that’s the goal here. And so, and again, I’m willing to give up certain details
⏹️ ▶️ Marco of how things look and work in order to get there. But I got to
⏹️ ▶️ Marco find out if what I want is even possible. And so far, it’s just wall after wall after
⏹️ ▶️ Marco wall, but I have made some progress. And so I’m happy about that. And I’m motivated
⏹️ ▶️ John Sounds like when you wanted to make an app with no setting screen. I feel like you need to be a little bit looser on these
⏹️ ▶️ John edicts that you put before yourself. Making an app with the navigation skeleton entirely in UIKit but all
⏹️ ▶️ John your views are SwiftUI, that’s perfectly fine. It will cause you fewer headaches and you can so
⏹️ ▶️ John easily convert that down the line because every one of those SwiftUI views is easy to take and shove into a SwiftUI
⏹️ ▶️ Casey, Marco point. Yeah,
⏹️ ▶️ Marco I mean, that’s my fallback ultimately. If I have to, like that’s why today I started playing with the just embedding
⏹️ ▶️ Marco a UISplitView. Like if I have to do that, fine, I would just really rather
⏹️ ▶️ Marco, John can. And you’d
⏹️ ▶️ John be making an upgrade because you’d be getting rid of all the Objective-C code and doing it in Swift. And you think that’s not a big deal. It’s like, well, who cares?
⏹️ ▶️ John You know, UIKit in Swift versus UIKit in Objective-C. It’s so much less code. It’s so much nicer. You’ll be very happy.
⏹️ ▶️ John I think you should just do that.
⏹️ ▶️ Marco Sure, and again, like, and I wrote the Objective-C code, you know, 10 years, eight years ago, whatever it was. Like
⏹️ ▶️ Marco I wrote that a long time ago where some of that, you know, first of all, I’ve gotten better as a programmer. So some of that, I would just write
⏹️ ▶️ Marco better. Second of all, a lot of it now has newer methods that would use less code, no matter which
⏹️ ▶️ Marco language I’m doing it in. So, you know, I could say things there, but ultimately, like,
⏹️ ▶️ Marco anything that I’m, if I’m at this level here, doing like basics of navigation structure, if I have
⏹️ ▶️ Marco to wrap UIKit and call into it from SwiftUI and stuff, or vice versa,
⏹️ ▶️ Marco to me, that is technical debt. That I know I’ll have to repay that down the road at some point if I
⏹️ ▶️ Marco leave it in. So let me take a bit of extra time now and see, can I get away
⏹️ ▶️ Marco without this? What can I do here? Can I maybe not wrap this?
⏹️ ▶️ Marco And then I can see, I’m willing to spend some time up front
⏹️ ▶️ Marco now and have one very ranty podcast pre-show to avoid possibly
⏹️ ▶️ Marco having to rewrite this stuff in three to five years.
Sponsor: Stack Overflow Podcast
⏹️ ▶️ Marco We are sponsored this week by the Stack Overflow podcast.
⏹️ ▶️ Marco This was one of the first podcasts I ever listened to. It was something I would walk to
⏹️ ▶️ Marco work when I when I back when I worked at Tumblr and in Manhattan and I was walking to work, you know, listen to this on
⏹️ ▶️ Marco my iPod before I even had an iPhone. And it was it’s such a great podcast. And it really, you know, went through
⏹️ ▶️ Marco the history of the site. And now they have matured and moved on so much. So over over
⏹️ ▶️ Marco a dozen years, the Stack Overflow podcast has continued to explore what it
⏹️ ▶️ Marco means to be a developer, and how the art and practice of software engineering is changing our world.
⏹️ ▶️ Marco And they cover everything you might think for a developer podcast, Rails to React, Java
⏹️ ▶️ Marco to Node. Stack Overflow podcast hosts important conversations and fascinating guests
⏹️ ▶️ Marco that will help you understand how technology is made and where it’s headed. hosted by Ben Popper,
⏹️ ▶️ Marco Matt Kiernander, Cassidy Williams and Siora Ford. And it is your home for
⏹️ ▶️ Marco all things code with new episodes dropping twice a week. Check out the Stack Overflow podcast. This is a
⏹️ ▶️ Marco great podcast. It’s been there forever, basically in podcasting terms. Now that I kind of feel old
⏹️ ▶️ Marco now, but the Stack Overflow podcast is is just great. You know, we all love Stack Overflow. It’s an amazing site and amazing
⏹️ ▶️ Marco resource for programmers. And the podcast is what you’d expect from them from the team that made that that’s,
⏹️ ▶️ Marco it is that good. So check it out yourself. Stack Overflow podcast. It’s available in
⏹️ ▶️ Marco every podcast app, wherever you get your podcast, go get the Stack Overflow podcast. Subscribe
⏹️ ▶️ Marco today. Thank you so much to the Stack Overflow podcast for talking in my ears for a very long
⏹️ ▶️ Marco time over over a very long time. It’s just wonderful. and for sponsoring our show.
Alternative Pi-hole workaround
⏹️ ▶️ Casey right, let’s start the show. Very quickly, there is an alternative piehole workaround. Last week I’d
⏹️ ▶️ Casey spoken about how I’d gotten a tip about how Safari
⏹️ ▶️ Casey will occasionally stall as it’s ostensibly going and doing things with iCloud Private Relay,
⏹️ ▶️ Casey and you can uncheck the hide my stuff in the Safari preferences to get it to work better.
⏹️ ▶️ Casey A lot of people wrote in and said that you can add, and I’ll put this in the show notes, iCloud underscore
⏹️ ▶️ Casey PR equals false in pihole-ftl.conf. And
⏹️ ▶️ Casey supposedly, that’ll fix all your problems for all of your clients across your network. I tried this,
⏹️ ▶️ Casey and perhaps here again, falling back on user error. For what it’s worth, it did not work
⏹️ ▶️ Casey for me. So your mileage may vary, but it is something you can check out. And I will put a link in.
⏹️ ▶️ Casey Well, I’m not going to put a link in the show notes, but I will put the relevant stuff in the show notes. So you might want to give
HStackOrVStack {
⏹️ ▶️ Casey Hey, Marco, you want to talk about SwiftUI?
⏹️ ▶️ Marco That’s a great way to speed through a show. It’ll be really quick. I just have a few minutes of content on SwiftUI.
⏹️ ▶️ Casey Yeah. Well, actually, I didn’t put this in here. I think John did. So John, tell us about switching between SwiftUI’s HStack and
⏹️ ▶️ John Yeah, we should talk about SwiftUI. It’s a topic we don’t cover enough on the show. This
⏹️ ▶️ John is last week I was complaining about SwiftUI and mentioned one of the problems I was having
⏹️ ▶️ John and the various hacks I was using to work around it. And like clockwork, Swift by Sundell,
⏹️ ▶️ John the great website that has lots of good tips on Swift and SwiftUI, posted an article
⏹️ ▶️ John that has a solution to my problem, which was I wanted to, you know, sometimes I wanna use a VStack,
⏹️ ▶️ John sometimes I wanna use an HStack, and this was all before Vue that fits or whatever.
⏹️ ▶️ John And I tried writing something myself that would switch between them, and it was a pain, so I ended up just doing a conditional, which is
⏹️ ▶️ John not ideal, because then I have to, you know, copy the code into a sub, and then, anyway.
⏹️ ▶️ John But he’s got an article on how to do just that. And I ended up writing something a little bit
⏹️ ▶️ John different than what he made, because my needs are
⏹️ ▶️ John little bit different. So now in my app I have a thing called HStack or VStack
⏹️ ▶️ John that I call instead of calling VStack and HStack in conditionals.
⏹️ ▶️ John So I was happy about that. And if you are wondering how to do it, check out the article.
} else {
⏹️ ▶️ Casey All right, so you said that you have some improvements about conditionals in your
⏹️ ▶️ Casey if modifier, and I’d like to know about that. But before we do, I’d like everyone,
⏹️ ▶️ Casey if it’s safe, and if you can, and maybe, maybe, maybe Marco put a screenshot in the chapter
⏹️ ▶️ Casey art, if you could please click the link to the gist that John has provided,
⏹️ ▶️ Casey what in the name of Zeus’s butthole is going
⏹️ ▶️ Casey, John on? I don’t use cuddled elses. I
⏹️ ▶️ John think we’ve talked about it before. Cuddled elses are bad. You are a monster. Look at line six and seven.
⏹️ ▶️ John Cuddled elses are very, very bad.
⏹️ ▶️ Casey What is this insanity? If you’re going to do it this way, then you should put the open bracket from
⏹️ ▶️ Casey line four on its own line and the open bracket from
⏹️ ▶️ Casey, John line seven on its own line. I used
⏹️ ▶️ John to do it that way, but I slowly got converted over the years to doing it this way.
⏹️ ▶️ Casey So you’ve chosen the worst of all worlds.
⏹️ ▶️ Casey, John No, this is just normal.
⏹️ ▶️ John This is the bog standard, fat part of the bell curve. Everybody formats
⏹️ ▶️ John their code like this. What? No, you
⏹️ ▶️ John, Casey are a monster. Cuddles
⏹️ ▶️ John Elsa’s are weird and nobody, and I can tell you having a long career in development in many different languages, nobody
⏹️ ▶️ John wanted to do BSD braces like I did. And I held onto them for a really long time for about half my career, but then eventually
⏹️ ▶️ John I was defeated by everybody else who wanted to do K&R. Wait, which one is BSD braces? BSD braces is where the open
⏹️ ▶️ John and the close are on the same column.
⏹️ ▶️ Casey Oh, yeah, okay. Yeah, I used to be devouted that as well. And I also lost that fight. I couldn’t hold onto that.
⏹️ ▶️ John I was defeated by the masses.
⏹️ ▶️ John just too much. But then the K&R is what you see here, where the open one comes after the if and the close one is
⏹️ ▶️ John online by itself. And no, no cuddled else’s. Cuddled else’s are in the vast minority and they’re bad and you should not
⏹️ ▶️ Casey me a favor. Do me a favor, listeners. If you think cuddled else’s are okay, at
⏹️ ▶️ Casey Syracuse on Twitter, you go ahead and tell him how wrong he is because he is very wrong.
⏹️ ▶️ Marco And to be clear, this is when the closed brace of the previous of the if clause is on the same
⏹️ ▶️ Marco line as the else and the open brace. So it goes closed brace, else, open brace, all in one line, right?
⏹️ ▶️ John I know people like it, but they’re in the minority and they’re wrong. So, oh
⏹️ ▶️ Casey well. You, no, John, no, this is insanity. This, either go with
⏹️ ▶️ Casey BSD or cuddle the else’s. Don’t do this halfway nonsense. This is bananas.
⏹️ ▶️ Marco They need to feel loved, John.
⏹️ ▶️ John It’s not halfway. It’s just the normal way. I’m telling you, having read so many other
⏹️ ▶️ John people’s code and worked with so many different programmers, literally thousands of other programmers I have worked
⏹️ ▶️ John with and looked at their code over the course of my career, And I can tell you that the style you see here is the most
⏹️ ▶️ John common across all languages, all time, all decades, ever, ever. Everything else that deviates
⏹️ ▶️ John from that is an idiosyncrasy that is in the minority. Well, of
⏹️ ▶️ Marco the tens of programmers I’ve ever worked with or seen their code, they disagree.
⏹️ ▶️ Casey Yeah, I have been a professional developer for almost 20 years. I have never in my life
⏹️ ▶️ Casey seen this monstrosity that I’m looking at right now. Not once.
⏹️ ▶️ Casey, John It’s all over
⏹️ ▶️ John Apple’s codes. Not everyone
⏹️ ▶️ John, Casey calls it Cuddles Dolls.
⏹️ ▶️ Casey No, it is not. It’s either, what did you call it, BSD or it’s Cuddled Elses.
⏹️ ▶️ Casey, John This in between. You
⏹️ ▶️ John saw BSD in Apple’s code? I don’t see that
⏹️ ▶️ Casey anywhere. No, what did you call it? What’s the, oh,
⏹️ ▶️ John, Casey the BSD. BSD braces where they open
⏹️ ▶️ John and they close are on the same column underneath the little I and F.
⏹️ ▶️ Casey Yeah, I don’t think I see that in Apple’s code necessarily, but the only things I’ve seen reliably,
⏹️ ▶️ Casey professionally, is either BSD or Cuddled Elses. This nonsense, I cannot stand it. I cannot abide.
}.if()
⏹️ ▶️ Casey Anyway, moving on. Tell me about your awful looking, but otherwise functional if modifier.
⏹️ ▶️ John Yeah, so last week I had a little if modifier. This is like in the desperation of SwiftUI. If you can’t get it to do what
⏹️ ▶️ John you want, you just, I need some way to do one thing and then something else. And you can’t just write straight up code because that big
⏹️ ▶️ John chain of modifiers is not, you know, regular Swift code. It is in fact a chain of calls.
⏹️ ▶️ John What can you do there? Well, you can make an if modifier and say, I’m tired of dealing with this. I can’t figure out how to make this work. I’m just going to make a dot if
⏹️ ▶️ John modifier and it’s really easy to do that. And I posted a code for that last week. So a couple of people said,
⏹️ ▶️ John you can make that code more efficient so you don’t have to wrap everything in an any view
⏹️ ▶️ John if you just use the view builder directive. So that’s the new version that we’re talking about here. You can take a look at it, we’ll put a
⏹️ ▶️ John link in the show notes. It’s basically the same as the code of last week with just a couple of extra view builder annotations and no more
⏹️ ▶️ John any view wrapping for stuff. But the real problem is that anytime you do this type of conditional,
⏹️ ▶️ John SwiftUI has a more difficult time figuring out how to animate between states
⏹️ ▶️ John because it can’t sort of see into the if, right? And the
⏹️ ▶️ John return value from the if is different depending on which branch takes or whatever. And so the suggestion for many people was,
⏹️ ▶️ John you know, don’t do that. Instead, lots of Swift UI directives, if you pass them nil
⏹️ ▶️ John or something, they basically become no ops. And so then you can just do like a, you know, ternary operator or something within
⏹️ ▶️ John the argument list and say, you know, if some condition is set, nil, otherwise do the thing. And then
⏹️ ▶️ John you just have a regular chain with no conditionals. And each thing in the chain, you just have
⏹️ ▶️ John some argument or something that says, should this be a no op, or should it actually do something? And Swift finds
⏹️ ▶️ John it easier to transition between states if you do that. So I played with this. I did actually
⏹️ ▶️ John end up expunging all of the.ifs from my entire code base. And I have to say, after I finish that,
⏹️ ▶️ John the code is less clear. I can squint at it and say, yeah, this used to be
⏹️ ▶️ John a thing where I did if this big long of modifiers Right. And now it is just this
⏹️ ▶️ John big long thing of modifiers, but every modifier is a different way To like tell
⏹️ ▶️ John it to be a no op Some of them don’t have any good way to tell them to be a no op So you have to do these weird hacks, right?
⏹️ ▶️ John And if you looked at my code now, it would be hard for you to tell especially if I spread the lines out a little bit, it would be
⏹️ ▶️ John hard for you to tell like What used to be in an if it is it makes less sense? It
⏹️ ▶️ John reads less clearly than before when it was dot if and then a whole bunch of stuff indented or whatever So that’s
⏹️ ▶️ John a little disappointing but all that said I and I don’t know the details of why the dot if confuses SwiftUI
⏹️ ▶️ John But I do know more than I ever wanted to know about How SwiftUI behaves?
⏹️ ▶️ John When transitioning between states where it can’t figure out what the relationship between the states
⏹️ ▶️ John is I didn’t want to talk more about dev stuff because we already had a big dev conversation, but briefly
⏹️ ▶️ John I’ve basically got a list and then I’ve got a change of state to a list with either one more item or one fewer item
⏹️ ▶️ John and to a human it’s really easy to see what changed. Oh, what changed? This item was added. Oh, what changed? This item was removed, right? So
⏹️ ▶️ John you would think that any kind of animation between those states, it’d be really simple to like
⏹️ ▶️ John say something about, oh, the thing that was added, I want it to slowly fade in, or I want it to grow from being small
⏹️ ▶️ John to big, right? But SwiftUI, especially given the mess I’ve already had to make, I think, has no
⏹️ ▶️ John idea how those states relate to each other. So it does some random animation. It’s like, what are you even doing, right?
⏹️ ▶️ John Because in reality, what I’m giving it to, especially with like things passed by value, it’s getting an entirely new list. It just
⏹️ ▶️ John so happens that the new list is exactly the same as the old list with the exception of one item, but SwiftUI can’t figure that
⏹️ ▶️ John out. So what I ended up doing, speaking of things that are less clear than they were, is the diffing that
⏹️ ▶️ John they, oh, SwiftUI does the diffing for you. You just give it the list and it will be able to diff them and know
⏹️ ▶️ John what’s changed or whatever. That works great until you wanna animate it and then you realize it has
⏹️ ▶️ John no idea about this. So now I have to do the diffing outside of the SwiftUI, right, I have my model.
⏹️ ▶️ John Instead of my model being real simple, like, oh, here’s SwiftUI, here’s the list of things. Oh, here’s a new list of things.
⏹️ ▶️ John And it’s the same as the old list, plus or minus one. Works great until you animate it. Now what I have to do is on the outside,
⏹️ ▶️ John take the old list and the new list and figure out how to mutate the old list so that it looks like the new list
⏹️ ▶️ John so that SwiftUI isn’t confused about how it changed because it is literally the same objects except for the one
⏹️ ▶️ John I added or the one I removed. And that was extremely frustrating. It made my code much uglier and
⏹️ ▶️ John the whole idea of like, you know, SwiftUI’s internal is diffing the data structure and animating them. Apparently,
⏹️ ▶️ John if you do enough fancy stuff, SoCy gets confused about what’s what and can’t animate between the states. So that was
⏹️ ▶️ John part of why I totally removed this.if thing from my code to see if that was the problem. Nope, that wasn’t the problem.
⏹️ ▶️ John But anyway, I left it removed. But if you’re interested, there’s a bunch of other links
⏹️ ▶️ John we’ll put in the show about why that.if conditional is not a great idea. And
⏹️ ▶️ John then there’s also a link to a WWDC 2021 session that talks about the internals that
⏹️ ▶️ John explains this a little bit.
⏹️ ▶️ Casey Yeah, and I think the short short version is because these are all not passed by
⏹️ ▶️ Casey reference but passed by value It just has to like look at the the structure of everything in order to figure
⏹️ ▶️ Casey out Okay, what’s the same what’s different and with this if modifier you’re changing the structure,
⏹️ ▶️ Casey you know What’s being returned as a different type than what it was what it would have been otherwise and that’s what screws everything up
⏹️ ▶️ Casey So yeah, that Objective-C.IO post is really good and explains it well.
macOS support lifetime
⏹️ ▶️ Casey John, tell me about macOS support lifetime. Should I get my tinfoil hat out?
⏹️ ▶️ John We talked about this, I think, last week about macOS Ventura dropping support
⏹️ ▶️ John for older Macs. And what’s the worst case scenario? Like you
⏹️ ▶️ John could have bought a Mac recently, and now you can’t even upgrade to the latest OS. So Ars Technica
⏹️ ▶️ John did an article about what has it been like over the past few decades in terms
⏹️ ▶️ John of support for OS updates. If you buy a Mac, how long after you buy that Mac can
⏹️ ▶️ John you continue to install the latest version of Mac OS? And they did some graphs here, and
⏹️ ▶️ John the graphs are pretty unsurprising. If you take a look at them, if you know any Apple history, you’ll
⏹️ ▶️ John see it’s basically two humps like a camel. There’s a big hump and then a dip and then another hump, right? What’s going on with that
⏹️ ▶️ John dip around 2005-ish? That was the Intel transition. And so now
⏹️ ▶️ John fast forwarding to modern day, we’re going through the ARM transition now. It doesn’t surprise
⏹️ ▶️ John me that there’s a dip. The big dip in 2005 was not just Intel transition, but also 32-bit to 64-bit. So it’s
⏹️ ▶️ John kind of a double whammy around that same, you know, a couple of years span there. So we’re still dipping now.
⏹️ ▶️ John And if you want to know what the values are, like the low of, from introduction,
⏹️ ▶️ John from Mac’s release between 1998 and 2026, the low of 4.13 years is how long you got Mac,
⏹️ ▶️ John how long you could install the latest version of macOS. And the high is around like 8.13
⏹️ ▶️ John years or whatever. So I, you know, I don’t think it’s surprising
⏹️ ▶️ John that the ARM transition is cutting off some Macs. I think it is, I mean, you would say it
⏹️ ▶️ John was disappointing, but honestly, as someone who, I mean, I’m still using an Intel Mac now, I would much prefer Apple
⏹️ ▶️ John to concentrate entirely on ARM Macs and not worry about Intel Macs
⏹️ ▶️ John after a reasonable point. And if you look at the levels that we’re approaching these days, it’s not even
⏹️ ▶️ John down to the levels it was during the Intel transition. It’s just lower than it was. We went a couple of years
⏹️ ▶️ John where there was no, you know, where Mac OS didn’t drop any supported Macs, and now we’re kind of
⏹️ ▶️ John catching up for a lost time here. So I don’t think it’s that bad, but if you want to look at these, and a bunch of graphs, check out the article.
Benefits of IPv6
⏹️ ▶️ Casey Good talk. All right, do you want to tell me about the benefits of IPv6, please and thank you?
⏹️ ▶️ John It’s a long time ago when we were, I think Marco was asking, do I have to understand IPv6? Why would I want to do
⏹️ ▶️ John, Marco maybe you’re- I’m
⏹️ ▶️ Marco too busy breaking my brain with SwiftUI. I need to like kick some stuff out. I need to evict some things out of my cache.
⏹️ ▶️ John Yeah, like, you know, should I add this? Is this something I need to
⏹️ ▶️ John add? What benefits are there other than being able to talk to other clients that use IPv6? And
⏹️ ▶️ John Dan Chandler wrote in to say, IPv6 has a number of features that greatly enhance security of online communications. When
⏹️ ▶️ John IPv4 was created, it was assumed that only a small number of systems would ever be connected and that at some level trust would be assumed.
⏹️ ▶️ John IPv6 addresses the reality of today’s internet as a hostile environment. IPv6 is much more secure than IPv4
⏹️ ▶️ John for a lot of reasons, and we’ll put a link in the show notes that lists some of those reasons. Here’s just a couple of them from that article.
⏹️ ▶️ John Mandatory use of IPsec authentication header which provides authentication for data integrity for
⏹️ ▶️ John the entire IPv6 packet. If an endpoint receives a packet with a specific source address it can be assured that a packet
⏹️ ▶️ John did indeed come from that IP address. This may sound weird to you if you don’t know how IPv4 works, but the idea
⏹️ ▶️ John that you can just lie and say that the source of this packet is not what it was
⏹️ ▶️ John is a thing you can do. Because if you don’t have any kind of data integrity where you can prove
⏹️ ▶️ John that the source really is authentic, it’s really easy to change that stuff. Well, not really easy, but it’s
⏹️ ▶️ John possible, which is scary. And then finally, there’s ESP, Encapsulating Security Payload. No
⏹️ ▶️ John one else, not even the intended receiver, can read the content of the communication in transit. So
⏹️ ▶️ John yeah, if you look at this, you see all these features and you think IPv4 doesn’t have those.
⏹️ ▶️ John You can change the source. Anyone can read the content. IPsec is not required.
⏹️ ▶️ John It’s kind of like if we were using the web and you never saw HTTPS. Not quite the same thing, not quite that
⏹️ ▶️ John bad. But yeah, IPv6 was made late enough that they understood
⏹️ ▶️ John that not having these features is a really bad idea. IPv4 was made more in the sort of
⏹️ ▶️ John academic days where it was assumed that everyone would trust each other and be nice and yeah, They didn’t
⏹️ ▶️ John quite understand what the internet would become back then
Sponsor: Hover
⏹️ ▶️ Marco We are sponsored this week by Hover, a great place to buy
⏹️ ▶️ Marco a domain name. Hover is a jumping off point for tons of entrepreneurs and Hover wants
⏹️ ▶️ Marco you to start your next business the same way I do, with a great domain name. They have
⏹️ ▶️ Marco over 300 domain name extensions to choose from at Hover so you can build your brand online with exactly
⏹️ ▶️ Marco what you want to say. No matter what you want to build, there is a domain name waiting for it. has
⏹️ ▶️ Marco excellent technical support available to help you get started, answer any questions you might have, and this support
⏹️ ▶️ Marco team doesn’t try to upsell you, they just want to get you online and get you going. And they give you all sorts of great stuff with
⏹️ ▶️ Marco Hover. Free Whois privacy protection, a super clean and pleasant UI,
⏹️ ▶️ Marco and they also have monthly sales on popular TLDs. So no wonder Hover is such a popular
⏹️ ▶️ Marco choice for people starting all kinds of businesses and personal sites. I personally have used Hover for
⏹️ ▶️ Marco many, many years now, and it’s just a pleasant experience to buy management domains there.
⏹️ ▶️ Marco At no point is ever fighting you. They have a great search to like that they probably the best search I’ve ever seen. Because you
⏹️ ▶️ Marco know, sometimes exactly the name you want might not be available. But the search can you know, reveal a lot of possibilities
⏹️ ▶️ Marco that are available to you. And they just have a great search, they’re great management panel, once you get
⏹️ ▶️ Marco there, great pricing, very competitive. So it’s just it’s a great domain name registrar.
⏹️ ▶️ Marco And if you need a domain name for anything, I strongly recommend hover, they have email stuff as well. I’ve done that there as
⏹️ ▶️ Marco well. Great experiences all around for the many years that I’ve been with them. So get your next domain name
⏹️ ▶️ Marco and many more at hover.com slash ATP, you can get a 10% discount
⏹️ ▶️ Marco with that referral link on all new purchases. Once again, hover.com slash
⏹️ ▶️ Marco ATP for 10% off all new purchases. Make a name for yourself with Hover.
No more LoveFrom Apple
⏹️ ▶️ Casey Let’s talk about the belated birthday gift that Apple
⏹️ ▶️ Casey has given Mr. Marco Arment. Marco, how excited are you? Because apparently
⏹️ ▶️ Casey Johnny Ive is completely done with Apple and Apple’s completely done with Ive.
⏹️ ▶️ Marco I’ve known for a while—well, I quote, known—we’ve heard for a while
⏹️ ▶️ Marco that Johnny’s involvement in actual product design was
⏹️ ▶️ Marco not even that significant, even when he was still officially working there for the last few years. It seemed from
⏹️ ▶️ Marco most reports that he was really getting burnt
⏹️ ▶️ Marco out and also, I think, bored with computers, and as designing
⏹️ ▶️ Marco people tend to do, that you wanna move on and design new kinds of things at some point. And so apparently,
⏹️ ▶️ Marco the rumors seem to all be coalescing on that he was very involved
⏹️ ▶️ Marco in Apple Park, you know, the building, and lots of little details about the building, and like the furniture,
⏹️ ▶️ Marco and the door handles, and all this stuff. And that was, I mean, that was years
⏹️ ▶️ Marco of, you know, involvement there where he seemed to be stepping away from the products,
⏹️ ▶️ Marco like slowly. He was apparently not super involved. And so then
⏹️ ▶️ Marco by the time that his, like, official announcement that he was actually, like, leaving to go
⏹️ ▶️ Marco form his own consultancy. By the time that announcement came out,
⏹️ ▶️ Marco people in the know or people who in the room seemed to already be pretty sure that he wasn’t really there that much
⏹️ ▶️ Marco to begin with by that point. He had checked out, he was burnt out, he wanted new challenges,
⏹️ ▶️ Marco he didn’t seem to care that much about computers anymore, he’d been designing them forever. And I can’t blame him, he
⏹️ ▶️ Marco wants a new thing after all that. Totally understandable. At the time though, Johnny’s involvement
⏹️ ▶️ Marco in the company was fairly important to the company’s image and to Wall Street. And, you know, in the
⏹️ ▶️ Marco same way, like, it was considered a very delicate matter as Steve Jobs’
⏹️ ▶️ Marco health declined. They were very careful with how they worded that when
⏹️ ▶️ Marco they revealed certain things to Wall Street and things like that, because they knew that a sudden shock about Steve
⏹️ ▶️ Marco Jobs when he was a CEO would have been taken poorly by like the stock market and the press
⏹️ ▶️ Marco and reputation, and maybe the employees even, you know, after Steve passed away and they’ve
⏹️ ▶️ Marco managed that transition, you know, as well as they could given the circumstances. Then Johnny was left
⏹️ ▶️ Marco and Johnny became like the celebrity person of Apple
⏹️ ▶️ Marco to Wall Street and to the press for a while. Never as much as Steve was but he was still very
⏹️ ▶️ Marco significant and important in like a publicity sense. I think Johnny’s
⏹️ ▶️ Marco exit was very very padded and cushioned and couched
⏹️ ▶️ Marco and was very on message to follow this certain planned trajectory
⏹️ ▶️ Marco that I think overstated his role towards the end by quite a lot.
⏹️ ▶️ Marco Because I think the reality seems to point to that he wasn’t really that involved towards the end of his time
⏹️ ▶️ Marco there. And I think when he finally did officially leave
⏹️ ▶️ Marco and go form this company, they had this party announcement, like, oh, Johnny will continue
⏹️ ▶️ Marco consulting for Apple. Apple will be the first client of this new or however they worded it, that
⏹️ ▶️ Marco I don’t think was really ever going to be a thing. I think that was solely to continue the
⏹️ ▶️ Marco very soft exit of Johnny Ive, so as not to upset Wall Street
⏹️ ▶️ Marco and the press and the analysts and everything else. And they did a masterful job of handling
⏹️ ▶️ Marco that in a way that nobody really freaked out, nobody was ever that surprised by any part of it, and I
⏹️ ▶️ Marco think this is just the final, like, alright, now we’re really done. Now he’s really 100%
⏹️ ▶️ Marco gone and no longer involved.
⏹️ ▶️ John Didn’t they pay $100 million to his consulting company? Yeah, I mean, that was part of the
⏹️ ▶️ John story is that it wasn’t just like, oh, you know, he’s leaving to do his own thing and we’ll still be working with them.
⏹️ ▶️ John It was actually, we’ll still be working with them and we will pay them $100 million to continue to work with us,
⏹️ ▶️ John which, I mean, you could say, boy, that seems like a lot, but then again, Johnny Ive has quite a reputation and a
⏹️ ▶️ John resume, so if you were paying for him starting from nothing, you’d probably pay a similar amount, But to your point,
⏹️ ▶️ John if it really was to just kind of make the exit smooth and he was already kind of checked out,
⏹️ ▶️ John what did that $100 million buy you? I mean, maybe it protected your stock price from going down by
⏹️ ▶️ John a much, much greater amount monetarily speaking and absolute values perhaps, but it just, part
⏹️ ▶️ John of the article is that it seemed like that the people who are still at Apple felt kind of bitter that the outgoing
⏹️ ▶️ John person is getting $100 million when they’re not actually doing any of the work and hadn’t been for a while
⏹️ ▶️ John even when they were here.
⏹️ ▶️ Marco And there’s lots of different ways that $100 million thing could have come up. I mean, it could have just been like, you know, part
⏹️ ▶️ Marco of the transition that Johnny negotiated. I mean, John, by all accounts,
⏹️ ▶️ Marco once Steve was gone, Johnny became extremely politically powerful
⏹️ ▶️ Marco in the company. He basically could do whatever he wanted and his say mattered a lot. He
⏹️ ▶️ Marco had tons of clout, tons of weight to his decisions and to his preferences and opinions and everything.
⏹️ ▶️ Marco I mean, as we’ve talked about, to a fault. That often resulted in bad decisions being made for the products
⏹️ ▶️ Marco or for the customers, or maybe for the company in cases like this. And so, who knows
⏹️ ▶️ Marco how he negotiated that or why they decided to do that. I’m sure it was to some degree mutual because of
⏹️ ▶️ Marco various transitional reasons, but I have a feeling it was always intended to be
⏹️ ▶️ Marco temporary and transitional. And that the idea was probably never to actually have this go indefinitely
⏹️ ▶️ Marco into the future. Like, I bet this was a contract for a certain number of years, and I believe they
⏹️ ▶️ Marco reported it was for a certain number of years, it was up for renewal, and they decided not to renew it. I bet that was always the plan,
⏹️ ▶️ Marco really. And I don’t think that would be a sudden surprise to Johnny. And by the way, and I think you’re right,
⏹️ ▶️ Marco John, the design team now that’s there now, led by Evans
⏹️ ▶️ Marco Hankey, who was formerly, I think she formerly basically ran the studio when Johnny was there, too.
⏹️ ▶️ Marco But he was a level above her managerially. But I think she’d been doing the work for a while
⏹️ ▶️ Marco before that. But she and her team deserve full credit for what
⏹️ ▶️ Marco they’ve done. They don’t need the ghost of Johnny Ive, people thinking that Johnny
⏹️ ▶️ Marco had anything to do with all these awesome new products that we got because he probably didn’t. Maybe he glanced
⏹️ ▶️ Marco at the plans at some point, but chances are he didn’t have much to do with anything that we see today
⏹️ ▶️ John You keep saying this, but you’re talking about hardware, right? But didn’t they change Johnny to be the
⏹️ ▶️ John head of like in design for hardware and software? They did, yes. So who took
⏹️ ▶️ John over the software side of that?
⏹️ ▶️ Marco Well, yeah, well that’s Alan Dye. And I don’t have a lot of nice things to say about Alan Dye, so I’m gonna leave that aside
⏹️ ▶️ Marco for now. But on the hardware side, their hardware design has been excellent
⏹️ ▶️ Marco in the post-Johnny era, assuming that the Johnny era ended roughly when he officially left the company. Even
⏹️ ▶️ Marco though, again, it probably was a little bit before that, really. But anyway, assuming that he
⏹️ ▶️ Marco hasn’t had much, if anything, to do with the company since then, The current design team deserves
⏹️ ▶️ Marco full credit. They don’t need to be in any way in people’s minds sharing credit
⏹️ ▶️ Marco with Johnny Ive over what they’ve done recently. Because they’ve done amazing work and they deserve to have that be theirs
⏹️ ▶️ Marco and 100% theirs. Not some guy who they probably never see anymore
⏹️ ▶️ Marco who gets a whole bunch of money from the company for some reason up until now only because
⏹️ ▶️ Marco of his past and not because of anything he’s doing in the present. For the current design team, I see
⏹️ ▶️ Marco totally why they would probably be very in favor of ending this involvement.
⏹️ ▶️ Marco And even for Johnny Ive, you know, there was a thing in the article that said that Johnny, as part of the agreement, was
⏹️ ▶️ Marco precluded from working on competing products. And Johnny loves cars.
⏹️ ▶️ Marco And Johnny, he doesn’t he have some deal where he’s going to work with Ferrari on something? I think he already is. Right.
⏹️ ▶️ Marco Yeah, I think so too. So, if that, maybe that was a bit of a friction point there,
⏹️ ▶️ Marco that if Apple is working on car They don’t want Johnny to be working on cars if he’s
⏹️ ▶️ Marco being contracted by Apple. That makes sense, that’s reasonable, and I think Johnny should work with Ferrari,
⏹️ ▶️ Marco because that is exactly the kind of thing that esteemed high-end designers
⏹️ ▶️ Marco like him work on. They work on cars that look really cool that pretty much nobody buys,
⏹️ ▶️ Marco because they’re not going to design the next Toyota. That’s neither what they want, nor does
⏹️ ▶️ Marco Toyota want them. I don’t want them. Johnny should design a Ferrari. That is perfect. Cause that, that lets him have his creative
⏹️ ▶️ Marco outlet that he, that he wants and has earned in this new area. It’s not
⏹️ ▶️ Marco going to be a mass market thing, but it doesn’t need to be. That’s fine. He had Mark Newsome can work on the next Christmas tree at, you
⏹️ ▶️ Marco know, wherever, like they can do stuff like that. That’s great. That’s, that’s the kind of stuff he probably wants to
⏹️ ▶️ Marco do now. And so to still be bound by anything from Apple, any restrictions
⏹️ ▶️ Marco or any tie to them is not that great for him either. So I think it makes
⏹️ ▶️ Marco this makes total sense like this this was clearly meant to be a transitional thing
⏹️ ▶️ Marco to ease Anybody’s possible fears about Johnny no longer being at Apple that transition is
⏹️ ▶️ Marco over and it went great Because the stock market didn’t seem to care Analysts didn’t seem to
⏹️ ▶️ Marco care and the new people who will the the people at Apple who took over are doing a fantastic
⏹️ ▶️ Marco job in the hardware department, so This is all good news as far as I’m concerned
⏹️ ▶️ John I think it kind of helped that they had a bunch of really crappy computers during this transition so that now that those are
⏹️ ▶️ John gone, like you can, you know, think like things are on an upswing, right? Um, if, if the, everything
⏹️ ▶️ John had been fantastic, but then Johnny leaves and then things start going downhill, uh, everyone would be
⏹️ ▶️ John upset. Instead, what we got was things started to go downhill, Johnny left and then things started to pick up and now he’s gone for good. Yeah.
⏹️ ▶️ John And which I think is, you know, I mean, again, I thought that you’re planning, you don’t plan to make the butterfly keyboard, right? You don’t plan
⏹️ ▶️ John into not put ports on your computers for years and years.
⏹️ ▶️ John, Casey But that’s what they ended
⏹️ ▶️ John it made a lot of people upset. It’s interesting, with Ferrari or whatever, like,
⏹️ ▶️ John obviously, those companies have a lot of money, and there’s cash aid to them or whatever, but I’ve spent his entire career
⏹️ ▶️ John making things for the masses. Like, the iPods and iPhones are not niche
⏹️ ▶️ John devices. They sold literally billions of them, right? There’s not much more, that’s
⏹️ ▶️ John more mass market than the iPod and the iPhone in terms of famous consumer products, right?
⏹️ ▶️ John And in most things I’ve read about him, especially early in his career, he was actually interested
⏹️ ▶️ John in making something, yes, something nice, but also something nice that regular people can have.
⏹️ ▶️ John If you watch a lot of his presentation videos where he used to be in his little white world talking about products,
⏹️ ▶️ John you could see how excited he was to like, make something like the iMac G4 with
⏹️ ▶️ John the Chrome arm thing or whatever and say, this computer, which isn’t even one of our most expensive computers,
⏹️ ▶️ John is going to go into the houses of regular people and they’re going to have a beautiful object.
⏹️ ▶️ John He got excited about the iPods. Like, we made this iPod using these advanced techniques and look how
⏹️ ▶️ John beautiful it is. And everybody’s gonna have one of these. You’re just gonna go on the subway and you’re gonna see 50 of them, right? And they’re
⏹️ ▶️ John all like, that they’re all nicer things than the average, you
⏹️ ▶️ John know, even similarly priced product, right? And I feel like he’s always been excited about that. If you read
⏹️ ▶️ John some of his, read a couple of his biographies about designing pens and telephones, like
⏹️ ▶️ John not pre-smartphones, and you know, like just everyday objects, but also trying to make them just a little bit nicer than
⏹️ ▶️ John a typical plastic pen. Still a plastic pen, but it’s a plastic pen that, not through expensive
⏹️ ▶️ John materials or manufacturing, but just in Jujitsu’s choice of how it’s constructed, it’s a nicer pen
⏹️ ▶️ John for people to have at a similar price or maybe just a little bit more. So maybe he lost interest in that,
⏹️ ▶️ John maybe he’s like, I’ve done that, been there, done that, like I spent my career doing that, I’m not going to make anything more mass-market
⏹️ ▶️ John than I’ve already made. So now I want to make stuff that no one’s even heard of just because it interests me. And I don’t need
⏹️ ▶️ John money anymore. I just want to make weird Ferraris. And by the way, I think they’re working with Ferrari on
⏹️ ▶️ John interiors, not the exteriors, because Ferrari is weird about the exteriors and they, you
⏹️ ▶️ John know, anyway, I don’t think he’s doing exteriors and I would not want him to, because from what I’ve heard of the Apple car,
⏹️ ▶️ John I don’t want him designing the exterior of any car. But Ferrari interiors
⏹️ ▶️ John have been a mess. So if he can help there, that’d be great. Although I have a feeling that I wouldn’t like any car in theory that he designed either.
⏹️ ▶️ John Cause I just feel like his current sort of predilections and his taste for design
⏹️ ▶️ John is not a good fit for what I look for in automobiles. It actually kind of is a good fit for the rumored,
⏹️ ▶️ John you know, the Apple car with no steering wheel. It’s just like this personal transport Jetson bubble mobile. I think
⏹️ ▶️ John Johnny would do a good job on that. It’s just not something I’m interested in. But anyway, yeah,
⏹️ ▶️ John like him, I feel happy for him. I feel happy for Apple and I feel happy for Johnny
⏹️ ▶️ John because I think, like you said, they will both, they’ll both be free to do what they want. Everyone who
⏹️ ▶️ John is still at Apple designing things should feel better about
⏹️ ▶️ John the clean break. There are some points in this article about, not that Johnny was poaching people from Apple, but people
⏹️ ▶️ John were leaving Apple to go work for his company. He’s got a lot of friends at Apple, and some other people are at similar stages in their career where
⏹️ ▶️ John they feel like, I’ve done all these great things, I’m not going to top what I already did
⏹️ ▶️ John in terms of Apple stuff, so it’s time for me to move on and do something else. But as far as I’m concerned,
⏹️ ▶️ John let the new people in. I’m ready for new takes on what it means to be an Apple
⏹️ ▶️ John product. And I think we’ve seen a couple of new takes, albeit from people who were there when Johnny was
⏹️ ▶️ John there, but you gotta have his turnover. You gotta have the fresh blood in every once in
⏹️ ▶️ John a while, otherwise things can stagnate. And that’s like the celebrity of status of
⏹️ ▶️ John Johnny and Apple’s desire to keep him there because
⏹️ ▶️ John of that celebrity status. It’s just like keeping Thomas Edison around or whatever. Someone
⏹️ ▶️ John whose name is in the public consciousness much more than you would think someone in that profession would ever be,
⏹️ ▶️ John they don’t know or care what role the person has, they just know the name is associated with it. And so him wanting to leave back in 2015 or
⏹️ ▶️ John whatever and then having the folks at Apple just essentially beg him to
⏹️ ▶️ John stay because he provided value, essentially valued the stock price in public perception, that’s
⏹️ ▶️ John not a great situation for anybody. I mean, granted, he could have left whenever he wanted, but
⏹️ ▶️ John he listened to his friends at Apple and said, okay, I’ll stick it out just a little bit longer, but it just seemed like it
⏹️ ▶️ John was miserable for everybody. And I think this extended departure has been too long, but
⏹️ ▶️ John I also wouldn’t turn down $100
⏹️ ▶️ John so that Apple could continue to say that they’re working with Johnny. Whether they’re actually working with him
⏹️ ▶️ John or not, who cares? Yeah. And he’s like, well, I’d love to have that gig. Give me $200 million to do nothing.
⏹️ ▶️ John Well, if you design the iMac, the iPhone, and the iPod, then you can get $100 million to do nothing.
⏹️ ▶️ John But until then, I probably can’t command that kind of price.
⏹️ ▶️ Casey I’ll get right on it. No, I agree with you guys. I think that this is long
⏹️ ▶️ Casey time coming. I think that it’s probably a good thing. And certainly
⏹️ ▶️ Casey if the hardware of the last few years, as you’ve said, Marco, if the hardware of the last few years is any sort of hint,
⏹️ ▶️ Casey then I think that we’re potentially about to see some of Apple’s best.
⏹️ ▶️ Casey I’m a little worried about these unreleased products like AR in the car if it ever ships, but
⏹️ ▶️ Casey I’m really pleased with this transition and I think it’s gone very well and it’s been great for me. I mean, in
⏹️ ▶️ Casey so many ways, this is the best time to be an Apple fan in a long time. So I’m really
Sony’s new gaming monitor
⏹️ ▶️ Casey Let me ask you John. Why is it that we’re talking about a gaming monitor next? What
⏹️ ▶️ Casey what why do I care? What’s going on?
⏹️ ▶️ John Talked about gaming monitors a few times on we talked about monitors a lot mostly in the context of Mac monitors now Apple
⏹️ ▶️ John finally made a monitor that Fulfills the specs that we wanted for a price that is not completely unreasonable
⏹️ ▶️ John And what two out of three of us have that one now? I did wait you go and write didn’t you borrow the the studio display?
⏹️ ▶️ John No. Oh, no. I got two. That’s one thing
⏹️ ▶️ Casey no, no. No, I only have the one I want a second one, but I only have the
⏹️ ▶️ John one for me to keep track of what you have versus what you are Thinking about buying but anyway That I mean now
⏹️ ▶️ John that that solved the problem on the Mac side and in particular the camera is not great But at least there’s a product
⏹️ ▶️ John in that area But what I was always looking for and talking about in terms of monitors because my monitor situation
⏹️ ▶️ John has been Solved through the use of excessive money What
⏹️ ▶️ John do I do for my PlayStation monitor because I use my PlayStation on a gaming monitor
⏹️ ▶️ John and And I’ve got an older gaming monitor, which is fine. It’s 4k, but it doesn’t support HDR
⏹️ ▶️ John It doesn’t support 120 frames per second and now with the advent of the PlayStation 5 Those are features that would be nice
⏹️ ▶️ John to have in a gaming monitor So I thought when the PlayStation 5 came out great I’ll just replace
⏹️ ▶️ John my existing 4k monitor with a new 4k monitor that supports 120 frames per second in HDR
⏹️ ▶️ John and That turned out to be a really difficult thing to find We talked about it a few times in
⏹️ ▶️ John the show when monitors would be released and we’d, you know, see what they’re offering. And we talked about it in
⏹️ ▶️ John the context of the Apple Studio Display. Like, hey, if I wanted to buy a non-Apple display that has these features, what can
⏹️ ▶️ John I get? Can I get one that’s like a 5K version of the XDR? And the answer was not
⏹️ ▶️ John really, or if you could, it was $4,900 instead of $5,000, right? Like they were very expensive. And in the
⏹️ ▶️ John gaming monitors, 4K, you know, 1600 nit, you know, 100% P3, 120 Hertz gaming monitors
⏹️ ▶️ John basically didn’t exist. Or you could find them and they were $3,000, right? And I
⏹️ ▶️ John don’t wanna spend, you know, I don’t wanna buy a $3,000 monitor for my $400 PlayStation 5 or whatever it is. Like it’s a big
⏹️ ▶️ John mismatch and I already spent a lot of money on monitors. I’m kind of, you know, so
⏹️ ▶️ John like, well, surely monitor tech will advance and we’ll be able to find something better. But, you know,
⏹️ ▶️ John years have passed and I watch all these YouTube reviews and there’s just not a lot out there that
⏹️ ▶️ John fulfills that criteria. You know, it’s just, it almost
⏹️ ▶️ John makes me wish that I could get, well, this probably doesn’t exist either, but the
⏹️ ▶️ John MacBook Pro display, right? 1600 nits, it does 120 Hertz, right? And it’s got HDR and it’s great.
⏹️ ▶️ John That would be a great game monitor, but it’s 15 inches, right? And so I don’t want to
⏹️ ▶️ John game on a 15 inch monitor, but I look at that tech, I’m like, just put that in a 27 inch 4K
⏹️ ▶️ John screen and I would love to buy it. And no one has done that. Well, for a reasonable
⏹️ ▶️ John price, again, you can find monitors that do that, but they’re very, very expensive. And they’re not really made for
⏹️ ▶️ John gaming. They’re mostly made for like artists or people who are doing HDR video or whatever. Well, recently
⏹️ ▶️ John Sony, the company that makes PlayStation 5, came out with their own gaming monitor, which is
⏹️ ▶️ John kind of weird because usually they just leave this to third parties. There’s more than enough,
⏹️ ▶️ John know, third party manufacturers of monitors. There’s a whole world of them. But Sony came out with one and
⏹️ ▶️ John it’s styled a little bit like the PlayStation 5 if you look at it. You guys can look at the picture. This will put some links in the
⏹️ ▶️ John show notes. It’s got a weird kind of front foot, let’s
⏹️ ▶️ John call it, that sticks out forward from the monitor. It’s like on an angle.
⏹️ ▶️ John And when you move the monitor up and down, It sort of slides up and down this angled foot, kind of like it’s going up and down a ski
⏹️ ▶️ John slope, right? So as it gets lower, it also gets closer to you. And as it gets higher, it gets farther away.
⏹️ ▶️ John And then there are two legs that kind of point backwards. It’s a very strange looking stand. It looks a little bit like the PlayStation 5,
⏹️ ▶️ John if you know what the PlayStation 5 looks like, especially from the back, if you look at it, it looks a little bit like the PlayStation 5.
⏹️ ▶️ John But it’s intended to be a monitor that you would use with the PlayStation 5. So here are the specs. 27 inch, 4K,
⏹️ ▶️ John it’s an IPS LCD. There’s, if you don’t know, the various technologies for LCDs.
⏹️ ▶️ John IPS is not the sort of high-end competitive gaming one.
⏹️ ▶️ John They have monitors that sacrifice image quality for response time. This
⏹️ ▶️ John is not that. IPS does not have the best of the best response time, but it does look better than
⏹️ ▶️ John the more responsive displays. So that’s what I always look for. My current LG is an IPS display. VA
⏹️ ▶️ John displays are similar, but they’re not the super high-end, I am an e-sports gamer,
⏹️ ▶️ John I don’t care what it looks like, I just want everything to be as fast as possible.
⏹️ ▶️ Marco pretty much every LCD Apple has shipped in recent memory has been IPS.
⏹️ ▶️ John Yeah, because it looks the best, right? And I’m not a competitive, you know, not a professional gamer. I’d rather
⏹️ ▶️ John have it look good when I’m playing. I want okay response time for that. So it’s 27 inch 4K IPS, right?
⏹️ ▶️ John So that’s exactly the size of monitor that I want and the kind of screen I want. It has local
⏹️ ▶️ John dimming, which means the backlight is not just one giant light that’s on all the time. The backlight has
⏹️ ▶️ John various zones and it turns off zones or turns them down depending on what parts the image are bright and what
⏹️ ▶️ John parts of the image are dark. As we’ve discussed in the past, local dimming is
⏹️ ▶️ John not ideal because if you have a star field behind each one of those pinprick stars they have to turn
⏹️ ▶️ John on a very large region of the backlight and so yes the star will be bright but also there’ll be like a little bit
⏹️ ▶️ John of a halo around the star that is also a little bit brighter than it should be because the portions
⏹️ ▶️ John the backlight is broken up into pretty big chunks. So it has 96 zones which is not that many zones.
⏹️ ▶️ John The Pro Display XDR has 275 modern monitors and modern TVs can have
⏹️ ▶️ John thousands of zones or thousands of LEDs anyway. I think we have tens
⏹️ ▶️ John of thousands of LEDs and maybe thousands of zones. Anyway, 96 zones is not a lot, right? In
⏹️ ▶️ John terms of HDR, it has these acronyms on monitors. Display HDR 600, which is,
⏹️ ▶️ John I don’t know, it’s like a marketing term or something, some spec that has to comply with. What it’s trying to say,
⏹️ ▶️ John kind of, is that the brightest things in an HDR scene will be 600 nits. As
⏹️ ▶️ John measured by testers, they can actually go up to like 700 nits. And that number might ring a bell because the Apple
⏹️ ▶️ John Studio Display goes up to 600 nits as well, although Apple does not call it HDR.
⏹️ ▶️ John It’s a little bit brighter than your average monitor, like what I’m looking at now on the XDR.
⏹️ ▶️ John In regular mode, where you’re just looking at the user interface, it maxes at 500 nits. It only goes
⏹️ ▶️ John to 1600 when it’s showing HDR content. Whereas I think the studio display
⏹️ ▶️ John does something similar, will still max at 500 for looking at the UI, but when you see something with an extended
⏹️ ▶️ John brightness, it will go up to 600. But anyway, all this is to say is that this monitor does
⏹️ ▶️ John not hit 1600 nits. It’s not super, super bright HDR, but it is a little bit brighter
⏹️ ▶️ John than your average monitor. It’s got 144 hertz refresh rate and also it can do lower
⏹️ ▶️ John refresh as well. Supports a variable refresh rate and G-Sync, So you
⏹️ ▶️ John can use it as a PC monitor as well. As a quote unquote, one millisecond response
⏹️ ▶️ John time, all of these gaming monitors have a mode where they will overshoot the intended value of the pixel and then back off a little bit
⏹️ ▶️ John to get a better response time. You can, I don’t have a good link for this, but if you
⏹️ ▶️ John Google for how LCDs work and how response time works, very often it is faster to go
⏹️ ▶️ John past the color that you want a pixel to be and then back off than it is go directly from color A to color B
⏹️ ▶️ John on a per pixel basis. and they call that overshoot. And various PC
⏹️ ▶️ John monitors will have settings where you can say how much overshoot do you want? Like, do you want the maximum response time at the
⏹️ ▶️ John cost of weird artifacts, right? Of like, briefly the image looks weird and then
⏹️ ▶️ John it’s hard to see, especially on video, what it’s actually doing, but you can choose. You can have it like not do any of that
⏹️ ▶️ John and have a slower response time, do a little bit of that and have a little bit faster, but they all wanna advertise a one millisecond
⏹️ ▶️ John response time of the pixels and to do that one millisecond, you really have to crank up the overshoot and it doesn’t look great. It
⏹️ ▶️ John has auto HDR tone mapping. This is another problem in the world of television and games.
⏹️ ▶️ John You’ve got these displays that can display some range of brightness from zero to 600 or maybe
⏹️ ▶️ John zero to 1600 nits. And then you’ve got content that’s mastered for some range of brightness
⏹️ ▶️ John that is different than that. Content can be mastered from one to 800 nits, one to 1000, one to 4000. There’s nothing
⏹️ ▶️ John out there that does 4000 nits, right? But some content is mastered to be, you know, from
⏹️ ▶️ John you know zero to four thousand nits and so tone mapping it has to map from
⏹️ ▶️ John what the content was mastered for and what the display is capable of and you can get into these weird situations
⏹️ ▶️ John where the monitor will be doing tone mapping but so will the PlayStation and the tone mapping will there’ll be double tone mapping and
⏹️ ▶️ John it’ll be all messy it’s a complicated situation so this one is a monitor from Sony that plugs into a Sony
⏹️ ▶️ John console and presumably they cooperate with each other so that only one of them does a tone mapping that it does it
⏹️ ▶️ John in a way that doesn’t look incredibly terrible and then And finally, the most important part of this entire product
⏹️ ▶️ John is the price. It is $900. And that might sound like a lot, but compared
⏹️ ▶️ John to $3,000, it is pretty good. So I feel kind of
⏹️ ▶️ John like this is the Apple Studio Display of the gaming monitors. It was a product where nothing
⏹️ ▶️ John like this existed, right? You could either pay $3,000 and get something that’s not really designed
⏹️ ▶️ John to be a gaming monitor, or you could pay $700 and get a gaming monitor that has none of
⏹️ ▶️ John the specs you want, Now there’s this $900 device that like the Apple Studio Display doesn’t have
⏹️ ▶️ John all the specs of the three thousand four thousand dollar things But it’s much better than
⏹️ ▶️ John the you know gaming monitors that didn’t care anything about You know the things
⏹️ ▶️ John that I care about how good does it look how bright does it get does it handle high refresh right? Because I didn’t want one of those monitors
⏹️ ▶️ John that sacrifices appearance for speed and those can be pretty expensive anyway, right
⏹️ ▶️ John The wildcard in this is the Dell Alienware OLED monitor but that’s a curved monitor
⏹️ ▶️ John it is not 4k it is not even 16 by 9 so it is not a good fit for the PlayStation at all
⏹️ ▶️ John I would love to see a that’s a QD OLED monitor by the way I would love to see a QD OLED monitor
⏹️ ▶️ John just like the Sony one and that product will you know be the real king
⏹️ ▶️ John of the gaming monitor space but for now I’m excited by the idea that Sony has put this
⏹️ ▶️ John product right in the middle where none existed before to say we have a pretty good monitor with pretty
⏹️ ▶️ John good specs that will absolutely work with your PlayStation for a reasonable-ish price.
⏹️ ▶️ John It looks way better than the monitors that cost less than it and it looks almost
⏹️ ▶️ John as good as monitors that cost thousands and thousands more. And the stand is a little weird but I think you can reason about it anyway.
⏹️ ▶️ John So the reason I want to talk about this is because I think there are parallels to the Apple Studio Display and I’m excited
⏹️ ▶️ John about it. I’m not gonna buy it because I’m buying too many expensive things right now and my my monitor is fine,
⏹️ ▶️ John but I’m glad that like, I mean, maybe they saw the Apple Studio display and said, we should introduce a
⏹️ ▶️ John thing that people wanted forever too. Or maybe nobody wants this except for me. But you know,
⏹️ ▶️ John another thing, they introduced a line of products. There is a cheaper monitor coming that is
⏹️ ▶️ John 1080p, 400 nits, 240 Hertz, and only $530. And that’s
⏹️ ▶️ John probably the one, and no local dimming at all. That’s probably the one that’s more like, well, if you don’t care about
⏹️ ▶️ John resolution You just want maximum response time by this thing, but this monitor Is very
⏹️ ▶️ John exciting to me, and I hope I’ll either Get something like it for my PlayStation 6
⏹️ ▶️ John or by then I’ll be able to get a QD OLED monitor and by the way the other thing for people who are wondering what they
⏹️ ▶️ John can game On televisions are getting smaller, which is an exciting exciting development We
⏹️ ▶️ John used to look every year like how much bigger televisions are getting but after a certain point It was
⏹️ ▶️ John hard to make television smaller, especially at 4k. Nobody wants a small TV. It’s hard to sell
⏹️ ▶️ John a small television. It used to be like 42 inch plasma. I was like, well, you have a giant TV.
⏹️ ▶️ John Try finding a 42 inch TV now. But coincidentally this year, one of the big stories
⏹️ ▶️ John is, I think it’s just LG. One of the OLED television manufacturers
⏹️ ▶️ John produced a 42 inch television and people were so excited because that’s so small. It’s kind of like the iPhone mini,
⏹️ ▶️ John right? They don’t want to put it in their pocket, but the smallest television you used to be able to get
⏹️ ▶️ John with good picture quality was like 55 inch and then LG came out with a 48 inch and people were
⏹️ ▶️ John using 48 inch OLED televisions as their quote unquote gaming monitor or sometimes as their PC
⏹️ ▶️ John monitor. They’d put it on the desk in front of them and they’d set the, it’s a 4K television, right?
⏹️ ▶️ John And they’d be using their PC attached to a giant television, which sounds kind of ridiculous, but
⏹️ ▶️ John OLEDs are actually pretty good and if you put the monitor far enough away so you can’t see the pixels, it’s actually pretty nice.
⏹️ ▶️ John And now they made a 42 inch one. And that television is essentially designed for people who want to use it as
⏹️ ▶️ John a gaming monitor on their desk. Still too big for me, not something that I would want to do, but the image quality
⏹️ ▶️ John on a 42 inch LG OLED television, it’s so much better than any of these gaming monitors.
⏹️ ▶️ John And the prices are reasonable-ish. It’s like, I don’t know, it’s under $2,000, right?
⏹️ ▶️ John But it’s 42 inches and every pixel is lit up individually and it does HDR like,
⏹️ ▶️ John you know, up to a peak of like 800, 900 nits or something like that. Has pretty amazing response time.
⏹️ ▶️ John It supports all the things. So, you know, if that interests you, be aware
⏹️ ▶️ John that that is the thing that’s happening. People are using televisions as gaming monitors and I don’t, you know, I don’t even know what to call it anymore. Is it
⏹️ ▶️ John a gaming monitor? Is it a TV? It’s technically a TV, but that’s not what it’s designed for. It even has feet, so they’re big enough
⏹️ ▶️ John so that you can put your mouse and keyboard underneath it when it’s on your desk. So yeah,
⏹️ ▶️ John if you’re in the market for something to use with your Xbox or PlayStation and you didn’t know
⏹️ ▶️ John if there’s anything decent to buy, check out this Sony thing. They also came out with some gaming headsets as well.
⏹️ ▶️ John They’re basically just like gamified versions of their noise canceling headphones that we were all talking about for using on plane flights
⏹️ ▶️ John back when we used to fly. Only they look like PlayStations and they have a bunch of gaming specific features and those look pretty neat too.
⏹️ ▶️ John Cool. You can get two of these and do all your computing on them, Casey. No. I mean, it is kind
⏹️ ▶️ John of like the Apple Studio Display. It’s got very similar specs. It’s better than the Apple Studio Display because it does high refresh
⏹️ ▶️ John and it has local dimming and your studio display doesn’t have any of those things.
⏹️ ▶️ Casey, John And it costs $1,600.
⏹️ ▶️ John it’s 5K, yes we know.
⏹️ ▶️ John, Casey Yes, exactly. Yep, that’s kind of a big deal.
⏹️ ▶️ Casey That’s kind of a big deal.
⏹️ ▶️ John I know, I know, I’m just saying, like the Apple studio display does fill this role, but we talked a lot about this. What is Apple gonna do?
⏹️ ▶️ John Surely if they want a monitor, it has to at least match the specs of the MacBook Pro. So Apple said, nope, it doesn’t.
⏹️ ▶️ John No, we’re good. Didn’t.
Sponsor: Linode
⏹️ ▶️ Marco We are sponsored this week by Linode, my favorite place to run servers. Visit
⏹️ ▶️ Marco linode.com slash ATP. See why Linode is so beloved by so
⏹️ ▶️ Marco many developers and users like me. So I run a lot of servers, you know, between ATP
⏹️ ▶️ Marco and my personal website and overcast. And there’s just, there’s so many servers.
⏹️ ▶️ Marco They run some like, like 30 instances. And I’ve used a lot of hosts in my time. And I’ve
⏹️ ▶️ Marco been with Linode the longest. I moved all my stuff there over time because it’s just the best. I’ve been with
⏹️ ▶️ Marco so many hosts that were like fine, but none of them were really great for this long and Leno just is so
⏹️ ▶️ Marco they have incredible services to offer. They have you know, all these compute instances, basic
⏹️ ▶️ Marco ones specialized things like GPU compute or high memory. They have all these advanced other services
⏹️ ▶️ Marco like block storage, Kubernetes, their upcoming bare metal release, and they recently launched
⏹️ ▶️ Marco managed databases for MySQL, Postgres and Mongo. And they’re
⏹️ ▶️ Marco even doing Redis later this year. These are simple, reliable, managed databases, high performance
⏹️ ▶️ Marco database clusters, they take care of a whole bunch of stuff for you. So it’s just an amazing product. And all this is backed
⏹️ ▶️ Marco at Linode by amazing support if you need it. So with other hosts, sometimes you know, you file
⏹️ ▶️ Marco a ticket, maybe they get to it eventually. And then the person gets to it’s like, Oh, I don’t know how to fix this. I let me
⏹️ ▶️ Marco escalate it. That doesn’t happen with Linode, they respond quickly. And the person who responds can help you. There’s no
⏹️ ▶️ Marco like weird tears to go through or anything like that. And all this is brought to you at an incredible value.
⏹️ ▶️ Marco This is why I’ve been with them for so long. Not only is all this stuff great, they’re also really cheap, like
⏹️ ▶️ Marco for what you get, it’s a great value. So see for yourself, see what you can get at Linode. It’s a great
⏹️ ▶️ Marco host to run servers, visit linode.com slash ATP, create a free account and you get
⏹️ ▶️ Marco $100 in credit. Once again, linode.com slash ATP, new accounts get $100 in credit. Thank
⏹️ ▶️ Marco Thank you so much to Linode for hosting all my servers and for sponsoring our show.
#askatp: Insomni-Mac
⏹️ ▶️ Casey Alright, let’s do some Ask ATP
⏹️ ▶️ Casey and Radu Pirozka writes, my iMac randomly wakes from sleep. The only thing plugged in is
⏹️ ▶️ Casey the Ethernet cable. I’m using the Apple keyboard and Apple mouse, which I started turning off when I put the computer to sleep.
⏹️ ▶️ Casey All energy saver options are set to solve this. Problem still appears. Help! So
⏹️ ▶️ Casey what does Radu do?
⏹️ ▶️ Marco So John’s going to have the right answer, but my random guess at the answer is
⏹️ ▶️ Marco either wake on LAN, some kind of network thing, or it
⏹️ ▶️ Marco could be like, Apple has various things, like it used to be called PowerNap, I don’t know what the
⏹️ ▶️ Marco current version of all this stuff is, things where the system will wake itself up to do certain tasks
⏹️ ▶️ Marco or check updates for things, and maybe that’s waking up for that reason,
⏹️ ▶️ Marco and something is going wrong in that process where it then wakes the whole computer up for some reason. My
⏹️ ▶️ Marco third guess is USB devices. Anything plugged into USB
⏹️ ▶️ Marco seems to be able to do weird things to computers when it doesn’t work right And maybe this
⏹️ ▶️ Marco is one of those weird things that
⏹️ ▶️ Casey all but supposedly only Ethernet is plugged in
⏹️ ▶️ Marco Oh, yeah, the only thing plugged in. Yeah. Hmm.
⏹️ ▶️ Marco, Casey Oh, wait, what about
⏹️ ▶️ Casey, Marco land wake on land? Yeah, so you’re saying yeah
⏹️ ▶️ Marco, Casey some kind of
⏹️ ▶️ Marco like yeah, it could be wait I mean, I I don’t know how we can land ever worked. I don’t know
⏹️ ▶️ Marco, John what that is
⏹️ ▶️ John No works as I have it turned off on the machines. I don’t want it to work on It’s
⏹️ ▶️ John, Marco real important
⏹️ ▶️ John that it be turned off.
⏹️ ▶️ Marco All right So John, as the only one of us I think that actually uses sleep on a regular basis on their computer,
⏹️ ▶️ John Are you shutting down? What are you not using sleep for?
⏹️ ▶️ Marco Well, I’m like, I throw the mouse in the corner, which is my hot corner to turn the display off, and then I walk away.
⏹️ ▶️ John all right, anyway. I do sleep on my computer. I have experience, not with this particular computer,
⏹️ ▶️ John but in my many years, I have lots of experience battling sleep-like things. And Mark will cover most of the bases. Like the
⏹️ ▶️ John procedure you go through is like, oh, just removing all the peripherals to eliminate sources of, you know, what could
⏹️ ▶️ John possibly be causing it, and you end up in the Mac OS 10 days, you end up looking in the console log,
⏹️ ▶️ John because every time your Mac wakes, it will have a wake reason and it will list it and you try to correlate that. And it’s just
⏹️ ▶️ John this debugging process I’ve done many times. I remember doing like my Power Mac G5, which has lots of weird issues
⏹️ ▶️ John with this. And I would eventually find what it is. Oh, it’s this USB hub. Oh, it’s this one app doing this thing.
⏹️ ▶️ John You know, there’s this thing where you can use in the command line to see what’s taking power assertions to stop it from sleeping, what’s waking it
⏹️ ▶️ John up. Luckily, you don’t have to go through all that stuff that I just described because there is a cool new
⏹️ ▶️ John app called Sleep Aid that is entirely, I mean, believe, this is kind of a condemnation of Mac,
⏹️ ▶️ John of Apple’s operating system, but the entire purpose of this app is to figure out what the hell is going on
⏹️ ▶️ John with your Mac and sleep. So you leave this app running all the time and it does what
⏹️ ▶️ John I was just describing and puts a GUI on it. It’s always watching the console. It’s always checking what has power assertions.
⏹️ ▶️ John It does amazing amount of stuff. I don’t know if it will solve your sleep problem, but I can tell you
⏹️ ▶️ John when I saw this app, I’m like, they made an app to do that stuff I was doing and it looks great.
⏹️ ▶️ John If I had a sleep problem, this is the first thing I would try because trying to describe to someone how
⏹️ ▶️ John they can like try to debug this themselves, it’s impossible, but you can just say, try this app, maybe
⏹️ ▶️ John it will help. The app itself is also complicated. Don’t think this is a simple app, it is also very complicated and
⏹️ ▶️ John you have to, looking at the app and figuring out what it’s trying to tell you and what action you can
⏹️ ▶️ John take may be difficult, but it’s better than the alternative. So that’s my suggestion, check out Sleep
⏹️ ▶️ John Aid and if that doesn’t work, disconnect everything from your computer forever and if that doesn’t work, get a new computer.
⏹️ ▶️ Casey I’ve noticed that on my otherwise almost flawless MacBook Pro, it will,
⏹️ ▶️ Casey every two or three days, it’ll just decide to reboot itself for reasons. And I haven’t spent
⏹️ ▶️ Casey the time to debug this yet, but I remember seeing the little dialogue that pops up, you know, it’s Marco’s favorite,
⏹️ ▶️ Casey your computer was shut down because of a problem. But anyways, in the
⏹️ ▶️ Casey, Marco dialogue pops up. No, my favorite is
⏹️ ▶️ Marco the one that says, you shut down your
⏹️ ▶️ Marco, Casey computer because it’s like, I sure didn’t. Right, right.
⏹️ ▶️ Casey So anyway, so I’ve seen like a watchdog timeout of like 120 seconds for something. I can’t remember
⏹️ ▶️ Casey off some of it. That’s the one you
⏹️ ▶️ Casey, John time. Yeah, so
⏹️ ▶️ Casey I really would love to know why this is happening. And every time I submit the report and every time I write,
⏹️ ▶️ Casey what is your comment for this report? I was asleep when this happened. The computer was sitting idle or sometimes
⏹️ ▶️ Casey the computer was in the midst of shutting down and or rebooting, which is also a time when I get this on next boot, which is super
⏹️ ▶️ Casey fun. But anyway, I need to try to figure out what that is. So if you’ve had
⏹️ ▶️ Casey a similar problem and you have a fix you wanna let me know about, please let me know.
⏹️ ▶️ John So in the chat room is saying, how just sleeping in your computer is a recipe for disaster. Let me tell you, I’ve been using computers this
⏹️ ▶️ John way ever since the dawn of sleep. I do not shut down my computer. When I’m done
⏹️ ▶️ John, Casey using it, when I’m done using it for the day,
⏹️ ▶️ John I put it to sleep. And then when I use it again in the morning, I wake it up. Sleep and wake are great. I have some other
⏹️ ▶️ John computers that never sleep because they’re like servers, they’re running Plex, they’re doing all sorts of other stuff, right? But my
⏹️ ▶️ John main computer, I always put to sleep. that should not be a problem and in general, it is not. Occasionally it
⏹️ ▶️ John has been, again, my Power Mac G5 back in the day had real sleep problems and I think laptops in particular
⏹️ ▶️ John have all sorts of sleep problems. But for desktop computers, the only time I should ever have a problem with this
⏹️ ▶️ John or the only thing that should kill my uptime is software updates. When I have to update the operating system, that’s when I reboot. And
⏹️ ▶️ John in practice, that’s pretty much how it works. Like I only restart if I’m restarting
⏹️ ▶️ John into Windows to play a Windows game or something, or if there’s a software update.
⏹️ ▶️ John There’s nothing inherent in computers that says oh you have to shut down everyone So I’ll clean everything out if the operating
⏹️ ▶️ John system is working and yes, maybe if you have 96 gigs of RAM like I do Everything should be fine and in
⏹️ ▶️ John practice it is so, you know again, I don’t vouch for laptops but
⏹️ ▶️ John I don’t think it’s a good decision to think that That’s never gonna work. So I shouldn’t
⏹️ ▶️ John try it. It should work and it does work the majority of the time. Maybe it’s 51% I
⏹️ ▶️ John don’t know what the worldwide percentage is but as far as I’m concerned, I will battle my computer until
⏹️ ▶️ John that is the case if I have to. That’s why I have all this experience fighting weird sleep things, right? If I’m waking up
⏹️ ▶️ John and stuff like that. In fact, like I said, now I do, I sleep my thing every night. I have stuff scheduled
⏹️ ▶️ John to wake it up in the middle of the night to do local time machine backups and super duper clones, and then it goes back to sleep.
⏹️ ▶️ John So when I come in the morning, my computer is asleep, but it did stuff usefully during the night, and yes, that’s
⏹️ ▶️ John a feature that the Mac has where you can schedule.
⏹️ ▶️ John, Marco Got up, went to
⏹️ ▶️ John schedule wake times. You can tell it you wake up at this time and then go back to sleep at this time. And of course,
⏹️ ▶️ John when it wakes up, I have these little programs that run. They’re just Perl scripts that do a bunch of stuff from those scripts. You can
⏹️ ▶️ John then tell it to go back to sleep when it’s done. Like that’s what my computer does all the time. And
⏹️ ▶️ John it’s fine. Like it does not it does not cause any problems. It shouldn’t cause problems. If you have a weird laptop and
⏹️ ▶️ John it does, I’m sorry, you get a desktop.
⏹️ ▶️ Marco I have so many problems with my 13 inch now. I 14 excuse me. Now it’s 14. Oh, my God.
⏹️ ▶️ Marco Like, I have to reboot it every few days for some weird thing.
⏹️ ▶️ Marco Usually it’s like, that is my FaceTime laptop when we
⏹️ ▶️ Marco do our workouts. Most of the time, if I haven’t rebooted it in a few days,
⏹️ ▶️ Marco it just won’t ring for the FaceTime call. Like, the FaceTime call will not come into it for some reason.
⏹️ ▶️ Marco And I have to reboot it for it to receive FaceTime calls reliably. So, that’s
⏹️ ▶️ Marco part of my routine now. It’s like, every Monday, Wednesday, and Friday, I right before the workout I reboot my laptop
⏹️ ▶️ Marco because otherwise it’s not reliable. That’s the same one that a few weeks
⏹️ ▶️ Marco ago it started occasionally not accepting power or charging input
⏹️ ▶️ Marco sometimes until I power it off and power it back on again. It’s
⏹️ ▶️ Marco having a fun time. Spoiler alert I ordered a MacBook Air in part
⏹️ ▶️ Marco because I want to send that laptop in for service and I want to have something I can use as a spare in the meantime
⏹️ ▶️ Marco because right Right now I basically have no spares. I need a spare for both reasons like that,
⏹️ ▶️ Marco and also I want something I can run the beta on. And as a podcaster, not only am I obligated
⏹️ ▶️ Marco to buy everything Apple releases so I can quote talk about it, but also as a podcaster I’m required
⏹️ ▶️ Marco not to use a beta version of Mac OS on any computer I ever need to use to record podcasts.
⏹️ ▶️ Marco And so I need a spare.
⏹️ ▶️ John got Ventura, but it’s on an external disk. That’s the other reason I reboot. I looked at all my uptime notes and I realized when did I
⏹️ ▶️ John reboot? Oh, I was rebooting Adventure. to look at stuff before last week’s show.
#askatp: Phone-number changes
⏹️ ▶️ Casey Some guy writes, what do you guys do when someone changes a phone number? I used to delete them, but if I
⏹️ ▶️ Casey ever search my past conversation, those messages show up as a phone number without a name. I guess this makes sense
⏹️ ▶️ Casey since I deleted the number from my friend’s contact, it’s no longer associated with their name. Since then, I used to keep two versions of a contact,
⏹️ ▶️ Casey one mark deprecated so I wouldn’t lose our old conversations. However, iOS is so suggestive about merging
⏹️ ▶️ Casey contacts now that I can’t do this anymore. I’ve tried labeling phone numbers as old phone, but I was sometimes sends the message to
⏹️ ▶️ Casey the old phone. For months, I thought my mom didn’t reply to my text messages. Turns out I was messaging her
⏹️ ▶️ Casey old phone. Is there a way to fix this without losing all the old messages I have with my mom? I got to be honest with you,
⏹️ ▶️ Casey I’ve never had this problem when somebody changes a phone number, which almost never happens anymore. I change their phone
⏹️ ▶️ Casey number in the contact and I have never run into an issue. Am I missing
⏹️ ▶️ John something? I’ve run into this all the time, not just with phone numbers. It’s a practice. I feel the same way.
⏹️ ▶️ John Like, so I have, even for myself, just forget about contacts just for myself, the me contact as they call
⏹️ ▶️ John it, right? Which everyone has screwed up on their phone, by the by the way, if you ever look at someone’s phone and realize their me contact is nonsense and they have a separate
⏹️ ▶️ John contact for themselves. Anyway, I’ve had many email addresses
⏹️ ▶️ John over my life and I feel like the way contacts should work is I should
⏹️ ▶️ John be able to put every email address I’ve ever had in contacts so that when I’m looking
⏹️ ▶️ John at mail or something like that, if there’s some email from decades ago, it knows that it was me because it says,
⏹️ ▶️ John oh, this email address of this company you used to work for.com. Yeah, that’s you. it’s you because
⏹️ ▶️ John that address is in your contacts. But I would like to be able to tell contacts is, hey, these
⏹️ ▶️ John are the addresses that I’m using now in priority order, and then these are my old
⏹️ ▶️ John addresses. That doesn’t seem like rocket science, but contacts on Apple’s platforms has no
⏹️ ▶️ John idea about that. You can set them to home or work or old phone or other, like I have
⏹️ ▶️ John no idea for instance, when I type in A-L-E, I try to auto-complete Alex to message him,
⏹️ ▶️ John it always offers me his phone number. And yeah, you can tap through it and pick like his iCloud email
⏹️ ▶️ John address or so I can do message or whatever. But it just makes me do that every time other people. It suggests
⏹️ ▶️ John their email address. Very often when people are messaging me and in their contacts, they have five of my email addresses
⏹️ ▶️ John plus my phone number. What does this suggest to them? This is just my phone number. This is just one of my email addresses. If so, which
⏹️ ▶️ John email address? I have no idea how contacts is choosing between these things. Please, Apple, in
⏹️ ▶️ John your contacts, a let us mark addresses is like old for historical reasons, just so
⏹️ ▶️ John we can continue to associate them with our name correctly. And B, let us prioritize the order. Primary
⏹️ ▶️ John email, secondary email. I know you can label the home at work, but that apparently means nothing because I have no idea how it picks.
⏹️ ▶️ John Why does it pick a phone number for my son, but the email address for my daughter? They both have phone numbers and email addresses. How is it picking?
⏹️ ▶️ John If I keep repeatedly manually picking email address, we’ll eventually learn? I doubt it.
⏹️ ▶️ John Very frustrating. I feel this pain. And to answer the question, no, I don’t delete them. I leave them in there because it annoys
⏹️ ▶️ John me if I go through some old email and it doesn’t have my name associated with that anymore. It should know that I used to work at
⏹️ ▶️ John oldcompany.com forever and I don’t understand why I should have to lie to it and delete that and have
⏹️ ▶️ John it not know that those email addresses belong to me anymore.
#askatp: Leave Twitter?
⏹️ ▶️ Casey Carl Rosas writes, with all the talk about Twitter recently, and I should add that this was sent in a
⏹️ ▶️ Casey couple of months back, I’m just curious, what would it take for you to stop reading Twitter regularly? What would it take for you to stop posting
⏹️ ▶️ Casey to Twitter regularly? What alternatives would you consider? I am addicted
⏹️ ▶️ Casey, Marco health site and there’s
⏹️ ▶️ Casey nothing you could take over my cold, dead hands. Now, I honestly don’t know. I really don’t. It’s a reasonable question
⏹️ ▶️ Casey to which I don’t have a good answer. I’m sure some way, somehow, there could be something that breaks
⏹️ ▶️ Casey that causes me to stop using it. But honestly, as awful as Twitter
⏹️ ▶️ Casey can be, it’s also kind of amazing. It sounds like SwiftUI. So SwiftUI is like Twitter. That’s the takeaway from
⏹️ ▶️ Casey today’s episode, everyone.
⏹️ ▶️ Casey, Marco SwiftUI is way better than Twitter.
⏹️ ▶️ Casey But I don’t know. I feel like I post considerably less often
⏹️ ▶️ Casey than I used to, which is probably healthy and good. But I don’t know. I still
⏹️ ▶️ Casey interact with friends on Twitter. I still get almost all my news from Twitter, which is again probably
⏹️ ▶️ Casey not healthy. I don’t know. There’s nothing that I’ve found that has effectively
⏹️ ▶️ Casey replaced it. I think there are alternatives
⏹️ ▶️ Casey I could and would turn to, like micro.blog, but I don’t know. I
⏹️ ▶️ Casey can’t wean myself off of it no matter how hard I try.
⏹️ ▶️ Marco I’ll start with the end of the question and work backwards. What alternatives would you consider?
⏹️ ▶️ Marco This is kind of the key for me because we’ve seen alternatives to Twitter pop up here
⏹️ ▶️ Marco and there over the years. Most notably, I think, was app.net. And now there’s Mastodon and stuff like that.
⏹️ ▶️ Marco You mentioned microblog. I think it’s not quite an alternative. It’s kind of a different thing, but it’s in the ballpark,
⏹️ ▶️ Marco I think. But ultimately, the ones that are more direct replacements like Mastodon and formerly app.net,
⏹️ ▶️ Marco the reason why app.net didn’t work and why I think Mastodon is always going to be kind of a specialty
⏹️ ▶️ Marco thing and not really ever a mass market thing or a replacement for Twitter in almost any way for almost anybody
⏹️ ▶️ Marco is that the network effect is very strong with this kind of thing and
⏹️ ▶️ Marco you don’t really want to leave a social network for a much much much smaller
⏹️ ▶️ Marco one for most reasons now sometimes you do want that sometimes you want like a small
⏹️ ▶️ Marco group kind of thing but usually when you want something to be smaller usually you want to be
⏹️ ▶️ Marco private. And so when you think about alternatives to Twitter,
⏹️ ▶️ Marco for me I’ve I have greatly reduced my Twitter usage in recent years in part
⏹️ ▶️ Marco because it’s a hellscape and I’ll get to that in a second but but also in part because I’ve
⏹️ ▶️ Marco been spending so much more time in private slack and iMessage groups and
⏹️ ▶️ Marco I’ve been putting more stuff in other social networks like Instagram that are kind of more like
⏹️ ▶️ Marco more what I’m going for at that moment. I don’t post on TikTok. I do
⏹️ ▶️ Marco occasionally watch TikTok, but I don’t participate in it as a social network
⏹️ ▶️ Marco in terms of producing. So I’m only really producing stuff on Twitter and Instagram.
⏹️ ▶️ Marco And I’ve never used Snapchat. I don’t think they would let me, I think I’m too old. And even if they did, I wouldn’t know how to
⏹️ ▶️ Marco use it. Like I barely understand how to use Instagram at this point. because anyway,
⏹️ ▶️ Marco so I think what Twitter,
⏹️ ▶️ Marco the role Twitter has that I think would be hard for me to replace it is in
⏹️ ▶️ Marco promoting stuff I do and getting good questions answered
⏹️ ▶️ Marco from, if I have a question like, hey, why doesn’t this thing work in SwiftUI? I know I can post it on Twitter
⏹️ ▶️ Marco and I can probably get an answer to that. Or when something is happening right now and I wanna
⏹️ ▶️ Marco know about it, that’s a place I know that I can go and get updates constantly flooding in. Now, that being
⏹️ ▶️ Marco said, in my time at Tumblr, I would occasionally hear people complain
⏹️ ▶️ Marco like, oh, Tumblr’s really mad today. And what that meant was
⏹️ ▶️ Marco the people I follow on Tumblr are posting really mad things right now. But that’s a very
⏹️ ▶️ Marco different thing than the entire service. The people you choose to follow
⏹️ ▶️ Marco and correspondingly what you choose to post. You know, people often complain
⏹️ ▶️ Marco that they’re in traffic. They don’t usually complain that they are traffic. You know, when you
⏹️ ▶️ Marco say like, Twitter’s only mad right now, well if you’re posting getting all mad or retweeting everyone else’s mad stuff, you’re also part of that.
⏹️ ▶️ Marco Anyway, so backing that up a second, Twitter, when we say like, you know, Twitter is
⏹️ ▶️ Marco negative or upset or dangerous or whatever, usually what we’re talking about is
⏹️ ▶️ Marco what we’ve chosen to follow on Twitter. And that’s mostly within our control. Now,
⏹️ ▶️ Marco Twitter’s a little bit different in the sense that stuff that you post very easily spreads to
⏹️ ▶️ Marco other people who maybe you didn’t want necessarily for it to spread to, and
⏹️ ▶️ Marco you can get like piled on from someone else’s audience if they retweet your thing and they have a terrible audience.
⏹️ ▶️ Marco That happens a lot, you know, especially around things like electronic currency
⏹️ ▶️ Marco and electronic car makers. In general, Twitter is for the most part what
⏹️ ▶️ Marco you choose to follow. It is what you’re choosing to look at. And
⏹️ ▶️ Marco you can say, like, oh, I have to keep up with the news, you know, like all this stuff going on with politics and world
⏹️ ▶️ Marco events. And it’s like, I have to watch this stuff. Well, you actually don’t. It is fully within your control.
⏹️ ▶️ Marco If you are being brought down and burnt out and made angry all the time
⏹️ ▶️ Marco by the political stuff you’re seeing on Twitter, you can just unfollow those people.
⏹️ ▶️ Marco If for political reasons, maybe you can’t unfollow them, mute them. You can mute them forever. You can mute them for
⏹️ ▶️ Marco a month and revisit them. If you use certain clients with more advanced options, especially
⏹️ ▶️ Marco Twitterific is really good for this. Twitterific has the muffle feature and the mute feature. Tweetbot has
⏹️ ▶️ Marco a bunch of advanced muting features as well. So you can actually mute or muffle topics
⏹️ ▶️ Marco or keywords or regular expressions. And so you can customize this experience to
⏹️ ▶️ Marco to not see the things you really don’t want to see, or to minimize them, or to
⏹️ ▶️ Marco get rid of the most egregious offenders. Most of the problem people have with Twitter
⏹️ ▶️ Marco is more a problem in the reading sense. The writing sense is a little bit different, but in the reading
⏹️ ▶️ Marco sense, when you have a problem reading Twitter, that’s usually because the people who you’re following,
⏹️ ▶️ Marco it’s not making you feel good to read their stuff, or it’s a burden on your mind, or
⏹️ ▶️ Marco it’s too invasive in your life. And you can just unfollow those people or mute them or
⏹️ ▶️ Marco go a different direction. You don’t have to worry about making people feel bad. They’re not watching, they don’t care. If you unfollow
⏹️ ▶️ Marco somebody who knows you, chances are they’ll never know. Unless they use one of those really sad services
⏹️ ▶️ Marco that alerts them when people unfollow them, in which case, you don’t need that person in your life.
⏹️ ▶️ Marco And again, you can also just mute somebody forever if you really quote, can’t unfollow them.
⏹️ ▶️ Marco But make it what you wanna see. So if you’re seeing too much negativity, which that’s
⏹️ ▶️ Marco where I am. I wanna follow almost no world news right now. And so I just
⏹️ ▶️ Marco don’t, and it’s fine. I’m not a Twitter completionist, and I don’t read
⏹️ ▶️ Marco most of my timeline. So normally, I’ll read all my mentions, and then on
⏹️ ▶️ Marco my main timeline, I’ll just scroll to the top and read some stuff here and there. I’m not seeing most of it. That’s
⏹️ ▶️ Marco it, it’s fine. Now on the writing side again, on the writing side, it’s very easy to step
⏹️ ▶️ Marco on a landmine without even realizing it on Twitter and have the whole world explode at you.
⏹️ ▶️ Marco And so if you are concerned about that, then you probably should be if
⏹️ ▶️ Marco anybody sees your tweets, if you have any followers at all, or if somebody might retweet them who does have followers.
⏹️ ▶️ Marco If you’re concerned about having the world explode at you, don’t write anything of substance.
⏹️ ▶️ Marco Like don’t write anything on there that is supposed to be a joke, Maybe it’s a little
⏹️ ▶️ Marco subtle. Don’t write anything on it that’s controversial. Don’t write about current
⏹️ ▶️ Marco controversial events or news. All the negativity there is very easy to avoid.
⏹️ ▶️ Marco Just don’t post. And if you insist on posting, then keep
⏹️ ▶️ Marco to tech stuff, technical questions. Hey, what’s with SwiftUI these days? That kind
⏹️ ▶️ Marco of stuff. Don’t engage in the really violent politics
⏹️ ▶️ Marco and stuff like that. You know, the world provides an infinite supply of awful news
⏹️ ▶️ Marco and awful people doing awful things. You don’t have to feed into it. You don’t have to read it all. Like, you’re not doing
⏹️ ▶️ Marco any, like, you know, civic justice or doing your civic duty
⏹️ ▶️ Marco by reading every single bit of bad commentary about every bad thing that happens in the world. You know, you don’t need to do that.
⏹️ ▶️ Marco That’s not your job. And if it’s better for your mental health to not be part of that,
⏹️ ▶️ Marco just don’t be part of that. It’s easier said than done sometimes. But, so,
⏹️ ▶️ Marco what it would take for me to leave Twitter would be if that stopped being possible.
⏹️ ▶️ Marco That if it stopped being possible for me to get only what I wanted
⏹️ ▶️ Marco out of it and not more. Now, I have already left Twitter partially,
⏹️ ▶️ Marco as I mentioned earlier, in the sense that like, if I have some funny joke to say, or well, if I have
⏹️ ▶️ Marco something I think might be funny to say, I tend to say that kind of stuff privately these days because this
⏹️ ▶️ Marco is not a good time for humor. Everyone’s very sensitive about everything and I don’t want to accidentally step on a landmine and
⏹️ ▶️ Marco have my entire world explode. So, stuff like fun jokes between friends. You know what, Twitter’s
⏹️ ▶️ Marco no longer a fun place, so I’ll just, I’ll say that in private channels.
⏹️ ▶️ Marco Or stuff that’s a little bit more personal, about hey, here’s what my family’s doing these
⏹️ ▶️ Marco days. That’ll probably go on Instagram because I have a more family and
⏹️ ▶️ Marco real life audience over there, so that’s probably what would go there. But
⏹️ ▶️ Marco I’m still using Twitter, I’m just using it more for like work stuff. And that’s fine,
⏹️ ▶️ Marco and when you’re using it for work stuff, it’s fairly boring
⏹️ ▶️ Marco in a good way. So as long as it’s still possible for me to use it for work
⏹️ ▶️ Marco stuff, and it is still beneficial for my work to do that, I’m gonna keep using it.
⏹️ ▶️ John What would it take for me to stop reading? I mean, it’s simple, would have to be not delivering value for me,
⏹️ ▶️ John which is a businessy phrase or whatever. It was just like what Margo said, like there are things I get from Twitter and
⏹️ ▶️ John if I could no longer get them or didn’t get them from Twitter, I would stop.
⏹️ ▶️ John It’s, you know, I’m doing what most people do. It’s not like a very complicated decision. It’s like, is this a thing
⏹️ ▶️ John where, do I find this valuable? And yes, I find Twitter tremendously valuable. Now, Margo
⏹️ ▶️ John was saying is like, then the reason everyone complains about Twitter is all that advice you gave about like,
⏹️ ▶️ John you know, being careful what you say and avoid saying certain things or whatever to the extent that you have to do
⏹️ ▶️ John that and to the extent that the the possible blowback from being too loose
⏹️ ▶️ John is disproportionate, that’s why people think Twitter is a bad place to be because you don’t want it to feel
⏹️ ▶️ John like a hostile environment where you have to be very careful that someone doesn’t retweet
⏹️ ▶️ John your thing into some section of the internet that would otherwise not know you exist but suddenly
⏹️ ▶️ John decides to dogpile you, right? Right. Uh, and Twitter, the company has
⏹️ ▶️ John been trying to fight against that for a while, uh, with varying degrees of success.
⏹️ ▶️ John But that, you know, so that I I’m going to say, I’m not saying that just because I find Twitter valuable, it doesn’t have problems. It absolutely
⏹️ ▶️ John has problems, right? And the design of the network has at various times exacerbated or help with those problems and leadership
⏹️ ▶️ John can really help solve them. But, uh, I do feel like having been on Twitter for
⏹️ ▶️ John so long now, I have built up a lot of value there in terms of the people
⏹️ ▶️ John who I follow and who follow me, like that didn’t happen just overnight, right? Took whatever it is,
⏹️ ▶️ John a decade and a half or however long I’ve been on Twitter, to get that balance right.
⏹️ ▶️ John And the people who follow me are a big part of that value. Whatever I’ve done to make them follow
⏹️ ▶️ John me, they do see my tweets and sometimes they respond, and that is very valuable to me. And that’s not something
⏹️ ▶️ John you can kind of get overnight. So I would never want to give that up unless Twitter became unvaluable to me, but I do
⏹️ ▶️ John want to acknowledge that that’s not easy. It’s not easy to get to that point and it kind of sucks
⏹️ ▶️ John that you have to be so aware of the slightly hostile environment. In some ways Twitter is also a reflection
⏹️ ▶️ John of the current of the world, right? And if the world is in a crappy situation then so is Twitter and that kind of makes sense,
⏹️ ▶️ John right? And that’s part of the beauty of Twitter is that it is actually a bit of a
⏹️ ▶️ John less filtered mirror of what people are thinking or let’s put it this
⏹️ ▶️ John way, voices that you otherwise would never have heard before. Whether they be directly talking
⏹️ ▶️ John to a celebrity or talking to some person in a marginalized group you would never encounter
⏹️ ▶️ John and would have no idea what their perspective is, Twitter allows you to make those kinds of connections.
⏹️ ▶️ John But of course, Twitter can also be exploited by bad actors to magnify their bad effects as well. So
⏹️ ▶️ John it’s the blessing and the curse of Twitter overall. In my life, Twitter is a huge net positive, but I
⏹️ ▶️ John feel like across the entire world, It’s the jury’s
⏹️ ▶️ John still out. It’s definitely closer to 50-50 about the harm caused by Twitter and the value.
⏹️ ▶️ John I still lean more towards the value because I feel like being able, giving a voice to people who didn’t have one
⏹️ ▶️ John is probably a more than offsets the
⏹️ ▶️ John giving a bad actor yet another tool for them to be bad because bad actors will always find a way
⏹️ ▶️ John to be bad. They’ll invent their own outlet if they have to see Fox News. So Twitter is not entirely
⏹️ ▶️ John to blame for that but I do enjoy the things I get out of Twitter that I did not
⏹️ ▶️ John get before Twitter, did I get anywhere really, and I still find value
⏹️ ▶️ John in that. And what alternatives would I consider? Like Marco said, it’s like, you know, it’s the network effect, like this
⏹️ ▶️ John network I’ve built up on Twitter, I would have to rebuild that elsewhere, and that is even assuming everybody, quote
⏹️ ▶️ John unquote, everybody would agree to go to that elsewhere. The alternatives that most people
⏹️ ▶️ John have both considered and used are very tiny subsets of Twitter, like a private Slack or a discord
⏹️ ▶️ John or, you know, a big I message group or whatever, those are not replacements
⏹️ ▶️ John for Twitter. Those are alternatives to Twitter, but it’s easy to get them up and running because you just need a handful of people in them.
⏹️ ▶️ John But there’s, you know, to get something like Twitter, you’d have to, you know, somehow
⏹️ ▶️ John get all those people to move over to the other thing or make Twitter go away or Twitter makes itself so bad that everybody leaves and
⏹️ ▶️ John go somewhere else. But we’re not there yet.
⏹️ ▶️ Marco And we’re not talking about that guy who, you know, we’re not talking about that because
⏹️ ▶️ John We’ll talk about that if it ever comes to some
⏹️ ▶️ John of conclusion, probably in a humorous after show.
⏹️ ▶️ Marco Just F that guy. And I hope he loses big. I hope he has to pay them a billion dollars. He deserves it. Anyway,
⏹️ ▶️ Marco thank you to our sponsors this week, Linode, Hover, and the Stack Overflow podcast.
⏹️ ▶️ Marco And thank you to our members who support us directly. You can join at atp.fm slash join. I mean, we’ll talk to
Ending theme
⏹️ ▶️ John 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
⏹️ ▶️ John wouldn’t let him Cause it was accidental,
⏹️ ▶️ Casey oh it was accidental And you can find the show
⏹️ ▶️ John And if you’re into Twitter,
⏹️ ▶️ Marco you can follow them at C-A-S-E-Y-L-I-S-S
⏹️ ▶️ Marco So that’s Casey Liss, M-A-R-C-O-A-R-M-E-N-T
⏹️ ▶️ Marco Marco Armin, S-I-R-A-C-U-S-A
⏹️ ▶️ John Syracuse, it’s accidental
⏹️ ▶️ Casey It’s accidental They
⏹️ ▶️ John didn’t mean to Accidental Accidental Tech
Neutral: Subscription seat-heaters
⏹️ ▶️ Casey Since we’re apparently in a really good mood tonight, let’s talk about something that I’m super excited
⏹️ ▶️ Casey about. And by excited, I mean I find to be disgusting. BMW is charging seat
⏹️ ▶️ Casey heater subscriptions in some parts of the world.
⏹️ ▶️ Casey reported in many places, but this includes the Verge. We’ll put a link in the show notes. The Verge
⏹️ ▶️ Casey writes, a monthly subscription to heat your BMW’s front seats costs $18, with options to subscribe for a year at $180,
⏹️ ▶️ Casey three years at $300, or pay for unlimited access for $415.
⏹️ ▶️ Casey Other features that BMW is locking behind subscriptions, as per the company’s digital UK store, include heated
⏹️ ▶️ Casey steering wheels from $12 a month, the option to record footage from your car’s cameras, priced at $235 for unlimited use, and
⏹️ ▶️ Casey the iconic SoundSport package, which lets you play engine sounds in your car for a one-time fee of $117. In the latter case,
⏹️ ▶️ Casey BMW notes that, quote, The hardware for this feature has already been installed
⏹️ ▶️ Casey in your vehicle during production at no extra cost. How generous.
⏹️ ▶️ John The thing that blows me away about this are the prices. $18 a month
⏹️ ▶️ John for seat heaters, $12 a month for heated steering wheel.
⏹️ ▶️ John Like I know these are expensive vehicles and their whole strategy, which they come out and say, I think Mercedes person just came
⏹️ ▶️ John out and say it. It’s like, look, these prices are below the notice of the people who buy our cars because they have a lot of money. But just,
⏹️ ▶️ John you know, I’m sure we all have met people who are very wealthy, but also don’t want to pay a
⏹️ ▶️ John lot for the Smuffler, people feel ripped off. They say, that’s how much, they’re grumbling about paying that much for
⏹️ ▶️ John Netflix, and you’re gonna pay 18 for the seat and 12 for the steering wheel every single month?
⏹️ ▶️ John And to be clear, for the people who don’t understand what we’re talking about here, you still have to pay
⏹️ ▶️ John for that stuff to be in your car. It’s not like they give you the seat heaters for free or the steering wheel
⏹️ ▶️ John heater for free. Like, you’re paying for that when you pay for the car. It’s not like say, well,
⏹️ ▶️ John we’re just shifting the cost where, you know, because otherwise if people didn’t pay for BMW, you lose money, that’s not what they do,
⏹️ ▶️ John right? So the hardware is there, just to be clear. The heaters are in the seat. The heaters
⏹️ ▶️ John are in the steering wheel. There’s a button somewhere on a touchscreen that when you press it is supposed to allow electricity
⏹️ ▶️ John to flow to those things, but it will not allow the electricity to flow to those things unless you have an
⏹️ ▶️ John up-to-date paid subscription for them. This is a terrible idea and I hope
⏹️ ▶️ John nobody goes for it and I hope it’s a dismal failure because not only do I
⏹️ ▶️ John want this to fail, I can’t imagine this becoming the status quo in the car industry because
⏹️ ▶️ John everybody who hears this story viscerally hates it.
⏹️ ▶️ Marco I can see where they’re coming from because if you look at the like full price,
⏹️ ▶️ Marco you know, the seat heater, if you want a seat heater, unlimited access quote, 400
⏹️ ▶️ Marco bucks, right? Well, what is the option for heated seats cost in a BMW? It’s probably about 400 bucks.
⏹️ ▶️ John you’re already paying that to get the seat heaters. They just want you to pay a second
⏹️ ▶️ Marco time. Right, and so I think what we’re seeing here, obviously
⏹️ ▶️ Marco in a regular sale of a regular car, it doesn’t cost them $400 to add seat heaters.
⏹️ ▶️ Marco I think the reality of what we’re seeing here is that these options were already costing
⏹️ ▶️ Marco them almost nothing, and they were just nice high-profit add-on sales. Lots
⏹️ ▶️ Marco of the world works that way. Apple does it to there’s high profit add on sales. You think those
⏹️ ▶️ Marco leather cases Apple sells you for 50 or 60 bucks cost anywhere near that for them to make? Nope.
⏹️ ▶️ Marco There’s always like high profit add on sales, extended warranties, you know, those don’t cost
⏹️ ▶️ Marco, John people very much.
⏹️ ▶️ John They call them options in the country. Porsche is the king of options. Their options have no connection to what they actually cost. But
⏹️ ▶️ John the whole point of those options is you can buy them or not. And you just pay for them once. And I think the
⏹️ ▶️ John real reason they want to do this aside from like recurring revenue is great for the balance sheet or whatever is that when you sell the car
⏹️ ▶️ John to somebody. When you sell a car that someone paid for like some a bunch of weird options, those options go with the car.
⏹️ ▶️ John The person who buys them from you can use all those options. If you sell a car like this, now BMW
⏹️ ▶️ John has a new person paying for that. Like their revenue that they never would have gotten, BMW would never
⏹️ ▶️ John have gotten part of that car sale, now when they sell it to somebody else, if that guy wants to see the dealers work, it’s gonna pay $18 a month just
⏹️ ▶️ John like you were paying that. And you get to stop paying it and then a new person and gets a start paying it. It’s, pff,
⏹️ ▶️ John no. I mean, and since this is all just hardware and software, you know there’s gonna be hacks to just get around this or whatever. So now people
⏹️ ▶️ John are gonna be jailbreaking their cars so they can heat their butts? Yep. I
⏹️ ▶️ Marco see why they are trying this. I also think
⏹️ ▶️ Marco this is a massive failure to read the room because it sounds like a joke about
⏹️ ▶️ Marco BMW owners. Like, this sounds like a parody. This sounds like something that they would never actually do but that The
⏹️ ▶️ Marco Onion would write an article about. Like, so I don’t think BMW realizes how this
⏹️ ▶️ Marco looks to the world. And maybe, I don’t know, maybe in certain areas that
⏹️ ▶️ Marco people don’t care. Maybe their customers actually aren’t mostly like us. But
⏹️ ▶️ John that’s the thing about rich people though. Like, it’s, they want the fancy thing and they’ll pay the Porsche option prices
⏹️ ▶️ John for it, but they don’t want to feel like they’re being nickel and dime. In many ways, I feel like someone who’s buying a
⏹️ ▶️ John fancy car like this would much rather pay five times as much to buy it up front and then sell the car
⏹️ ▶️ John after three years than to pay one fifth the price, but pay it monthly, right? Because one of them feels like
⏹️ ▶️ John a more luxurious experience. Let me pay, or ridiculously overpay for this option. You
⏹️ ▶️ John want the black stitched logos on the headrest. That’ll be $7,000, all right? I’ll pay you
⏹️ ▶️ John that. I feel like I’m a rich person buying a rich person thing, right?
⏹️ ▶️ John And then the car will, you know, go down in value like 80% in the first year I own it, right? But whatever, that feels
⏹️ ▶️ John like a luxury experience. What doesn’t feel like a luxury experience is to take your car home and to be nickel and dimed
⏹️ ▶️ John for signing up for subscriptions for features that are supposedly in the car. Forget about the absolute values of, yeah, but this is
⏹️ ▶️ John cheaper than the other one. Forget about that. That’s not, the sort of luxury experience is not
⏹️ ▶️ John like, let me see where every penny is going. You just want to spend way
⏹️ ▶️ John too much money and get a very nice thing and not have to think about it again. The not having to think about it,
⏹️ ▶️ John that is part of the luxury experience. When I go bring my car to the dealer, I always get a loaner because I have a Mercedes
⏹️ ▶️ John and the loaner is nice. and they’re like, you’re paying for all of that when you overpay for your car, right?
⏹️ ▶️ John That feels nice. It feels better to pay more and then to not have to think about it. It’s like all inclusive vacations
⏹️ ▶️ John or other things where you don’t wanna have to think about, you know, at each little bit, give a little money, give a little money. You just wanna
⏹️ ▶️ John say, here, I’m very wealthy. Here’s a lot of money up front. And in exchange for that, I don’t have
⏹️ ▶️ John to think about this stuff anymore. And that’s the opposite of the BMW experience. That it is a less luxurious experience
⏹️ ▶️ John for people, even if it actually saves them money. That’s the thing about this. People are gonna do the numbers and say, Well, if you do the math,
⏹️ ▶️ John it’s much cheaper to own it this way, but it doesn’t feel BMW. It doesn’t feel Mercedes It doesn’t feel
⏹️ ▶️ John like a luxury experience, even if it is less expensive So it is this is you know, terrible for
⏹️ ▶️ John like actual regular car companies and like, you know, Honda, Toyota, you know, Ford, GM
⏹️ ▶️ John They should never do this because regular people don’t have this kind of money to be spending on their steering wheel
⏹️ ▶️ John heater Right every month that’s ridiculous, right? And then the luxury brands They shouldn’t do it because it’s annoying
⏹️ ▶️ John and it subverts their brand. It makes them feel chintzy. It makes them feel like,
⏹️ ▶️ John I don’t know, like they’re cheating you. You makes you feel ripped off. It makes you feel like, what did I pay all this money
⏹️ ▶️ John for to be treated like this?
⏹️ ▶️ Marco Right, like, because it’s so much about pricing and value
⏹️ ▶️ Marco is perceptual and subjective and more about, you know, what people think is the principle
⏹️ ▶️ Marco of the matter than the actual numbers involved. And we see this, you know, We see this with things
⏹️ ▶️ Marco like app and service pricing in our tech world, where people who will spend $1,000
⏹️ ▶️ Marco on their phone every couple of years will balk at spending $3 a year on an app that
⏹️ ▶️ Marco does something they use every day. $2.99. If it was $0.99, maybe.
⏹️ ▶️ Marco There’s all the psychology that goes along with pricing and value. And
⏹️ ▶️ Marco this, I think you’re right. Not only is it less luxurious to feel like you’re being nickel and dimed for stuff that you
⏹️ ▶️ Marco think you should deserve, especially since the heart was already there. But this also, like, assuming that you
⏹️ ▶️ Marco ship every car with the hardware in it and then you can just turn it on for 400 bucks, it breaks
⏹️ ▶️ Marco the illusion. You know, like what you were saying a minute ago, the illusion of you’re
⏹️ ▶️ Marco buying the car and you want that nice option package because it gives you that nice luxurious
⏹️ ▶️ Marco thing that you want or it gives you this cool trim on this piece that looks nicer and feels better and
⏹️ ▶️ Marco maybe matches your preferred color scheme a little bit better or whatever else. and maybe you get the sunroof
⏹️ ▶️ Marco and the fancy butt heaters and everything else. Like when you pay that option price for that, when
⏹️ ▶️ Marco you make that decision up front, which you’re way more likely to do then than you will on a monthly basis
⏹️ ▶️ Marco later. So I think they won’t even sell many of these things anyway. But when you buy that up front in that option package,
⏹️ ▶️ Marco you’re accepting an illusion that these options
⏹️ ▶️ Marco cost this much money. And it’s totally wrong. They don’t really cost that much, but- It’s like Apple and
⏹️ ▶️ Marco RAM. Right, exactly. Apple and all of their spec upgrades basically, you know, you are buying
⏹️ ▶️ Marco the illusion that, okay, you know what? Sure, I’ll spend the extra couple thousand bucks
⏹️ ▶️ Marco to get the sunroof and the nice seats or whatever. However, if every vehicle comes with
⏹️ ▶️ Marco this hardware and you are just paying to unlock it, that totally
⏹️ ▶️ Marco shatters that illusion and it makes it seem like you’re being ripped off, even though you would have
⏹️ ▶️ Marco paid the exact same amount of money up front for that feature if you
⏹️ ▶️ Marco if you didn’t know that the hardware was always there, like if it was just presented as a hardware
⏹️ ▶️ Marco option that the hardware is either here or not based on whether you paid this, that maintains the illusion and people are happy to
⏹️ ▶️ Marco pay for that, you know, in most circumstances if they want those things, whereas if the hardware
⏹️ ▶️ Marco is always there and you’re just paying to use it, you feel like you’re being cheated.
⏹️ ▶️ John And by the way, car options for the most part are not like that when you buy the alloy wheels, you don’t get them
⏹️ ▶️ John unless you pay for them. If you want the sun roof, you know, it’s not like they all come with a sunroof and it gets unlocked or like, like, oh, it comes with a V8,
⏹️ ▶️ John but we only let you use four of the cylinders. Most car options that are, even the cosmetic
⏹️ ▶️ John ones, if you don’t pay for it, you don’t get it, right? Do you want the metallic paint? Well, if you don’t pay for the metallic
⏹️ ▶️ John paint for $5,000, you’re not getting the metallic paint. It’s not under your paint hiding where you can enable it. That’s
⏹️ ▶️ John even like, oh, do you want the colored piping on your seats? Do you want the contrasting
⏹️ ▶️ John stitching on your steering wheel? That’ll be $500. You don’t get the contrasting stitching unless you pay that $500.
⏹️ ▶️ John Does contrasting stitching cost $500? No, of course it doesn’t, but you don’t get it.
⏹️ ▶️ John And for these features, particular stuff like this is like software powered or whatever, well, you can’t see the seat heaters
⏹️ ▶️ John and they aren’t that expensive in addition to the seat, but seats are, you know, I was watching one of the,
⏹️ ▶️ John one of my teardown things, seats are among the most expensive things in a car interior. I think
⏹️ ▶️ John one of the, one of the things I was watching said, the seating in the typical, like
⏹️ ▶️ John sort of, you know, high-end American minivan costs more than the drive train, not including the engine, but just the drive
⏹️ ▶️ John train. What? Like the, not the engine itself, but the drive train, like the axles, the differential, all
⏹️ ▶️ John that stuff. The seating costs more than that, because if you look at how difficult it is to
⏹️ ▶️ John assemble, how much hand assembly has to be done, how much sewing and stitching and how many parts there are or whatever, in
⏹️ ▶️ John the grand scheme of that, the seat heaters, which are essentially a wire that snakes its way through a flimsy piece of fabric
⏹️ ▶️ John that runs up your seat, right? that costs additional 10, 20 bucks per seat
⏹️ ▶️ John and they sell it to you for, you know, $150 per seat, right? So huge margins on those options or whatever.
⏹️ ▶️ John That’s the type of thing that they could potentially afford to put in every car and not just not tell you it’s there. But I think even for things
⏹️ ▶️ John like steering wheel heaters, I think for the most part, they don’t put them in the non-heating steering wheels. Not
⏹️ ▶️ John like they’re there and you get them, you know, like they have a non-heated and a heated version. And certainly
⏹️ ▶️ John for in regular non-luxury cars, they have heated and non-heated versions of seats and the non-heated ones don’t have the CD heaters in
⏹️ ▶️ John them. But for stuff like this, you know, if it’s not visible, they can’t actually charge you. And then
⏹️ ▶️ John the software ones, those actually make a little bit more sense to me because at the very least there you say, well, paying
⏹️ ▶️ John for software is something we understand. And you know, well, it downloads the software and you pay for
⏹️ ▶️ John it, so technically you don’t have it beforehand. But like, fine, you wanna charge me for software features, you pay for like things that have services
⏹️ ▶️ John like SiriusXM. You’re, you know, you’re paying a monthly fee to get a service from a company. That’s the thing we’re all familiar with.
⏹️ ▶️ John even paying for the downloadable engine sounds. That’s the punchline in the Verge
⏹️ ▶️ John article. That’s like buying a ringtone for your phone. That’s all within the realm of, I mean,
⏹️ ▶️ John it’s a dumb purchase and $117 doesn’t make sense, but if you like
⏹️ ▶️ John that sound and it’s a one-time purchase, that’s not a big deal. But the monthly subscriptions
⏹️ ▶️ John to use features of your car, I really don’t think that’s gonna fly. I don’t think it’s gonna fly for BMW.
⏹️ ▶️ John I think it’s gonna damage their brand. And I really, really don’t think it’s gonna fly in like regular people cars.
⏹️ ▶️ John Like it’s just, I mean, like you were saying, Marco, they don’t even want to pay 99 cents for an app that they use seven
⏹️ ▶️ John hours a day. You think they’re going to pay $12 a month to heat their steering wheel?