PodSearch

ATP

360: Big Hole in the Middle

 

00:00:00   What kind of a**hole releases a Swift app without having asked me any questions about anything?

00:00:06   Can I ask you any...

00:00:08   You were in the same Slack where we were talking about this for like three days.

00:00:12   So Jon, did you use Rick's Swift? Or Prescription Swift or whatever it is?

00:00:17   No.

00:00:18   How about, did you use the Combine?

00:00:20   No.

00:00:21   I've been using Combine a little bit lately and it's pretty good until it very very very much isn't.

00:00:27   It's the story of Apple's everything these days.

00:00:29   It's just like Swift UI, right? It's like, "Oh yeah, this is pretty fun!"

00:00:32   And then you hit a wall and you're like, "Oh, this is really..."

00:00:35   And then Andy Gray has done the most perfect canonical version of "Oh..."

00:00:41   You know?

00:00:42   Oh. Oh.

00:00:45   Yup.

00:00:47   So that is both Combine/Combine, yee-haw, and Swift UI.

00:00:52   But I'm jumping ahead, I'm jumping ahead, I'm sorry.

00:00:54   Yee-haw. Marko's doing City 17 Combine, right?

00:00:58   Yeah.

00:00:59   So Jon, did you use Swift UI?

00:01:01   No.

00:01:03   Wait, we're jumping ahead, man!

00:01:06   Yeah, I intentionally shortened the follow-up so we can get to the topic, so we won't have

00:01:10   plenty of time to talk about it.

00:01:12   All right, tell me about Boot Camp.

00:01:14   Boot Camp on external drives.

00:01:16   I talked about my battles with that on a recent episode.

00:01:20   A couple suggestions. Actually, this was something I discovered in my research, but maybe we forgot to talk about it.

00:01:25   There's a program called Win2USB, W-I-N-T-U-S-B, which, according to its website, is the best way...

00:01:32   The best free Windows to Go creator, which allows you to install and run a fully functional Windows...

00:01:38   God, I love this writing.

00:01:40   It allows you to install and run a fully functional Windows on external hard drive.

00:01:45   I mean, I get what they're saying.

00:01:47   Like, do you have... my Windows is broken?

00:01:50   Anyway, it's a utility that lets you make bootable USB things with Windows on them.

00:01:54   And Alexei tweeted that he likes Rufus instead of Win2USB, which does a similar job,

00:02:00   where basically you give it a USB storage device and it can make it into a bootable thing,

00:02:04   which used to be more complicated, but apparently it's less complicated with Windows 10.

00:02:08   And Brad asked, "Once you have the boot thing enabled," like I talked about,

00:02:13   you know, you go into the... you boot into recovery mode and you change the security setting to say,

00:02:17   "Please let my Mac boot from external drives," "does that fix the Boot Camp utility?"

00:02:21   Maybe the issue all along was that Boot Camp utility saw that I had the security setting set

00:02:25   and wouldn't let me install an external drive because it knew I couldn't boot from it.

00:02:28   The answer to that is no, it does not fix Boot Camp.

00:02:30   Even with the setting change to allow booting from external drives, the Boot Camp setup assistant is like,

00:02:35   "Nope. No can do with external drives."

00:02:38   Fascinating.

00:02:39   Yes.

00:02:40   I'm so excited to know this bit of information.

00:02:43   You want to learn about Win2USB and Rufus?

00:02:46   Yay.

00:02:47   Someday you're going to have to make a drive that lets you boot Windows on your Mac

00:02:51   and you're going to be glad that you know about Rufus.

00:02:53   The sick thing is you're probably right. You really are. I can't imagine.

00:02:57   I get a lot of tweets from people who are like, "I heard your story and coincidentally I had a time."

00:03:02   I had occasion to do the same thing after hearing your story and it still took me five hours

00:03:06   and I had to read 20 different instructions and tweak things.

00:03:08   So it's apparently still not as easy as it should be.

00:03:11   Fair enough. You've got to have something that you're interested in talking about

00:03:15   because that is the quickest we've blown through any follow-up item in at least months, but that's okay.

00:03:20   Is there just traditional follow-up, which is like tidbits of information about past things,

00:03:24   not entire topics smuggled into the follow-up section?

00:03:26   Mm-hmm. All right. Tell me about Bluetooth and rebooting into different OSs.

00:03:32   That was another one of my complaints, like I'd reboot into Windows and it would not see my Bluetooth peripherals

00:03:36   and you'd have to turn them off and back on again, despite the fact that they had previously been paired with,

00:03:40   you know, my Mac running Windows.

00:03:42   And Robert Watkins wrote in to say, "The secret to dual booting of Bluetooth is to shut down the computer, not just restart it.

00:03:48   The Mac seems to tell devices to disconnect when it shuts down, but not on restarts.

00:03:52   Without that, they attempt to reconnect for a couple of minutes.

00:03:54   If you shut down, however, they'll pair with any previously paired device, including your rebooted into Windows Mac."

00:03:59   So that makes sense, and that totally works, rather than restarting to shut down,

00:04:02   because what you want is your peripherals to give up looking for your Mac that has gone away

00:04:07   and has been replaced by doppelganger running Windows.

00:04:10   All right. So tell me about the MacPro Speaker Module.

00:04:14   I believe the context for this was that there were no cables within the computer. Is that right?

00:04:18   Yep, and there's one buried in there. This is in the iFixit teardown.

00:04:21   We'll put a link in the show notes to the exact step that shows it.

00:04:24   I think it's alongside the RAM modules or these little covers they have over the little RAM shed.

00:04:30   It's kind of like a carport for your RAM, like a little hood over it.

00:04:34   In between the two of them is another little block that looks like the same size and shape,

00:04:37   and if you pull that thing off, you see that is actually attached with one tiny little, like, two-inch-long cable to the thing.

00:04:44   You can't see it when it's on there, because it just looks like it's mounted flush,

00:04:47   but if you do pull it off underneath, you see there's a cable attaching it.

00:04:49   So definitely at least one cable in the MacPro, but very well hidden.

00:04:52   Fair enough. Quinn Nelson has some information about MacPro case removal while it's running.

00:04:57   Can you tell me about that, please?

00:04:59   Yeah, I've been talking about on the last show, I was very convinced that you could not take the case off of your MacPro

00:05:05   because it would just shut off and it just doesn't want to have the case off when it's on.

00:05:08   Well, Quinn Nelson is braver than I am and did a bunch of experiments where he would have his computer turned on

00:05:14   and then say, "You know what? I'm taking the case off. What's going to happen?"

00:05:17   Well, the first thing that happens, and you can watch in the video, is when you twist that thing, the fans spin up to 100%.

00:05:24   So if you want to hear what the fans are like, which, by the way, I still haven't heard in any real-time scenario,

00:05:29   and I didn't try this experiment myself, so I still haven't heard my fans at full speed,

00:05:32   but if you want to hear them start to threaten to take that case off and they go vroom up to full speed,

00:05:37   you're still pretty, like, hushy. Like, they're louder, but they sounded in the video the same kind of tone.

00:05:43   But then once you do that, if you start trying to pull the case up, you can pull it up an inch or two and the computer doesn't turn off.

00:05:50   So I guess that interconnect on top doesn't actually cut power to the machine.

00:05:54   There's some other interconnect there that we'll get to in a second, but it doesn't actually cut power.

00:05:58   So you pull the case up, like, an inch or two, and the fans are still going crazy and your computer is still on,

00:06:03   but of course you can't actually lift it off because of the things we talked about yesterday.

00:06:07   The little rim of the case on the bottom will hit the power cable and any other cables that are connected to your computer,

00:06:12   and you can't get past them. So there you go.

00:06:15   It doesn't like its case to be off, but it will continue running under protest with it lifted about an inch up.

00:06:21   And an anonymous Apple genius wrote in to say that the Mac Pro has a bypass to be powered on without the case attached.

00:06:27   The round part on top of the frame has some sort of hall effect sensor, he's assuming, or she is assuming,

00:06:33   as we have a guide describing how to apply a magnet to that portion of the circle to bypass the case requirement to power the computer on

00:06:40   so we can check diagnostic LEDs. So I don't have a guide with me right now, but as far as I know,

00:06:44   the computer will power on normally for as long as you leave a strong enough magnet on that spot

00:06:48   and they use one of those little square magnets used to magnetize a screwdriver.

00:06:52   So that's pretty weird. Where, you know, if you're working on it, you may have to futz with it when the case is off,

00:06:59   and apparently you do need to sort of defeat the safety mechanism or whatever to allow that to happen.

00:07:05   That's interesting. That makes sense. Marco, you have a few quick hits?

00:07:09   Yes. The ladybug that I killed with a 30 watt Apple USB-C power adapter

00:07:15   Speaking of quick hits.

00:07:16   Was not actually a ladybug.

00:07:18   So that makes it okay now?

00:07:20   Yes, it was the, it was an Asian lady beetle, which is apparently one of the more like nuisance types of things.

00:07:28   And it's funny, I was able to, so people kept telling me like, "Oh, yeah, if it's a ladybug, you should never kill a ladybug."

00:07:34   Some people said you should never kill any bugs in your house because if you put them outside, then birds can eat them.

00:07:39   And that's nice. A number of people wrote in to say, "Well, if it's a ladybug, you shouldn't kill them because they're great and they eat aphids,

00:07:45   but if it's an Asian lady beetle, then you should kill it because they're awful."

00:07:49   As it turns out, it was still under the USB-C power brick on my desk, so I just looked at the power brick and looked at it,

00:07:56   and sure enough, there is the characteristic black M on its head indicating it is an Asian lady beetle,

00:08:00   and therefore it was, if you're the type of person who thinks it's okay to kill any bugs in your house,

00:08:05   it is apparently one of the ones that you should do that for.

00:08:07   Secondly, I had made fun of Jon last week for the use of the verb "wanging" to describe a magsafe cable wanging around.

00:08:17   It's still funny.

00:08:19   And I had said that was not a real word. At least I couldn't find a verb definition of the word "wang."

00:08:23   I was spelling it without an H. It turns out there is a verb, W-H-A-N-G.

00:08:30   You didn't hear the H when I said it?

00:08:32   I still don't think it fits, so it's, according to the Apple dictionary,

00:08:36   "to make or produce a resonant noise," as in, "the cheerleader wanged on a tambourine,"

00:08:42   or "to strike or throw an object heavily and loudly," such as, "he wanged down the receiver."

00:08:49   The power brick.

00:08:50   Yeah, so I wanged down the power brick onto the Lady Beetle, but I don't think a magsafe cable is capable of wanging around.

00:08:57   So I stand by the fact that that use of the word was incorrect, but it is in fact a verb.

00:09:02   What do you think of "wanging around" as in "flopping around like a wang," which is how I meant it?

00:09:07   That makes a lot more sense.

00:09:10   Certainly more poetic and apt, because you know if you've seen the little thing, it's kind of like springy and short wanging around over there, right?

00:09:18   I think we definitely need to move on.

00:09:20   So we got a little bit of feedback about sharing photos in full resolution.

00:09:24   A friend of the show, Kyle Zlegre, had some information on this.

00:09:27   Apparently, I'm still not entirely clear on what the story is here, but I guess if you share via iCloud,

00:09:33   doing like a quasi-gallery sort of thing, it's not actually a gallery,

00:09:38   but there's some way you can do it via iCloud that will give you the option of sharing full res and even full metadata.

00:09:43   And then Mario Panagetti, I hope I pronounced that right, also tweeted about this and conveniently included a series of screenshots

00:09:52   on how he was able to make this work and like a set of summary photos.

00:09:57   So I will put in the KBase article about it, which is what Kyle sent, and also the series of photos in the tweet from Mario as well,

00:10:07   if you would like to see more about that.

00:10:10   It's a lot like the thing we did discuss, which is the thing where you can do a mail attachment and it doesn't actually attach the thing.

00:10:16   It just attaches a link and puts them up in an iCloud link, right?

00:10:19   This is exactly like that, and you might think it's the same thing, but apparently it's not.

00:10:23   I've never actually done this, so I haven't seen this UI, but if you do that with a photo from within the Photos app

00:10:28   or from like iCloud.com, apparently, it will do the same thing.

00:10:31   And like you have to say copy iCloud link or send iCloud link or I don't know.

00:10:35   You do something that looks like you're about to mail somebody a link, but instead it actually gets the photos directly on the server.

00:10:42   This is the whole thing we were talking about. It doesn't pull them down to the local device.

00:10:45   It will copy them on the server from your photo library to theirs, and I think it will also try to preserve like all the metadata,

00:10:53   all the edits, like non-destructively save all of them, like as rich a copy as you can imagine,

00:10:59   not just like burn the thing down to a thumbnail or something and send it over to them.

00:11:03   I'm kind of excited to try this because it has most of the features I want.

00:11:06   It's just obviously not exposed in a way that most people know about it, but now that I do, I'm going to hunt for it and give it a go.

00:11:12   Obviously, it only works if you're sending it to another person who has Apple Photos, which is fine in my case,

00:11:18   but if not, then you're left, you know, making an attachment or whatever.

00:11:22   We are sponsored this week by the Tech Meme Ride Home podcast.

00:11:27   Subscribe today in your podcast app of choice.

00:11:30   For two decades now, Tech Meme is the website that people in the tech industry visit every day, multiple times a day, to keep up on the latest news.

00:11:38   And for a year and a half and nearly 10 million downloads now, the Tech Meme Ride Home podcast has taken what techmeme.com is good at

00:11:46   and distills it into podcast form. It's the same news headlines, same up-to-the-minute news, but also context and conversation around what happened today in the world of tech.

00:11:57   This is Silicon Valley's water cooler podcast. It's how you stay in the know if you care about technology.

00:12:03   So Tech Meme Ride Home is a daily show. It posts every day around 5 p.m. Eastern each afternoon.

00:12:08   It's only 15 or 20 minutes long, so you can get caught up really quickly with everything that happened that day in tech.

00:12:14   These are top stories, top posts about those stories, top tweets and conversations around those stories, so you can really crucially get the context.

00:12:23   Any bot could tell you headlines, but the Tech Meme Ride Home podcast is kind of like TLDR as a service run by humans.

00:12:32   They're online all day, reading all the blogs and tweets and deep dives so they can catch you up.

00:12:37   And now the Tech Meme Ride Home podcast also has weekend bonus episodes with the journalists and newsmakers who drive the Silicon Valley narrative.

00:12:45   So guests for this have included MG Siegler talking about phones, A16Z's Connie Chan on Super Apps, Mark Gurman on Apple, Federico Vatici and John Voorhees breaking down WWDC, Casey Newton on Facebook, the great Taylor Lorenz on all things influencer, Nick Kua on podcasting, multiple Jay and Farah show reunions with Jay Yarrow of CNBC and Farah Manju of the New York Times.

00:13:08   So it's a great podcast. Check it out today in your podcast app of choice by simply searching for Tech Meme Ride Home.

00:13:15   And in fact, if you use Overcast, not only can you just type in "ride" and it appears right there in the autocomplete, but it also, I've been looking and it is almost always in the top handful in the most recommended podcast category.

00:13:27   And I don't edit that. That isn't purchasable or editorial or anything. That's just the most recommended podcast among Overcast users and it's always right up there.

00:13:35   Check it out. Tech Meme Ride Home. Please subscribe in your podcast app today. Thank you so much to Tech Meme Ride Home for sponsoring our show.

00:13:42   So we got a little bit of feedback about whether or not Swift is a dick and Mark Sands wrote in saying it's totally a dick.

00:13:53   Property wrappers muddy the waters with respect to Swift annotations. I'm not going to go into details about this because it will take me three hours.

00:13:59   So if you're familiar with Swift, hopefully this will make sense. If not, don't worry about it.

00:14:03   So anyway, property wrappers muddy the water with respect to Swift annotations, which I think is somewhat true.

00:14:08   Protocols with associated types requires type ratio for generic protocols. Oh, I could go on for hours about this, but I won't. You're welcome.

00:14:15   Protocols with associated types are the bane of my existence and are so frustrating.

00:14:19   But Mark continues, "But Swift UI really wants to use generic protocols, so language in the standard library had to do something to make the type system bearable."

00:14:27   And this is where John gets all smug.

00:14:29   Another example of this that I've run into recently as I've been doing some combine/combine work is erasing to any publisher, which is kind of the same story all over again.

00:14:39   Mark continues, "Opaque result types adds an additional definition to the 'some' keyword."

00:14:45   And then finally Mark says, "Swift used to be a language that didn't have to be intimidating for new programmers.

00:14:50   But if a junior programmer wants to jump into Swift UI while being forced to use combine with @state, @published, @observable, @object, etc.

00:14:56   then the language becomes infinitely more intimidating because the advanced features of the language show themselves in ways that become very unattractive."

00:15:03   I thought that was a pretty good summary.

00:15:05   Now, again, I love Swift. I think Swift is great. I do not think Swift is perfect.

00:15:09   But I thought this was a really, really good summary of why Swift is a big fat jerk.

00:15:13   I have two objections to that summary.

00:15:15   The first is opaque result types are great. You actually dislike opaque result types?

00:15:19   That's a perfect example of a pragmatic feature in response to actual programmer needs that I think is implemented in a fairly nice way.

00:15:25   No, no, that's fair. I think my agreement was more in the summary at the end.

00:15:31   Well, the summary at the end, I think Swift is doing a pretty good job of adhering to the pro credo of,

00:15:39   I heard this first in Perl, I don't know if it came from Perl, but easy things should be easy, hard things should be possible.

00:15:43   I think easy things in Swift are easy.

00:15:45   Now, there's some valid complaint to say, look, you're going to end up using the standard library, and the standard library uses a lot of this stuff,

00:15:50   so to some degree you have to understand it. Eh, kind of.

00:15:53   But you don't, like, all this stuff with, like, oh, I need to, everything needs to be done in a protocol and I have to use generics.

00:15:58   You don't. You can, like, easy things are easy.

00:16:01   If you have an easy program and you're a beginning programmer, you don't have to make 20 different protocols and then type erasing protocol wrappers

00:16:07   so you can use them through your generics. You don't have to do that.

00:16:10   You can just write classes and, you know, hook them up and it will work fine.

00:16:15   But in Swift, hard things are possible, and all these really complicated features,

00:16:19   although it can be argued that some of them do actually get a little bit ugly and complicated and hard to parse with your eyeballs,

00:16:24   hard things are possible in Swift and becoming more possible all the time.

00:16:27   So I get the sentiment, it's this thing that every language struggles with,

00:16:30   but I still think Swift is doing a good job to wrangle the complexity that it necessarily has to take on for being what it is.

00:16:38   I think you mean to wangle.

00:16:39   And I think it's going in the right direction.

00:16:41   Well, funny you say that, because Benjamin Mayo wrote in and said, "It's totally getting better.

00:16:46   While the computer science bike-shedding threads sure do exist on the forum,

00:16:49   I'd point out that it is simply not representative of actual output of the evolution process

00:16:55   and what is actually getting changed in language."

00:16:59   So if you just look at the most recent handful of proposals,

00:17:01   you can see a much more real-world story of Swift's lowercase e evolution.

00:17:05   And Ben Shuman provided a screenshot, which we're not going to include, but suffice it to say,

00:17:09   yeah, it backs up what he was saying.

00:17:11   Swift definitely has its issues, but I think it's unfair to say that the direction of the language is on the wrong track,

00:17:16   which is pretty much what you were just saying, John.

00:17:18   You can say, like, yeah, make the easy things easy.

00:17:21   You don't have to use the hard things.

00:17:23   That's all true, like, 90% of the time.

00:17:26   The problem is that in real-world use of a language, you do sometimes have to dive into other people's code,

00:17:34   or you do have to somehow sometimes look at the way some things are implemented in libraries or whatever else,

00:17:39   or the details or advanced features of a language are used in sample code

00:17:46   or are required to take advantage of certain APIs,

00:17:49   or what this happens all the time, some compiler error is yelling at you for something

00:17:56   that maybe you're kind of accidentally using an advanced feature

00:17:59   or it thinks you're trying to use an advanced feature,

00:18:01   or the thing that you really want to do that seems really obvious and would be easy in some of the language

00:18:06   requires light usage of an advanced feature.

00:18:09   And so the language designers can tell themselves, we're letting the easy things stay easy.

00:18:14   And the language experts and fans and enthusiasts can tell themselves, oh, yeah, easy things are easy,

00:18:21   but they know the hard things.

00:18:23   So when they inadvertently run into one of the hard things or willfully take one on themselves,

00:18:28   they kind of ignore that or they forget, they don't realize.

00:18:32   It's very different when you are the swift novice or the person just trying to get something done quickly

00:18:38   and not trying to dive all the way into all this complicated stuff,

00:18:41   or hell, the person just trying to write simple code because guess what,

00:18:44   that's easier to read and maintain down the road by other people and your future self.

00:18:49   For all of them/us, the language is not that clean.

00:18:54   The abstractions always leak, always.

00:18:57   No abstraction is ever perfect.

00:18:59   None of this complexity is ever 100% hidden from somebody.

00:19:02   And so all this crap that is behind the scenes, that is really complicated and really intimidating

00:19:09   and just impossible for anybody but the most advanced programmers to really understand,

00:19:14   that does leak out and that does impact the rest of us here and there or frequently even.

00:19:21   It's much better, in my opinion, and this is kind of why I don't love Swift so much,

00:19:26   I much prefer languages where, yeah, maybe they don't look as pretty as Swift in the ideal case.

00:19:33   Like, I write most of my code in Objective-C and PHP, and C,

00:19:39   none of which are languages that look good on slides in presentations.

00:19:45   But I care about, can I fit this whole thing in my head?

00:19:49   Obviously, I've had time to become an expert in these languages,

00:19:52   so it's kind of an unfair comparison of me to say this.

00:19:57   But even when I was exploring new languages a few years ago,

00:20:00   the one that kind of stuck with me was Go.

00:20:03   And I didn't get too far into it.

00:20:04   I use it for my crawlers, but I don't use it for anything else.

00:20:06   So I hardly ever actually write Go code,

00:20:08   and I've actually forgotten most of what I learned to write my crawler in the first place.

00:20:12   But Go felt small in a good way.

00:20:16   It felt like the language itself was not that complicated.

00:20:19   It was fairly trivial to fit most of it in my head.

00:20:23   And I can't say that about Swift.

00:20:25   And even now, I've actually used Swift way more than I've used Go.

00:20:28   It's really hard for me to understand all this stuff.

00:20:31   As I'm using it, I'm finding myself falling a bit behind

00:20:35   in the regular practical knowledge of what people are supposed to know

00:20:39   about the languages they're using,

00:20:41   because a lot of this stuff I just don't understand.

00:20:43   And frankly, I don't really have the time or care to get to know it.

00:20:47   Swift is a language that is supposed to be mass market,

00:20:52   and it's supposed to be easy for people.

00:20:55   It's very quickly becoming, if it wasn't already,

00:20:57   and I would kind of argue it kind of always was this way,

00:20:59   but it's very quickly becoming a language for language nerds.

00:21:02   And that's a very different thing.

00:21:04   Languages for language nerds don't usually become mainstream.

00:21:07   And this has market reasons why it's kind of forced to be mainstream anyway.

00:21:10   But language for language nerds are wonderful if you're a language nerd.

00:21:14   But if you're not, they're usually pretty hostile to everyone else.

00:21:20   And I think Swift is very much that way.

00:21:22   And the more complexity they layer onto it,

00:21:25   the harder it gets to actually really become an expert in it

00:21:30   and to fully understand what you're doing in it,

00:21:32   whereas other languages make that a lot easier.

00:21:35   I think an example of the right direction that it's heading in,

00:21:37   you mentioned trying to use the simple parts of the language

00:21:40   and getting a weird error message,

00:21:42   and the work they've done to make the diagnostic stuff better.

00:21:44   And all the things that you've said,

00:21:46   I agree with them in like 50% as severe versions,

00:21:50   because I don't think Swift is that complicated.

00:21:52   I don't think it's impossible for only experts to understand.

00:21:54   But there's a kernel of truth in everything that you said,

00:21:56   and it certainly is more complicated than Objective-C,

00:21:58   which is what you're coming from, in most ways.

00:22:01   But I think easy things are easier in Swift than they are in Objective-C.

00:22:04   Maybe you're just not -- like you said, for the people who are experts,

00:22:07   they don't realize where the pitfalls are.

00:22:09   I'll talk about that a little bit later when I talk about app development.

00:22:11   But every decision I see them make and every design change I see them make,

00:22:17   I think it's heading away from what you described

00:22:20   and towards where you would want it to be.

00:22:22   There is, like I said last episode, no escaping the fact that it is wedded to its types

00:22:27   and what I think is for efficiency reasons,

00:22:30   but also because people who are working on Swift are really into types.

00:22:34   But within those bounds, within those constraints,

00:22:38   it is trying mightily and I think doing a pretty good job

00:22:42   avoiding becoming C++, basically.

00:22:45   It's never going to be Objective-C or Lua or anything like that

00:22:49   because the problem space that it is addressing is so much bigger.

00:22:53   And you could say that's a mistake.

00:22:54   It shouldn't try to address such a big problem space.

00:22:56   But if it's going to replace Objective-C even alone,

00:22:59   that is a huge problem space

00:23:00   because it needs interoperability with Objective-C

00:23:02   and interoperability with all of Apple's APIs and everything, yada, yada, yada.

00:23:05   So I am still much more optimistic about the language.

00:23:09   And having limited experience with it now,

00:23:11   I was even more pleasantly surprised using it that it did not drive me at all.

00:23:15   Another thing that you're not considering, Marco,

00:23:18   is how unfriendly Objective-C is from a syntactic or perhaps a visual level.

00:23:26   I can only speak for myself, but coming from a C# background at the time

00:23:31   when I was starting to learn Objective-C,

00:23:33   and I would even argue coming from a straight C background,

00:23:37   the way Objective-C looks with the brackets and message passing and all that

00:23:43   is extremely off-putting and very, very unlike almost any other language.

00:23:48   Now, yes, all the nerds are coming out and saying,

00:23:50   "What is it, Rust or something?"

00:23:51   No, not Rust. It was older than that.

00:23:52   What was it? A simple talk?

00:23:54   Small talk.

00:23:55   Small talk. Yeah, there you go.

00:23:56   I don't care. Whatever.

00:23:57   But I know that Objective-C wasn't the first one to do this.

00:23:59   But it was the first one that I had run into in my life,

00:24:03   and it looked nothing like anything else.

00:24:05   And that was really off-putting, and I still don't think it looks particularly pretty.

00:24:09   And that is a silly thing to be upset about.

00:24:12   I'll be the first to tell you.

00:24:13   But when something just looks really, really different than what you're used to,

00:24:18   that's a pretty big hill to climb.

00:24:21   And, yeah, for you, Marco, and I think even for me or John,

00:24:24   we are familiar enough with Objective-C that we can see the matrix.

00:24:28   We don't see the little characters.

00:24:30   We can see the woman in the red dress or whatever.

00:24:32   But when you can't yet see the matrix, it is a very intimidating language.

00:24:38   And I would argue that although the breadth of Objective-C

00:24:44   is probably narrower than the breadth of Swift,

00:24:48   at the same time, there's far more weird, odd, and interesting things.

00:24:54   Now, that can be both good and bad interesting,

00:24:56   but weird, odd, and interesting things that can be done in Objective-C

00:24:59   by virtue of the way the Objective-C runtime works.

00:25:02   Things like swizzling, for example.

00:25:04   Like, yes, you can sort of kind of do that in Swift,

00:25:07   but it feels like more of an Objective-C thing.

00:25:11   What's swizzling? What is that?

00:25:12   Like class clusters.

00:25:13   Class clusters is a perfect example.

00:25:15   The thing that you probably don't have to know about if you use Objective-C,

00:25:18   but you're using them all the time whether you know them or not,

00:25:20   and if you get an error message from them or you encounter behavior

00:25:23   that has to do with class clusters, you're like, "What the hell is a class cluster?"

00:25:26   Because it doesn't come up when you're writing your Objective-C,

00:25:29   but they do use it and you do benefit from it.

00:25:31   But still, Objective-C is so much smaller a language than Swift.

00:25:34   There's no debating that.

00:25:35   No, I don't debate that.

00:25:36   I agree with what you're saying, that the bracket syntax and everything

00:25:40   is off-putting at first.

00:25:42   And Swift is very clearly designed to look really nice

00:25:48   with Apple's current design aesthetic of hide everything in the junk drawer.

00:25:53   Like make the top really clean and bury everything.

00:25:58   That's Apple's design.

00:25:59   But there's not too much in the junk drawer in Swift.

00:26:02   If you just do assignments to variables and conditionals and loops

00:26:06   and objects and structures in Swift, there is no hidden junk there.

00:26:11   The standard library does have some hidden junk,

00:26:13   but if you're just doing basic programming,

00:26:15   it is much simpler than Java, than C, than C++,

00:26:19   and it's probably about as simple as Objective-C.

00:26:21   It's just that there's so much more.

00:26:22   As soon as you get into generics and protocols,

00:26:24   that's where the lid comes off

00:26:26   and you are well past the complexity of Objective-C immediately.

00:26:30   When you're first learning something,

00:26:32   usually in this context of programming language,

00:26:34   but this applies to lots of things.

00:26:36   When you're first learning something,

00:26:37   the way you start learning a language usually is basically copy and paste.

00:26:41   You are looking at code samples or you're writing your own

00:26:45   Hello World kind of basic programs,

00:26:48   and you don't fully understand what everything does that you're typing.

00:26:52   You don't fully understand what all the keywords mean

00:26:55   or what all the operators are doing that you're typing,

00:26:57   and then over time, you build an understanding of what you're doing.

00:27:00   And so you go from kind of copy and paste

00:27:04   or rigid steps that you're following

00:27:08   to actually understanding what all these keywords are doing,

00:27:11   actually understanding what the syntax is,

00:27:13   actually understanding what the error message is saying.

00:27:16   Swift seems optimized for that first stage of learning

00:27:20   when you don't fully understand it yet

00:27:22   and you're just looking at source code on slides

00:27:24   or copying things down from Stack Overflow.

00:27:27   But if you want to fully understand what's happening,

00:27:29   that's when the depth and complexity of a language

00:27:33   can either be a help or a hindrance.

00:27:36   The C-based languages are actually really simple.

00:27:39   There's not a lot of depth there to find

00:27:42   because they're such smaller and simpler languages,

00:27:45   whereas something as complicated as Swift,

00:27:48   if something is going not quite the way you want

00:27:52   or if you have a weird error message from the compiler or something,

00:27:56   it can often be really hard to figure out

00:27:59   why is this happening or how do I fix this

00:28:02   because there is so much depth past that surface.

00:28:05   - I think that's sort of true.

00:28:07   I think like what John said a few minutes ago,

00:28:09   I agree to a point.

00:28:11   First of all, C-based languages,

00:28:12   is C++ not a C-based language?

00:28:14   - No, they're off on Mars.

00:28:16   Screw them.

00:28:18   - I agree with your sentiment,

00:28:20   although I do view it as a C-based language.

00:28:22   I completely agree, though.

00:28:23   They are way out in past Mars, as far as I'm concerned.

00:28:26   Be that as it may, I agree with you to a point

00:28:29   about error messaging in Swift.

00:28:30   As John already mentioned, it is getting better over time.

00:28:33   Another thing that I've noticed the hard way

00:28:36   is that the less, well, let me rephrase that.

00:28:39   If you choose to include types

00:28:45   and not rely on type inference in certain situations,

00:28:49   that oftentimes will get you more explicit error messaging.

00:28:53   Now, that shouldn't have to be the case.

00:28:55   I should be able to use type inference always and forever,

00:28:58   and I should still get good error messages.

00:29:00   But I've found if I split out

00:29:03   a kind of compound single line, so to speak, statement,

00:29:07   or if I sprinkle in actual type declarations

00:29:10   throughout something that's giving me a very weird error,

00:29:12   typically I can get to an actual error relatively quickly.

00:29:15   Not always.

00:29:16   Your point is still fair.

00:29:18   I just don't agree with quite the extent

00:29:22   of what you're saying, even though I definitely agree

00:29:24   with the spirit of what you're saying.

00:29:26   I know we could probably go on about this for hours,

00:29:27   but we have other things to talk about.

00:29:29   So apparently all we need for Jon to actually write code

00:29:35   in a language made more recently than what Vietnam was

00:29:40   to get you a new Mac Pro.

00:29:43   You joke, but that's actually kind of true.

00:29:45   Not just the Mac Pro, but the monitor,

00:29:48   which we'll talk about a little bit later.

00:29:50   Having a big monitor and lots of space to do things

00:29:52   really helped, but having the umpteen things

00:29:55   that you need open during app development, right,

00:29:58   and even more for me because I've got help windows

00:30:01   and other stuff that you expect to be open.

00:30:03   So anyway, context.

00:30:05   There is a post, one of my at least once or twice a year posts

00:30:10   on hypercritical.co where I explain this at length.

00:30:13   I'm not going to go through the whole blog post,

00:30:15   but the gist of it is that with the Catalina transition,

00:30:19   which I was forced to undergo because my new Mac Pro

00:30:22   does not boot any earlier operating system,

00:30:24   of course we lost all our 32-bit apps.

00:30:25   One of my 32-bit apps was DragThing,

00:30:28   which was an app that came from classic Mac OS

00:30:30   and eventually was written in Cocoa.

00:30:31   Cocoa didn't make it to 64-bit, and to rewrite it in 64-bit

00:30:34   would require basically rewriting the whole thing

00:30:36   from scratch using a different API.

00:30:37   So DragThing didn't make it to Catalina,

00:30:40   which is sad for me because I used DragThing for a couple,

00:30:43   it's like mixed floating palettes on your screen.

00:30:45   I used it for like a floating pallet

00:30:47   with a bunch of folders in it.

00:30:48   I used it for a floating application switcher,

00:30:50   which is also kind of like classic Mac OS.

00:30:52   And I also used this random obscure feature

00:30:55   buried in the preferences of DragThing,

00:30:57   and it was also in a bunch of other like Mac OS 10 utility apps

00:31:01   back in the day, but DragThing is the one

00:31:03   that I've been using most recently,

00:31:05   that restores classic Mac OS window layering

00:31:08   to modern Mac OS.

00:31:10   It's much easier when I could say restores it to Mac OS 10,

00:31:13   but it's just called Mac OS now.

00:31:14   Anyway, what the hell is classic Mac OS window layering?

00:31:18   In classic Mac OS, oh God,

00:31:20   I've had to try to describe this in help text many times over,

00:31:23   and it never gets any easier,

00:31:24   despite the fact that we workshop this in a Slack channel

00:31:26   trying to come up with an explanation,

00:31:28   but it's a bit easier on a podcast because I can ramble.

00:31:30   In classic Mac OS, if you clicked on a window

00:31:33   of some application that wasn't the current frontmost application,

00:31:36   not only would that window come to the front,

00:31:38   but every window belonging to that application

00:31:40   would come to the front.

00:31:41   So if you're in terminal and you would click

00:31:43   on the corner of a Safari window,

00:31:45   oh, Safari didn't exist, whatever,

00:31:47   just follow me here,

00:31:49   that window would come to the front,

00:31:51   and all the other Safari windows would come to the front.

00:31:53   That's how classic Mac OS worked

00:31:55   from the advent of its multitasking.

00:31:58   And I used classic Mac OS for 17 years,

00:32:03   and as I said in my post about it,

00:32:05   those were 17 very formative years for me.

00:32:08   So I really imprinted on that style of using it,

00:32:12   and as discussed in the Windows of Syracuse accounting

00:32:15   and other podcasts about my windowing,

00:32:17   that's how I organize my workspace.

00:32:19   I have a bunch of windows that are in these kind of,

00:32:22   you know, clusters in certain positions,

00:32:25   and certain ones poke out from behind other ones,

00:32:27   and if I want to grab the switch to the other app,

00:32:30   I don't like Alt-Tab my way over to it or any other,

00:32:33   all my habits are ingrained on, snag a corner of that thing.

00:32:36   And even if that's not the window you want,

00:32:37   that'll bring all your terminal windows to the front,

00:32:39   and you know where they are,

00:32:40   so your mouse can already be on its way

00:32:41   to the window that you do want.

00:32:43   It's just the way I work.

00:32:45   Mac OS X, of course, changed that.

00:32:46   In Mac OS X, you click a window,

00:32:48   just that window comes to the front.

00:32:50   Now, you can also click a dock icon,

00:32:51   and that will bring all the windows to the front,

00:32:53   but I don't want to have to go all the way down to the dock

00:32:55   because the whole point of my layout is to have them arranged

00:32:57   so that the corners are near my car.

00:32:58   Yeah, yeah, anyway, the point is,

00:33:00   DragThing had that feature as just a random preference in there

00:33:03   because it was also made by a classic Mac OS nerd like me.

00:33:07   DragThing is gone.

00:33:09   I wanted that feature to come back.

00:33:12   And believe me, he said,

00:33:13   "Why don't you just get used to the new way to do it?"

00:33:15   I did.

00:33:16   Like, Mac OS X changed tons of things,

00:33:18   and I eventually got used to almost all of them,

00:33:21   but a few of them hung on stubbornly,

00:33:23   and this is one of the ones that hung on.

00:33:26   And in particular, DragThing -- I think DragThing had this,

00:33:29   and if not, the earlier utilities they used to do it had a feature

00:33:33   where you could hold down the shift key when you clicked

00:33:35   to get the other behavior.

00:33:37   So if you didn't want all of the terminal windows to come forward,

00:33:39   you just wanted the one terminal window,

00:33:40   you could shift-click it,

00:33:41   and you'd just get that one terminal window to come forward, right?

00:33:44   Classic Mac OS didn't have that feature,

00:33:46   but this was an enhancement that I enjoyed.

00:33:48   So anyway, I wanted that back.

00:33:50   So I talked to James Thompson, the author of DragThing,

00:33:52   and I said, "Hey, you gonna import DragThing?"

00:33:54   He said, "No."

00:33:55   I said, "Hey, can you just make a tiny app

00:33:57   that just has that feature with the window switching?

00:33:59   It was like one checkbox in your giant application?"

00:34:02   He's like, "Nah, that doesn't sound like a thing I want to do."

00:34:05   So I talked to a bunch of other people, like,

00:34:07   "Well, can you give me a hint on how that's done?"

00:34:09   'Cause honestly, I had no idea, like,

00:34:10   how any of that stuff works in Mac OS.

00:34:12   This is sort of the realm of what we used to call, like,

00:34:14   you know, system extensions

00:34:16   or other things that modify the behavior of the system overall.

00:34:19   You're like, "Can you even do that from an app?"

00:34:21   Like, in the iOS world,

00:34:22   you wouldn't think that you can write an iOS app,

00:34:25   ship it on the store,

00:34:26   and then someone would launch your application,

00:34:28   and it would change the way

00:34:29   the multitasking switcher works in iOS.

00:34:31   Like, that's not even conceivable.

00:34:33   But on the Mac, that happens all the time.

00:34:37   So I had him give me some pointers about possible APIs,

00:34:40   and I'm talking with other developer friends I know,

00:34:42   like, "Hey, do you want to make this app?

00:34:44   It's a really simple app.

00:34:45   All it needs to do is change

00:34:46   the window layering behavior somehow."

00:34:49   And eventually, a friend of mine

00:34:51   that I used to work with back in the day

00:34:54   when I worked at that e-book company, Lee Faioc,

00:34:57   took me up on the offer and said,

00:34:58   "Yeah, I think I can make an app that does that."

00:35:00   And so he's like, "Here you go. What do you think of this?"

00:35:03   And he sent me the app,

00:35:04   and let me join the source code repo on GitHub.

00:35:08   And it was an app that basically did what I described.

00:35:11   You know, it was just a simple app.

00:35:13   You launch it, and then all of a sudden,

00:35:14   this new window mode is in effect.

00:35:16   And that was back in the fall, actually.

00:35:17   I was like, "Oh, this is cool.

00:35:18   Like, my problem is solved now.

00:35:19   He made this app for me.

00:35:20   I'll just launch it, and it'll be fine."

00:35:22   But of course, I couldn't really leave well enough alone.

00:35:25   Like, I really wanted it to have a menu bar icon

00:35:27   and not a dock icon

00:35:28   because I hate dock icons for things

00:35:30   that are just, like, running all the time,

00:35:31   but I'm never going to actually interact with the application.

00:35:33   I don't want it mucking up my dock.

00:35:35   And it didn't have the shift override,

00:35:37   which meant that, like,

00:35:38   if I wanted just one window to come to the front,

00:35:40   I basically had to quit the app,

00:35:42   and that wasn't good either.

00:35:44   So eventually, I think it was, like, over holiday break,

00:35:47   I was like, "I can -- I look at --

00:35:49   This is a small, simple application.

00:35:51   I understand most of the source code.

00:35:53   I could probably add those features, right?"

00:35:56   Lee added the menu bar thing for me,

00:35:58   so that gave me a start.

00:35:59   I'm like, "Okay. Well, we've got a menu bar icon."

00:36:02   And he added the hiding of a dock icon, too.

00:36:03   I'm like, "Well, we're almost here.

00:36:04   Like, this is practically done.

00:36:05   All I got to do is, well, I really want the menu bar icon

00:36:07   to have a few other options in it,

00:36:09   and I want to be able to option-click on the menu bar icon

00:36:12   to make it toggle a thing,

00:36:14   and I want the shift-click override."

00:36:16   And so I spent some time mucking around with it

00:36:18   and figuring out how to do those things,

00:36:19   doing them in terrible, awful ways,

00:36:21   and then having my developer friends look at it

00:36:22   and tell me that it's terrible,

00:36:24   and revising again and again.

00:36:26   And eventually -- Oh, and I drew an icon for it

00:36:28   for the menu bar.

00:36:30   And eventually, I got everything working the way I wanted,

00:36:33   and I was like, "All right. Well, now I'm done

00:36:35   with solving my problem,

00:36:37   but I'm really close to having, like,

00:36:39   an actual, complete application."

00:36:41   And he wrote it in Objective-C,

00:36:42   getting back to what we were discussing before,

00:36:44   and I found that I didn't particularly enjoy

00:36:46   working in Objective-C.

00:36:48   Not a big surprise to me,

00:36:49   'cause my whole history is working in dynamic languages.

00:36:52   But this is an example of a thing --

00:36:54   Like, I talked last week about how

00:36:56   I want to have nothing to do with the type system,

00:36:58   and I don't find any interaction

00:36:59   with the type system benefits me in any way.

00:37:02   Because problems with types are not a problem that I have,

00:37:05   which is totally true in dynamic languages.

00:37:07   That's the point of dynamic languages.

00:37:09   They just sort of -- Like, I'm used to an environment

00:37:11   where, for the most part, same things happen

00:37:13   and reasonable things, if you look at them, happen.

00:37:15   And there's a few edges, but if you work

00:37:17   in any dynamic language, you learn those one or two edges,

00:37:19   and in general, everything else works.

00:37:21   Some languages have more edges than other.

00:37:23   JavaScript, in particular, has more edges

00:37:25   than your average dynamic language,

00:37:27   but usually there's not that many.

00:37:29   And it just lets you forget about all that stuff.

00:37:31   So I'm like, "Why do I have to deal with types?

00:37:34   I just do what I want."

00:37:36   Objective-C is this awkward mix of a language

00:37:40   that's trying to be chill with you about types.

00:37:42   You're like, "Hey, this is just of type ID, man.

00:37:45   It's fine. Just send the message.

00:37:47   It might work, might not.

00:37:49   You can send a message to anything."

00:37:51   I was like, "You can send a message to nil.

00:37:53   Like, it's cool.

00:37:54   Everything's fine here in Objective-C."

00:37:56   Well, I had a bug that I spent a long time on,

00:37:59   and a bunch of people looked at,

00:38:01   and I wish I had checked this in.

00:38:03   This is my bad work habits, but, like,

00:38:05   I had this buggy code sitting there,

00:38:07   and eventually I got it fixed, and I just committed the fix,

00:38:10   and I never committed the buggy one,

00:38:12   so I can't find out exactly what my bug was,

00:38:14   but I'm pretty sure it was something along these lines.

00:38:16   I was doing some bit masking

00:38:19   to detect whether the shift key was held down,

00:38:21   and there's, like, umpteen different ways to do this,

00:38:23   and if you, like, Google search for it,

00:38:25   you find tons of bad, wrong, or very old answers

00:38:27   because, you know, this platform has a long history,

00:38:30   but anyway, I was bit masking, like,

00:38:32   to try to figure out if the shift key was down,

00:38:35   and I was going to use that in a conditional,

00:38:38   so I was catching the result in a bool,

00:38:40   all caps bool type,

00:38:42   and no matter what happened, like,

00:38:44   when I looked at the event, the shift key was never down.

00:38:47   I'm like, "You're lying. I'm holding the shift key down.

00:38:49   How is the shift key not down?"

00:38:50   So I ended up writing this whole other event handler

00:38:52   that would just detect if the shift key was down,

00:38:53   and that worked.

00:38:54   I'm like, "See?

00:38:55   That event handler is catching the shift key down.

00:38:56   Why aren't you catching if the shift key is down?"

00:38:58   And then I made this crazy solution

00:39:00   where the global event handler

00:39:02   would detect that the shift key is down

00:39:04   and throw a switch, and then the other event handler

00:39:06   would notice that switch was thrown and say,

00:39:08   "Oh, I noticed that the other thing noticed

00:39:10   that the shift key was down.

00:39:11   Therefore, this must have been a shift click,"

00:39:12   and that had terrible races, as you can imagine,

00:39:14   because the events wouldn't necessarily fire

00:39:15   in the order that you wanted them to,

00:39:17   and I eventually did a bunch of hacks to get it to work,

00:39:19   but it was awful, but I couldn't, you know,

00:39:21   I couldn't figure out why it wasn't working.

00:39:23   Everything that I looked up in the documentation

00:39:24   was telling me that it should have been working,

00:39:25   and pretty sure what was happening was,

00:39:27   I was doing a bit mask of this, you know,

00:39:29   modifier bits thing, and I was catching the results

00:39:31   in a bool, and the bool type is too short

00:39:34   to hold the bit that was flipped on

00:39:36   in the masked out thing, so, like, I was taking,

00:39:38   I don't know, what is it, two 64-bit values,

00:39:40   and the one was way out there in bit 38,

00:39:43   and then it would catch the result in bool,

00:39:45   which is like a, you know, a define or whatever,

00:39:49   or a type alias for, like, unsigned char or something,

00:39:53   right, and it would just happily go, doot-de-doo,

00:39:55   here you go, oh, I'm gonna take that value

00:39:57   and put it into this one, well, it's all zeros,

00:39:59   and the first eight bits are all zeros,

00:40:01   and then I'd put it in a conditional,

00:40:03   and it'd be like, that bool is totally false,

00:40:05   and it would never see the shift key,

00:40:07   and it did this absolutely silently,

00:40:08   because objective C is trying to be chill,

00:40:11   but it is not a dynamic language,

00:40:13   and dynamic language would be like,

00:40:14   you're doing a bit mask, are there any bits

00:40:17   flipped in that bit mask, or is it all zero?

00:40:19   Are there any bits flipped if I evaluated the results

00:40:21   of that in a boolean context, of course it's gonna be true,

00:40:23   'cause I'm a dynamic language, and I'll just coerce things

00:40:25   in the way that you think makes sense,

00:40:26   but a C-based language with objective C is like,

00:40:29   bop, bop, bop, bop, take value, stick it into shorter thing,

00:40:31   don't complain, I think that's what was going on,

00:40:34   certainly that matches the results that I was getting.

00:40:37   If I had done that in Swift, Swift would have said,

00:40:40   you can't catch the result of that bit mask in a boolean,

00:40:43   that doesn't make any sense.

00:40:45   - You fool you.

00:40:46   - If you wanted to be a boolean,

00:40:48   check if the results of that bit mask

00:40:49   is equal to zero or not equal to zero,

00:40:51   because that will do, I'll do type inference and say,

00:40:54   okay, well the bit is this wide, and I'm comparing it to zero,

00:40:56   so it'll be like a long zero or an int zero,

00:40:58   I don't even know, I'll handle it for you,

00:41:00   but the comparison, equal or not equal,

00:41:02   is a boolean result, and you can catch that in a bool,

00:41:04   or you can put that right into a conditional.

00:41:06   All this leads up to this app being written,

00:41:09   and for the longest time, one of the barriers

00:41:12   was that we just didn't have an icon for it,

00:41:14   like we had a menu bar icon, but I didn't have a dock icon,

00:41:16   I'm like, well that's the only barrier, I just need a dock icon,

00:41:19   and so I kept looking around for one I could reuse,

00:41:21   and I couldn't really find anything,

00:41:22   so I drew a dock icon, and then I was like,

00:41:24   now everything's done, right?

00:41:25   I said, no, I don't want to deal with Objective-C,

00:41:28   so I started a new project next code,

00:41:30   and I rewrote the entire app in Objective-C.

00:41:32   - You mean Swift?

00:41:33   - Oh, it's Swift, yeah, I rewrote it in Swift, sorry.

00:41:35   It's not a lot of code,

00:41:37   and it was just a straight port, basically.

00:41:39   Some parts got to be a little bit fun,

00:41:41   like the parts that were not just me calling the app,

00:41:43   like there was this very simple class that they made

00:41:46   around the preferences thing,

00:41:47   and I got to rewrite that in Swift,

00:41:48   and I got to actually use some Swift features,

00:41:50   'cause I'm writing some of my own code,

00:41:51   but honestly, it's not that complicated.

00:41:53   So I rewrote it in Swift, which made the program smaller,

00:41:57   and I think made me feel more comfortable

00:42:00   that I wasn't producing any of those kind of errors

00:42:02   that it has described,

00:42:03   and the process of porting into Swift

00:42:06   was surprisingly pleasant.

00:42:08   I thought I'd be like, oh, I'm gonna be,

00:42:10   I'm gonna be a little bit more comfortable

00:42:12   like, oh, I'm gonna be going around

00:42:14   putting type annotations on things

00:42:15   and finding places where Objective-C didn't care,

00:42:18   but now Swift does care, and I have to add a bunch of types,

00:42:20   and that was not what it was like at all.

00:42:22   So first of all, calling into Apple's APIs from Swift,

00:42:25   I know that Apple's gone through a bunch of rounds

00:42:27   of changing their APIs, like work with Swift

00:42:29   and changing how the words are renamed and everything,

00:42:31   but me coming in at the end here after the last change,

00:42:35   it was just blessed relief to see that they're less verbose

00:42:38   and make more sense,

00:42:39   and once you do two or three of them,

00:42:41   you kind of know how they're gonna auto-complete.

00:42:43   I'm like, oh, I can just look at that,

00:42:44   and I know how it's gonna be.

00:42:45   I know they're not gonna repeat that word twice,

00:42:47   so it's just gonna be whatever.main or whatever.standard

00:42:50   instead of the whole big wordy thing.

00:42:52   I know the half of that message,

00:42:54   half of that message name is gonna be a parameter,

00:42:56   and the other half's gonna be the name,

00:42:58   and auto-complete really helps,

00:42:59   so when you're calling into Apple's APIs,

00:43:01   it's fairly straightforward.

00:43:02   Even when you have things like constants and stuff,

00:43:04   the fact that you can just do the dot thing

00:43:05   and, you know, you begin your enum or constant

00:43:09   or whatever with dot,

00:43:10   and it will know from type inference

00:43:11   what the rest of it is, so you don't have to type it out,

00:43:13   and if you have the Objective-C code,

00:43:15   you can just look up the help on it,

00:43:16   and then in the help thing,

00:43:17   just switch from Objective-C to Swift,

00:43:19   and it gives you the Swift equivalent of it.

00:43:21   Very straightforward, very pleasant experience.

00:43:24   I had to do almost no mucking with types

00:43:26   when dealing with any of Apple's things.

00:43:28   It all just fit together perfectly,

00:43:29   and when I wrote sort of the one or two little bits

00:43:32   that are, you know, my own code or, like, straightforward,

00:43:35   like, not calling Apple's APIs,

00:43:37   I got to use some fun Swift features and spend a little bit of time

00:43:40   realizing how little I know about how this works,

00:43:42   'cause, like, I look at it, and I'm like,

00:43:43   "Well, I would know how to do this in Perl

00:43:45   or any other language that has, like,

00:43:47   all the features that every language could ever need,"

00:43:49   and I have to see which one of these is Swift-incompetent yet.

00:43:52   All right, they've got property wrappers,

00:43:53   they've got didSet,

00:43:55   they've got the set and get things,

00:43:58   they've got init methods, they've got convenience init,

00:44:00   and then you've got to do experiments.

00:44:02   Oh, when you're in the init method,

00:44:03   does the didSet thing get called or not?

00:44:05   And, you know, like, there's lots of different ways

00:44:06   you can go with these things.

00:44:07   Having done this a million times, I knew the --

00:44:09   in other languages, I knew the possible feature set

00:44:11   that was out there, and it was just fun seeing

00:44:13   which parts are implemented in Swift and which are not.

00:44:17   So, anyway, I had a pleasant experience with it,

00:44:20   and the only weird part was that in Swift,

00:44:22   as far as I've been able to determine,

00:44:24   there is no way to disable warnings

00:44:26   for a line of code or a block of code.

00:44:29   You can either disable it for your whole project

00:44:31   or just live with a little yellow triangle,

00:44:34   which is insanity.

00:44:36   And it comes up because --

00:44:38   I got some help from another developer friend,

00:44:40   Gus Mueller of Flying Meat Software.

00:44:43   He came up with the fastest possible way

00:44:45   to bring all the windows from an app to the front.

00:44:47   Unfortunately, it uses a deprecated API.

00:44:51   But, you know, and you get a warning.

00:44:53   You can't use a deprecated API, which is fine.

00:44:56   In the Objective-C version, you just do pragma, clang,

00:44:58   whatever, until it had no warnings here,

00:45:00   and then, you know, the other pragma to pop that off of --

00:45:03   Anyway, but in Swift, it was just a warning,

00:45:06   and I kept googling around to find it,

00:45:08   and I found a Stack Overflow question that's like,

00:45:10   "As of, like, 2019, there is no way to do this."

00:45:13   I'm like, "Oh, that's grim."

00:45:15   So what I did was I took that one call,

00:45:17   and I threw it into an Objective-C file

00:45:19   and then called into Objective-C from Swift for that one call.

00:45:22   So we have, like, this Objective-C bridging header,

00:45:24   and they have the sole purpose of which is to get you to a file

00:45:26   that has a single function that calls a single other function

00:45:28   that does the thing I want,

00:45:30   and that one is wrapped in the no-warnings pragmas.

00:45:33   So that was the only sort of ugly wart.

00:45:35   I have a bunch of non-deprecated ways to do it, as well,

00:45:38   but they're all slower and laggier than the deprecated way,

00:45:41   so I'm hoping Apple doesn't deprecate that API anytime soon.

00:45:45   But, yeah, that's the app,

00:45:47   and so once I had the app in Swift

00:45:49   and an icon and everything else,

00:45:51   then I just wanted to put it up on the Mac App Store,

00:45:54   not because I think it's going to make any money,

00:45:56   because, honestly, who even wants an app

00:45:58   that's going to do this in the first place?

00:46:00   Very few people.

00:46:02   And, you know, the people who do want it, you know,

00:46:05   they're probably all listening to this show.

00:46:08   But I wanted the experience of what it's like

00:46:10   to do something on the Mac App Store

00:46:12   or on any app store that, you know,

00:46:13   we talk about it all the time,

00:46:15   but I've never actually done it or dealt with it

00:46:17   or experienced anything about that.

00:46:18   So this is kind of the best and worst case,

00:46:21   and the app part of it is so trivial.

00:46:24   As I said in the thing I posted about it, it was so trivial,

00:46:26   and I rejected it for how trivial it was,

00:46:28   kind of like how they rejected my reload button extension,

00:46:30   because, like, this product has all the overhead

00:46:33   associated with putting anything up in the app store

00:46:36   with almost none of the actual development work.

00:46:38   So, like, imagine the least development you could do

00:46:42   and then have the overhead overwhelm it

00:46:44   of making sure everything's set up

00:46:46   and going through the app store thing

00:46:48   and doing all the signing stuff and just, you know,

00:46:50   you guys both know what it's like,

00:46:52   but I had never actually experienced this stuff myself,

00:46:54   so I wanted to do it, so I did, and I have to say,

00:46:57   like, my decision to put this on the Mac app store,

00:47:01   the discussions about it and saying,

00:47:02   "Okay, this is the thing we're gonna do,

00:47:03   and I'm gonna put it on the Mac app store,"

00:47:05   that happened in the morning of a day,

00:47:08   and by the evening of that day,

00:47:09   it was available on the Mac app store,

00:47:11   which I think is miraculous,

00:47:13   not just for app review times,

00:47:15   but for how long it took me to go through

00:47:17   all of the things with the tax forms

00:47:19   and setting everything up

00:47:20   and making sure signing is done right

00:47:21   and uploading and dealing with all the fields

00:47:24   you have to fill in one day from,

00:47:27   "I think I should put this in the app store,"

00:47:29   to, "I can go to the app store application

00:47:31   and see my thing."

00:47:32   I was flabbergasted by that.

00:47:34   My app review time was, like, measured in minutes

00:47:37   and all the other stuff of it.

00:47:39   It was annoying, and there was lots of stuff to go through,

00:47:41   but basically, without even having to Google anything

00:47:44   but just clicking around on the UI,

00:47:45   I was able to figure it out.

00:47:47   I was gonna say that their web UI for app store connect

00:47:50   is really good, except at one point,

00:47:52   I did make the mistake of trying to type something

00:47:54   into one of the text fields,

00:47:56   and, like, something happened, and then it ate it.

00:47:59   Like, it didn't reload the page,

00:48:00   but all of a sudden, half of my text was gone.

00:48:02   I'm like, "Okay, well, not typing anything

00:48:03   into this web page anymore."

00:48:04   It did everything in a separate text file,

00:48:06   which is probably what I should have been doing

00:48:08   in the first place, but, yeah, I did all that.

00:48:10   I put it up in the app store.

00:48:11   I did want to make it a paid app

00:48:13   because I want that part of the experience, as well,

00:48:15   just the whole getting the payment stuff set up

00:48:18   and dealing with all of that.

00:48:20   I debated, discussed with Lee how much we should charge

00:48:23   for the app.

00:48:26   I was thinking I should charge a lot

00:48:28   to keep people away from it

00:48:30   because I don't want people to download it and be like,

00:48:32   "Oh, it's your app, and it's stupid.

00:48:34   It doesn't do anything."

00:48:35   I'm like, "Yeah, you probably shouldn't download it,"

00:48:37   but for the people who want it, like me,

00:48:40   like, I wanted the app so much

00:48:41   that I, like, willed it into existence, right?

00:48:44   I would pay a huge amount of money to someone else.

00:48:46   I would pay $10 if someone put this app up

00:48:48   and I didn't have to write it.

00:48:50   Like, I would pay a lot for it, so I think the --

00:48:52   And the people who use it,

00:48:54   it's not just like you take the app and you don't use it.

00:48:56   You run it all day long

00:48:57   and use it hundreds of times a day

00:48:59   as you click around in Windows.

00:49:00   Like, it gets used a lot if you have it.

00:49:02   Like, it changes the way your Mac works.

00:49:04   So I was in favor of a very high price,

00:49:06   but on the other hand, this is literally the simplest app

00:49:09   that Apple would probably ever allow.

00:49:10   The app store does, like, one thing,

00:49:13   and it has, like, one window with a couple of check boxes in it.

00:49:16   Like, it is incredibly simple, so it couldn't be too expensive.

00:49:19   So it's $2.99.

00:49:21   If you think you're interested in trying classic window mode,

00:49:25   you should try this out.

00:49:26   Even if you're not interested in trying it,

00:49:28   you can just run it in the other mode, in modern mode,

00:49:30   where it just works normally,

00:49:32   but then you can still shift-click

00:49:33   if you want to bring all the windows forward

00:49:35   and don't want to go all the way down to the dock icon to do that.

00:49:38   So every listener to this show should obviously go and buy it.

00:49:41   Oh, yeah, obviously.

00:49:43   You can buy it and then just throw it in the trash.

00:49:45   That's fine with me. That's ideal, actually.

00:49:47   Or you can buy it and just run it all day long.

00:49:49   I recommend running it without the dock icon.

00:49:53   Like, honestly, the only reason it has a dock icon

00:49:55   is because I thought you had to get rejected

00:49:56   if I automatically had the dock icon.

00:49:59   Yeah, run it without the dock icon.

00:50:02   Run it with just the menu bar icon.

00:50:03   The secret that no one else knows, except for listeners of the show,

00:50:05   is that you can option-click on the dock icon

00:50:07   to toggle the modes if that's what you want to do.

00:50:10   And that's about it.

00:50:12   I think I got to experience everything

00:50:14   that you were supposed to experience

00:50:16   about doing an app on the Mac App Store.

00:50:19   All the rookie mistakes I think I made, and then some,

00:50:22   my first submission was rejected.

00:50:24   Like, I passed -- this is like achievements, you know,

00:50:26   in console game style.

00:50:29   Achievement unlocked. First submission rejected.

00:50:31   Can you guess what my submission was rejected for?

00:50:33   Metadata.

00:50:34   Oh, boy. Yeah, metadata is a common one.

00:50:36   If you mentioned the price in metadata, that's a common one.

00:50:39   I was afraid of mentioning, like, Mac OS.

00:50:42   Like, get classic -- I was like, can I mention Mac OS?

00:50:45   Like, I'm aware of -- I'm less rookie than most people

00:50:48   because I'm aware of many of the problems people encounter,

00:50:50   but you really got to think really rookie.

00:50:52   Like, think of, like, has never submitted an app.

00:50:55   I'll give you a hint.

00:50:56   It doesn't have to do with the app submission process.

00:50:58   It has to do with the actual app.

00:50:59   What did I forget?

00:51:01   Did you leave it with, like, a 0.1 version number

00:51:03   or something like that that suggested that it was a beta or incomplete?

00:51:06   I didn't know that would get me rejected, but no.

00:51:08   It does.

00:51:09   Yep.

00:51:10   I did not do that.

00:51:11   Hmm.

00:51:12   This is probably something -- well, I don't know.

00:51:14   Marco doesn't do -- maybe -- did you have --

00:51:16   Marco might have had this happen to Forecast

00:51:18   because that was your first Mac app, right?

00:51:20   Forecast has never -- I've never submitted a Mac app.

00:51:22   Oh, right.

00:51:23   It's not App Store.

00:51:24   Oh, then maybe you don't know.

00:51:25   If you haven't submitted a Mac app,

00:51:26   maybe this doesn't occur to you,

00:51:27   but I'll just save you from this rookie mistake.

00:51:29   When you make a new Mac app project in Xcode,

00:51:33   like I did making a new project in Swift,

00:51:35   it gives you a whole bunch of crap.

00:51:37   Like, you don't just start off with nothing.

00:51:39   Like, it gives you, like, the skeleton of an app, right?

00:51:42   It even gives you, like, a window.

00:51:43   Like, it does a bunch of stuff for you.

00:51:45   Yeah, like the menu and about screen and everything, right?

00:51:48   Mm-hmm, which is, like, great, nice.

00:51:49   Like, we're using that about screen.

00:51:51   Like, that's -- I didn't have to write the about screen.

00:51:53   It's like standard about screen.

00:51:54   You know, I didn't even override the delegate method or whatever.

00:51:58   What I forgot was it gives you a ton of other menus.

00:52:02   And all the menus that, like, filled out,

00:52:04   like, it gives you print and page setup and a help item.

00:52:08   Yeah, the whole edit and view and everything.

00:52:10   Yeah, and tons of stuff that is not relevant at all to my application.

00:52:13   What does App Review do?

00:52:14   They go through every one of your menus,

00:52:15   and they try every function.

00:52:17   [ Laughs ]

00:52:18   And it's not like it crashes when you do them.

00:52:20   When you go to print, it brings up a nice dialogue

00:52:23   that says this application cannot print.

00:52:25   But they rejected for that.

00:52:27   They're like, "You forgot to --

00:52:28   You didn't hook up any of these."

00:52:30   You know, they basically said --

00:52:31   They called it an error. I got an error.

00:52:32   I'm like, "You didn't get an error.

00:52:33   You got a beautiful dialogue box that says this application cannot print."

00:52:36   [ Laughter ]

00:52:37   Yes, so if you are submitting your first Mac application,

00:52:40   go through your menus that were given to you as part of the skeleton

00:52:44   and delete all the items that are not relevant to your application.

00:52:47   I did actually hook up the help item.

00:52:48   It just takes you to the website.

00:52:49   But honestly, there's not much help for the app.

00:52:52   All the help for the app is in the dialogue.

00:52:54   So that was my rejection,

00:52:55   and I was happy to see that rejection rather than being rejected

00:52:58   for having too simple a functionality, which would be crappy.

00:53:01   What else did I do?

00:53:02   I immediately released the 1.0.1 version

00:53:05   because I realized -- This is a super-rookie mistake.

00:53:08   I realized after developing it for so long

00:53:10   that on first run, when you have no prefs file,

00:53:13   my code that was trying to set the prefs to default values

00:53:16   wasn't working right because I didn't --

00:53:17   You know, it was just a bug, right?

00:53:19   But I never saw that myself because I always had a prefs file

00:53:21   because I'd been developing it, right?

00:53:23   First run. New user first run.

00:53:25   Delete the container.

00:53:26   Kill CF prefs.

00:53:27   The, like, simulate the experience of a computer

00:53:30   that has literally never run.

00:53:31   This application, because if you don't,

00:53:34   that's what they're going to do.

00:53:35   And that wasn't, like -- It didn't cause a problem.

00:53:37   It's just that when you first launch it,

00:53:39   all the prefs were, like, off, and that was the opposite

00:53:41   of what I wanted the default values to be.

00:53:43   So I fixed that.

00:53:45   And then the final one is a tiny, sort of,

00:53:49   niggling UI issue that isn't worth releasing a new version for,

00:53:52   but that gets seen immediately after the thing is up,

00:53:54   which you and Brent just noticed in the Slack,

00:53:58   that one of my labels is not correctly on.

00:54:00   One of my labels is not correctly aligned

00:54:02   in the one window that appears.

00:54:04   And I tell you, it is not for lack of trying.

00:54:06   God, that UI is killing me.

00:54:07   The fact that you can't zoom in that UI

00:54:09   and there's so many things in there

00:54:11   and the auto layout constraints and --

00:54:12   You're talking about, like, the Xcode, like, auto layout?

00:54:14   Yeah, or just dragging the labels.

00:54:16   You know how, like, it snaps things in the storyboard interface?

00:54:19   It, like, snaps things to grid things,

00:54:21   and there's so many things that it thinks it's snapping to,

00:54:23   and there's the auto layout constraints, and, like,

00:54:25   I swear, I tried to align everything.

00:54:27   Like, my intentions.

00:54:28   I know how they should be aligned,

00:54:29   but, you know, retina screens have very small pixels,

00:54:32   and you can't zoom that interface at all,

00:54:35   and so I ship to the App Store thing with a misaligned label.

00:54:37   So I fixed that in, you know, in Xcode.

00:54:40   It's committed to the repo,

00:54:42   but am I going to release version 1.0.2

00:54:44   with a change that says "Label moved down one pixel"?

00:54:48   'Cause that's the change that I made.

00:54:50   I figure I'll wait for more bug reports

00:54:52   before I put out that release.

00:54:54   So you can go to the App Store now and get version 1.0.1.

00:54:58   For the low, low price of $2.99,

00:55:00   and then stare at the misaligned label

00:55:02   and wait for me to release an update.

00:55:04   [Laughter]

00:55:05   Well, congratulations, John.

00:55:07   I am excited that you are now officially a Swift developer.

00:55:10   Yeah. Like I said, I enjoyed it.

00:55:12   And it's not really that fair, because, like,

00:55:14   this app is just calling a bunch of Apple APIs

00:55:17   with, like, one new class defined, right?

00:55:21   There's no business logic. There's no data model.

00:55:23   There's no -- It's not really a fair assessment.

00:55:26   But I did see and work with that code in Objective-C.

00:55:30   I did rewrite it all in Swift,

00:55:32   so I feel like I can have a reasonable comparison

00:55:34   of how nice is --

00:55:36   A, how hard is it to port from Objective-C to Swift,

00:55:39   and B, how nice is it to call into Apple's APIs in Swift?

00:55:42   And I think the answer is surprisingly nice,

00:55:44   given where it came from

00:55:46   and how kind of gross it used to be.

00:55:48   Yeah, every time I look at Objective-C,

00:55:51   like, enumeration names that are 3,000 characters long,

00:55:55   as is everything else in Objective-C, I just go, "Ugh."

00:55:58   And Xcode with the fix-its -- super impressed.

00:56:00   Like, so they -- Not only did they shorten --

00:56:02   You know, not only can you use type inference

00:56:04   to make those shorter, but a lot of the names,

00:56:06   they, like, changed the wording on them and stuff.

00:56:08   And the Xcode thing would say, you know,

00:56:11   "This enumeration constant or whatever is not --

00:56:15   It's unknown or whatever."

00:56:17   And it would say, "By the way, that was renamed from X to Y."

00:56:20   Like, they have some kind of metadata in their headers

00:56:22   or whatever that says the old name for this was X,

00:56:24   so if someone types X, don't just say,

00:56:26   "unknown symbol" or whatever.

00:56:28   Tell them, "Oh, I see. Yeah, we renamed that.

00:56:30   We changed the noun and the verb positions,

00:56:32   and we moved this around or whatever."

00:56:34   And it knows what you were trying to type,

00:56:36   and you can just hit the fix and the fix-it thing.

00:56:38   Super impressed with Xcode.

00:56:40   Oh, more beginner stuff.

00:56:41   I did have to delete the derived data directory a few times, so...

00:56:44   Oh, yeah.

00:56:45   I'm hitting all the milestones.

00:56:47   [ Laughs ]

00:56:49   Oh, man. I'm proud of you, John.

00:56:51   This is good times.

00:56:53   We are sponsored this week by Hover.

00:56:55   Hover is a jumping-off point for a ton of entrepreneurs,

00:56:58   and they want you to start your business with a domain name.

00:57:01   Hover has over 300 domain name extensions to choose from

00:57:05   when building your brand online.

00:57:07   No matter what you want to build,

00:57:09   there's a domain name waiting for it.

00:57:11   You'll find excellent technical support available

00:57:13   to answer any questions you might have,

00:57:15   and their support team doesn't try to upsell you all the time.

00:57:18   They only work hard to help you get online.

00:57:20   And with things like free Whois privacy protection,

00:57:22   a clean UI, and monthly sales on popular top-level domains,

00:57:26   it's hard not to see why Hover is such a great popular choice

00:57:30   for people starting all kinds of businesses.

00:57:32   I personally register most of my domains at Hover

00:57:35   because it's just better.

00:57:36   It's easier, and they have great, like, keyword search tools

00:57:39   if what you want isn't quite available.

00:57:41   They can search over 300 domain extensions,

00:57:44   so, like, maybe the .com for what you want is taken,

00:57:47   but you can get .something else.

00:57:48   There's tons of different extensions to choose from.

00:57:50   Whenever I start a business, the very first thing I do

00:57:53   is see if the domain names are available,

00:57:55   and I do that with Hover, and I buy them whenever I can.

00:57:57   I'll buy names speculatively.

00:57:58   Like, if I think I might use a name, I'll buy it anyway

00:58:00   because it's so inexpensive.

00:58:01   It doesn't really matter if you accidentally buy a few

00:58:03   that you end up not using.

00:58:04   So check it out today.

00:58:05   For whatever your next domain name is,

00:58:07   get that domain name and many more at hover.com/atp,

00:58:11   and you can get a 10% discount with that referral link

00:58:14   on all new purchases.

00:58:16   Once again, hover.com/atp.

00:58:19   Make a name for yourself with Hover.

00:58:21   [ Jazzy music plays ]

00:58:25   -Marco, you have a new toy in your house.

00:58:28   -News broke a few weeks back

00:58:30   that Swiss TV company Salt

00:58:34   had made an alternative Apple TV remote

00:58:38   for their customers in Switzerland.

00:58:40   The reporting was like,

00:58:41   "Oh, it was, like, with Apple's cooperation,

00:58:43   and it's fully compatible.

00:58:44   It looks like a bigger Apple TV remote

00:58:47   with regular buttons on it."

00:58:48   And listener David Rossely actually sent me one.

00:58:52   So thank you, David. That was awesome.

00:58:54   I got to say, it's really nice, actually.

00:58:56   Like, it's not perfect,

00:58:58   and I'm not sure I'm gonna stick with it forever.

00:59:00   So first impressions, it's very big.

00:59:04   It feels very light and feels very cheap.

00:59:07   The plastic on the outside is, like,

00:59:08   a very, like, just kind of cheap plastic.

00:59:11   The top edge is kind of sharp,

00:59:13   like the bezel edge around the top.

00:59:15   So, like, it doesn't feel like a premium thing.

00:59:19   The surface with the buttons on it, though,

00:59:21   does feel nicer.

00:59:22   It has that kind of, like, soft-touch silicone rubbery

00:59:25   kind of feel that a lot of stuff has now.

00:59:27   It's very, like, high-contrast.

00:59:28   Like, there's no logo on it.

00:59:30   There's no, like, Salt TV logo anywhere on it.

00:59:33   It has, like, the big white-circled menu button on top.

00:59:36   So it looks kind of like the Apple TV style.

00:59:39   And then it feels, you know, it feels good.

00:59:42   Like, the buttons feel good.

00:59:43   The only thing is that the buttons are very low.

00:59:45   It's a very shallow, like, depth.

00:59:47   And having most of them have just, like,

00:59:50   it's mostly just black with white labels.

00:59:53   And only the menu button has a circle around it.

00:59:55   And so in practice, especially, like, in, like,

00:59:58   a dark TV room, it's hard to see the edges of the buttons.

01:00:01   And so you do have to do a little bit of feel.

01:00:03   And the edges are so, like, shallow on them

01:00:06   that it's a little hard to feel around

01:00:09   just based on feel alone.

01:00:11   The iconography on it is nice and bold.

01:00:12   And high contrast, but, like, you know.

01:00:15   And there aren't that many buttons on it,

01:00:17   so it's fairly easy to navigate.

01:00:18   But it is a little hard to see, like, in the dark.

01:00:21   And where this is most concerning,

01:00:23   or most clunky, is operating the D-pad.

01:00:26   Because it is also, like, the direction, you know,

01:00:29   up, down, left, and right buttons

01:00:31   are just this one big round rect.

01:00:34   They're not, like, separate, four separate, like,

01:00:37   ridges that you can feel.

01:00:39   It's just, like, this big, round blob.

01:00:41   So it's a little bit hard to precisely navigate that.

01:00:44   But it is not a touch surface, like the Apple TV remote.

01:00:47   Like, it's actually just four buttons.

01:00:49   So that's great.

01:00:50   It actually works really well.

01:00:52   Where it falls down is text input.

01:00:56   Because this remote, you know,

01:00:58   it doesn't have that trackpad-like surface.

01:01:01   So text input, if you're gonna do it on here,

01:01:04   you have to, you know, hit the left and right buttons,

01:01:07   like, over and over and over again

01:01:08   to, like, get over to the right letters.

01:01:10   And there's no Siri on it.

01:01:13   Because I assume the way this works

01:01:16   is I think it's just an infrared remote

01:01:19   that comes pre-programmed to send the right codes to Apple.

01:01:23   Like, the reporting on it was kind of like,

01:01:25   oh, Apple cooperated with them and let them do it.

01:01:27   And I don't know how much cooperation there was.

01:01:29   I think what really happened is they just shipped a remote

01:01:32   that was compatible without pairing or anything

01:01:35   because it sends the same infrared commands

01:01:37   that the old Apple's IR remote sent.

01:01:39   That's my best guess.

01:01:41   But it does really work that way.

01:01:42   Like, there's no setup, there's no pairing.

01:01:45   You just point it at the Apple TV

01:01:47   and it just starts working.

01:01:48   So that part is awesome.

01:01:50   But not having Siri and having to move the text cursor

01:01:55   back and forth by, like, hitting the buttons

01:01:57   over and over again, that is clunky and painful.

01:02:01   If you're gonna go this route,

01:02:02   you're probably gonna wanna do all text input on your phone

01:02:05   or keeping the Apple remote around

01:02:08   and just using it for Siri.

01:02:10   But otherwise, the rest of the operation of this

01:02:13   is actually pretty nice.

01:02:16   The buttons do click in nicely.

01:02:18   I haven't had any accidental input.

01:02:21   There are a few niceties, like there's a power button.

01:02:24   Now, on the Apple TV remote,

01:02:25   you can hold the home button down for a few seconds

01:02:28   and it puts up, like, a sleep dialogue

01:02:30   and you hit that and it turns off the TV and the Apple TV.

01:02:33   This has a power button that doesn't do that.

01:02:36   It seems to only turn off the TV.

01:02:39   Oh, and it has a volume up and down button

01:02:42   that doesn't initially work unless you have,

01:02:46   I think, a Samsung TV.

01:02:47   It comes by default.

01:02:48   But there's a little instruction sheet

01:02:50   that comes with the remote.

01:02:51   If you hold down a certain button combo,

01:02:53   you can toggle it between different brands of TVs

01:02:56   for, like, universal IR compatibility.

01:02:58   And once you find your TV,

01:03:00   then volume up and down and power work.

01:03:04   I have an LG. I hit, like, the switch button one time

01:03:07   and it went to the LG, so it's fine.

01:03:09   So that part is great.

01:03:11   So I have volume, I have power.

01:03:13   There's no actual home button.

01:03:16   There's menu, but there's no home button.

01:03:18   If you hold down the menu button for a couple of seconds,

01:03:21   it performs a single home button click,

01:03:24   but you can't do the double-click thing

01:03:26   to bring up the app switcher

01:03:28   to force quit Netflix when it breaks.

01:03:30   So that's a little annoying.

01:03:32   There's no way to go to the app switcher as far as I can find.

01:03:35   What's nice, though,

01:03:37   is that it has these dedicated buttons at the bottom

01:03:40   for not only play/pause,

01:03:42   but also rewind, fast-forward,

01:03:45   jump back and jump forward 10 seconds.

01:03:47   And these are all things you can do on the Apple remote

01:03:51   with certain gestures and things,

01:03:53   but I've found them incredibly error-prone

01:03:55   and incredibly hard to do, like, reliably.

01:03:57   And with this, just having those as buttons

01:04:00   is actually really nice.

01:04:02   So overall, it's pretty nice.

01:04:05   Like, I've been using it for a few days,

01:04:08   and so far, I think I'm gonna keep it out,

01:04:11   but not having Siri or the home button

01:04:14   will prevent me from putting my Apple remote away forever.

01:04:19   - So you're gonna have two remotes.

01:04:21   - Yeah, right.

01:04:22   - All the things that are wrong with this

01:04:24   are ways in which you try to copy the Apple remote.

01:04:26   The shallow buttons are so clearly trying

01:04:28   to imitate the very shallow button on the Apple remote

01:04:31   right down to the ring around the menu thing.

01:04:33   The general size and shape --

01:04:35   they know they want it to be larger,

01:04:37   but it's still basically a thin, fairly narrow rectangle.

01:04:40   I'm pretty sure this feature is still in the Apple TV,

01:04:42   and this is what I suggest to people.

01:04:44   The Apple TV has a feature where it will learn

01:04:46   any IR remote that you happen to have.

01:04:48   Like, the Apple TV will learn your remote

01:04:50   and not the other way around.

01:04:52   And I, for years, used an old TiVo remote with my Apple TV.

01:04:55   I just put a little sticker on it that said "Apple TV,"

01:04:57   so we know this is because we have another TiVo remote

01:04:59   that looks exactly the same, right?

01:05:01   And you just teach the TiVo that,

01:05:03   and it has all the same features you just talked about.

01:05:05   TiVo has a skip forward and skip back and fast forward.

01:05:08   It has dedicated buttons for all that,

01:05:09   so you get all those features.

01:05:10   It doesn't have a Siri thing, so you're missing that.

01:05:13   The power and the volume work the same way on TiVo remotes.

01:05:16   It's IR, as well, even though TiVo remotes

01:05:18   also have Bluetooth.

01:05:20   I've never used it with Bluetooth with the Apple TV.

01:05:22   I don't think you even can.

01:05:23   But if this feature still exists on Apple TV --

01:05:26   and I think it does --

01:05:27   and you have a remote that you like

01:05:29   that you're not using anymore --

01:05:30   and maybe this is a rare scenario,

01:05:31   but, like, if you ever use TiVo,

01:05:32   you've probably accumulated these TiV remotes.

01:05:34   TiV remotes are amazing. The buttons are high.

01:05:35   You can see them without ever looking at them.

01:05:37   They have a distinctive size and shape and position.

01:05:40   It's glorious.

01:05:42   I found something today with a TiVo streaming box,

01:05:44   which I'm assuming is terrible

01:05:45   because TiVo software these days is terrible,

01:05:47   but it comes with a tiny TiVo remote.

01:05:50   Like, it's the same as the TiVo Pino remote,

01:05:52   but it's really, really small.

01:05:53   I think this would be an ideal Apple TV remote

01:05:56   because the Apple TV itself is small,

01:05:57   and so is the real remote for it,

01:05:59   so it would be nice to have a sort of black,

01:06:01   sleek, small Apple TV remote.

01:06:03   So the TiVo streaming box is like $70,

01:06:06   and it comes with a remote.

01:06:07   So just buy it, throw away the streaming box,

01:06:09   and take that remote and use it with your Apple TV.

01:06:11   [ Laughter ]

01:06:13   -Oh, my word.

01:06:14   -Anyway, thank you to David Rosseli

01:06:15   for giving me this remote.

01:06:16   It's pretty awesome.

01:06:17   And, yeah, I'm gonna keep using it, I think.

01:06:20   -John, on your birthday, you got very good news,

01:06:25   and then several days later, you got another package.

01:06:28   -I did. Another two packages.

01:06:30   I got a package with the stand and the display.

01:06:32   The stand box is way bigger than I thought it would be.

01:06:35   It's just -- It's tremendous.

01:06:36   I don't -- I mean, the stand itself is also big,

01:06:38   but, like, the box is huge.

01:06:40   -All that money had to go somewhere.

01:06:42   -Yeah. I've got the display and the stand.

01:06:45   They are connected to each other.

01:06:47   It is on my desk.

01:06:49   First impression, having set up and using it,

01:06:53   you know, to give context before I go into that,

01:06:57   I'm not using this monitor for its intended purpose.

01:07:00   I don't need a reference monitor.

01:07:02   I don't need excellent color fidelity

01:07:04   beyond what the iMac offers.

01:07:05   Although I appreciate it,

01:07:06   'cause I do do photos in this thing or whatever.

01:07:08   But, like, there is no actual use case

01:07:12   that requires this thing.

01:07:13   But I did want a really big, nice Apple monitor, right?

01:07:18   So if they had offered a 6K display

01:07:22   that was not a bazillion dollars

01:07:24   and was just like the iMac display but bigger,

01:07:26   I would have got that.

01:07:27   And my first impression of using it was --

01:07:30   had to do with the size.

01:07:31   I was going to remember from a 23-inch monitor,

01:07:34   which is kind of small even by today's standards.

01:07:37   That was my old monitor.

01:07:38   And then I had a 24 temporarily on the desk,

01:07:41   not that much bigger.

01:07:43   And, you know, the resolution was only, like --

01:07:45   It was only 4K.

01:07:47   I just felt overwhelmed by how big it was.

01:07:50   I mentioned before my window arranging,

01:07:52   where I have places where windows go,

01:07:54   and my window arranging pattern has evolved

01:07:56   as screen sizes have changed.

01:07:58   Obviously, I started my window arranging patterns

01:08:00   on a 9-inch screen that was -- whatever it is --

01:08:02   512x342, whatever the classic amount was.

01:08:04   And it's moved up from there.

01:08:06   I haven't made a significant jump

01:08:08   in sort of point size, like not pixels, you know,

01:08:12   versus retina versus non-retina,

01:08:14   but just like how many computer points are on the screen,

01:08:18   which used to be pixels,

01:08:19   but now are little clusters of four actual pixels

01:08:21   in retina mode.

01:08:23   I haven't made a big jump like that for a while.

01:08:25   I made a big jump from the CRT days

01:08:28   to my 23-inch Apple Cinema display back in the day,

01:08:31   which was what, 1,900 by --

01:08:35   1,920 by 1,200?

01:08:37   I don't even remember anymore.

01:08:38   But that was a 23-inch LCD.

01:08:41   And after that, with my Mac Pro,

01:08:43   I was also using a 23-inch LCD.

01:08:45   I think it had more pixels because it was taller, right?

01:08:47   I'm not entirely sure.

01:08:49   But that was the last big jump I made.

01:08:51   And so the jump from CRT to 23-inch LCD,

01:08:54   and then I moved 23-inch LCD until 2019.

01:08:57   -Wow. -And then I go up to 6K.

01:08:59   Obviously, you know, my wife has a 5K iMac,

01:09:02   and I use it all the time.

01:09:03   But it was something about sitting at my desk

01:09:05   in my familiar place in this huge screen,

01:09:07   and then, like, I launched my applications,

01:09:10   and they were all shoved into the upper left-hand corner,

01:09:12   because it remembers the window positions,

01:09:14   and I just see all the space around me.

01:09:16   [ Laughs ]

01:09:17   Where, you know, like, space that didn't exist before.

01:09:20   So I started doing my window arranging,

01:09:22   and I realized my old patterns that were, like,

01:09:24   anchored in the corners were, like, in the upper left.

01:09:26   I have web browsers in the upper right.

01:09:28   That's where, like, my Skype window goes

01:09:30   when I'm podcasting, and the lower left is, like,

01:09:32   Audio Hijack, and in the center is Skype.

01:09:34   And, like, you know, my terminal windows

01:09:36   are anchored at various places.

01:09:38   I ended up with this giant hole in the middle of the monitor,

01:09:41   because when I did that sort of corner anchoring,

01:09:43   there was this giant space in the middle

01:09:45   where there was nothing in.

01:09:46   I was like, "I've got all this extra space.

01:09:48   I need to rethink everything.

01:09:50   I need to rethink all my patterns,

01:09:51   so I'm evolving how I'm going."

01:09:53   -But it just -- -"Rethink cities."

01:09:55   Yeah, there's just wide-open spaces.

01:09:57   And I also felt like --

01:09:59   I felt like the thing was looming over me.

01:10:01   Like, it was just, like, this huge wall in front of my eyes.

01:10:04   Like, I had to, like, turn my head to take it all in, right?

01:10:07   It was just unbelievable, right?

01:10:09   And I did -- I don't have anything that I could show

01:10:13   on this monitor to show off its capabilities,

01:10:15   so I just started Googling for, like, 8K HDR content,

01:10:20   like demo reels that they show at, like,

01:10:22   you know, CES or whatever for your televisions.

01:10:24   And I found a bunch of them. Samsung has a bunch.

01:10:27   And so I got, like, this either 6K or 8K footage

01:10:31   at 60 frames per second in HDR,

01:10:34   and then I tried to find an app to play it.

01:10:36   And by the way, like, this is --

01:10:38   you know, when it's not in QuickTime-compatible format,

01:10:40   you have to use the other things.

01:10:41   That one that we talked about on the last show,

01:10:43   I think it was Optimist Player. You remember that app?

01:10:45   -Mm-hmm. -Yep.

01:10:46   That was the winner. Like, I tried a bunch of other apps I had.

01:10:48   I tried, like, VLC. I tried the IINA, you know, whatever app,

01:10:53   and it was having some trouble with it.

01:10:54   I'm like, "Is my computer too slow to play this?"

01:10:56   No, it's just, like, the particular codec

01:10:58   that these demos had,

01:11:00   Optimist Player just did it fine.

01:11:02   And it looks amazing.

01:11:04   It looks amazing in HDR at 60 frames per second at 8K.

01:11:07   It looks -- I'm not gonna say it looks better than my TV,

01:11:09   and I'll get to that in a little bit,

01:11:10   because in some respects, it doesn't,

01:11:11   but it does look absolutely amazing.

01:11:13   Like, this is the first time I've seen --

01:11:15   first HDR display I have in the house,

01:11:16   besides, I guess, like, the iPad Pro one that's HDR.

01:11:20   I don't remember. Anyway.

01:11:21   Or the phones, I guess, are HDR.

01:11:22   But this is, you know, has way more nits,

01:11:25   as they say, on stage.

01:11:27   Super impressive.

01:11:28   I can watch -- the demo reel I liked the best

01:11:30   was this person taking their golden retriever through Italy

01:11:32   and showing pictures of food and everything,

01:11:34   so I was predisposed to like it.

01:11:35   But it looked amazing.

01:11:37   But I don't spend my day looking at HDR content.

01:11:39   Most of the time, I'm just looking at regular computer screens.

01:11:42   I enjoyed editing my photos on it.

01:11:44   I enjoyed making my photos window, like, three times as big,

01:11:47   because, again, they launch photos,

01:11:48   and it's in the upper left-hand corner.

01:11:49   It's like, "Zoop!" You can zoom that out now.

01:11:52   God, I can see so many photos.

01:11:54   The magic part of it is that three days later,

01:11:58   now this is just my life now.

01:11:59   Like, the monitor does not feel big.

01:12:01   It just feels like a computer monitor.

01:12:03   I rearranged everything and have new patterns.

01:12:05   When I was doing the development of my app

01:12:07   and I had Xcode open and I had, you know, my web browsers,

01:12:11   then I had the help window,

01:12:13   I had Photoshop open for doing all the icon work,

01:12:16   and I had, like, IconSlate open and Candy Bar

01:12:18   looking at my old icons to try to find things,

01:12:20   and what else did I have?

01:12:22   I had so many apps open,

01:12:23   then when I brought up the app switcher,

01:12:24   it hit the edges of my monitor.

01:12:26   You know, a 6,000, 16-pixel monitor.

01:12:29   The app switcher was going from edge to --

01:12:31   because again, 96 gigs of RAM, right?

01:12:33   I had so much going on, and it could handle it

01:12:35   because there was a place for everything to go.

01:12:37   - Yeah, why ever quit anything?

01:12:38   - It was, but like, it's so terrifying

01:12:41   how quickly you get used to, like, you know,

01:12:43   like, "Oh, this monitor's so big!"

01:12:44   And then you're just like, you know,

01:12:46   as they say on television, "This is me now."

01:12:49   - So I'm curious, like, one thing

01:12:52   that I always tried to maintain,

01:12:54   I always tried to make sure that I was using

01:12:56   the same monitor sizes and setup at work and at home

01:13:00   because I hated the idea of having to switch

01:13:02   and have, like, a nice big one in one of those places

01:13:05   and have to go to a smaller one for the other place.

01:13:08   Is that gonna be a problem for you with this,

01:13:10   or are you gonna somehow make work buy you one of these?

01:13:12   - Oh, no, it's not gonna be a problem.

01:13:14   Like, 'cause I'm, the things I'm doing at home

01:13:16   and the things I'm doing at work are not the same at all.

01:13:18   I love coming home to this big setup

01:13:20   and this faster computer and all the other stuff,

01:13:23   but I'm doing different things.

01:13:25   You know, at work, I do have, you know,

01:13:27   I have the stupid laptop and I have the external 24-inch monitor,

01:13:30   but it's fine for what I do at work.

01:13:32   Remember, at work, I'm not running Photoshop and Xcode

01:13:36   and two web browsers at the same time.

01:13:39   Like, that's not what I'm doing.

01:13:41   Like, I'm not multitasking to that degree,

01:13:43   so it's, you know, I don't have as much RAM.

01:13:44   Either, you know, it's not a problem for me.

01:13:47   Let me talk about the stand a little bit.

01:13:49   The height adjustment is, I didn't think I would use it.

01:13:52   I like the fact that it was there,

01:13:53   but I figured I'll find the height that's good for me,

01:13:55   and then that'll be that, and I like that it's adjustable

01:13:58   because who knows what the right height for me will be.

01:14:01   And I did find that the right height for my particular setup

01:14:04   actually is pretty low.

01:14:05   It's not the bottom of the travel, but it's pretty low

01:14:07   because my desk is high because I have a keyboard tray, yada, yada.

01:14:10   But I did find that the height adjustment I do use more often

01:14:13   than you might think because sometimes I have my work laptop

01:14:15   at home open in front of the monitor,

01:14:17   and the rim of it can, like, block the bottom of my screen.

01:14:21   Just take my finger and move the bottom of the screen up an inch,

01:14:24   and now they, you know, don't block each other, which is nice.

01:14:28   I did try rotating it into portrait.

01:14:31   That, I mean, I just got through saying you get used to anything,

01:14:34   but I can't imagine getting used to it because in portrait,

01:14:38   it is so tall I have to, like, bend my neck to see the top of the monitor.

01:14:42   It is on my particular desk.

01:14:44   Even in the lowest position, it is so tall,

01:14:46   it is hilariously unpractical.

01:14:48   Like, I would spend my day, if I had to look at the menu bar,

01:14:51   my neck would be strained from looking upwards.

01:14:54   It is just, like, I need a standing desk or something else to deal with that.

01:14:58   And even with a standing desk, I feel like even if it is correctly aligned

01:15:02   with your eye line, you are going to have to bend your head up and down

01:15:05   to see the top and the bottom.

01:15:06   And the way that you don't when you, I don't know,

01:15:08   maybe my eyes move side to side better than they move up and down,

01:15:11   but vertical, this monitor seems too big for vertical

01:15:15   except for sort of, like, boutique applications,

01:15:17   like they had at the WWC thing where they were showing, like,

01:15:19   portraits on it or using it for display purposes.

01:15:22   But if you are doing, like, text editing, like, you can certainly see

01:15:25   a lot of lines of code at nine-point text, but it is just, it is too much,

01:15:29   at least for me. So, horizontal it is.

01:15:32   One interesting thing about this is that the monitor rotation thing,

01:15:37   like there is an unlock thing that lets you rotate it, right,

01:15:39   but even when it is in locked mode, there is a little bit of play

01:15:42   in the rotation, like it doesn't lock into straight 90 degrees,

01:15:46   which is bad, and then it seems loosey-goosey, and you are like,

01:15:50   but I just want you to lock into your regular landscape orientation.

01:15:54   But it is good in that if your desk isn't perfectly level,

01:15:58   you can still level the monitor.

01:15:59   My desk is perfectly level because I leveled it when I cleaned everything before.

01:16:03   Naturally.

01:16:04   Yeah. So, for me it is mostly a downside, but I did have to actually level

01:16:08   the monitor with my little level after I got it back to the horizontal position.

01:16:13   It stays there, like it is not going to go anywhere.

01:16:16   The stand does its job, it holds the monitor up, the motion of it is not as smooth

01:16:20   or nice feeling as the Flower iMac with the arm.

01:16:23   That arm felt better than this monitor stand, which is kind of amazing.

01:16:27   Again, kind of like the turny knob handle thing on the top of the Mac Pro.

01:16:32   It feels a little like scrapey aluminum turning and scrapey aluminum,

01:16:36   like it is precise and it is not crumbly, but it is also not smooth.

01:16:41   There are no bearings in there, it is like metal on metal.

01:16:45   Very smooth, precise metal on very smooth, precise metal,

01:16:47   but there is no sort of bushings or slick plastic or other lubrication

01:16:51   or ball bearings or anything else in there.

01:16:54   It is smooth and you can move it with one finger and it feels solid

01:16:57   and doesn't wiggle and there is no play, but it is a little bit,

01:17:01   it is not particularly pleasant feeling to move up and down.

01:17:04   It feels a little scrapey.

01:17:05   That is a little disappointing.

01:17:08   Apple is the kind of company that would care a lot about making that feel really nice

01:17:12   and for something that is so high end, such a flagship product and so expensive,

01:17:17   you would think they, I mean maybe it wasn't possible compared to the old iMac.

01:17:21   I know this is obviously a lot more weight.

01:17:23   It doesn't feel bad and my thinking is that the things that might make it feel smoother

01:17:29   also decrease durability, so maybe it is designed to be the same year after year

01:17:35   being thrown into Pelican cases and move in different places on a movie set or something.

01:17:38   I don't know. I don't know the thinking.

01:17:40   It doesn't feel cheap, but it also doesn't, I don't know.

01:17:44   You should go to an Apple store and move one and just see what it is like.

01:17:47   It feels very solid and sturdy, but there is a little bit of, you know,

01:17:52   scrapiness you can feel in there.

01:17:54   I don't even think there is any stores near me that are going to stock it.

01:17:57   The Mac Pro is only going to be in select stores,

01:18:00   so I don't even know if any of mine are going to have it.

01:18:03   But yeah, I think also like Apple really has to nail this stand

01:18:09   because if they are going to have the sheer audacity to ship an optional $1000 stand for their monitor,

01:18:17   it has to be really awesome.

01:18:19   It better be a damn nice stand and have no obvious problems.

01:18:24   And so yeah, all the details have to be really good.

01:18:28   One thing it does impress with is the, I mentioned the size and it is fairly big, the box is big,

01:18:34   but the weight is so much more substantial than even the little L-shaped tongue that is under an iMac.

01:18:40   It is thicker all around. It doesn't taper. It is surprisingly heavy, which is nice for a base for the monitor.

01:18:47   You never feel like this thing is going to tip over.

01:18:49   In particular, I appreciate, I don't know if this is just psychological or it's a real thing,

01:18:53   but I appreciate the fact that it is not an L-shape, that it is more of an I-beam,

01:18:57   that behind the monitor, like where the thing goes up, there is another little inch of stuff that sticks out behind it.

01:19:03   It just makes it feel even more sturdy, like you feel like, even if I just shove the top of this monitor,

01:19:08   there is no way I could get it to tip over because of the extra little leg.

01:19:11   It really solidly anchors the monitor.

01:19:14   If you are the type of person who wants to move it around a lot, I think that is part of the thing that helps.

01:19:18   If you move the monitor up, you are not going to lift the foot up off the thing because it just weighs so much.

01:19:23   It does the job. I don't think much about the stand. I try not to think about how much it costs.

01:19:27   I wish I could see the back of the monitor more because now that these holes have grown on me, it's cool looking.

01:19:32   There is a fan back there and when I plugged it in and put my head behind the monitor, you could hear it,

01:19:37   but kind of like we discussed with the iMac last time, because it is behind a solid thing, not audible.

01:19:42   Maybe it becomes audible if you run HDR content for half an hour at a time, but I haven't done that, but it is not.

01:19:48   Especially since if it is on my, the Mac Pro next to it is on,

01:19:51   maybe it would be audible if the Mac Pro wasn't on, but the fan and the monitor were on,

01:19:55   but it is very small and very quiet. I am assuming they are spinning now, but I can't hear them.

01:20:00   So that's all good. I like the fact that it has a uniform bezel around it,

01:20:05   which is a thing that we haven't had with an iMac in forever because it has always got the chin, right?

01:20:08   It looks nice and it looks nice and uniform.

01:20:12   Some people have been complaining about the viewing angles.

01:20:14   I am coming from a monitor that is 10 years old, so as far as I am concerned, it looks amazing.

01:20:19   I am used to the 5K iMac and it looks about the same.

01:20:23   One thing about that is I didn't get the nano texture ridiculous screen because I was terrified of it,

01:20:28   but this does not look as glossy as the 5K iMac.

01:20:31   I don't know if it is in a different place in the room, but it almost looks like a matte monitor.

01:20:35   It looks pretty amazing. So I am so happy that I chose this thing because it doesn't have the nano textured finish,

01:20:40   which I thought made it look kind of misty, but I don't get any glare or reflections on it.

01:20:45   Again, it could just be that this is in a different place in the room, but this basically looks like the miracle matte monitor of my dreams.

01:20:52   It is really nice. I have immediately gotten used to it and now I can never go back to anything else,

01:20:59   which makes me hope that someday Apple doesn't make just a 5K monitor that is the iMac without the iMac behind it,

01:21:06   but that they make a 6K monitor that is just not this fancy thing.

01:21:10   One final bit on the actual supposed attributes of this monitor. Who was I to do this to?

01:21:15   Juan Salvo put up on Twitter a thing about comparing this to actual reference monitors that cost $40,000 or whatever.

01:21:23   I kind of talked about this when we discussed the technology behind this monitor,

01:21:28   the fact that it is basically a local dimming LED backlit, LCD television, a technology with which I am very familiar.

01:21:36   There is a reason the best televisions in terms of picture qualities do not use full array local dimming LED backlit LCDs.

01:21:43   That reason is bloom. If you have a giant star field that is all black with pinpricks of white light at maximum brightness,

01:21:51   if you have a "full array local dimming backlight" that turns on the backlight just behind the regions of the screen that have light in them,

01:21:59   the regions are big. There are hundreds of regions, but there are millions of pixels.

01:22:04   So if you have a star field where there are tiny pinpricks of really bright light,

01:22:09   you have to turn on a 1" x 1" bright white LED behind that.

01:22:14   When you do that, the bright LED light comes out the little pinprick hole,

01:22:18   but it also bleeds through a little bit of all the region around the little starprick.

01:22:23   That is called bloom in the TV world. We will link to the tweets that Juan did.

01:22:30   You can see it compared to a reference monitor. One of the things reference monitors do is,

01:22:34   a lot of them have multiple layers of LCDs where the backlight is broken into regions,

01:22:40   but then that backlight shines through an exactly 1 to 1 pixel grid LCD whose only job is to filter the backlight.

01:22:48   Then in front of that, there is the actual LCD that has the pixels on it.

01:22:52   It really does a good job of blocking out as much light as possible to try to give you maximum contrast between the tiny star that is supposed to be 100% bright white

01:23:02   and the inky black of space right next to it.

01:23:05   Technology like OLED and Plasma don't have this problem because they literally don't light up the pixels that are black.

01:23:11   The pixels themselves are emissive. There is no backlight shining through a grid.

01:23:15   In this comparison, the XDR has way more bloom than a "real" reference monitor.

01:23:21   If you are thinking you are getting an XDR and you are going to pay $6000 and get the same performance as a $40,000 reference monitor, surprise you are not.

01:23:28   Also, surprise, full array local dimming is not the best technology for maximum contrast.

01:23:33   OLED is better, Plasma was better, and the reference monitors that use LCDs with multiple layers of LCDs, which apparently the XDR does not, are also better.

01:23:44   This doesn't disappoint me in the least. This looks phenomenal compared to my old monitor and mostly looks better to my current TV with the caveat that my current TV can just not emit light from the black regions and therefore has better contrast.

01:23:56   But, you know, it's only $1080.

01:23:58   Anyway, XDR, no one should probably buy it, but I'm super glad that I have it.

01:24:03   That's a great summary.

01:24:06   I'm glad. I feel like after 10 years of using the same computer, I feel like you've earned a totally ridiculous upgrade.

01:24:16   And this is that. This is a totally ridiculous upgrade that is awesome in all the ways that you care about.

01:24:24   I don't know anybody else who should buy that monitor, but I'm glad you did.

01:24:30   It is right that you have this monitor.

01:24:33   Yeah, it's kind of like I talked about last time, the thing you notice is the removal limitation.

01:24:38   So I used to be on the edge of my disk space all the time, which is a constant source of stress.

01:24:42   And, you know, not having enough RAM and like things starting to thrash because you're opening too many applications or whatever.

01:24:48   Screen space is the same deal.

01:24:50   Suddenly, it's like all these windows used to be packed together.

01:24:53   Like, before I would not have considered running as many programs as I was running at once, not just because, you know, I'd be worried about them all fitting into RAM, but also because where the hell would I put them on the screen?

01:25:02   It eventually just becomes this mess and you can't find anything.

01:25:04   But having so much more screen space, like I can come up with new ways to arrange things.

01:25:09   And this is even with the size inflation, because one of the things I did was I said, like my default sort of, I used to have kind of like eight and a half by eleven-ish size piece of paper.

01:25:18   That was my browser window. Right.

01:25:20   I was like, I can make all of my browser windows just bigger.

01:25:24   Like just, you know, instead of keeping them the same size and having more of them, I can make them all bigger.

01:25:28   Obviously, I can make them taller if I want so they can cover the same portion of the room, but I can make them bigger.

01:25:32   So every window got bigger. My Slack window got bigger. My terminal windows got bigger.

01:25:36   I increased the font size in my terminal.

01:25:38   Like all sorts of things that I couldn't do before.

01:25:41   Like it's, you know, having those limits removed.

01:25:45   And like I said, for the screen, it's a honeymoon period.

01:25:47   And then you're like, oh, I'm just used to it.

01:25:49   But I like being used to it.

01:25:51   I like thinking when I get home, I'll have all my space and all my stuff and my computer will never break a sweat and I'll be able to do all the things that I want to do.

01:25:58   I've even started to come around appreciating the thing that, you know, we talked about how crappy my GPU is before.

01:26:04   And I do want to eventually get a new GPU.

01:26:06   While I have the crappy one, one of the benefits of the crappy GPU that we discussed before, but I appreciate even more, no fan.

01:26:13   There's no fan in the GPU.

01:26:15   Like there's just the three fans in the front of the thing and then the blower fan in the back.

01:26:18   There is, and the GPU, like everything else inside this computer is entirely just passively cooled by the fans that are already in the case.

01:26:27   And so it's silent.

01:26:29   So if I got a gaming GPU, it would have its own cooler and it would make more noise and I would not like that as much and might have to banish the computer to be under the desk.

01:26:37   So in summary, I am enjoying my new setup.

01:26:41   I enjoyed like putting it through its paces, like doing probably the most complicated thing I've ever done, which was trying to learn how to use Xcode and program a Mac app at the same time as I'm doing umpteen other things on my computer.

01:26:53   And it handled it well and I didn't have any hitches.

01:26:56   I do want to talk about the peripherals next week, my mouse peripherals and some of the issues that I've been having with Catalina and one issue that I had with my hardware, which was really more of a software issue or a third party hardware issue.

01:27:09   But anyway, we'll save that for next week as a tease.

01:27:11   More Mac Pro stuff to come, but monitor and the overall setup, thumbs up.

01:27:16   Congratulations. You have earned it.

01:27:19   Thank you.

01:27:20   Now that is true.

01:27:21   Oh, by the way, before we go into the after show, which is what we're about to do, I think I forgot to mention the name of my application that I want everyone to buy.

01:27:29   Oh my gosh.

01:27:32   Thus completing my trip through the rookie mistakes that you make when talking about things.

01:27:37   I mentioned it a lot in the blog post and the show notes, but there's a lot of people that know where the show notes are.

01:27:41   Go to the app store and search for front and center.

01:27:44   That's a name that Lee came up with this app and I think it's great.

01:27:46   Front and center.

01:27:47   You can also search the app store for John Syracuse because that's under your name and it's your only app.

01:27:52   There you go. You'll find it that way too.

01:27:54   Front and center will be keyword spammed by people buying ads against it, but I don't think anyone's buying ads against my name.

01:28:01   Maybe we should.

01:28:03   We are sponsored this week by Away.

01:28:07   Everyone has a unique travel style and so Away offers a range of suitcases made of different materials like polycarbonate, aluminum, and durable nylon, a huge variety of colors, and two carry-on sizes.

01:28:20   So for whoever you are and whatever you need to pack, Away has luggage that works for how you travel.

01:28:27   And Away, I gotta say, they just have good, smart design for their features and their luggage.

01:28:32   For instance, all of Away's suitcases are also thoughtfully designed to last a lifetime with durable exteriors that can withstand even the roughest of baggage handlers.

01:28:42   You all know you've seen the bags like get thrown around on and off the airplane and on the baggage carousel and you know Away bags can take it because they're really sturdy.

01:28:51   Every suitcase also comes with an interior organization system that includes a built-in compression pad to help you pack more in and a hidden and removable laundry bag so you can keep your dirty clothes separate as you travel.

01:29:03   They have four 360 degree spinner wheels to guarantee the smoothest roll even through the most hectic of airports and train stations and a TSA approved combination lock to keep your belongings safe.

01:29:15   All of this is backed to last a lifetime. If any part of your suitcase breaks, Away's customer service team will arrange to have it fixed or replaced for life.

01:29:25   And you can try it out because there's a hundred day trial on everything Away makes.

01:29:30   So take the product out, take it traveling, take it on the road, live with it, travel with it, get lost with it for a hundred days.

01:29:37   If you decide it isn't for you after that, of course even if you've used it, you can return any non-personalized item for a full refund during that period.

01:29:46   No ifs, ands or asterisks.

01:29:48   So Away also offers free shipping and free returns on any order within the contiguous US, Europe, Canada and Australia.

01:29:55   So this is really risk free.

01:29:56   To get your suitcase and shop other travel essentials, visit awaytravel.com/accidentaltech.

01:30:02   That's awaytravel.com/accidentaltech.

01:30:05   Thank you to Away for sponsoring our show.

01:30:07   Well I had an interesting vacation experience with my Apple products this past week.

01:30:18   I forgot about this vacation experience. Ah yes, I am anxious to hear the result of this.

01:30:24   My wife and I, my wonderful wife and I went to Cancun for after Christmas because we discovered that all these years that I've been hating winter and being depressed all winter

01:30:38   and trying to add light and warmth and humidity to my house artificially in the winter and getting all depressed about the darkness and the cold and the dryness and everything else.

01:30:50   There's various ways you can light some wood on fire and make some warmth.

01:30:56   But if you light a big pile of money on fire, you can actually create summer in the middle of winter.

01:31:03   I had never done anything like this before.

01:31:06   Oh man, it was nice to have a week of summer.

01:31:10   Oh and I went into another ocean, John, and we took pictures for John to show that I went into another ocean.

01:31:17   With your hat on.

01:31:18   Well I got a head burn otherwise.

01:31:20   And your glasses.

01:31:21   It was bright.

01:31:22   So a little while into the trip, there was this bar that started flickering on the screen of my 16 inch MacBook Pro.

01:31:35   It was as if the screen is divided into six vertical stripes, like six vertical segments.

01:31:43   Segment number two was flaking out like crazy.

01:31:46   And at first it seemed almost like analog interference.

01:31:51   It was like smeary and blurry interference.

01:31:55   It wasn't like digital blocky artifacts like you'd expect.

01:31:59   So at first I thought, oh it must be like the display cable or something.

01:32:03   That's annoying but I'll make it through the rest of the trip and then I'll bring it home and get it serviced or whatever.

01:32:09   And then as the trip went on, it became worse and more interesting.

01:32:14   The interference started becoming blockier and more digital looking so then I started respecting like, oh the GPU is going bad.

01:32:23   The computer continued to work just fine.

01:32:26   I would assume that if you have significant GPU issues, at some point the computer would lock up.

01:32:32   But it didn't affect the computing part of the computer at all.

01:32:36   What was also weird about it is that the glitching out area started having a memory of what was being shown below it.

01:32:47   Like I would have like a window that was up for a while and then I would hide that window.

01:32:53   And bits of that window would still be showing in distorted, scrambled ways in the defective area.

01:33:00   It even went as far as I rebooted the computer and ran Apple hardware diagnostic test at boot up.

01:33:08   And window contents from the previous OS session before the reboot were still displaying.

01:33:14   What?

01:33:15   In the stripe.

01:33:17   So what did the hardware diagnostic say?

01:33:20   It said everything was fine.

01:33:21   It didn't seem fine.

01:33:23   Were you by any chance sitting in a chair with a hydraulic lift on it?

01:33:26   Yeah.

01:33:27   Did you see that?

01:33:29   Someone sent us a thing that I didn't look into it and didn't know whether it was BS or not.

01:33:33   But the idea was that hydraulic lift chairs if you sit on them and compress the gases in them it lets out the equivalent of an EMP that can mess with your display if your cable isn't shielded well.

01:33:42   Sounded like BS to me but who knows?

01:33:44   Stranger things.

01:33:45   Yeah that also doesn't sound right to me.

01:33:47   But anyway.

01:33:48   So I had this weird GPU problem but the computer continued to work fine.

01:33:53   And I had to edit last week's episode of this show in this state.

01:33:59   We had Tiff's laptop.

01:34:01   Tiff has an early 2019 15 inch with the butterfly keyboard.

01:34:05   The very last 15 inch with the butterfly keyboard.

01:34:07   The new materials one.

01:34:09   So I transferred all the files to that.

01:34:11   Once it started glitching out I figured my laptop is about to die.

01:34:14   So let me move all my files over that I need to edit ATP.

01:34:17   Just in case my laptop dies then I can edit it on Tiff's computer.

01:34:20   Just transferring the files over to her computer required me to type about five or six keystrokes on the butterfly keyboard.

01:34:30   And after typing those five or six keystrokes I'm like no.

01:34:33   No I can't do this.

01:34:35   I can't go back.

01:34:37   I'm just going to do it on my computer.

01:34:39   Even with a sixth of the screen having this giant stripe through it that's unusable.

01:34:44   Oh my word.

01:34:45   So I would rather use my half broken computer to do work than to use a perfectly functioning butterfly keyboard than to put it back again.

01:34:55   So anyway.

01:34:57   So as the trip goes on the interference gets worse and worse.

01:34:59   And I start seeing a few little glitches where like the whole screen would have like a blip of color shifting or something.

01:35:08   And I thought uh oh.

01:35:09   Like it's no longer the stripe anymore that's causing the problem.

01:35:13   Like now the stripe is expanding and the whole screen is starting to have issues.

01:35:17   Did you start to see glimpses of your future life?

01:35:20   There's me as an old man. What am I doing?

01:35:24   Halfway through the flight home the entire screen scrambles.

01:35:29   And now it's totally unusable.

01:35:32   Now you really have to see the matrix to use your computer.

01:35:34   Unscramble it in your mind.

01:35:37   At least it waited until after I was on ATP. I was able to do the work on the computer the rest of the week and use it occasionally.

01:35:44   So like that was fine.

01:35:46   I had posted about this on Instagram stories and I had gotten an interesting tip from somebody.

01:35:52   My plan was to just bring it home and bring it to the Apple store and have them do the thing where they probably send it out and I'm without it for maybe a week.

01:36:02   Which I hate.

01:36:03   And I'm like I'm so annoyed. Like this laptop I just got this laptop a few months ago.

01:36:09   It's brand new. It's the highest I want.

01:36:11   Meanwhile I'm also like I'm hoping this is not a thing for the new 16-inch MacBook Pro.

01:36:17   I'm hoping this is not an actual issue that's widespread.

01:36:20   I hope this is an isolated incident.

01:36:22   I did hear from a couple of people when I posted on Instagram that they had similar problems and so I'm a little concerned.

01:36:28   But I'm going to set that aside for now.

01:36:30   I hope this is not a thing.

01:36:32   Please Apple don't let this product have a big defect. Please for the love of God.

01:36:36   Because otherwise I love this computer. Like besides this.

01:36:39   So anyway.

01:36:40   So I'm thinking like I gotta have this thing sent in and I'm going to be without it and then like I'm going to get it back and it's going to be serviced.

01:36:47   Jon you understand this completely.

01:36:49   It's like somebody will have taken this apart and reassembled it.

01:36:52   And what if it's not quite right after that?

01:36:55   It's never the same again.

01:36:56   Right. Like what if it's like a little unreliable.

01:36:59   That is much less true of the unibodies though to be fair.

01:37:01   That's fair. Yeah like there's fewer like seams and everything right.

01:37:04   But like still.

01:37:05   Like what if it's a little bit different.

01:37:07   You know like what if it's like slightly unreliable forever.

01:37:10   Like I don't.

01:37:11   What if a surgeon left a sponge in there?

01:37:13   That's basically what you're worried about. Some little thing rattling around in there.

01:37:18   Yeah like what if there's like a rattle or a new like you know pop or something.

01:37:22   Who knows right.

01:37:23   Like I'm like I just.

01:37:25   That sucks that it's brand new almost.

01:37:27   You know it's only a couple months old.

01:37:29   Well I happened to have purchased this by walking into an Apple store and buying it on November 15th.

01:37:38   November 15th is a special day for Apple retail this year.

01:37:42   Oh yes.

01:37:44   November 15th. Unbeknownst to me at the time I was buying it on November 15th.

01:37:48   November 15th was the first day of the Apple extended holiday return period.

01:37:54   You jerk. Good for you.

01:37:56   And the Apple extended holiday return period lasts until tomorrow.

01:38:00   Wow that's good timing.

01:38:02   On the trip like a day before I got home I had ordered myself a replacement.

01:38:06   By the way since this is just the high end stock config that 2799 config.

01:38:11   Other retailers stock it.

01:38:13   And it happened to be almost $300 cheaper because it was on sale at like everywhere like Adorama, B&H.

01:38:20   Like all the retailers.

01:38:21   It was on sale.

01:38:22   So it was like $300 less money than what I had actually paid on November 15th.

01:38:27   So I ordered myself a replacement.

01:38:29   I got home. I did the transfer.

01:38:31   Transferred everything over.

01:38:32   I put it back in the box.

01:38:34   Brought it to the store.

01:38:35   I'm like I'd like to return this please.

01:38:36   The screen doesn't work anymore.

01:38:37   Were they like what?

01:38:39   Yeah the guy was like alright.

01:38:41   And like because if you ever return anything in an Apple store before.

01:38:44   It is one of the most nonchalant processes.

01:38:47   Like you would expect if you were returning an almost $3,000 computer.

01:38:50   That's brand new and you say the screen doesn't work anymore.

01:38:53   Like you would think they would like look at it maybe.

01:38:56   The guy didn't even open it up.

01:38:58   He was just like alright.

01:39:01   He's like do you want to order another one?

01:39:02   I'm like I already did.

01:39:03   He's like alright.

01:39:04   Wow.

01:39:05   He took it back.

01:39:06   I got the money back on my card.

01:39:08   Problem solved.

01:39:10   So anyway.

01:39:12   I hope this is not a widespread issue.

01:39:14   And thank you Apple for your holiday extended return period.

01:39:18   So now I have another new 16-inch MacBook Pro that has never been opened and altered by anybody.

01:39:22   And I hope this one does not have this issue.

01:39:25   I will say on the positive side.

01:39:27   On this trip I also brought only the AirPods Pro as my only headphones.

01:39:35   And so I had to both edit ATP which I knew there was like some latency with Bluetooth.

01:39:40   So it's a little annoying to edit audio with Bluetooth latency.

01:39:45   But it's possible and you know so I was used to that.

01:39:48   I really wanted to test out the AirPods Pro as my only headphones on air travel.

01:39:53   And I was kicking myself as I listened earlier today to John Gruber do this exact same segment on the talk show this week.

01:39:59   But I'm going to pretend like he didn't.

01:40:01   So I brought the AirPods Pro instead of my Bose noise cancelling headphones.

01:40:06   Which I've only had for a few months that replaced my Sony noise cancelling headphones.

01:40:10   And the Bose's and the Sony's are really good.

01:40:13   Noise cancelling over ear Bluetooth headphones.

01:40:16   Like they're fantastic. You kind of can't go wrong with either of them.

01:40:19   The AirPods Pro I thought these are probably going to be not as good as those.

01:40:24   But let's see how they go.

01:40:26   And the AirPods Pro as your only headphones for travel are awesome.

01:40:32   The noise cancellation for me.

01:40:35   And this might depend on how they fit you.

01:40:38   But the noise cancellation for me was pretty much exactly as good as the Bose and the Sony.

01:40:46   Like they're all a little bit different in the way they sound with noise cancellation.

01:40:50   But I would say they're all pretty similar in the degree of noise cancellation that you get.

01:40:56   Like the severity or the strength of it.

01:40:58   It's all pretty similar between them.

01:41:00   So there is actually not much reason for me to bring the other headphones anymore.

01:41:06   Because they were also comfortable for the entire flight.

01:41:09   It was about three or four hours.

01:41:11   And they were comfortable the whole time.

01:41:13   The only downside to them is that they don't have enough battery life to make it through very long flights.

01:41:20   The battery life of them when you're using them on a plane is something like four or five hours.

01:41:25   And so if you're on like a six hour flight or something, you know, then you might have to take a break from them for a half hour.

01:41:33   Put them in the charger and then put them back in your ears once they have enough charge to keep going.

01:41:37   So you might need like a short break of noise cancellation.

01:41:41   Or you can just buy a second pair of them, keep them in your bag and still take up way less space in your bag.

01:41:46   Because that's the thing, like all those noise canceling headphones are huge.

01:41:50   And they're all a pain in the butt with moving between multiple devices.

01:41:56   The best ones for that are the Bose because they have like multi pairing and they'll announce through a voice in the ears like which device they're connected to.

01:42:02   So that's nice. The Sony's are garbage at dealing with multiple devices.

01:42:07   But like if you're frequently, like I do, move between like a phone and a laptop on a flight.

01:42:14   Or especially a phone, a laptop and an iPad if you happen to have all three.

01:42:18   That's always a very clunky thing with anything that's not based on Apple's, you know, AirPods chips basically.

01:42:24   Like the W1 and H1 chips.

01:42:27   And so to have this, have all those features.

01:42:30   Oh, another thing. Tiff and I used to a while back, if we were flying together somewhere and we would want to watch like TV or movies that I brought on my laptop.

01:42:41   We each had a pair of Sony noise canceling headphones which can be operated wireless or wired.

01:42:46   And I would bring with me a wired headphone splitter cable.

01:42:50   And then the two cables that would go to the headphones.

01:42:53   And then whatever dongle I would need to plug in a headphone cable to a modern Apple device to whatever I was playing it off of.

01:42:59   And we could both listen to the same audio.

01:43:01   On this trip, we both just had AirPods Pro.

01:43:05   And we used the new audio sharing feature in iOS 13.

01:43:09   And had the movies playing to both of us.

01:43:14   Using my iPad and that sharing feature.

01:43:17   I don't know, is that sharing feature on the Mac yet? Probably not.

01:43:20   I don't think so.

01:43:22   That would be great if they ever do that Apple, you know, remember the Mac?

01:43:25   So anyway, it's such a different thing to have, to go from two full size pairs of headphones between the two of us.

01:43:34   And like this big Y cable arrangement to try to listen to the same thing together.

01:43:38   To two pairs of AirPod Pros that are so tiny that do everything wirelessly and switch between devices super easily and everything.

01:43:47   It's like a revelation.

01:43:50   Like going from that setup to this setup.

01:43:53   And because headphones, like full size headphones are so large to pack in a travel bag.

01:43:58   Like they take up a pretty big chunk of the backpack that you have on the plane with you.

01:44:02   I don't think I'm ever going to use them again.

01:44:06   Like I still love full size headphones for my desk and for podcasting.

01:44:10   They're great for that.

01:44:12   But for bringing on a plane, I don't think I have any reason to bring big headphones on a plane anymore.

01:44:18   Because the AirPods Pro are just so damn good at that.

01:44:22   Way better than I expected.

01:44:24   Like I thought it would be a big compromise that the noise cancellation wouldn't be very good.

01:44:28   It's not a compromise. It's the real deal.

01:44:31   It is like first class in this way.

01:44:33   So if they fit you, I would strongly recommend them if you're looking for airplane, travel, headphones.

01:44:41   Because like you can use them everywhere.

01:44:43   You can use the exact same pair of headphones now almost everywhere.

01:44:46   The only thing I can't do with the AirPods Pro is podcast with them.

01:44:50   Everything else I can do with them if I want to.

01:44:52   And that's pretty amazing.

01:44:54   And then finally, the iPhone 11 camera system.

01:44:58   Most vacations these days we don't take big cameras anymore.

01:45:02   We almost never use big cameras anymore for anything actually.

01:45:05   Except like occasional nice pictures of our family here in the house at home.

01:45:09   Or like taking with us for Christmas.

01:45:13   And we take nice pictures on Christmas.

01:45:15   We had our iPhone 11s with us for this trip.

01:45:18   And we were like going to the beach and going in the pool and everything.

01:45:22   And we just had our phones.

01:45:24   And the cameras are so good.

01:45:27   We never felt for one moment,

01:45:30   "Oh man, we wish we had our big camera with us right now so we could take X, Y, or Z picture because it would be way better."

01:45:35   That moment never came.

01:45:37   I think the iPhone 11 camera system has finally crossed the threshold where

01:45:42   not only is it really good for a phone camera,

01:45:46   it's just really good for a camera. Period.

01:45:50   And while big cameras will still always handily defeat it

01:45:55   for resolution and raw pixel gathering ability in different lighting conditions if you have a big sensor,

01:46:04   there are things about the iPhone that are actually not only good enough in most of those ways,

01:46:09   but are actually better than all pro cameras.

01:46:13   There were situations where I know if I had my big Sony camera with me

01:46:18   that I could try to take a low light picture,

01:46:21   crank the ISO up to 25,000 and crank the aperture way down and try to get a low light picture.

01:46:27   But the iPhone camera's night mode actually did a better job

01:46:31   and actually produced better output than what I would have gotten out of that.

01:46:34   Or I could have maybe gotten similar output out of the Sony with a ton of effort

01:46:38   and a lot of like, "Alright, try it this way," and then pixel peep and see, "Oh, that's kind of crappy. Try it again."

01:46:44   "Re-expose it." I don't have to do any of that.

01:46:47   And also, the phone is water resistant and small and pocketable.

01:46:53   And so we were able to bring it with us when we went to the beach

01:46:56   and bring it with us when we went in the pool.

01:46:58   We didn't submerge the phone, but we could hold it near the pool and operate it with wet hands

01:47:03   and not worry about it because we knew it's designed for that.

01:47:07   It was so good. And to do video and the HDR, like, the crazy pictures we were able to get

01:47:14   that my regular camera wouldn't have the dynamic range to capture the screen on my laptop in the room

01:47:21   as I edited this podcast from last week, while also not blowing out the ocean through the windows outside

01:47:27   that's way brighter than it.

01:47:29   It's just incredibly impressive camera performance to the point that it is actually better than good cameras

01:47:38   in a lot of situations.

01:47:40   And so this sounds like an Apple commercial besides my broken laptop, but like, traveling with the AirPods Pro

01:47:48   and the iPhone 11 Pro is just such an incredibly pleasant experience.

01:47:52   And everything is so advanced and everything works so well in the hardware side of things.

01:47:58   Software, I'm always going to have nitpicks.

01:48:00   But the hardware side of things is amazing right now.

01:48:03   Especially, you know, AirPods and the iPhone cameras. Just incredible.

01:48:08   It makes life simpler. Like, now I'm going to downsize my camera gear because I almost never want to use it anymore.

01:48:15   I'm going to downsize my headphone collection because I need almost none of these now.

01:48:20   It allows me to simplify my life and that's really great.

01:48:24   So, you know, we have our nitpicks with Apple and things like software quality are still not where they should be.

01:48:30   But the hardware stuff is solid and this is, I'm very impressed by these products.

01:48:37   I went to Disney recently and we're going to talk about that at some point, maybe even later this evening.

01:48:42   But one of the things I noticed was I did bring the big camera and in certain occasions I was glad I had it.

01:48:50   But generally speaking, I could not agree with you more that for the most part, I was getting genuinely better photographs out of the iPhone than I was my Micro Four Thirds camera.

01:49:03   Now, my Micro Four Thirds camera isn't as fancy as your Sony and isn't as nice as your Sony in the glass.

01:49:08   It may or may not be as nice, but...

01:49:10   It isn't that different. In the way that you have to operate the camera, it's the same.

01:49:14   In what it's good at and what it's not good at, it's about the same.

01:49:19   You're dealing with the exact same issues with any mirrorless or SLR camera.

01:49:23   The fancy ones like the full frame Sonys, they just have better specs.

01:49:29   They can go to higher ISOs without a lot of noise or they have more resolution or their lenses are sharper.

01:49:35   It's better specs, but it's all the same types of limitations, just like the numbers are a little bit different.

01:49:41   Yeah, and the couple of occasions that I could think of when I really was glad I had the big camera with me.

01:49:51   Aaron and Declan were on a ride where I could view them from a distance.

01:49:56   And I have a zoom lens for my big camera that zooms quite a bit closer and works quite a bit better than the 2x telephoto lens on the iPhone.

01:50:07   And so I got some really great photos of the two of them on this ride because I had a zoom lens with me.

01:50:12   Like a proper zoom lens.

01:50:14   And there was... Actually, I'm not even sure I can think of any others, but there were one or two other occasions, I think, when I used the big camera and was happy to have had it.

01:50:22   But generally for 90% of the trip, particularly when I went to Galaxy's Edge at night, which is the new Star Wars land,

01:50:32   I was so unbelievably happy to have had this iPhone 11 Pro with me.

01:50:37   And I cannot say enough good things about the camera.

01:50:40   I miss being able to have really good bokeh or bo-bokeh. I can never get it right. I'm so sorry, everyone.

01:50:46   But everywhere you say it is wrong. It's like ricotta cheese. It's like you're going to piss off somebody no matter what.

01:50:50   Yeah, well, and a friend of the show, Will Haines, tutored me on it, but it was like two months ago and I've already forgotten exactly what he said.

01:50:56   But you forgot it, right? Just like you forgot my middle name and how to pronounce affluent.

01:51:00   Yeah, it's Charles. That's your middle name. Charles and affluent, right?

01:51:03   Yeah, Charles and affluent, that's correct. So anyways, I miss having that really lovely background blur. I really do.

01:51:11   And the other thing I'm a little worried about is I tried to restrain myself with the ultrawide, but I'm a little worried that I'm going to look back at the trip pictures from a few years from now and be like, "Why is everything destroyed?"

01:51:23   Oh, right, the ultrawide was brand new. Right.

01:51:25   Yep. Everything that has to do with computational photography, Apple is fairly far ahead of the big camera vendors. Anything that has to do with optical quality, obviously they can't compete because they don't have all the big glass.

01:51:38   But you mentioned Zoom, which is what I was thinking of because, again, physics and how much glass there is, you can't really get a good zoom out of it.

01:51:46   The other one is, and this is actually kind of computational and I wonder how the iPhone deals with it, but it's related to Zoom, catching fast moving things.

01:51:53   If you're trying to take action shots, the computational part is Sony cameras in particular, especially the new ones, are really good at finding the thing that's moving really quickly through your frame and grabbing focus quickly so you can fire off a couple of shots.

01:52:07   The iPhone, my impression, at least based on the UI, is that it takes a little bit longer to find the thing you want to focus on.

01:52:12   Yeah, you can tap on something, but try doing that when you're trying to capture sports or kids running around or people crashing through the waves in the surf and stuff.

01:52:19   That's an area where I don't think Apple has concentrated too much, mostly because without Zoom, you're not going to be doing that kind of action photography anyway.

01:52:26   If you're two feet from the person, then good luck getting that shot, period.

01:52:30   And if you're far away, the motion is greatly diminished because it's all moving within this giant frame.

01:52:37   In vacation photos with adults, there's probably not a lot of fast moving action.

01:52:42   Maybe there's someone running down a beach towards you, and that's pretty within the wheelhouse of an iPhone, but if you're trying to catch a bunch of kids in the surf or people playing a soccer game or race cars going around or a horse race or dogs running or something like that,

01:52:57   and you want pictures that are not wide angle shots of just a bunch of dogs running around, then big cameras are going to win there.

01:53:06   But the computational photography of night mode, there's no reason real cameras can't do better than that except that they're not as good as software.

01:53:13   They don't have the software chops to make that happen. They're behind Apple.

01:53:17   They could put processors in close to as powerful as the one on the iPhone for their $3,000 cameras or whatever,

01:53:23   and they could hire people to do all the math that Google and Apple and everybody are doing to make the night mode shots, but they don't.

01:53:29   That's why Margaret was talking about, yeah, you could do it, but you'd be sitting there, sort of you're being the computer yourself manually adjusting all the exposure and trying it and checking it out.

01:53:37   As for pixel peeping, Matt, I feel like it's the other area where even the iPhone 11 camera falls down.

01:53:42   If you bring that thing on your big Mac in the monitor and look at it native res, you start seeing how it's denoising aggressively,

01:53:51   and you zoom in on the person's face and it's a little blech, like you're not going to get a nice crop of a thing, and if you do a big print of it, you might see that.

01:53:59   There are still benefits if you care about things at that pixel level.

01:54:03   Overall, though, I was extraordinarily surprised how little I missed my big camera for most everything.

01:54:11   And the other thing we haven't mentioned is that the iPhone, and some big cameras do this, but not many that I'm aware of,

01:54:18   the iPhone has a GPS on it, and it has the ability to, by default, geotag every image you take.

01:54:25   And I think I'm extremely nerdy about this in a way pretty much nobody else in the world is, but I try my darndest to put geotags,

01:54:35   so put the location information in the metadata of every photograph I take, including in the big camera,

01:54:40   which means I'm either using this Olympus really crummy app to track where the phone is and the timestamps of where the phone is,

01:54:49   and then correlate that with the pictures that were taken on the big camera and do their best job,

01:54:52   which usually does work to their credit, of like stamping the, geotagging all the pictures on the big camera based on where the phone was,

01:54:59   or I'm going in after the fact, like days later and recreating in my mind, okay, I was standing right about here,

01:55:06   I was roughly in Star Wars land at the very least when this picture was taken, and that's something that I like to do,

01:55:12   because occasionally I will search for photos based on where they happened, not necessarily a date or something like that,

01:55:17   and Google Photos is really good about this, and I haven't really used Apple Photos for that, but maybe Apple does just as good a job.

01:55:24   But one way or another, all of this is to say that the iPhone does that automatically for free every time I take a picture,

01:55:29   and even video, I believe, at Geotags, which is incredible and so nice because then it's one less thing I have to worry about.

01:55:36   And also, I'm not one to really do a lot of edits to my pictures, the most I'll ever really do is white balance,

01:55:43   and I'm not saying that's right, I'm not saying that's the best approach, but that's just the way I work,

01:55:48   and I don't have a lot of interest in trying to tweak the pictures on my big camera to be just right,

01:55:56   and more often than not, to my eye, what comes out of the iPhone is just right, and that is also extremely freeing and really lovely.

01:56:07   So it is not yet an outright replacement for my big camera, but to your point, Marco, it's becoming that,

01:56:18   just a couple of years ago with my iPhone X, if I left the house for like a family event, like a birthday or something like that,

01:56:25   without the big camera, I was really upset with myself, like really unnecessarily upset with myself.

01:56:32   Now, I'll just be like, "Yeah, well, that stinks." Like, whatever, no big deal.

01:56:38   The geotagging, that's one part of why, to me, using a standalone camera now feels incredibly clunky.

01:56:48   Another thing is, the standalone camera probably doesn't have exactly the right time set.

01:56:53   Like, it might have a slightly wrong clock, not a certain clock, or maybe you never changed it for daily saving time or something.

01:56:59   And so you'll import your pictures, and they'll be an hour off as the interleave into your photo library with the iPhone pictures you also took.

01:57:06   Or it'll be like, you change your battery, and the date will reset, and it'll be like 1970 or whatever.

01:57:13   That kind of stuff happens with standalone cameras.

01:57:16   And also just now, maybe I'm just getting lazier, but having to import photos off of an SD card now feels like getting your film developed felt when digital first came out.

01:57:28   Like, when digital cameras first came out, you were like, "This is the most amazing thing in the world.

01:57:32   Getting your film developed seems barbaric."

01:57:35   Now, having to import your pictures off the camera feels that same level of barbarism to me.

01:57:41   It's like, I can't believe I have to take this card out of this camera, plug it into a computer somehow, through a dongle maybe if it's a laptop, or connect it with a cable.

01:57:55   And yeah, there's Wi-Fi transfer. It always sucks and rarely works, and it's slow as hell.

01:58:00   That whole process is so clunky now that I hardly ever actually want to do it.

01:58:04   And the cameras on the phones are so good that they're, yeah, you're right that if you need high resolution, if you're going to look at it on a really big screen, yeah, you do start to see the edges.

01:58:15   But most of the time, I don't have those needs.

01:58:18   And the convenience is so high, and you get all these benefits.

01:58:23   Things like live photos. You get super easy, like, you never mis-expose it, or it's really hard to mis-focus it.

01:58:31   You get all the conveniences of the AI stuff and the auto-correction, and yeah, you know what, the rendered JPEGs by default are usually pretty good.

01:58:41   They're usually well white-balanced and usually well-exposed and well-tone-mapped and everything.

01:58:45   Like, hey, you know what, it's actually really, really good with really little effort.

01:58:50   That, I think, for me, has finally crossed the line where I no longer care about the benefits that a big camera gets me, almost ever.

01:58:59   There's a couple times a year where I care, and even then, those are decreasing.

01:59:04   And there are newer cameras now, like, I no longer have the latest and greatest.

01:59:10   I think I'm at least one, if not two, model years behind now, and I don't care.

01:59:16   I have no desire to upgrade.

01:59:18   And if my camera's broke or got stolen tomorrow, I don't think I'd replace them.

01:59:25   That's how little I'm using them, because the phone is just so good now, and the conveniences of it are so high compared to doing anything with a photo taken by a standalone camera.

01:59:36   Thanks to our sponsors this week, Sony, Olympus, and Canon.

01:59:40   Ha, no, just kidding. Thanks to our sponsors this week.

01:59:43   Hover, Away, and Techmeme Ride Home, and we will see you next week.

01:59:50   [music]

01:59:53   [music]

01:59:58   [music]

02:00:02   [music]

02:00:07   [music]

02:00:12   [music]

02:00:17   [music]

02:00:22   [music]

02:00:27   [music]

02:00:32   [music]

02:00:37   [music]

02:00:42   [music]

02:00:47   [music]

02:00:52   So, Casey, you also, you just mentioned a few minutes ago, you went to Disney.

02:00:56   Yes, I've been, I've had this in the show notes pretty much since we came back, and I'm gonna try to keep it brief in part because I forgot all the things I wanted to talk about, but in part because we're running a little long.

02:01:06   You gotta take notes.

02:01:07   Yeah, I know. The problem is, I thought we were, and it's not your guys' fault, I hope I'm not implying or stating that it's your fault, it's just that we had other things to talk about.

02:01:15   We really honestly did, and so it just kept getting pushed, and that's fine.

02:01:19   But we went for Declan's fifth birthday at the end of October. We were there from the 23rd through the 30th, and I've been asked somewhat consistently, you know, "Hey, I'm considering a Disney vacation. What did you learn? What did you think? What should I do?" Etc.

02:01:35   And I wanted to very quickly, very, very quickly hit a few quick items that I think were interesting that I had either learned or done differently during this trip.

02:01:49   And if you would like to know more, we can either, you know, ask me via Twitter or something, and I'll either reply there, maybe I'll talk about something in detail if there's that much interest in another show.

02:01:59   First and foremost, it was hilarious to me—I want to get the negative out of the way first—it was hilarious to me that while I was there, I would open up the Disney Parks app—I forget exactly what it's called—and the splash screen at the bottom would say, you know, "AT&T, the official wireless sponsor of Disney," or something like that.

02:02:19   And I cannot tell you how friggin' terrible AT&T is there. It was like going back to like 2009, 2010. It wasn't as bad as like 2007, 2008, whatever it was when the iPhone first came out when it was effectively useless.

02:02:33   But oh gosh, it was rough. And then in the hotels, which have free Wi-Fi—and actually I think a lot of the park did as well, but anyways, the hotels, their free Wi-Fi—I got to tell you, it turns out that when most people are at the hotel relaxing after their long day at the parks and the Florida sun, I'll give you one guess what they're all doing.

02:02:53   They're messing around with their phones, doing stuff on the internet. And so I was ecstatic. I was ecstatic if I could get five megabits per second down in the hotel room over the Wi-Fi.

02:03:06   And this is why a little while ago—I don't think this bled too much into the show—but a little while ago I was asking about alternatives. This was before I bought the iMac Pro.

02:03:14   Alternatives for Plex servers, and everyone was like, "Oh, just use Infuse," or "Oh, just do this," or "Oh, just do that. It's great. It's great. It's great." But one of the things that not a lot of people realize is there are times that I will stream movies, TV, whatever from my house to a place with a really crummy internet connection.

02:03:31   And all week when we were at Disney, when the kids were in bed and we couldn't really go anywhere because what are we going to do, leave the kids by themselves? We would stay and we would watch movies or TV shows or whatever, oftentimes from Plex.

02:03:42   And it was important that I had Plex running on hardware that was fast enough to transcode stuff because if I tried to run a 1080p movie through two megabits per second, which I often saw, it's just never going to work.

02:03:55   And so that really stank and was frustrating. But on to the good. First of all, I should state for the record, I love Disney. I enjoy Disney films and properties and things like that, but Disney World I just adore.

02:04:10   I honeymooned there. I surprised Erin for her 30th there. I love Disney. And not everyone does. And that's okay. I kind of think if you haven't tried it that you should try it.

02:04:20   Even those of you who say that on paper this is everything I hate, Marco, you're probably right. You're probably right. And I bet you, Marco, there's a pretty good shot you would hate it.

02:04:30   But I do think it's worth experiencing at least once. And Marco, you have the advantage of the only person whose schedule gets ruined by you going at a time when no one else is there is Adam.

02:04:41   Because the rule of thumb is if you go when the kids are in school, it's comparatively empty. And if you go when the kids are out of school, good luck.

02:04:48   So we were there at the end of October, which ran us into a little bit of the Halloween push. But generally speaking, it was not terribly busy, which was great as compared to the summers that we had gone for our anniversary and for her birthday.

02:05:01   A couple of quick things that I wanted to bring up. We used for the very first time David's Vacation Club rentals, and I will put a link in the show notes to this.

02:05:09   This alone could take up 40 minutes of conversation, but the extraordinarily cut down version is Disney is a timeshare program, and you can rent a timeshare room just like any other hotel room, but it's a fortune because they're typically bigger, they have full kitchens, etc., etc.

02:05:27   Or some of them have full kitchens anyway. But I guess the way and the details don't really matter. But the general gist of it is, if you are a timeshare member, and you get your allotment of points, which is I guess their currency or what have you, and you don't use them in a year, I guess you lose them.

02:05:43   So you've paid a whole pile of money and you get nothing out of it. Maybe you couldn't go on vacation that year for whatever reason, I don't know.

02:05:49   So there's third party brokers that if Marco is a vacation club owner, as they call them, Marco is in the timeshare program, but he can't go anywhere this year.

02:05:59   And I do want to go, but I am not a timeshare owner. Marco can put his points up for bid or whatever, put them up for somebody else to buy, and he'll have a relationship with this third party broker.

02:06:12   Meanwhile, I will go to the same third party broker and say I would like points so I could stay in a room, and they will arbitrate that whole process.

02:06:19   It sounded kind of shady when I was looking at it, but I had heard a lot of people say that it works and it works great.

02:06:25   And so what ended up happening was we were able to get a one bedroom, I don't know if it was really a suite, but a one bedroom room at the Bay Lake Tower, which if you're familiar with Disney World, is the vacation club resort that is adjacent to the contemporary.

02:06:41   The contemporary being the A-frame building that the monorail literally drives through.

02:06:47   So anyway, so we got a one bedroom room at the Bay Lake Tower adjacent to the contemporary for, I did look this up, for approximately half the cost it would have been if I just went to Disney and said I would like that exact same room, please.

02:07:01   So, definitely recommend one of the two or three brokers. We happen to use, I believe it's called David's Vacation Club Rentals, I promise I'll put it in the show notes.

02:07:09   But I really recommend it. It seems shady as anything, but they're all Canadian and as it turns out, they're super nice. Who knew? And it worked out real well.

02:07:18   Another thing to think about is, although we did get the Disney meal plan, again this is like a four hour conversation, I'm cutting into four minutes or less, the Disney meal plan being like a cruise from my understanding where you pay a whole pile of money in advance and then you can eat "for free."

02:07:34   Gratuity is not included, but one alcoholic drink per adult per meal is included.

02:07:40   I personally like this because then I'm not nickel and diming myself the entire week that we're there. Not everyone will feel the same way. I do think if I didn't do the meal plan we probably would have saved a little bit of money.

02:07:51   But when you're talking about a Disney vacation, as John well knows, you're talking about just flushing piles of money down the drain. And so is saving a little bit really that big a deal? Probably not.

02:08:01   All that said, if you want to save a little money on groceries and stuff, or on food and stuff, you can get grocery delivery, which is not new to anyone in a metropolitan area.

02:08:10   And it's not even that new to me here in Podunk, Richmond, but there are companies that are specifically oriented around delivering groceries to Disney hotels.

02:08:19   And if you have a full kitchen in your fancy pants timeshare, that works out really well.

02:08:25   So we did grocery delivery and we got basically breakfast food delivered to us, and then bread and peanut butter so the kids could have sandwiches in the park if they wanted for lunch.

02:08:34   And that was super convenient. You should check that out. And as it turns out, they'll deliver the food to you, to the hotel, before you even arrive.

02:08:41   We were literally in the air somewhere between Virginia and Florida when our food arrived at the hotel. And they put it in the refrigerator, in the freezer at the hotel, and it works out real well.

02:08:49   Another thing is stroller rental. You can rent from third parties to save yourself a whole pile of money. One of the not-so-great experiences or parts of our Disney trip was that Michaela, who is turning two within a couple of days of this being aired,

02:09:02   Michaela refused to ride in the stroller, which was oh, so super delightful.

02:09:08   She just walked all day, right?

02:09:10   She just wanted to walk her teeny, teeny little legs all day long.

02:09:14   She won't get tired. That'll be fine.

02:09:15   No, she won't get tired and cranky and upset at all. And she's not overwhelmed by all this at all.

02:09:20   So that was a little bit delightful.

02:09:23   But we did have a very nice side-by-side stroller that we rented for not all that much money, all told, but we didn't barely use it because of Michaela. So that was great.

02:09:33   But you can rent a stroller from someone other than Disney and they're much nicer, etc., etc.

02:09:37   And all told, again, whether or not you're into Disney, this may not be the sort of thing you like.

02:09:45   And if you're really, really, really turned off by crowds of any size, maybe this isn't going to be a thing you like.

02:09:50   But from the moment we gave the luggage to the airport in Richmond, it was basically a magical experience, Michaela's insistence on walking notwithstanding, until we arrived back in Richmond.

02:10:06   We got to Richmond, we got to the airport, we gave them our luggage, which had been pre-tagged by us with the special tags that Disney sends you.

02:10:14   The next time I saw our luggage was in our hotel room after we had gone into the park that very first day.

02:10:20   Additionally, when we arrived in Orlando, we walked down to the special area, got on what they call the Magical Express, which is to say a series of coach buses that will take you directly to your resort.

02:10:31   You check into your resort, they say, "Okay, have fun," and then you go have fun, and by the time you're back from having fun, your luggage is in your room.

02:10:38   It's not down at the front desk, it's not at the bellhop, it's in your room.

02:10:42   And then the entire week, everything is taken care of. Yes, you're paying an obscene amount of money for it, I'm not arguing that.

02:10:48   Yes, it is busy and crowded and Florida is so hot and so wet, it is absurd, even in late October.

02:10:54   But, all told, it was amazing. And for me, I would have paid all of the money to see Declan's face when he saw Mickey Mouse at the little like meet-and-greet dinner that we did, where, you know, they have the people dressed up as the characters walking around the restaurant saying hi to all the tables.

02:11:12   I'm getting misty-eyed just thinking about how wide that little boy's smile was and how unbelievably excited he was to meet Mickey Mouse and how excited he was to show Mickey Mouse his little stuffed animal, Mickey Mouse, that he had carried with him for most of the trip.

02:11:29   It is, especially at about five years old, and maybe Adam is too old, and certainly John, your kids are way too old for this kind of experience, but for Declan to see that and to believe in his heart that he was seeing the real Mickey Mouse was one of the most amazing experiences I've ever had.

02:11:49   And I don't know if that's exactly unique to Disney, but there's something magical about the way it happens at Disney that I can't recommend enough. And I could give you a million and ten reasons why Disney World is the worst place on Earth, but I can give you ten million and five hundred trillion reasons why it's one of my favorite places in the world.

02:12:07   And I love it so much, and I hope even those of you who think you wouldn't enjoy it, I hope that maybe you give it a try. Maybe not a full week, maybe only go for two or three nights or something like that, but I hope you give it a try at some point in your lives, especially if you have children in your life, because it is so, so cool.

02:12:25   You're going to be sad for another reason when you realize that Declan's not going to remember that.

02:12:39   That moment, that memory was for me. It was for him at the time, but it's for me now. And for me it was worth every penny. It was amazing. It's so incredible, and I'm so lucky that we were able to do it. And I'm so thankful to the people that listen to the show that bought Vignette, that bought front and center. I almost said front to back. I bought front and center. Front to back by John Craig.

02:13:05   But anyways, I'm so thankful for everyone that listens to the show and has ever bought anything from a sponsor and used our coupon code or whatever. So much of that was possible because of all of you listeners and because of the two of you gentlemen that I'm speaking to right now.

02:13:19   And I'm so thankful for it. It was such an amazing trip. You know, it's funny because in the heat of the trip when Mikaela was screaming and yelling and refusing to ride in the stroller, I'm not sure I was as happy as I reflect on it now.

02:13:30   But if nothing else, I have the rosiest of rose colored glasses.

02:13:37   Yeah, I remember being angry with my parents because they took me to Disney when I was around that age. And then later in life my friends would be going there and we never went.

02:13:46   And I was like, "Why don't you ever take us to Disney?" They're like, "We took you to Disney." I'm like, "Yeah, but I don't remember that one. It doesn't count. You need to take me again when I'm old enough to remember."

02:13:55   Yeah, we probably waited a little bit too long to take our kids, but when we took them, my daughter was just barely still young enough to enjoy the character dinners.

02:14:03   I'm glad that we got that in because now they'd be super jaded about the whole thing, obviously.

02:14:07   As too cool for school teens or tweens.

02:14:11   I have no experience with this, but I almost wonder if there's a real golden time that I suspect Adam is probably reaching the end of in the next year or two. Or maybe he's already there. I don't know. But reaching the end of if not already there.

02:14:25   And then I think there's a dark age, I suspect, when they probably wouldn't enjoy it. They being the royal child, probably not enjoy it.

02:14:34   But then I went, the last time I went before my honeymoon was right after my freshman year of college. And I loved it. So I don't know if maybe I'm just a loser.

02:14:45   You're a kid at heart. I think kids of all ages actually do enjoy it, but tweens and teens are going to moan about it the whole time because enjoying it would be uncool.

02:14:55   I really do think that kids of any age and adults of any age can go there and enjoy it. And especially kids, despite how much they moan, they will. It's got fun rides and it's a cool place to be and you're not in school.

02:15:05   It doesn't take much to be enjoyable for kids.

02:15:09   I used to try it, Marco. I know it's probably not something you're even mildly enthusiastic about, but I really do believe that it's worth trying once. And if you hate it, you hate it. And you have to go in understanding what you're getting into. And I know you're not going to listen to me, but I really think you should try it once.

02:15:25   You can go to Vegas all the time, which is so much worse.

02:15:29   It really is. It's so, it's so, well, I don't know if worse is the right word.

02:15:35   It's less of the happiest place on earth, I can tell you that.

02:15:38   More people are unhappy in Vegas than are unhappy in Disney. Well, hmm.

02:15:44   I don't know, man. I haven't been to Vegas in a couple of years, but...

02:15:47   You gotta remember the alcoholics and the gambling addicts. There are much more of them in Vegas than in Disney.

02:15:52   Yeah, but Disney has a lot of really upset children.

02:15:54   Yeah, but even they're still having fun. Because they're going to get candy later.

02:15:58   Right, generally speaking, they're having fun. And plus, you forget how amazing it is not to be the parent of an upset child. To look over there and be like, "Haha! That's not me!"

02:16:08   I didn't see too many upset children on our trip that we took with our kids. I don't remember seeing screaming children.

02:16:14   Or maybe I have screaming children blindness from being a parent. I don't know.

02:16:17   (beeping)