Podcast Search

ATP

360: Big Hole in the Middle

Select a time to play from there. The line being spoken is highlighted as the audio plays.

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

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

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

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

0:00:17No.

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

0:00:20No.

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

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

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

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

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

0:00:41You know?

0:00:42Oh. Oh.

0:00:45Yup.

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

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

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

0:00:58Yeah.

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

0:01:01No.

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

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

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

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

0:01:14Boot Camp on external drives.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:02:38Fascinating.

0:02:39Yes.

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

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

0:02:46Yay.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:05:43But 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.

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

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

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

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

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

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

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

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

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

0:06:33as 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

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

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

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

0:06:52So 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,

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

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

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

0:07:15Speaking of quick hits.

0:07:16Was not actually a ladybug.

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

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

0:07:28And 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."

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

0:07:39And 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,

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

0:07:49As 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,

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

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

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

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

0:08:17It's still funny.

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

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

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

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

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

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

0:08:49The power brick.

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

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

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

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

0:09:10Certainly 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?

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

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

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

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

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

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

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

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

0:09:57So 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,

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

0:10:10It'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.

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

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

0:10:23I'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

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

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

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

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

0:10:45It 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,

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

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

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

0:11:06It'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.

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

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

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

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

0:11:30For 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.

0:11:38And 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

0:11:46and 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.

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

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

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

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

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

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

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

0:12:45So 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.

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

0:13:15And 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.

0:13:27And 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.

0:13:35Check 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.

0:13:42So 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.

0:13:53Property 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.

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

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

0:14:08Protocols 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.

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

0:14:19But 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."

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

0:14:29Another 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.

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

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

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

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

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

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

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

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

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

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

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

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

0:15:39I 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.

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

0:15:45Now, 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,

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

0:15:53But 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.

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

0:16:01If 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

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

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

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

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

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

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

0:16:30but 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:18:57No abstraction is ever perfect.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:22:59that is a huge problem space

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:23:54Small talk.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:25:12Like class clusters.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:28:09I agree to a point.

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

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

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

0:28:16Screw them.

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

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

0:28:22I completely agree, though.

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

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

0:28:29about error messaging in Swift.

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

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

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

0:28:39If you choose to include types

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

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

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

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

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

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

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

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

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

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

0:29:15Not always.

0:29:16Your point is still fair.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:30:03So anyway, context.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:31:08to modern Mac OS.

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

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

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

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

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

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

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

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

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

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

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

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

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

0:31:40would come to the front.

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

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

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

0:31:47just follow me here,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:33:07DragThing is gone.

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

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

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

0:33:15I did.

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

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

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

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

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

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

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

0:33:35to get the other behavior.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:34:14you know, system extensions

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

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

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

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

0:34:25ship it on the store,

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

0:34:28and it would change the way

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:35:27and not a dock icon

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

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

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

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

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

0:35:37which meant that, like,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:36:24and revising again and again.

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

0:36:28for the menu bar.

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

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

0:36:35with solving my problem,

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

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

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

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

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

0:36:46working in Objective-C.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:37:25than your average dynamic language,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:38:16I was doing some bit masking

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

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

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

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

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

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

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

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

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

0:38:40all caps bool type,

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

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

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

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

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

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

0:38:53and that worked.

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

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

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

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

0:39:00where the global event handler

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:40:45- You fool you.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:41:32- You mean Swift?

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

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

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

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

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

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

0:41:46around the preferences thing,

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

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

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

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

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

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

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

0:42:02that it has described,

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

0:42:06was surprisingly pleasant.

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

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

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

0:42:14putting type annotations on things

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

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

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

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

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

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

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

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

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

0:42:38and make more sense,

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

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

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

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

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

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

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

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

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

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

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

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

0:43:01it's fairly straightforward.

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

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

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

0:43:09or whatever with dot,

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

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

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

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

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

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

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

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

0:43:24I had to do almost no mucking with types

0:43:26when dealing with any of Apple's things.

0:43:28It all just fit together perfectly,

0:43:29and when I wrote sort of the one or two little bits

0:43:32that are, you know, my own code or, like, straightforward,

0:43:35like, not calling Apple's APIs,

0:43:37I got to use some fun Swift features and spend a little bit of time

0:43:40realizing how little I know about how this works,

0:43:42'cause, like, I look at it, and I'm like,

0:43:43"Well, I would know how to do this in Perl

0:43:45or any other language that has, like,

0:43:47all the features that every language could ever need,"

0:43:49and I have to see which one of these is Swift-incompetent yet.

0:43:52All right, they've got property wrappers,

0:43:53they've got didSet,

0:43:55they've got the set and get things,

0:43:58they've got init methods, they've got convenience init,

0:44:00and then you've got to do experiments.

0:44:02Oh, when you're in the init method,

0:44:03does the didSet thing get called or not?

0:44:05And, you know, like, there's lots of different ways

0:44:06you can go with these things.

0:44:07Having done this a million times, I knew the --

0:44:09in other languages, I knew the possible feature set

0:44:11that was out there, and it was just fun seeing

0:44:13which parts are implemented in Swift and which are not.

0:44:17So, anyway, I had a pleasant experience with it,

0:44:20and the only weird part was that in Swift,

0:44:22as far as I've been able to determine,

0:44:24there is no way to disable warnings

0:44:26for a line of code or a block of code.

0:44:29You can either disable it for your whole project

0:44:31or just live with a little yellow triangle,

0:44:34which is insanity.

0:44:36And it comes up because --

0:44:38I got some help from another developer friend,

0:44:40Gus Mueller of Flying Meat Software.

0:44:43He came up with the fastest possible way

0:44:45to bring all the windows from an app to the front.

0:44:47Unfortunately, it uses a deprecated API.

0:44:51But, you know, and you get a warning.

0:44:53You can't use a deprecated API, which is fine.

0:44:56In the Objective-C version, you just do pragma, clang,

0:44:58whatever, until it had no warnings here,

0:45:00and then, you know, the other pragma to pop that off of --

0:45:03Anyway, but in Swift, it was just a warning,

0:45:06and I kept googling around to find it,

0:45:08and I found a Stack Overflow question that's like,

0:45:10"As of, like, 2019, there is no way to do this."

0:45:13I'm like, "Oh, that's grim."

0:45:15So what I did was I took that one call,

0:45:17and I threw it into an Objective-C file

0:45:19and then called into Objective-C from Swift for that one call.

0:45:22So we have, like, this Objective-C bridging header,

0:45:24and they have the sole purpose of which is to get you to a file

0:45:26that has a single function that calls a single other function

0:45:28that does the thing I want,

0:45:30and that one is wrapped in the no-warnings pragmas.

0:45:33So that was the only sort of ugly wart.

0:45:35I have a bunch of non-deprecated ways to do it, as well,

0:45:38but they're all slower and laggier than the deprecated way,

0:45:41so I'm hoping Apple doesn't deprecate that API anytime soon.

0:45:45But, yeah, that's the app,

0:45:47and so once I had the app in Swift

0:45:49and an icon and everything else,

0:45:51then I just wanted to put it up on the Mac App Store,

0:45:54not because I think it's going to make any money,

0:45:56because, honestly, who even wants an app

0:45:58that's going to do this in the first place?

0:46:00Very few people.

0:46:02And, you know, the people who do want it, you know,

0:46:05they're probably all listening to this show.

0:46:08But I wanted the experience of what it's like

0:46:10to do something on the Mac App Store

0:46:12or on any app store that, you know,

0:46:13we talk about it all the time,

0:46:15but I've never actually done it or dealt with it

0:46:17or experienced anything about that.

0:46:18So this is kind of the best and worst case,

0:46:21and the app part of it is so trivial.

0:46:24As I said in the thing I posted about it, it was so trivial,

0:46:26and I rejected it for how trivial it was,

0:46:28kind of like how they rejected my reload button extension,

0:46:30because, like, this product has all the overhead

0:46:33associated with putting anything up in the app store

0:46:36with almost none of the actual development work.

0:46:38So, like, imagine the least development you could do

0:46:42and then have the overhead overwhelm it

0:46:44of making sure everything's set up

0:46:46and going through the app store thing

0:46:48and doing all the signing stuff and just, you know,

0:46:50you guys both know what it's like,

0:46:52but I had never actually experienced this stuff myself,

0:46:54so I wanted to do it, so I did, and I have to say,

0:46:57like, my decision to put this on the Mac app store,

0:47:01the discussions about it and saying,

0:47:02"Okay, this is the thing we're gonna do,

0:47:03and I'm gonna put it on the Mac app store,"

0:47:05that happened in the morning of a day,

0:47:08and by the evening of that day,

0:47:09it was available on the Mac app store,

0:47:11which I think is miraculous,

0:47:13not just for app review times,

0:47:15but for how long it took me to go through

0:47:17all of the things with the tax forms

0:47:19and setting everything up

0:47:20and making sure signing is done right

0:47:21and uploading and dealing with all the fields

0:47:24you have to fill in one day from,

0:47:27"I think I should put this in the app store,"

0:47:29to, "I can go to the app store application

0:47:31and see my thing."

0:47:32I was flabbergasted by that.

0:47:34My app review time was, like, measured in minutes

0:47:37and all the other stuff of it.

0:47:39It was annoying, and there was lots of stuff to go through,

0:47:41but basically, without even having to Google anything

0:47:44but just clicking around on the UI,

0:47:45I was able to figure it out.

0:47:47I was gonna say that their web UI for app store connect

0:47:50is really good, except at one point,

0:47:52I did make the mistake of trying to type something

0:47:54into one of the text fields,

0:47:56and, like, something happened, and then it ate it.

0:47:59Like, it didn't reload the page,

0:48:00but all of a sudden, half of my text was gone.

0:48:02I'm like, "Okay, well, not typing anything

0:48:03into this web page anymore."

0:48:04It did everything in a separate text file,

0:48:06which is probably what I should have been doing

0:48:08in the first place, but, yeah, I did all that.

0:48:10I put it up in the app store.

0:48:11I did want to make it a paid app

0:48:13because I want that part of the experience, as well,

0:48:15just the whole getting the payment stuff set up

0:48:18and dealing with all of that.

0:48:20I debated, discussed with Lee how much we should charge

0:48:23for the app.

0:48:26I was thinking I should charge a lot

0:48:28to keep people away from it

0:48:30because I don't want people to download it and be like,

0:48:32"Oh, it's your app, and it's stupid.

0:48:34It doesn't do anything."

0:48:35I'm like, "Yeah, you probably shouldn't download it,"

0:48:37but for the people who want it, like me,

0:48:40like, I wanted the app so much

0:48:41that I, like, willed it into existence, right?

0:48:44I would pay a huge amount of money to someone else.

0:48:46I would pay $10 if someone put this app up

0:48:48and I didn't have to write it.

0:48:50Like, I would pay a lot for it, so I think the --

0:48:52And the people who use it,

0:48:54it's not just like you take the app and you don't use it.

0:48:56You run it all day long

0:48:57and use it hundreds of times a day

0:48:59as you click around in Windows.

0:49:00Like, it gets used a lot if you have it.

0:49:02Like, it changes the way your Mac works.

0:49:04So I was in favor of a very high price,

0:49:06but on the other hand, this is literally the simplest app

0:49:09that Apple would probably ever allow.

0:49:10The app store does, like, one thing,

0:49:13and it has, like, one window with a couple of check boxes in it.

0:49:16Like, it is incredibly simple, so it couldn't be too expensive.

0:49:19So it's $2.99.

0:49:21If you think you're interested in trying classic window mode,

0:49:25you should try this out.

0:49:26Even if you're not interested in trying it,

0:49:28you can just run it in the other mode, in modern mode,

0:49:30where it just works normally,

0:49:32but then you can still shift-click

0:49:33if you want to bring all the windows forward

0:49:35and don't want to go all the way down to the dock icon to do that.

0:49:38So every listener to this show should obviously go and buy it.

0:49:41Oh, yeah, obviously.

0:49:43You can buy it and then just throw it in the trash.

0:49:45That's fine with me. That's ideal, actually.

0:49:47Or you can buy it and just run it all day long.

0:49:49I recommend running it without the dock icon.

0:49:53Like, honestly, the only reason it has a dock icon

0:49:55is because I thought you had to get rejected

0:49:56if I automatically had the dock icon.

0:49:59Yeah, run it without the dock icon.

0:50:02Run it with just the menu bar icon.

0:50:03The secret that no one else knows, except for listeners of the show,

0:50:05is that you can option-click on the dock icon

0:50:07to toggle the modes if that's what you want to do.

0:50:10And that's about it.

0:50:12I think I got to experience everything

0:50:14that you were supposed to experience

0:50:16about doing an app on the Mac App Store.

0:50:19All the rookie mistakes I think I made, and then some,

0:50:22my first submission was rejected.

0:50:24Like, I passed -- this is like achievements, you know,

0:50:26in console game style.

0:50:29Achievement unlocked. First submission rejected.

0:50:31Can you guess what my submission was rejected for?

0:50:33Metadata.

0:50:34Oh, boy. Yeah, metadata is a common one.

0:50:36If you mentioned the price in metadata, that's a common one.

0:50:39I was afraid of mentioning, like, Mac OS.

0:50:42Like, get classic -- I was like, can I mention Mac OS?

0:50:45Like, I'm aware of -- I'm less rookie than most people

0:50:48because I'm aware of many of the problems people encounter,

0:50:50but you really got to think really rookie.

0:50:52Like, think of, like, has never submitted an app.

0:50:55I'll give you a hint.

0:50:56It doesn't have to do with the app submission process.

0:50:58It has to do with the actual app.

0:50:59What did I forget?

0:51:01Did you leave it with, like, a 0.1 version number

0:51:03or something like that that suggested that it was a beta or incomplete?

0:51:06I didn't know that would get me rejected, but no.

0:51:08It does.

0:51:09Yep.

0:51:10I did not do that.

0:51:11Hmm.

0:51:12This is probably something -- well, I don't know.

0:51:14Marco doesn't do -- maybe -- did you have --

0:51:16Marco might have had this happen to Forecast

0:51:18because that was your first Mac app, right?

0:51:20Forecast has never -- I've never submitted a Mac app.

0:51:22Oh, right.

0:51:23It's not App Store.

0:51:24Oh, then maybe you don't know.

0:51:25If you haven't submitted a Mac app,

0:51:26maybe this doesn't occur to you,

0:51:27but I'll just save you from this rookie mistake.

0:51:29When you make a new Mac app project in Xcode,

0:51:33like I did making a new project in Swift,

0:51:35it gives you a whole bunch of crap.

0:51:37Like, you don't just start off with nothing.

0:51:39Like, it gives you, like, the skeleton of an app, right?

0:51:42It even gives you, like, a window.

0:51:43Like, it does a bunch of stuff for you.

0:51:45Yeah, like the menu and about screen and everything, right?

0:51:48Mm-hmm, which is, like, great, nice.

0:51:49Like, we're using that about screen.

0:51:51Like, that's -- I didn't have to write the about screen.

0:51:53It's like standard about screen.

0:51:54You know, I didn't even override the delegate method or whatever.

0:51:58What I forgot was it gives you a ton of other menus.

0:52:02And all the menus that, like, filled out,

0:52:04like, it gives you print and page setup and a help item.

0:52:08Yeah, the whole edit and view and everything.

0:52:10Yeah, and tons of stuff that is not relevant at all to my application.

0:52:13What does App Review do?

0:52:14They go through every one of your menus,

0:52:15and they try every function.

0:52:17[ Laughs ]

0:52:18And it's not like it crashes when you do them.

0:52:20When you go to print, it brings up a nice dialogue

0:52:23that says this application cannot print.

0:52:25But they rejected for that.

0:52:27They're like, "You forgot to --

0:52:28You didn't hook up any of these."

0:52:30You know, they basically said --

0:52:31They called it an error. I got an error.

0:52:32I'm like, "You didn't get an error.

0:52:33You got a beautiful dialogue box that says this application cannot print."

0:52:36[ Laughter ]

0:52:37Yes, so if you are submitting your first Mac application,

0:52:40go through your menus that were given to you as part of the skeleton

0:52:44and delete all the items that are not relevant to your application.

0:52:47I did actually hook up the help item.

0:52:48It just takes you to the website.

0:52:49But honestly, there's not much help for the app.

0:52:52All the help for the app is in the dialogue.

0:52:54So that was my rejection,

0:52:55and I was happy to see that rejection rather than being rejected

0:52:58for having too simple a functionality, which would be crappy.

0:53:01What else did I do?

0:53:02I immediately released the 1.0.1 version

0:53:05because I realized -- This is a super-rookie mistake.

0:53:08I realized after developing it for so long

0:53:10that on first run, when you have no prefs file,

0:53:13my code that was trying to set the prefs to default values

0:53:16wasn't working right because I didn't --

0:53:17You know, it was just a bug, right?

0:53:19But I never saw that myself because I always had a prefs file

0:53:21because I'd been developing it, right?

0:53:23First run. New user first run.

0:53:25Delete the container.

0:53:26Kill CF prefs.

0:53:27The, like, simulate the experience of a computer

0:53:30that has literally never run.

0:53:31This application, because if you don't,

0:53:34that's what they're going to do.

0:53:35And that wasn't, like -- It didn't cause a problem.

0:53:37It's just that when you first launch it,

0:53:39all the prefs were, like, off, and that was the opposite

0:53:41of what I wanted the default values to be.

0:53:43So I fixed that.

0:53:45And then the final one is a tiny, sort of,

0:53:49niggling UI issue that isn't worth releasing a new version for,

0:53:52but that gets seen immediately after the thing is up,

0:53:54which you and Brent just noticed in the Slack,

0:53:58that one of my labels is not correctly on.

0:54:00One of my labels is not correctly aligned

0:54:02in the one window that appears.

0:54:04And I tell you, it is not for lack of trying.

0:54:06God, that UI is killing me.

0:54:07The fact that you can't zoom in that UI

0:54:09and there's so many things in there

0:54:11and the auto layout constraints and --

0:54:12You're talking about, like, the Xcode, like, auto layout?

0:54:14Yeah, or just dragging the labels.

0:54:16You know how, like, it snaps things in the storyboard interface?

0:54:19It, like, snaps things to grid things,

0:54:21and there's so many things that it thinks it's snapping to,

0:54:23and there's the auto layout constraints, and, like,

0:54:25I swear, I tried to align everything.

0:54:27Like, my intentions.

0:54:28I know how they should be aligned,

0:54:29but, you know, retina screens have very small pixels,

0:54:32and you can't zoom that interface at all,

0:54:35and so I ship to the App Store thing with a misaligned label.

0:54:37So I fixed that in, you know, in Xcode.

0:54:40It's committed to the repo,

0:54:42but am I going to release version 1.0.2

0:54:44with a change that says "Label moved down one pixel"?

0:54:48'Cause that's the change that I made.

0:54:50I figure I'll wait for more bug reports

0:54:52before I put out that release.

0:54:54So you can go to the App Store now and get version 1.0.1.

0:54:58For the low, low price of $2.99,

0:55:00and then stare at the misaligned label

0:55:02and wait for me to release an update.

0:55:04[Laughter]

0:55:05Well, congratulations, John.

0:55:07I am excited that you are now officially a Swift developer.

0:55:10Yeah. Like I said, I enjoyed it.

0:55:12And it's not really that fair, because, like,

0:55:14this app is just calling a bunch of Apple APIs

0:55:17with, like, one new class defined, right?

0:55:21There's no business logic. There's no data model.

0:55:23There's no -- It's not really a fair assessment.

0:55:26But I did see and work with that code in Objective-C.

0:55:30I did rewrite it all in Swift,

0:55:32so I feel like I can have a reasonable comparison

0:55:34of how nice is --

0:55:36A, how hard is it to port from Objective-C to Swift,

0:55:39and B, how nice is it to call into Apple's APIs in Swift?

0:55:42And I think the answer is surprisingly nice,

0:55:44given where it came from

0:55:46and how kind of gross it used to be.

0:55:48Yeah, every time I look at Objective-C,

0:55:51like, enumeration names that are 3,000 characters long,

0:55:55as is everything else in Objective-C, I just go, "Ugh."

0:55:58And Xcode with the fix-its -- super impressed.

0:56:00Like, so they -- Not only did they shorten --

0:56:02You know, not only can you use type inference

0:56:04to make those shorter, but a lot of the names,

0:56:06they, like, changed the wording on them and stuff.

0:56:08And the Xcode thing would say, you know,

0:56:11"This enumeration constant or whatever is not --

0:56:15It's unknown or whatever."

0:56:17And it would say, "By the way, that was renamed from X to Y."

0:56:20Like, they have some kind of metadata in their headers

0:56:22or whatever that says the old name for this was X,

0:56:24so if someone types X, don't just say,

0:56:26"unknown symbol" or whatever.

0:56:28Tell them, "Oh, I see. Yeah, we renamed that.

0:56:30We changed the noun and the verb positions,

0:56:32and we moved this around or whatever."

0:56:34And it knows what you were trying to type,

0:56:36and you can just hit the fix and the fix-it thing.

0:56:38Super impressed with Xcode.

0:56:40Oh, more beginner stuff.

0:56:41I did have to delete the derived data directory a few times, so...

0:56:44Oh, yeah.

0:56:45I'm hitting all the milestones.

0:56:47[ Laughs ]

0:56:49Oh, man. I'm proud of you, John.

0:56:51This is good times.

0:56:53We are sponsored this week by Hover.

0:56:55Hover is a jumping-off point for a ton of entrepreneurs,

0:56:58and they want you to start your business with a domain name.

0:57:01Hover has over 300 domain name extensions to choose from

0:57:05when building your brand online.

0:57:07No matter what you want to build,

0:57:09there's a domain name waiting for it.

0:57:11You'll find excellent technical support available

0:57:13to answer any questions you might have,

0:57:15and their support team doesn't try to upsell you all the time.

0:57:18They only work hard to help you get online.

0:57:20And with things like free Whois privacy protection,

0:57:22a clean UI, and monthly sales on popular top-level domains,

0:57:26it's hard not to see why Hover is such a great popular choice

0:57:30for people starting all kinds of businesses.

0:57:32I personally register most of my domains at Hover

0:57:35because it's just better.

0:57:36It's easier, and they have great, like, keyword search tools

0:57:39if what you want isn't quite available.

0:57:41They can search over 300 domain extensions,

0:57:44so, like, maybe the .com for what you want is taken,

0:57:47but you can get .something else.

0:57:48There's tons of different extensions to choose from.

0:57:50Whenever I start a business, the very first thing I do

0:57:53is see if the domain names are available,

0:57:55and I do that with Hover, and I buy them whenever I can.

0:57:57I'll buy names speculatively.

0:57:58Like, if I think I might use a name, I'll buy it anyway

0:58:00because it's so inexpensive.

0:58:01It doesn't really matter if you accidentally buy a few

0:58:03that you end up not using.

0:58:04So check it out today.

0:58:05For whatever your next domain name is,

0:58:07get that domain name and many more at hover.com/atp,

0:58:11and you can get a 10% discount with that referral link

0:58:14on all new purchases.

0:58:16Once again, hover.com/atp.

0:58:19Make a name for yourself with Hover.

0:58:21[ Jazzy music plays ]

0:58:25-Marco, you have a new toy in your house.

0:58:28-News broke a few weeks back

0:58:30that Swiss TV company Salt

0:58:34had made an alternative Apple TV remote

0:58:38for their customers in Switzerland.

0:58:40The reporting was like,

0:58:41"Oh, it was, like, with Apple's cooperation,

0:58:43and it's fully compatible.

0:58:44It looks like a bigger Apple TV remote

0:58:47with regular buttons on it."

0:58:48And listener David Rossely actually sent me one.

0:58:52So thank you, David. That was awesome.

0:58:54I got to say, it's really nice, actually.

0:58:56Like, it's not perfect,

0:58:58and I'm not sure I'm gonna stick with it forever.

0:59:00So first impressions, it's very big.

0:59:04It feels very light and feels very cheap.

0:59:07The plastic on the outside is, like,

0:59:08a very, like, just kind of cheap plastic.

0:59:11The top edge is kind of sharp,

0:59:13like the bezel edge around the top.

0:59:15So, like, it doesn't feel like a premium thing.

0:59:19The surface with the buttons on it, though,

0:59:21does feel nicer.

0:59:22It has that kind of, like, soft-touch silicone rubbery

0:59:25kind of feel that a lot of stuff has now.

0:59:27It's very, like, high-contrast.

0:59:28Like, there's no logo on it.

0:59:30There's no, like, Salt TV logo anywhere on it.

0:59:33It has, like, the big white-circled menu button on top.

0:59:36So it looks kind of like the Apple TV style.

0:59:39And then it feels, you know, it feels good.

0:59:42Like, the buttons feel good.

0:59:43The only thing is that the buttons are very low.

0:59:45It's a very shallow, like, depth.

0:59:47And having most of them have just, like,

0:59:50it's mostly just black with white labels.

0:59:53And only the menu button has a circle around it.

0:59:55And so in practice, especially, like, in, like,

0:59:58a dark TV room, it's hard to see the edges of the buttons.

1:00:01And so you do have to do a little bit of feel.

1:00:03And the edges are so, like, shallow on them

1:00:06that it's a little hard to feel around

1:00:09just based on feel alone.

1:00:11The iconography on it is nice and bold.

1:00:12And high contrast, but, like, you know.

1:00:15And there aren't that many buttons on it,

1:00:17so it's fairly easy to navigate.

1:00:18But it is a little hard to see, like, in the dark.

1:00:21And where this is most concerning,

1:00:23or most clunky, is operating the D-pad.

1:00:26Because it is also, like, the direction, you know,

1:00:29up, down, left, and right buttons

1:00:31are just this one big round rect.

1:00:34They're not, like, separate, four separate, like,

1:00:37ridges that you can feel.

1:00:39It's just, like, this big, round blob.

1:00:41So it's a little bit hard to precisely navigate that.

1:00:44But it is not a touch surface, like the Apple TV remote.

1:00:47Like, it's actually just four buttons.

1:00:49So that's great.

1:00:50It actually works really well.

1:00:52Where it falls down is text input.

1:00:56Because this remote, you know,

1:00:58it doesn't have that trackpad-like surface.

1:01:01So text input, if you're gonna do it on here,

1:01:04you have to, you know, hit the left and right buttons,

1:01:07like, over and over and over again

1:01:08to, like, get over to the right letters.

1:01:10And there's no Siri on it.

1:01:13Because I assume the way this works

1:01:16is I think it's just an infrared remote

1:01:19that comes pre-programmed to send the right codes to Apple.

1:01:23Like, the reporting on it was kind of like,

1:01:25oh, Apple cooperated with them and let them do it.

1:01:27And I don't know how much cooperation there was.

1:01:29I think what really happened is they just shipped a remote

1:01:32that was compatible without pairing or anything

1:01:35because it sends the same infrared commands

1:01:37that the old Apple's IR remote sent.

1:01:39That's my best guess.

1:01:41But it does really work that way.

1:01:42Like, there's no setup, there's no pairing.

1:01:45You just point it at the Apple TV

1:01:47and it just starts working.

1:01:48So that part is awesome.

1:01:50But not having Siri and having to move the text cursor

1:01:55back and forth by, like, hitting the buttons

1:01:57over and over again, that is clunky and painful.

1:02:01If you're gonna go this route,

1:02:02you're probably gonna wanna do all text input on your phone

1:02:05or keeping the Apple remote around

1:02:08and just using it for Siri.

1:02:10But otherwise, the rest of the operation of this

1:02:13is actually pretty nice.

1:02:16The buttons do click in nicely.

1:02:18I haven't had any accidental input.

1:02:21There are a few niceties, like there's a power button.

1:02:24Now, on the Apple TV remote,

1:02:25you can hold the home button down for a few seconds

1:02:28and it puts up, like, a sleep dialogue

1:02:30and you hit that and it turns off the TV and the Apple TV.

1:02:33This has a power button that doesn't do that.

1:02:36It seems to only turn off the TV.

1:02:39Oh, and it has a volume up and down button

1:02:42that doesn't initially work unless you have,

1:02:46I think, a Samsung TV.

1:02:47It comes by default.

1:02:48But there's a little instruction sheet

1:02:50that comes with the remote.

1:02:51If you hold down a certain button combo,

1:02:53you can toggle it between different brands of TVs

1:02:56for, like, universal IR compatibility.

1:02:58And once you find your TV,

1:03:00then volume up and down and power work.

1:03:04I have an LG. I hit, like, the switch button one time

1:03:07and it went to the LG, so it's fine.

1:03:09So that part is great.

1:03:11So I have volume, I have power.

1:03:13There's no actual home button.

1:03:16There's menu, but there's no home button.

1:03:18If you hold down the menu button for a couple of seconds,

1:03:21it performs a single home button click,

1:03:24but you can't do the double-click thing

1:03:26to bring up the app switcher

1:03:28to force quit Netflix when it breaks.

1:03:30So that's a little annoying.

1:03:32There's no way to go to the app switcher as far as I can find.

1:03:35What's nice, though,

1:03:37is that it has these dedicated buttons at the bottom

1:03:40for not only play/pause,

1:03:42but also rewind, fast-forward,

1:03:45jump back and jump forward 10 seconds.

1:03:47And these are all things you can do on the Apple remote

1:03:51with certain gestures and things,

1:03:53but I've found them incredibly error-prone

1:03:55and incredibly hard to do, like, reliably.

1:03:57And with this, just having those as buttons

1:04:00is actually really nice.

1:04:02So overall, it's pretty nice.

1:04:05Like, I've been using it for a few days,

1:04:08and so far, I think I'm gonna keep it out,

1:04:11but not having Siri or the home button

1:04:14will prevent me from putting my Apple remote away forever.

1:04:19- So you're gonna have two remotes.

1:04:21- Yeah, right.

1:04:22- All the things that are wrong with this

1:04:24are ways in which you try to copy the Apple remote.

1:04:26The shallow buttons are so clearly trying

1:04:28to imitate the very shallow button on the Apple remote

1:04:31right down to the ring around the menu thing.

1:04:33The general size and shape --

1:04:35they know they want it to be larger,

1:04:37but it's still basically a thin, fairly narrow rectangle.

1:04:40I'm pretty sure this feature is still in the Apple TV,

1:04:42and this is what I suggest to people.

1:04:44The Apple TV has a feature where it will learn

1:04:46any IR remote that you happen to have.

1:04:48Like, the Apple TV will learn your remote

1:04:50and not the other way around.

1:04:52And I, for years, used an old TiVo remote with my Apple TV.

1:04:55I just put a little sticker on it that said "Apple TV,"

1:04:57so we know this is because we have another TiVo remote

1:04:59that looks exactly the same, right?

1:05:01And you just teach the TiVo that,

1:05:03and it has all the same features you just talked about.

1:05:05TiVo has a skip forward and skip back and fast forward.

1:05:08It has dedicated buttons for all that,

1:05:09so you get all those features.

1:05:10It doesn't have a Siri thing, so you're missing that.

1:05:13The power and the volume work the same way on TiVo remotes.

1:05:16It's IR, as well, even though TiVo remotes

1:05:18also have Bluetooth.

1:05:20I've never used it with Bluetooth with the Apple TV.

1:05:22I don't think you even can.

1:05:23But if this feature still exists on Apple TV --

1:05:26and I think it does --

1:05:27and you have a remote that you like

1:05:29that you're not using anymore --

1:05:30and maybe this is a rare scenario,

1:05:31but, like, if you ever use TiVo,

1:05:32you've probably accumulated these TiV remotes.

1:05:34TiV remotes are amazing. The buttons are high.

1:05:35You can see them without ever looking at them.

1:05:37They have a distinctive size and shape and position.

1:05:40It's glorious.

1:05:42I found something today with a TiVo streaming box,

1:05:44which I'm assuming is terrible

1:05:45because TiVo software these days is terrible,

1:05:47but it comes with a tiny TiVo remote.

1:05:50Like, it's the same as the TiVo Pino remote,

1:05:52but it's really, really small.

1:05:53I think this would be an ideal Apple TV remote

1:05:56because the Apple TV itself is small,

1:05:57and so is the real remote for it,

1:05:59so it would be nice to have a sort of black,

1:06:01sleek, small Apple TV remote.

1:06:03So the TiVo streaming box is like $70,

1:06:06and it comes with a remote.

1:06:07So just buy it, throw away the streaming box,

1:06:09and take that remote and use it with your Apple TV.

1:06:11[ Laughter ]

1:06:13-Oh, my word.

1:06:14-Anyway, thank you to David Rosseli

1:06:15for giving me this remote.

1:06:16It's pretty awesome.

1:06:17And, yeah, I'm gonna keep using it, I think.

1:06:20-John, on your birthday, you got very good news,

1:06:25and then several days later, you got another package.

1:06:28-I did. Another two packages.

1:06:30I got a package with the stand and the display.

1:06:32The stand box is way bigger than I thought it would be.

1:06:35It's just -- It's tremendous.

1:06:36I don't -- I mean, the stand itself is also big,

1:06:38but, like, the box is huge.

1:06:40-All that money had to go somewhere.

1:06:42-Yeah. I've got the display and the stand.

1:06:45They are connected to each other.

1:06:47It is on my desk.

1:06:49First impression, having set up and using it,

1:06:53you know, to give context before I go into that,

1:06:57I'm not using this monitor for its intended purpose.

1:07:00I don't need a reference monitor.

1:07:02I don't need excellent color fidelity

1:07:04beyond what the iMac offers.

1:07:05Although I appreciate it,

1:07:06'cause I do do photos in this thing or whatever.

1:07:08But, like, there is no actual use case

1:07:12that requires this thing.

1:07:13But I did want a really big, nice Apple monitor, right?

1:07:18So if they had offered a 6K display

1:07:22that was not a bazillion dollars

1:07:24and was just like the iMac display but bigger,

1:07:26I would have got that.

1:07:27And my first impression of using it was --

1:07:30had to do with the size.

1:07:31I was going to remember from a 23-inch monitor,

1:07:34which is kind of small even by today's standards.

1:07:37That was my old monitor.

1:07:38And then I had a 24 temporarily on the desk,

1:07:41not that much bigger.

1:07:43And, you know, the resolution was only, like --

1:07:45It was only 4K.

1:07:47I just felt overwhelmed by how big it was.

1:07:50I mentioned before my window arranging,

1:07:52where I have places where windows go,

1:07:54and my window arranging pattern has evolved

1:07:56as screen sizes have changed.

1:07:58Obviously, I started my window arranging patterns

1:08:00on a 9-inch screen that was -- whatever it is --

1:08:02512x342, whatever the classic amount was.

1:08:04And it's moved up from there.

1:08:06I haven't made a significant jump

1:08:08in sort of point size, like not pixels, you know,

1:08:12versus retina versus non-retina,

1:08:14but just like how many computer points are on the screen,

1:08:18which used to be pixels,

1:08:19but now are little clusters of four actual pixels

1:08:21in retina mode.

1:08:23I haven't made a big jump like that for a while.

1:08:25I made a big jump from the CRT days

1:08:28to my 23-inch Apple Cinema display back in the day,

1:08:31which was what, 1,900 by --

1:08:351,920 by 1,200?

1:08:37I don't even remember anymore.

1:08:38But that was a 23-inch LCD.

1:08:41And after that, with my Mac Pro,

1:08:43I was also using a 23-inch LCD.

1:08:45I think it had more pixels because it was taller, right?

1:08:47I'm not entirely sure.

1:08:49But that was the last big jump I made.

1:08:51And so the jump from CRT to 23-inch LCD,

1:08:54and then I moved 23-inch LCD until 2019.

1:08:57-Wow. -And then I go up to 6K.

1:08:59Obviously, you know, my wife has a 5K iMac,

1:09:02and I use it all the time.

1:09:03But it was something about sitting at my desk

1:09:05in my familiar place in this huge screen,

1:09:07and then, like, I launched my applications,

1:09:10and they were all shoved into the upper left-hand corner,

1:09:12because it remembers the window positions,

1:09:14and I just see all the space around me.

1:09:16[ Laughs ]

1:09:17Where, you know, like, space that didn't exist before.

1:09:20So I started doing my window arranging,

1:09:22and I realized my old patterns that were, like,

1:09:24anchored in the corners were, like, in the upper left.

1:09:26I have web browsers in the upper right.

1:09:28That's where, like, my Skype window goes

1:09:30when I'm podcasting, and the lower left is, like,

1:09:32Audio Hijack, and in the center is Skype.

1:09:34And, like, you know, my terminal windows

1:09:36are anchored at various places.

1:09:38I ended up with this giant hole in the middle of the monitor,

1:09:41because when I did that sort of corner anchoring,

1:09:43there was this giant space in the middle

1:09:45where there was nothing in.

1:09:46I was like, "I've got all this extra space.

1:09:48I need to rethink everything.

1:09:50I need to rethink all my patterns,

1:09:51so I'm evolving how I'm going."

1:09:53-But it just -- -"Rethink cities."

1:09:55Yeah, there's just wide-open spaces.

1:09:57And I also felt like --

1:09:59I felt like the thing was looming over me.

1:10:01Like, it was just, like, this huge wall in front of my eyes.

1:10:04Like, I had to, like, turn my head to take it all in, right?

1:10:07It was just unbelievable, right?

1:10:09And I did -- I don't have anything that I could show

1:10:13on this monitor to show off its capabilities,

1:10:15so I just started Googling for, like, 8K HDR content,

1:10:20like demo reels that they show at, like,

1:10:22you know, CES or whatever for your televisions.

1:10:24And I found a bunch of them. Samsung has a bunch.

1:10:27And so I got, like, this either 6K or 8K footage

1:10:31at 60 frames per second in HDR,

1:10:34and then I tried to find an app to play it.

1:10:36And by the way, like, this is --

1:10:38you know, when it's not in QuickTime-compatible format,

1:10:40you have to use the other things.

1:10:41That one that we talked about on the last show,

1:10:43I think it was Optimist Player. You remember that app?

1:10:45-Mm-hmm. -Yep.

1:10:46That was the winner. Like, I tried a bunch of other apps I had.

1:10:48I tried, like, VLC. I tried the IINA, you know, whatever app,

1:10:53and it was having some trouble with it.

1:10:54I'm like, "Is my computer too slow to play this?"

1:10:56No, it's just, like, the particular codec

1:10:58that these demos had,

1:11:00Optimist Player just did it fine.

1:11:02And it looks amazing.

1:11:04It looks amazing in HDR at 60 frames per second at 8K.

1:11:07It looks -- I'm not gonna say it looks better than my TV,

1:11:09and I'll get to that in a little bit,

1:11:10because in some respects, it doesn't,

1:11:11but it does look absolutely amazing.

1:11:13Like, this is the first time I've seen --

1:11:15first HDR display I have in the house,

1:11:16besides, I guess, like, the iPad Pro one that's HDR.

1:11:20I don't remember. Anyway.

1:11:21Or the phones, I guess, are HDR.

1:11:22But this is, you know, has way more nits,

1:11:25as they say, on stage.

1:11:27Super impressive.

1:11:28I can watch -- the demo reel I liked the best

1:11:30was this person taking their golden retriever through Italy

1:11:32and showing pictures of food and everything,

1:11:34so I was predisposed to like it.

1:11:35But it looked amazing.

1:11:37But I don't spend my day looking at HDR content.

1:11:39Most of the time, I'm just looking at regular computer screens.

1:11:42I enjoyed editing my photos on it.

1:11:44I enjoyed making my photos window, like, three times as big,

1:11:47because, again, they launch photos,

1:11:48and it's in the upper left-hand corner.

1:11:49It's like, "Zoop!" You can zoom that out now.

1:11:52God, I can see so many photos.

1:11:54The magic part of it is that three days later,

1:11:58now this is just my life now.

1:11:59Like, the monitor does not feel big.

1:12:01It just feels like a computer monitor.

1:12:03I rearranged everything and have new patterns.

1:12:05When I was doing the development of my app

1:12:07and I had Xcode open and I had, you know, my web browsers,

1:12:11then I had the help window,

1:12:13I had Photoshop open for doing all the icon work,

1:12:16and I had, like, IconSlate open and Candy Bar

1:12:18looking at my old icons to try to find things,

1:12:20and what else did I have?

1:12:22I had so many apps open,

1:12:23then when I brought up the app switcher,

1:12:24it hit the edges of my monitor.

1:12:26You know, a 6,000, 16-pixel monitor.

1:12:29The app switcher was going from edge to --

1:12:31because again, 96 gigs of RAM, right?

1:12:33I had so much going on, and it could handle it

1:12:35because there was a place for everything to go.

1:12:37- Yeah, why ever quit anything?

1:12:38- It was, but like, it's so terrifying

1:12:41how quickly you get used to, like, you know,

1:12:43like, "Oh, this monitor's so big!"

1:12:44And then you're just like, you know,

1:12:46as they say on television, "This is me now."

1:12:49- So I'm curious, like, one thing

1:12:52that I always tried to maintain,

1:12:54I always tried to make sure that I was using

1:12:56the same monitor sizes and setup at work and at home

1:13:00because I hated the idea of having to switch

1:13:02and have, like, a nice big one in one of those places

1:13:05and have to go to a smaller one for the other place.

1:13:08Is that gonna be a problem for you with this,

1:13:10or are you gonna somehow make work buy you one of these?

1:13:12- Oh, no, it's not gonna be a problem.

1:13:14Like, 'cause I'm, the things I'm doing at home

1:13:16and the things I'm doing at work are not the same at all.

1:13:18I love coming home to this big setup

1:13:20and this faster computer and all the other stuff,

1:13:23but I'm doing different things.

1:13:25You know, at work, I do have, you know,

1:13:27I have the stupid laptop and I have the external 24-inch monitor,

1:13:30but it's fine for what I do at work.

1:13:32Remember, at work, I'm not running Photoshop and Xcode

1:13:36and two web browsers at the same time.

1:13:39Like, that's not what I'm doing.

1:13:41Like, I'm not multitasking to that degree,

1:13:43so it's, you know, I don't have as much RAM.

1:13:44Either, you know, it's not a problem for me.

1:13:47Let me talk about the stand a little bit.

1:13:49The height adjustment is, I didn't think I would use it.

1:13:52I like the fact that it was there,

1:13:53but I figured I'll find the height that's good for me,

1:13:55and then that'll be that, and I like that it's adjustable

1:13:58because who knows what the right height for me will be.

1:14:01And I did find that the right height for my particular setup

1:14:04actually is pretty low.

1:14:05It's not the bottom of the travel, but it's pretty low

1:14:07because my desk is high because I have a keyboard tray, yada, yada.

1:14:10But I did find that the height adjustment I do use more often

1:14:13than you might think because sometimes I have my work laptop

1:14:15at home open in front of the monitor,

1:14:17and the rim of it can, like, block the bottom of my screen.

1:14:21Just take my finger and move the bottom of the screen up an inch,

1:14:24and now they, you know, don't block each other, which is nice.

1:14:28I did try rotating it into portrait.

1:14:31That, I mean, I just got through saying you get used to anything,

1:14:34but I can't imagine getting used to it because in portrait,

1:14:38it is so tall I have to, like, bend my neck to see the top of the monitor.

1:14:42It is on my particular desk.

1:14:44Even in the lowest position, it is so tall,

1:14:46it is hilariously unpractical.

1:14:48Like, I would spend my day, if I had to look at the menu bar,

1:14:51my neck would be strained from looking upwards.

1:14:54It is just, like, I need a standing desk or something else to deal with that.

1:14:58And even with a standing desk, I feel like even if it is correctly aligned

1:15:02with your eye line, you are going to have to bend your head up and down

1:15:05to see the top and the bottom.

1:15:06And the way that you don't when you, I don't know,

1:15:08maybe my eyes move side to side better than they move up and down,

1:15:11but vertical, this monitor seems too big for vertical

1:15:15except for sort of, like, boutique applications,

1:15:17like they had at the WWC thing where they were showing, like,

1:15:19portraits on it or using it for display purposes.

1:15:22But if you are doing, like, text editing, like, you can certainly see

1:15:25a lot of lines of code at nine-point text, but it is just, it is too much,

1:15:29at least for me. So, horizontal it is.

1:15:32One interesting thing about this is that the monitor rotation thing,

1:15:37like there is an unlock thing that lets you rotate it, right,

1:15:39but even when it is in locked mode, there is a little bit of play

1:15:42in the rotation, like it doesn't lock into straight 90 degrees,

1:15:46which is bad, and then it seems loosey-goosey, and you are like,

1:15:50but I just want you to lock into your regular landscape orientation.

1:15:54But it is good in that if your desk isn't perfectly level,

1:15:58you can still level the monitor.

1:15:59My desk is perfectly level because I leveled it when I cleaned everything before.

1:16:03Naturally.

1:16:04Yeah. So, for me it is mostly a downside, but I did have to actually level

1:16:08the monitor with my little level after I got it back to the horizontal position.

1:16:13It stays there, like it is not going to go anywhere.

1:16:16The stand does its job, it holds the monitor up, the motion of it is not as smooth

1:16:20or nice feeling as the Flower iMac with the arm.

1:16:23That arm felt better than this monitor stand, which is kind of amazing.

1:16:27Again, kind of like the turny knob handle thing on the top of the Mac Pro.

1:16:32It feels a little like scrapey aluminum turning and scrapey aluminum,

1:16:36like it is precise and it is not crumbly, but it is also not smooth.

1:16:41There are no bearings in there, it is like metal on metal.

1:16:45Very smooth, precise metal on very smooth, precise metal,

1:16:47but there is no sort of bushings or slick plastic or other lubrication

1:16:51or ball bearings or anything else in there.

1:16:54It is smooth and you can move it with one finger and it feels solid

1:16:57and doesn't wiggle and there is no play, but it is a little bit,

1:17:01it is not particularly pleasant feeling to move up and down.

1:17:04It feels a little scrapey.

1:17:05That is a little disappointing.

1:17:08Apple is the kind of company that would care a lot about making that feel really nice

1:17:12and for something that is so high end, such a flagship product and so expensive,

1:17:17you would think they, I mean maybe it wasn't possible compared to the old iMac.

1:17:21I know this is obviously a lot more weight.

1:17:23It doesn't feel bad and my thinking is that the things that might make it feel smoother

1:17:29also decrease durability, so maybe it is designed to be the same year after year

1:17:35being thrown into Pelican cases and move in different places on a movie set or something.

1:17:38I don't know. I don't know the thinking.

1:17:40It doesn't feel cheap, but it also doesn't, I don't know.

1:17:44You should go to an Apple store and move one and just see what it is like.

1:17:47It feels very solid and sturdy, but there is a little bit of, you know,

1:17:52scrapiness you can feel in there.

1:17:54I don't even think there is any stores near me that are going to stock it.

1:17:57The Mac Pro is only going to be in select stores,

1:18:00so I don't even know if any of mine are going to have it.

1:18:03But yeah, I think also like Apple really has to nail this stand

1:18:09because if they are going to have the sheer audacity to ship an optional $1000 stand for their monitor,

1:18:17it has to be really awesome.

1:18:19It better be a damn nice stand and have no obvious problems.

1:18:24And so yeah, all the details have to be really good.

1:18:28One thing it does impress with is the, I mentioned the size and it is fairly big, the box is big,

1:18:34but the weight is so much more substantial than even the little L-shaped tongue that is under an iMac.

1:18:40It is thicker all around. It doesn't taper. It is surprisingly heavy, which is nice for a base for the monitor.

1:18:47You never feel like this thing is going to tip over.

1:18:49In particular, I appreciate, I don't know if this is just psychological or it's a real thing,

1:18:53but I appreciate the fact that it is not an L-shape, that it is more of an I-beam,

1:18:57that behind the monitor, like where the thing goes up, there is another little inch of stuff that sticks out behind it.

1:19:03It just makes it feel even more sturdy, like you feel like, even if I just shove the top of this monitor,

1:19:08there is no way I could get it to tip over because of the extra little leg.

1:19:11It really solidly anchors the monitor.

1:19:14If you are the type of person who wants to move it around a lot, I think that is part of the thing that helps.

1:19:18If you move the monitor up, you are not going to lift the foot up off the thing because it just weighs so much.

1:19:23It does the job. I don't think much about the stand. I try not to think about how much it costs.

1:19:27I wish I could see the back of the monitor more because now that these holes have grown on me, it's cool looking.

1:19:32There is a fan back there and when I plugged it in and put my head behind the monitor, you could hear it,

1:19:37but kind of like we discussed with the iMac last time, because it is behind a solid thing, not audible.

1:19:42Maybe 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.

1:19:48Especially since if it is on my, the Mac Pro next to it is on,

1:19:51maybe it would be audible if the Mac Pro wasn't on, but the fan and the monitor were on,

1:19:55but it is very small and very quiet. I am assuming they are spinning now, but I can't hear them.

1:20:00So that's all good. I like the fact that it has a uniform bezel around it,

1:20:05which is a thing that we haven't had with an iMac in forever because it has always got the chin, right?

1:20:08It looks nice and it looks nice and uniform.

1:20:12Some people have been complaining about the viewing angles.

1:20:14I am coming from a monitor that is 10 years old, so as far as I am concerned, it looks amazing.

1:20:19I am used to the 5K iMac and it looks about the same.

1:20:23One thing about that is I didn't get the nano texture ridiculous screen because I was terrified of it,

1:20:28but this does not look as glossy as the 5K iMac.

1:20:31I don't know if it is in a different place in the room, but it almost looks like a matte monitor.

1:20:35It looks pretty amazing. So I am so happy that I chose this thing because it doesn't have the nano textured finish,

1:20:40which I thought made it look kind of misty, but I don't get any glare or reflections on it.

1:20:45Again, 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.

1:20:52It is really nice. I have immediately gotten used to it and now I can never go back to anything else,

1:20:59which makes me hope that someday Apple doesn't make just a 5K monitor that is the iMac without the iMac behind it,

1:21:06but that they make a 6K monitor that is just not this fancy thing.

1:21:10One final bit on the actual supposed attributes of this monitor. Who was I to do this to?

1:21:15Juan Salvo put up on Twitter a thing about comparing this to actual reference monitors that cost $40,000 or whatever.

1:21:23I kind of talked about this when we discussed the technology behind this monitor,

1:21:28the fact that it is basically a local dimming LED backlit, LCD television, a technology with which I am very familiar.

1:21:36There is a reason the best televisions in terms of picture qualities do not use full array local dimming LED backlit LCDs.

1:21:43That reason is bloom. If you have a giant star field that is all black with pinpricks of white light at maximum brightness,

1:21:51if 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,

1:21:59the regions are big. There are hundreds of regions, but there are millions of pixels.

1:22:04So if you have a star field where there are tiny pinpricks of really bright light,

1:22:09you have to turn on a 1" x 1" bright white LED behind that.

1:22:14When you do that, the bright LED light comes out the little pinprick hole,

1:22:18but it also bleeds through a little bit of all the region around the little starprick.

1:22:23That is called bloom in the TV world. We will link to the tweets that Juan did.

1:22:30You can see it compared to a reference monitor. One of the things reference monitors do is,

1:22:34a lot of them have multiple layers of LCDs where the backlight is broken into regions,

1:22:40but then that backlight shines through an exactly 1 to 1 pixel grid LCD whose only job is to filter the backlight.

1:22:48Then in front of that, there is the actual LCD that has the pixels on it.

1:22:52It 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

1:23:02and the inky black of space right next to it.

1:23:05Technology like OLED and Plasma don't have this problem because they literally don't light up the pixels that are black.

1:23:11The pixels themselves are emissive. There is no backlight shining through a grid.

1:23:15In this comparison, the XDR has way more bloom than a "real" reference monitor.

1:23:21If 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.

1:23:28Also, surprise, full array local dimming is not the best technology for maximum contrast.

1:23:33OLED 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.

1:23:44This 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.

1:23:56But, you know, it's only $1080.

1:23:58Anyway, XDR, no one should probably buy it, but I'm super glad that I have it.

1:24:03That's a great summary.

1:24:06I'm glad. I feel like after 10 years of using the same computer, I feel like you've earned a totally ridiculous upgrade.

1:24:16And this is that. This is a totally ridiculous upgrade that is awesome in all the ways that you care about.

1:24:24I don't know anybody else who should buy that monitor, but I'm glad you did.

1:24:30It is right that you have this monitor.

1:24:33Yeah, it's kind of like I talked about last time, the thing you notice is the removal limitation.

1:24:38So I used to be on the edge of my disk space all the time, which is a constant source of stress.

1:24:42And, you know, not having enough RAM and like things starting to thrash because you're opening too many applications or whatever.

1:24:48Screen space is the same deal.

1:24:50Suddenly, it's like all these windows used to be packed together.

1:24:53Like, 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?

1:25:02It eventually just becomes this mess and you can't find anything.

1:25:04But having so much more screen space, like I can come up with new ways to arrange things.

1:25:09And 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.

1:25:18That was my browser window. Right.

1:25:20I was like, I can make all of my browser windows just bigger.

1:25:24Like just, you know, instead of keeping them the same size and having more of them, I can make them all bigger.

1:25:28Obviously, I can make them taller if I want so they can cover the same portion of the room, but I can make them bigger.

1:25:32So every window got bigger. My Slack window got bigger. My terminal windows got bigger.

1:25:36I increased the font size in my terminal.

1:25:38Like all sorts of things that I couldn't do before.

1:25:41Like it's, you know, having those limits removed.

1:25:45And like I said, for the screen, it's a honeymoon period.

1:25:47And then you're like, oh, I'm just used to it.

1:25:49But I like being used to it.

1:25:51I 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.

1:25:58I've even started to come around appreciating the thing that, you know, we talked about how crappy my GPU is before.

1:26:04And I do want to eventually get a new GPU.

1:26:06While I have the crappy one, one of the benefits of the crappy GPU that we discussed before, but I appreciate even more, no fan.

1:26:13There's no fan in the GPU.

1:26:15Like there's just the three fans in the front of the thing and then the blower fan in the back.

1:26:18There is, and the GPU, like everything else inside this computer is entirely just passively cooled by the fans that are already in the case.

1:26:27And so it's silent.

1:26:29So 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.

1:26:37So in summary, I am enjoying my new setup.

1:26:41I 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.

1:26:53And it handled it well and I didn't have any hitches.

1:26:56I 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.

1:27:09But anyway, we'll save that for next week as a tease.

1:27:11More Mac Pro stuff to come, but monitor and the overall setup, thumbs up.

1:27:16Congratulations. You have earned it.

1:27:19Thank you.

1:27:20Now that is true.

1:27:21Oh, 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.

1:27:29Oh my gosh.

1:27:32Thus completing my trip through the rookie mistakes that you make when talking about things.

1:27:37I 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.

1:27:41Go to the app store and search for front and center.

1:27:44That's a name that Lee came up with this app and I think it's great.

1:27:46Front and center.

1:27:47You can also search the app store for John Syracuse because that's under your name and it's your only app.

1:27:52There you go. You'll find it that way too.

1:27:54Front and center will be keyword spammed by people buying ads against it, but I don't think anyone's buying ads against my name.

1:28:01Maybe we should.

1:28:03We are sponsored this week by Away.

1:28:07Everyone 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.

1:28:20So for whoever you are and whatever you need to pack, Away has luggage that works for how you travel.

1:28:27And Away, I gotta say, they just have good, smart design for their features and their luggage.

1:28:32For 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.

1:28:42You 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.

1:28:51Every 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.

1:29:03They 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.

1:29:15All 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.

1:29:25And you can try it out because there's a hundred day trial on everything Away makes.

1:29:30So 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.

1:29:37If 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.

1:29:46No ifs, ands or asterisks.

1:29:48So Away also offers free shipping and free returns on any order within the contiguous US, Europe, Canada and Australia.

1:29:55So this is really risk free.

1:29:56To get your suitcase and shop other travel essentials, visit awaytravel.com/accidentaltech.

1:30:02That's awaytravel.com/accidentaltech.

1:30:05Thank you to Away for sponsoring our show.

1:30:07Well I had an interesting vacation experience with my Apple products this past week.

1:30:18I forgot about this vacation experience. Ah yes, I am anxious to hear the result of this.

1:30:24My 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

1:30:38and 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.

1:30:50There's various ways you can light some wood on fire and make some warmth.

1:30:56But if you light a big pile of money on fire, you can actually create summer in the middle of winter.

1:31:03I had never done anything like this before.

1:31:06Oh man, it was nice to have a week of summer.

1:31:10Oh and I went into another ocean, John, and we took pictures for John to show that I went into another ocean.

1:31:17With your hat on.

1:31:18Well I got a head burn otherwise.

1:31:20And your glasses.

1:31:21It was bright.

1:31:22So a little while into the trip, there was this bar that started flickering on the screen of my 16 inch MacBook Pro.

1:31:35It was as if the screen is divided into six vertical stripes, like six vertical segments.

1:31:43Segment number two was flaking out like crazy.

1:31:46And at first it seemed almost like analog interference.

1:31:51It was like smeary and blurry interference.

1:31:55It wasn't like digital blocky artifacts like you'd expect.

1:31:59So at first I thought, oh it must be like the display cable or something.

1:32:03That'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.

1:32:09And then as the trip went on, it became worse and more interesting.

1:32:14The interference started becoming blockier and more digital looking so then I started respecting like, oh the GPU is going bad.

1:32:23The computer continued to work just fine.

1:32:26I would assume that if you have significant GPU issues, at some point the computer would lock up.

1:32:32But it didn't affect the computing part of the computer at all.

1:32:36What was also weird about it is that the glitching out area started having a memory of what was being shown below it.

1:32:47Like I would have like a window that was up for a while and then I would hide that window.

1:32:53And bits of that window would still be showing in distorted, scrambled ways in the defective area.

1:33:00It even went as far as I rebooted the computer and ran Apple hardware diagnostic test at boot up.

1:33:08And window contents from the previous OS session before the reboot were still displaying.

1:33:14What?

1:33:15In the stripe.

1:33:17So what did the hardware diagnostic say?

1:33:20It said everything was fine.

1:33:21It didn't seem fine.

1:33:23Were you by any chance sitting in a chair with a hydraulic lift on it?

1:33:26Yeah.

1:33:27Did you see that?

1:33:29Someone sent us a thing that I didn't look into it and didn't know whether it was BS or not.

1:33:33But 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.

1:33:42Sounded like BS to me but who knows?

1:33:44Stranger things.

1:33:45Yeah that also doesn't sound right to me.

1:33:47But anyway.

1:33:48So I had this weird GPU problem but the computer continued to work fine.

1:33:53And I had to edit last week's episode of this show in this state.

1:33:59We had Tiff's laptop.

1:34:01Tiff has an early 2019 15 inch with the butterfly keyboard.

1:34:05The very last 15 inch with the butterfly keyboard.

1:34:07The new materials one.

1:34:09So I transferred all the files to that.

1:34:11Once it started glitching out I figured my laptop is about to die.

1:34:14So let me move all my files over that I need to edit ATP.

1:34:17Just in case my laptop dies then I can edit it on Tiff's computer.

1:34:20Just transferring the files over to her computer required me to type about five or six keystrokes on the butterfly keyboard.

1:34:30And after typing those five or six keystrokes I'm like no.

1:34:33No I can't do this.

1:34:35I can't go back.

1:34:37I'm just going to do it on my computer.

1:34:39Even with a sixth of the screen having this giant stripe through it that's unusable.

1:34:44Oh my word.

1:34:45So 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.

1:34:55So anyway.

1:34:57So as the trip goes on the interference gets worse and worse.

1:34:59And I start seeing a few little glitches where like the whole screen would have like a blip of color shifting or something.

1:35:08And I thought uh oh.

1:35:09Like it's no longer the stripe anymore that's causing the problem.

1:35:13Like now the stripe is expanding and the whole screen is starting to have issues.

1:35:17Did you start to see glimpses of your future life?

1:35:20There's me as an old man. What am I doing?

1:35:24Halfway through the flight home the entire screen scrambles.

1:35:29And now it's totally unusable.

1:35:32Now you really have to see the matrix to use your computer.

1:35:34Unscramble it in your mind.

1:35:37At 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.

1:35:44So like that was fine.

1:35:46I had posted about this on Instagram stories and I had gotten an interesting tip from somebody.

1:35:52My 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.

1:36:02Which I hate.

1:36:03And I'm like I'm so annoyed. Like this laptop I just got this laptop a few months ago.

1:36:09It's brand new. It's the highest I want.

1:36:11Meanwhile I'm also like I'm hoping this is not a thing for the new 16-inch MacBook Pro.

1:36:17I'm hoping this is not an actual issue that's widespread.

1:36:20I hope this is an isolated incident.

1:36:22I did hear from a couple of people when I posted on Instagram that they had similar problems and so I'm a little concerned.

1:36:28But I'm going to set that aside for now.

1:36:30I hope this is not a thing.

1:36:32Please Apple don't let this product have a big defect. Please for the love of God.

1:36:36Because otherwise I love this computer. Like besides this.

1:36:39So anyway.

1:36:40So 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.

1:36:47Jon you understand this completely.

1:36:49It's like somebody will have taken this apart and reassembled it.

1:36:52And what if it's not quite right after that?

1:36:55It's never the same again.

1:36:56Right. Like what if it's like a little unreliable.

1:36:59That is much less true of the unibodies though to be fair.

1:37:01That's fair. Yeah like there's fewer like seams and everything right.

1:37:04But like still.

1:37:05Like what if it's a little bit different.

1:37:07You know like what if it's like slightly unreliable forever.

1:37:10Like I don't.

1:37:11What if a surgeon left a sponge in there?

1:37:13That's basically what you're worried about. Some little thing rattling around in there.

1:37:18Yeah like what if there's like a rattle or a new like you know pop or something.

1:37:22Who knows right.

1:37:23Like I'm like I just.

1:37:25That sucks that it's brand new almost.

1:37:27You know it's only a couple months old.

1:37:29Well I happened to have purchased this by walking into an Apple store and buying it on November 15th.

1:37:38November 15th is a special day for Apple retail this year.

1:37:42Oh yes.

1:37:44November 15th. Unbeknownst to me at the time I was buying it on November 15th.

1:37:48November 15th was the first day of the Apple extended holiday return period.

1:37:54You jerk. Good for you.

1:37:56And the Apple extended holiday return period lasts until tomorrow.

1:38:00Wow that's good timing.

1:38:02On the trip like a day before I got home I had ordered myself a replacement.

1:38:06By the way since this is just the high end stock config that 2799 config.

1:38:11Other retailers stock it.

1:38:13And it happened to be almost $300 cheaper because it was on sale at like everywhere like Adorama, B&H.

1:38:20Like all the retailers.

1:38:21It was on sale.

1:38:22So it was like $300 less money than what I had actually paid on November 15th.

1:38:27So I ordered myself a replacement.

1:38:29I got home. I did the transfer.

1:38:31Transferred everything over.

1:38:32I put it back in the box.

1:38:34Brought it to the store.

1:38:35I'm like I'd like to return this please.

1:38:36The screen doesn't work anymore.

1:38:37Were they like what?

1:38:39Yeah the guy was like alright.

1:38:41And like because if you ever return anything in an Apple store before.

1:38:44It is one of the most nonchalant processes.

1:38:47Like you would expect if you were returning an almost $3,000 computer.

1:38:50That's brand new and you say the screen doesn't work anymore.

1:38:53Like you would think they would like look at it maybe.

1:38:56The guy didn't even open it up.

1:38:58He was just like alright.

1:39:01He's like do you want to order another one?

1:39:02I'm like I already did.

1:39:03He's like alright.

1:39:04Wow.

1:39:05He took it back.

1:39:06I got the money back on my card.

1:39:08Problem solved.

1:39:10So anyway.

1:39:12I hope this is not a widespread issue.

1:39:14And thank you Apple for your holiday extended return period.

1:39:18So now I have another new 16-inch MacBook Pro that has never been opened and altered by anybody.

1:39:22And I hope this one does not have this issue.

1:39:25I will say on the positive side.

1:39:27On this trip I also brought only the AirPods Pro as my only headphones.

1:39:35And so I had to both edit ATP which I knew there was like some latency with Bluetooth.

1:39:40So it's a little annoying to edit audio with Bluetooth latency.

1:39:45But it's possible and you know so I was used to that.

1:39:48I really wanted to test out the AirPods Pro as my only headphones on air travel.

1:39:53And I was kicking myself as I listened earlier today to John Gruber do this exact same segment on the talk show this week.

1:39:59But I'm going to pretend like he didn't.

1:40:01So I brought the AirPods Pro instead of my Bose noise cancelling headphones.

1:40:06Which I've only had for a few months that replaced my Sony noise cancelling headphones.

1:40:10And the Bose's and the Sony's are really good.

1:40:13Noise cancelling over ear Bluetooth headphones.

1:40:16Like they're fantastic. You kind of can't go wrong with either of them.

1:40:19The AirPods Pro I thought these are probably going to be not as good as those.

1:40:24But let's see how they go.

1:40:26And the AirPods Pro as your only headphones for travel are awesome.

1:40:32The noise cancellation for me.

1:40:35And this might depend on how they fit you.

1:40:38But the noise cancellation for me was pretty much exactly as good as the Bose and the Sony.

1:40:46Like they're all a little bit different in the way they sound with noise cancellation.

1:40:50But I would say they're all pretty similar in the degree of noise cancellation that you get.

1:40:56Like the severity or the strength of it.

1:40:58It's all pretty similar between them.

1:41:00So there is actually not much reason for me to bring the other headphones anymore.

1:41:06Because they were also comfortable for the entire flight.

1:41:09It was about three or four hours.

1:41:11And they were comfortable the whole time.

1:41:13The only downside to them is that they don't have enough battery life to make it through very long flights.

1:41:20The battery life of them when you're using them on a plane is something like four or five hours.

1:41:25And 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.

1:41:33Put them in the charger and then put them back in your ears once they have enough charge to keep going.

1:41:37So you might need like a short break of noise cancellation.

1:41:41Or you can just buy a second pair of them, keep them in your bag and still take up way less space in your bag.

1:41:46Because that's the thing, like all those noise canceling headphones are huge.

1:41:50And they're all a pain in the butt with moving between multiple devices.

1:41:56The 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.

1:42:02So that's nice. The Sony's are garbage at dealing with multiple devices.

1:42:07But like if you're frequently, like I do, move between like a phone and a laptop on a flight.

1:42:14Or especially a phone, a laptop and an iPad if you happen to have all three.

1:42:18That's always a very clunky thing with anything that's not based on Apple's, you know, AirPods chips basically.

1:42:24Like the W1 and H1 chips.

1:42:27And so to have this, have all those features.

1:42:30Oh, 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.

1:42:41We each had a pair of Sony noise canceling headphones which can be operated wireless or wired.

1:42:46And I would bring with me a wired headphone splitter cable.

1:42:50And then the two cables that would go to the headphones.

1:42:53And 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.

1:42:59And we could both listen to the same audio.

1:43:01On this trip, we both just had AirPods Pro.

1:43:05And we used the new audio sharing feature in iOS 13.

1:43:09And had the movies playing to both of us.

1:43:14Using my iPad and that sharing feature.

1:43:17I don't know, is that sharing feature on the Mac yet? Probably not.

1:43:20I don't think so.

1:43:22That would be great if they ever do that Apple, you know, remember the Mac?

1:43:25So anyway, it's such a different thing to have, to go from two full size pairs of headphones between the two of us.

1:43:34And like this big Y cable arrangement to try to listen to the same thing together.

1:43:38To two pairs of AirPod Pros that are so tiny that do everything wirelessly and switch between devices super easily and everything.

1:43:47It's like a revelation.

1:43:50Like going from that setup to this setup.

1:43:53And because headphones, like full size headphones are so large to pack in a travel bag.

1:43:58Like they take up a pretty big chunk of the backpack that you have on the plane with you.

1:44:02I don't think I'm ever going to use them again.

1:44:06Like I still love full size headphones for my desk and for podcasting.

1:44:10They're great for that.

1:44:12But for bringing on a plane, I don't think I have any reason to bring big headphones on a plane anymore.

1:44:18Because the AirPods Pro are just so damn good at that.

1:44:22Way better than I expected.

1:44:24Like I thought it would be a big compromise that the noise cancellation wouldn't be very good.

1:44:28It's not a compromise. It's the real deal.

1:44:31It is like first class in this way.

1:44:33So if they fit you, I would strongly recommend them if you're looking for airplane, travel, headphones.

1:44:41Because like you can use them everywhere.

1:44:43You can use the exact same pair of headphones now almost everywhere.

1:44:46The only thing I can't do with the AirPods Pro is podcast with them.

1:44:50Everything else I can do with them if I want to.

1:44:52And that's pretty amazing.

1:44:54And then finally, the iPhone 11 camera system.

1:44:58Most vacations these days we don't take big cameras anymore.

1:45:02We almost never use big cameras anymore for anything actually.

1:45:05Except like occasional nice pictures of our family here in the house at home.

1:45:09Or like taking with us for Christmas.

1:45:13And we take nice pictures on Christmas.

1:45:15We had our iPhone 11s with us for this trip.

1:45:18And we were like going to the beach and going in the pool and everything.

1:45:22And we just had our phones.

1:45:24And the cameras are so good.

1:45:27We never felt for one moment,

1: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."

1:45:35That moment never came.

1:45:37I think the iPhone 11 camera system has finally crossed the threshold where

1:45:42not only is it really good for a phone camera,

1:45:46it's just really good for a camera. Period.

1:45:50And while big cameras will still always handily defeat it

1:45:55for resolution and raw pixel gathering ability in different lighting conditions if you have a big sensor,

1:46:04there are things about the iPhone that are actually not only good enough in most of those ways,

1:46:09but are actually better than all pro cameras.

1:46:13There were situations where I know if I had my big Sony camera with me

1:46:18that I could try to take a low light picture,

1:46:21crank the ISO up to 25,000 and crank the aperture way down and try to get a low light picture.

1:46:27But the iPhone camera's night mode actually did a better job

1:46:31and actually produced better output than what I would have gotten out of that.

1:46:34Or I could have maybe gotten similar output out of the Sony with a ton of effort

1:46:38and a lot of like, "Alright, try it this way," and then pixel peep and see, "Oh, that's kind of crappy. Try it again."

1:46:44"Re-expose it." I don't have to do any of that.

1:46:47And also, the phone is water resistant and small and pocketable.

1:46:53And so we were able to bring it with us when we went to the beach

1:46:56and bring it with us when we went in the pool.

1:46:58We didn't submerge the phone, but we could hold it near the pool and operate it with wet hands

1:47:03and not worry about it because we knew it's designed for that.

1:47:07It was so good. And to do video and the HDR, like, the crazy pictures we were able to get

1:47:14that my regular camera wouldn't have the dynamic range to capture the screen on my laptop in the room

1:47:21as I edited this podcast from last week, while also not blowing out the ocean through the windows outside

1:47:27that's way brighter than it.

1:47:29It's just incredibly impressive camera performance to the point that it is actually better than good cameras

1:47:38in a lot of situations.

1:47:40And so this sounds like an Apple commercial besides my broken laptop, but like, traveling with the AirPods Pro

1:47:48and the iPhone 11 Pro is just such an incredibly pleasant experience.

1:47:52And everything is so advanced and everything works so well in the hardware side of things.

1:47:58Software, I'm always going to have nitpicks.

1:48:00But the hardware side of things is amazing right now.

1:48:03Especially, you know, AirPods and the iPhone cameras. Just incredible.

1:48:08It makes life simpler. Like, now I'm going to downsize my camera gear because I almost never want to use it anymore.

1:48:15I'm going to downsize my headphone collection because I need almost none of these now.

1:48:20It allows me to simplify my life and that's really great.

1:48:24So, you know, we have our nitpicks with Apple and things like software quality are still not where they should be.

1:48:30But the hardware stuff is solid and this is, I'm very impressed by these products.

1:48:37I went to Disney recently and we're going to talk about that at some point, maybe even later this evening.

1:48:42But one of the things I noticed was I did bring the big camera and in certain occasions I was glad I had it.

1:48:50But 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.

1:49:03Now, my Micro Four Thirds camera isn't as fancy as your Sony and isn't as nice as your Sony in the glass.

1:49:08It may or may not be as nice, but...

1:49:10It isn't that different. In the way that you have to operate the camera, it's the same.

1:49:14In what it's good at and what it's not good at, it's about the same.

1:49:19You're dealing with the exact same issues with any mirrorless or SLR camera.

1:49:23The fancy ones like the full frame Sonys, they just have better specs.

1:49:29They can go to higher ISOs without a lot of noise or they have more resolution or their lenses are sharper.

1:49:35It's better specs, but it's all the same types of limitations, just like the numbers are a little bit different.

1:49:41Yeah, and the couple of occasions that I could think of when I really was glad I had the big camera with me.

1:49:51Aaron and Declan were on a ride where I could view them from a distance.

1:49:56And 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.

1:50:07And so I got some really great photos of the two of them on this ride because I had a zoom lens with me.

1:50:12Like a proper zoom lens.

1:50:14And 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.

1:50:22But generally for 90% of the trip, particularly when I went to Galaxy's Edge at night, which is the new Star Wars land,

1:50:32I was so unbelievably happy to have had this iPhone 11 Pro with me.

1:50:37And I cannot say enough good things about the camera.

1:50:40I miss being able to have really good bokeh or bo-bokeh. I can never get it right. I'm so sorry, everyone.

1:50:46But everywhere you say it is wrong. It's like ricotta cheese. It's like you're going to piss off somebody no matter what.

1:50:50Yeah, 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.

1:50:56But you forgot it, right? Just like you forgot my middle name and how to pronounce affluent.

1:51:00Yeah, it's Charles. That's your middle name. Charles and affluent, right?

1:51:03Yeah, Charles and affluent, that's correct. So anyways, I miss having that really lovely background blur. I really do.

1:51:11And 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?"

1:51:23Oh, right, the ultrawide was brand new. Right.

1:51:25Yep. 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.

1:51:38But 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.

1:51:46The 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.

1:51:53If 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.

1:52:07The 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.

1:52:12Yeah, 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.

1:52:19That'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.

1:52:26If you're two feet from the person, then good luck getting that shot, period.

1:52:30And if you're far away, the motion is greatly diminished because it's all moving within this giant frame.

1:52:37In vacation photos with adults, there's probably not a lot of fast moving action.

1:52:42Maybe 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,

1:52:57and 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.

1:53:06But 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.

1:53:13They don't have the software chops to make that happen. They're behind Apple.

1:53:17They could put processors in close to as powerful as the one on the iPhone for their $3,000 cameras or whatever,

1:53:23and 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.

1:53:29That'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.

1:53:37As for pixel peeping, Matt, I feel like it's the other area where even the iPhone 11 camera falls down.

1:53:42If 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,

1:53:51and 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.

1:53:59There are still benefits if you care about things at that pixel level.

1:54:03Overall, though, I was extraordinarily surprised how little I missed my big camera for most everything.

1:54:11And 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,

1:54:18the iPhone has a GPS on it, and it has the ability to, by default, geotag every image you take.

1:54:25And 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,

1:54:35so put the location information in the metadata of every photograph I take, including in the big camera,

1:54:40which means I'm either using this Olympus really crummy app to track where the phone is and the timestamps of where the phone is,

1:54:49and then correlate that with the pictures that were taken on the big camera and do their best job,

1:54:52which usually does work to their credit, of like stamping the, geotagging all the pictures on the big camera based on where the phone was,

1:54:59or I'm going in after the fact, like days later and recreating in my mind, okay, I was standing right about here,

1:55:06I was roughly in Star Wars land at the very least when this picture was taken, and that's something that I like to do,

1:55:12because occasionally I will search for photos based on where they happened, not necessarily a date or something like that,

1:55:17and 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.

1:55:24But one way or another, all of this is to say that the iPhone does that automatically for free every time I take a picture,

1:55:29and even video, I believe, at Geotags, which is incredible and so nice because then it's one less thing I have to worry about.

1:55:36And 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,

1:55:43and I'm not saying that's right, I'm not saying that's the best approach, but that's just the way I work,

1:55:48and I don't have a lot of interest in trying to tweak the pictures on my big camera to be just right,

1:55:56and 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.

1:56:07So it is not yet an outright replacement for my big camera, but to your point, Marco, it's becoming that,

1:56:18just 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,

1:56:25without the big camera, I was really upset with myself, like really unnecessarily upset with myself.

1:56:32Now, I'll just be like, "Yeah, well, that stinks." Like, whatever, no big deal.

1:56:38The geotagging, that's one part of why, to me, using a standalone camera now feels incredibly clunky.

1:56:48Another thing is, the standalone camera probably doesn't have exactly the right time set.

1:56:53Like, it might have a slightly wrong clock, not a certain clock, or maybe you never changed it for daily saving time or something.

1:56:59And 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.

1:57:06Or it'll be like, you change your battery, and the date will reset, and it'll be like 1970 or whatever.

1:57:13That kind of stuff happens with standalone cameras.

1:57:16And 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.

1:57:28Like, when digital cameras first came out, you were like, "This is the most amazing thing in the world.

1:57:32Getting your film developed seems barbaric."

1:57:35Now, having to import your pictures off the camera feels that same level of barbarism to me.

1:57:41It'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.

1:57:55And yeah, there's Wi-Fi transfer. It always sucks and rarely works, and it's slow as hell.

1:58:00That whole process is so clunky now that I hardly ever actually want to do it.

1:58:04And 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.

1:58:15But most of the time, I don't have those needs.

1:58:18And the convenience is so high, and you get all these benefits.

1:58:23Things like live photos. You get super easy, like, you never mis-expose it, or it's really hard to mis-focus it.

1:58:31You 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.

1:58:41They're usually well white-balanced and usually well-exposed and well-tone-mapped and everything.

1:58:45Like, hey, you know what, it's actually really, really good with really little effort.

1:58:50That, 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.

1:58:59There's a couple times a year where I care, and even then, those are decreasing.

1:59:04And there are newer cameras now, like, I no longer have the latest and greatest.

1:59:10I think I'm at least one, if not two, model years behind now, and I don't care.

1:59:16I have no desire to upgrade.

1:59:18And if my camera's broke or got stolen tomorrow, I don't think I'd replace them.

1:59:25That'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.

1:59:36Thanks to our sponsors this week, Sony, Olympus, and Canon.

1:59:40Ha, no, just kidding. Thanks to our sponsors this week.

1:59:43Hover, Away, and Techmeme Ride Home, and we will see you next week.

1:59:50[music]

1:59:53[music]

1:59:58[music]

2:00:02[music]

2:00:07[music]

2:00:12[music]

2:00:17[music]

2:00:22[music]

2:00:27[music]

2:00:32[music]

2:00:37[music]

2:00:42[music]

2:00:47[music]

2:00:52So, Casey, you also, you just mentioned a few minutes ago, you went to Disney.

2:00:56Yes, 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.

2:01:06You gotta take notes.

2:01:07Yeah, 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.

2:01:15We really honestly did, and so it just kept getting pushed, and that's fine.

2:01:19But 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.

2:01:35And 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.

2:01:49And 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.

2:01:59First 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.

2:02:19And 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.

2:02:33But 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.

2:02:53They'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.

2:03:06And 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.

2:03:14Alternatives 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.

2:03:31And 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.

2:03:42And 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.

2:03:55And 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.

2:04:10I 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.

2:04:20Even 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.

2:04:30But 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.

2:04:41Because 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.

2:04:48So 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.

2:05:01A 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.

2:05:09This 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.

2:05:27Or 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.

2:05:43So 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.

2:05:49So 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.

2:05:59And 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.

2:06:12Meanwhile, 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.

2:06:19It 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.

2:06:25And 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.

2:06:41The contemporary being the A-frame building that the monorail literally drives through.

2:06:47So 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.

2:07:01So, 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.

2:07:09But 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.

2:07:18Another 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."

2:07:34Gratuity is not included, but one alcoholic drink per adult per meal is included.

2:07:40I 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.

2:07:51But 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.

2:08:01All 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.

2:08:10And 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.

2:08:19And if you have a full kitchen in your fancy pants timeshare, that works out really well.

2:08:25So 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.

2:08:34And 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.

2:08:41We 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.

2:08:49Another 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,

2:09:02Michaela refused to ride in the stroller, which was oh, so super delightful.

2:09:08She just walked all day, right?

2:09:10She just wanted to walk her teeny, teeny little legs all day long.

2:09:14She won't get tired. That'll be fine.

2:09:15No, she won't get tired and cranky and upset at all. And she's not overwhelmed by all this at all.

2:09:20So that was a little bit delightful.

2:09:23But 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.

2:09:33But you can rent a stroller from someone other than Disney and they're much nicer, etc., etc.

2:09:37And all told, again, whether or not you're into Disney, this may not be the sort of thing you like.

2:09:45And if you're really, really, really turned off by crowds of any size, maybe this isn't going to be a thing you like.

2:09:50But 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.

2:10:06We 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.

2:10:14The next time I saw our luggage was in our hotel room after we had gone into the park that very first day.

2:10:20Additionally, 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.

2:10:31You 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.

2:10:38It's not down at the front desk, it's not at the bellhop, it's in your room.

2:10:42And 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.

2:10:48Yes, it is busy and crowded and Florida is so hot and so wet, it is absurd, even in late October.

2:10:54But, 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.

2:11:12I'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.

2:11:29It 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.

2:11:49And 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.

2:12:07And 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.

2:12:25You're going to be sad for another reason when you realize that Declan's not going to remember that.

2:12:39That 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.

2:13:05But 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.

2:13:19And 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.

2:13:30But if nothing else, I have the rosiest of rose colored glasses.

2:13:37Yeah, 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.

2:13:46And 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."

2:13:55Yeah, 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.

2:14:03I'm glad that we got that in because now they'd be super jaded about the whole thing, obviously.

2:14:07As too cool for school teens or tweens.

2:14:11I 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.

2:14:25And 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.

2:14:34But 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.

2:14:45You'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.

2:14:55I 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.

2:15:05It doesn't take much to be enjoyable for kids.

2:15:09I 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.

2:15:25You can go to Vegas all the time, which is so much worse.

2:15:29It really is. It's so, it's so, well, I don't know if worse is the right word.

2:15:35It's less of the happiest place on earth, I can tell you that.

2:15:38More people are unhappy in Vegas than are unhappy in Disney. Well, hmm.

2:15:44I don't know, man. I haven't been to Vegas in a couple of years, but...

2:15:47You gotta remember the alcoholics and the gambling addicts. There are much more of them in Vegas than in Disney.

2:15:52Yeah, but Disney has a lot of really upset children.

2:15:54Yeah, but even they're still having fun. Because they're going to get candy later.

2:15:58Right, 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!"

2:16:08I didn't see too many upset children on our trip that we took with our kids. I don't remember seeing screaming children.

2:16:14Or maybe I have screaming children blindness from being a parent. I don't know.

2:16:17(beeping)