PodSearch

ATP

623: It’s About Human Connection

 

00:00:00 ◼   ► I wanted to, I wanted a brief political statement to start this because, you know,

00:00:03 ◼   ► Oh, great. Yeah. There's nothing going on there these days.

00:00:06 ◼   ► Yeah, I think. And, you know, forgive me. This is something I wrote 10 minutes ago. So, you know.

00:00:11 ◼   ► Oh, it's that kind of Marco political statement. Oh, my.

00:00:13 ◼   ► Reading from a prepared statement.

00:00:15 ◼   ► Yeah. Very, very. It's still hot. Oh, I guess that's where hot takes come from. Is that the

00:00:22 ◼   ► phrase? Is that it? I actually never realized that.

00:00:25 ◼   ► Probably. Anyway, you know, a lot of people are, you know, very upset right now with what's going on

00:00:31 ◼   ► with, you know, the inauguration in the beginning and all the executive orders. And it's, you know,

00:00:36 ◼   ► it's, it's going to be rough for a while. And I think what we, what we have to try to keep in mind

00:00:42 ◼   ► is that the Republican agenda is wealth transfer to the top. That's the big thing. To accomplish and

00:00:52 ◼   ► conceal that, they gain votes and power by division, cruelty, and violence. But the goal is the wealth

00:00:59 ◼   ► transfer to the top. They, if you look at what they actually do, that's mainly it in different forms.

00:01:04 ◼   ► You know, they tax cuts to the corporations, tax cuts to the rich, straight up corruption, which is

00:01:09 ◼   ► now even more right in the open than anything. But also things like, you know, large scale deregulation,

00:01:14 ◼   ► regulatory capture and the politicization of the justice system. And I think the latter part there,

00:01:21 ◼   ► that is why it seems like we are seeing a very sharp and aggressive turn to the right by all the big tech

00:01:30 ◼   ► companies. They all are now explicitly supporting the Republican Party to, in my view, to selfishly benefit

00:01:38 ◼   ► from the wealth transfer and deregulatory aspects. And they, the price they paid to get those gains

00:01:46 ◼   ► is to completely sell their souls and their morals out by therefore also supporting the division,

00:01:53 ◼   ► cruelty, and violence that Republicans require as a smokescreen and a source of power.

00:01:58 ◼   ► This is going to be something we're going to be fighting and, you know, angered and hurt by

00:02:04 ◼   ► and possibly damaged by, if for any of us for, for a long time now. And I don't know how to fix it.

00:02:09 ◼   ► There is no quick and easy fix. We, we can't just, you know, turn all of our avatars blue or

00:02:13 ◼   ► put stickers on our cars and expect anything to change. What I suggest that we do is practice

00:02:20 ◼   ► the opposite of their playbook. So what's the opposite of division, cruelty, and violence?

00:02:28 ◼   ► Generosity, acceptance, love, and protection. And I think we need to embody those in what we preach,

00:02:35 ◼   ► what we do, and as tech people, what we build. You know, right now, women, anybody who's not white,

00:02:42 ◼   ► LGBTQ people, trans and non-binary people are all under attack by these monsters. Those of us who can

00:02:51 ◼   ► support and protect someone who needs support and protection really need to now. So generosity,

00:02:57 ◼   ► acceptance, love, and protection. That is the best thing we can do to get through this for now.

00:03:04 ◼   ► And that's how we can fight it. So we can turn this horrible, toxic mess around and we'll do our best

00:03:11 ◼   ► from, from our position here. We'll, we'll do our best. And all of you out there, I encourage you

00:03:15 ◼   ► to do the same and we'll do what we can to get through this and help people who need help.

00:03:19 ◼   ► Yeah, I, I concur. Um, Marco did not run this by us, not, not to say that we needed to like approve

00:03:25 ◼   ► it or anything, but he didn't tell us that this was going to happen until 10 seconds ago. We didn't

00:03:29 ◼   ► read it or anything beforehand. You don't have your statement ready? No, I don't. I don't. Um, but I,

00:03:34 ◼   ► I completely agree with you. The only problem I have with it is that, uh, what did you say?

00:03:37 ◼   ► Generosity, acceptance, love, and protection. GALP is not the best acronym. I think we need to

00:03:42 ◼   ► workshop it a little bit, but maybe more than 10 minutes of writing would get me a better one,

00:03:46 ◼   ► but in general, uh, no, I, I'm obviously snarking and joking around, but, um, all kidding inside,

00:03:52 ◼   ► this is a real crappy time for a lot of people. And, you know, the typical feedback we get when,

00:03:57 ◼   ► when we talk about political stuff is either a stay in your lane, which I'm sorry, we've been doing

00:04:01 ◼   ► this for 10 years. It's not going to happen. So if that's like, have you heard our show? We don't

00:04:05 ◼   ► have lanes. It's also true. Uh, so yeah, so the feedback is typically a stay in your lane or B ha ha you

00:04:10 ◼   ► liberal snowflakes. It's, it's not going to bother you. Who cares? And on the surface,

00:04:14 ◼   ► there's a little bit of truth to that because, you know, we're three cisgendered white dudes that

00:04:19 ◼   ► have a couple of shekels to, you know, to our names. And so I'm worried about people that I,

00:04:24 ◼   ► that I care about and love and people that I don't know, but I still care about like Marco was saying.

00:04:29 ◼   ► And, and, and I think that the announcements and proclamations and executive orders of the first 24

00:04:35 ◼   ► hours, um, make it clear what their priorities are. And that's hate and, and anger and, and division and

00:04:43 ◼   ► all the things that Marco was talking about. It's just, it's all awful. And so I completely agree that

00:04:47 ◼   ► what Marco was saying is true. Um, it remind me of generosity, acceptance, love, and what was the

00:04:53 ◼   ► last one? Protection. Thank you. There we go. Um, I, I couldn't agree more and we'll workshop a good

00:04:58 ◼   ► acronym for it or a good, a good twist of those four letters, but it could be glap. Glap. Glap is

00:05:04 ◼   ► not great either, but we'll work on it. Plag maybe. But truly, you know, it, you're exactly right.

00:05:09 ◼   ► And also like, you know, what we saw last time, um, this administration happened, uh, what we saw last

00:05:17 ◼   ► time was basically a bunch of fire and motion constantly that, you know, for those of you who

00:05:23 ◼   ► don't remember or have mercifully blocked it out of your memory, basically every day of that

00:05:27 ◼   ► administration was a scandal of some sort. There was something new every day. Can you believe what

00:05:34 ◼   ► he said, did whatever today we got all riled up and angry. And for most of that time, that was for

00:05:43 ◼   ► nothing. Like we got all riled up and angry and that amazing, that mainly just cost us happiness and

00:05:48 ◼   ► mental health. So if you are really involved in politics and love reading the news all the time

00:05:53 ◼   ► and hearing all this stuff day to day, that's up to you. Uh, I'm not that way. I found that it cost me

00:05:59 ◼   ► dearly in stress and mental health and everything. And, and I, I had to pull back from the news.

00:06:04 ◼   ► The scandal of the day is going to keep changing. So you can keep stacking up those blocks and staying

00:06:10 ◼   ► really like cranked up and mad and scared and just feeling powerless. Like you can feel that every

00:06:17 ◼   ► single day. If you want to pay attention to all this stuff, I suggest reconsidering that. Like if,

00:06:24 ◼   ► if you are not a politics wonk and if you are not a politics enthusiast and like reconsider how much

00:06:30 ◼   ► of your mental health you want to give these monsters, it is not your civic duty to follow

00:06:38 ◼   ► everything that they do to get mad at every single thing that they, you know, every single gaffe or

00:06:44 ◼   ► awful thing they do. It is not your job to yell about it and get mad at every single little thing

00:06:50 ◼   ► because they're going to just keep adding stuff every single day. It's not going to stop. That is how

00:06:54 ◼   ► these monsters govern. It is by distraction and smoke screens. And, you know, I heard the term flooding

00:07:01 ◼   ► the zone, which I think is a sports thing. That's how they govern. It's by just a, an endless barrage of

00:07:07 ◼   ► scandals because by the time anybody can think of anything to do with one scandal, three more have

00:07:13 ◼   ► piled on top of it and nobody can even keep up. You don't have to participate in that. You can choose

00:07:18 ◼   ► to focus on what gives you the life that you need and want. You can focus on your own mental health and

00:07:25 ◼   ► protection and focus more on the general themes of where we want to go and, you know, help people,

00:07:32 ◼   ► protect people. You can do all that without paying super attention to

00:07:37 ◼   ► every single daily scandal because that's, that's not a happy place for anybody.

00:07:41 ◼   ► I just want to clarify that. What I think Marco is not saying is that, boy, isn't it nice that we

00:07:46 ◼   ► don't have to worry about this because it's not going to affect us, right?

00:07:48 ◼   ► That's not what I'm saying, by the way. I think it will affect us just differently.

00:07:52 ◼   ► If you're, I know, but people are, people are going to hear what you said and they're going to think

00:07:55 ◼   ► that's what you were saying. So I just want to clarify. The idea is not to say, I'm going to bury my

00:07:58 ◼   ► head in the sand because none of this is going to affect me. Ha ha. No, that's not the issue.

00:08:02 ◼   ► The issue is that you should like market, like Galp says, I think it's a perfectly good

00:08:06 ◼   ► algorithm. Acronym. Uh, you should be doing everything you can to counter the things that

00:08:13 ◼   ► are happening, helping everybody that you can help fighting against these things that does not require

00:08:17 ◼   ► paying minute attention to every little thing. Every person says like, that's the difference.

00:08:23 ◼   ► It's not just pretend it's not happening. Go la la la. Lucky you. You're so privileged. It's not going

00:08:27 ◼   ► to affect you. That is not the message. The message is fight against it on your own with

00:08:32 ◼   ► your own efforts. And you know, like, you know, you know what the deal is. You know,

00:08:35 ◼   ► what needs to be done, right? Doing that does not require you obsessively tracking what every one of

00:08:41 ◼   ► the people in the administration says on a given day. Also special shout out to Jeff Atwood. Have

00:08:47 ◼   ► you seen the stuff he's been doing? Oh, that is true. We should call attention to that. He donated

00:08:52 ◼   ► something like 8 million bucks or something like that. Yeah, so far and is going to be donating

00:08:55 ◼   ► more. So Jeff Atwood, he's he's he blogged under the name Coding Horror for years. He was also one of

00:09:01 ◼   ► the co founders of Stack Overflow. And he is just a super nice guy. He's he's like a nerd's nerd. Like,

00:09:07 ◼   ► you know, even though I didn't always agree with his blog as he was more Microsofty,

00:09:10 ◼   ► he's still a really nice guy and a huge nerd like the rest of us. And he made a bunch of money off of

00:09:16 ◼   ► Stack Exchange and has been donating tons of it to lots of good causes and promoting, you know,

00:09:21 ◼   ► people doing what they can to help out. And so yeah, special shout out. He's doing some really

00:09:26 ◼   ► good stuff recently. So thanks to Jeff Atwood for being awesome. Like he's he seems like a genuinely

00:09:32 ◼   ► good person. I don't know. I don't know him. Well, I've only met him like twice, but he seemed like a

00:09:37 ◼   ► really good person. And and I really respect what he's doing. Yeah, couldn't agree more. And I had no

00:09:41 ◼   ► idea until I read the blog post that we'll link in the show notes that he is from right around here.

00:09:46 ◼   ► He's from another Richmond suburb and went to UVA, which is where Aaron went. So yeah, even even if

00:09:51 ◼   ► he, you know, wasn't doing amazing things, I would have a little bit of kinship with him for that. But

00:09:56 ◼   ► he is doing far more good things than I am, which is which should be celebrated. Yeah, more people like

00:10:01 ◼   ► Jeff Atwood should have a bunch of money because then they actually do good things with it.

00:10:05 ◼   ► All right, let's do some follow up. Apple has decided maybe these notification summaries aren't as

00:10:14 ◼   ► great as we thought. And so they're going to pause them for news and some other things in the latest

00:10:20 ◼   ► betas. Anyway, reading from nine to five Mac, Apple has temporarily stopped showing notification

00:10:25 ◼   ► summaries for news and entertainment apps as part of the iOS 18.3 developer beta released on the 16th.

00:10:31 ◼   ► Here are the changes. When you enable notification summaries, iOS 18.3 will make it clearer that the

00:10:36 ◼   ► feature like all Apple intelligence features is a beta. You can now disable lock screen, excuse me,

00:10:40 ◼   ► notification summaries for an app directly from the lock screen or notification center by swiping,

00:10:44 ◼   ► tapping options, and then choosing turn off summaries. On the lock screen, notification

00:10:49 ◼   ► summaries now use italicized text to better distinguish them from normal notifications. And

00:10:53 ◼   ► who boy, does that look ugly to me? But that's neither here nor there. In the settings app,

00:10:57 ◼   ► Apple now warns users that notification summaries may contain errors. Additionally, notification

00:11:01 ◼   ► summaries have been temporarily disabled entirely for news and entertainment category of apps.

00:11:05 ◼   ► Notification summaries will be re-enabled for this category with a feature software update

00:11:08 ◼   ► as Apple continues to refine the experience. All this is well and good, except I'm really

00:11:14 ◼   ► not in love with the fact that they're opting everyone into this beta software. Did you see

00:11:19 ◼   ► that as well? I don't have a link for that handy, but yeah. So someone's saying that even 15.2,

00:11:23 ◼   ► that Mac OS 15.2 turned it on by default. This is the question of like, when you use upgrade to

00:11:28 ◼   ► these new OSes, do you get asked, Hey, Apple intelligence exists. Do you want to turn it on? And I think

00:11:33 ◼   ► personally, I think that it is a little bit, it's a little bit extreme to say like, uh, that Apple

00:11:40 ◼   ► should ask you about this new feature. It's like saying Apple should ask me if they want me to be

00:11:44 ◼   ► able to have this new features of the photos app. What if I don't want face recognition? They just

00:11:48 ◼   ► turn it on without even asking me. Like I know when, when a feature has anything to do with like

00:11:52 ◼   ► privacy or is controversial in some way, people would like, I want to be asked, but that's not

00:11:56 ◼   ► a scalable way to release features. You can't make every single new feature you put in your

00:12:01 ◼   ► software be opt in and have to have an explicit thing that asks somebody, by the way, I had a new

00:12:05 ◼   ► feature to my program. Do you want me to turn it on or not? Like as if people can just like a la carte

00:12:09 ◼   ► accept your application as like, I'll only accept what shipped in 1.0. Everything else after that,

00:12:14 ◼   ► I don't want. And if you foist it on me, I'm going to be mad about it. That said, particular features

00:12:19 ◼   ► can get a bee in someone's bonnet. Let's say they use something controversial like AI. People don't like

00:12:24 ◼   ► various reasons, even something like face recognition, people can make its privacy invasive

00:12:28 ◼   ► despite what Apple tells them about it not being. So I do understand the idea that, and betas, you

00:12:33 ◼   ► know, quote unquote betas. I do understand people feeling like in certain cases, they'd rather not

00:12:39 ◼   ► have the thing turned on by default. But Apple intelligence is such a fundamental part of Apple's

00:12:45 ◼   ► software strategy. And it spans so many different features across so many different products. I don't

00:12:50 ◼   ► think it's reasonable to say it shouldn't be turned on for me by default when upgrading.

00:12:54 ◼   ► to the new operating system. If you don't like Apple intelligence that much, A, you can go turn

00:12:59 ◼   ► it off, which maybe you won't be able to do in the future or whatever. But B, don't use Apple products

00:13:03 ◼   ► because I have news for you. Apple intelligence is not going away. It's not like they're going to say,

00:13:07 ◼   ► oh, never mind. We're not doing that Apple intelligence thing anymore. You can think of

00:13:11 ◼   ► every other feature that Apple has added to macOS. Like, I don't like notifications. I liked it better

00:13:15 ◼   ► when there wasn't notifications or a notification center. Well, it didn't go away. It still exists.

00:13:20 ◼   ► Every app can do it. You turn it off and on off perhaps. And if you really hate notifications,

00:13:24 ◼   ► don't use iOS. Don't use macOS. They have notifications. It's part of the operating system.

00:13:29 ◼   ► So that's how I personally feel about the Apple intelligence stuff in terms of it being on versus

00:13:35 ◼   ► off. We'll get to the actual feature in a second. But, you know, people have different opinions.

00:13:39 ◼   ► And this is a point where you can decide, how much do you hate Apple intelligence? Is Apple

00:13:45 ◼   ► turning it on by default enough for you to change platforms? That's on you.

00:13:48 ◼   ► Yeah. I think the thing that bothers me about it is that they'll say in one breath,

00:13:53 ◼   ► it's a beta. It could screw up. It's a beta. It's a beta. It's a beta. And then in the next breath,

00:13:59 ◼   ► all their marketing is about it. And by the way, oh, everyone's going to use it now. You know,

00:14:02 ◼   ► like I feel like...

00:14:03 ◼   ► Yeah. The beta thing is totally like trying to deflect blame. As we've said in the last episode,

00:14:08 ◼   ► if you ship it to everybody, like in the released version of the operating system,

00:14:12 ◼   ► you can kind of say like, well, the whole operating system is not beta, but this one little corner of

00:14:15 ◼   ► it is. But like at a certain point, when does it stop being beta? Like wasn't... Haven't they done

00:14:19 ◼   ► this before? Wasn't Siri like beta for three and a half years or something like this?

00:14:22 ◼   ► Something like that.

00:14:23 ◼   ► I mean, Siri's still beta. It's been like over a decade.

00:14:25 ◼   ► Yeah. Well, like they've left... I believe Apple has left the beta marketing label on many

00:14:30 ◼   ► features for just ridiculous amount of time. So long that people... It's kind of like the interim

00:14:33 ◼   ► CEO. Remember when Steve Jobs is iCEO and people have forgotten like, oh yeah, is he technically

00:14:38 ◼   ► still the like temporary? It's like eventually they just got rid of the eye. Eventually they

00:14:43 ◼   ► got rid of the beta. But yeah, that labeling of the beta doesn't help anything. Disabling

00:14:47 ◼   ► it for news is damage control. BBC is mad at you. Can you make them unmad at you by saying

00:14:53 ◼   ► we won't do it for news? You know, like that's, that's, that's just, you know, put out a fire.

00:14:59 ◼   ► Like, can I make some big important companies not as mad at Apple? Sure. Turn it off for

00:15:03 ◼   ► news. And then they say, but we're going to turn it on again later when we've quote refined

00:15:07 ◼   ► the feature. Well, like when everyone's calmed down, maybe they'll turn it on again later.

00:15:10 ◼   ► The italicized text, like they got the little icon that nobody knows what it means except

00:15:15 ◼   ► for people listening to the show. Italicizing the text, does it make it seem like they're

00:15:19 ◼   ► thinking it? Like when you read a book and like the person's thoughts are in italic or

00:15:23 ◼   ► something like, I don't, there's, there's just no way that if you just showed somebody

00:15:28 ◼   ► who does is a casual user of a phone, a notification and one of them's italic, I don't

00:15:33 ◼   ► even know if they would notice one, especially when you don't see them compared. Like you

00:15:36 ◼   ► just see a notification and you look at it and you're like, Oh, this tech, I think they

00:15:39 ◼   ► changed the font is what people will say. I don't like the new font if they notice at

00:15:42 ◼   ► all. So that is just not a solution in any, like in some ways it makes it worse because

00:15:49 ◼   ► there's one more really subtle thing about these notifications rather than what it should

00:15:54 ◼   ► be is a totally unsubtle. This is Apple saying something. The BBC didn't say this. This is

00:16:00 ◼   ► Apple saying this based on what it heard from the BBC app or whatever. But anyway, I, this,

00:16:06 ◼   ► this just seems like a, something that is not going to make this problem go away.

00:16:11 ◼   ► All right, Marco, you have some follow-up for us from, uh, what is it? Last week's post

00:16:16 ◼   ► show, right? Uh, with regard to car play.

00:16:19 ◼   ► Yes. So I, uh, I said in last week's post show, cause there was a news item that BMW's

00:16:24 ◼   ► next version of their iDrive system and their cars was not going to support dual screen car

00:16:29 ◼   ► play. And I was like, huh, I thought my car had really advanced car play and it doesn't

00:16:35 ◼   ► support dual screen car play now. Uh, it turns out my car does support dual screen car play.

00:16:41 ◼   ► So thanks to an anonymous friend of the show who, uh, informed me of this and, uh, and,

00:16:47 ◼   ► uh, I, I went and tested it and sure enough, yes, I do have, I do have dual screen car play. What I

00:16:51 ◼   ► didn't realize is that you have to have the center like dial configuration showing like the, it's map

00:16:58 ◼   ► mode for it to work. Oh, interesting. When that's there, then the middle screen will show the dual

00:17:03 ◼   ► screen. But I also learned, and I think this is just true of dual screen car play in general,

00:17:06 ◼   ► that the, the second screen in the dial cluster will only show Apple maps and only during active

00:17:14 ◼   ► navigation within Apple maps. If you use any other map app like, um, uh, ways or Google maps

00:17:21 ◼   ► currently with their current versions, those do not show in the second screen. I have also learned that

00:17:27 ◼   ► apparently there is an API for them to do that, but that's been a fairly recent addition. I think in

00:17:33 ◼   ► the iOS 17 series sometime, but that the Google, Google maps and ways just have not yet used it. Um,

00:17:40 ◼   ► but so basically right now, if you have two screen car play, what that really just means is

00:17:44 ◼   ► Apple maps directions will show up on the second screen during navigation and that's it. For me

00:17:48 ◼   ► personally, that doesn't really help me that much because I don't usually use Apple maps for navigation

00:17:52 ◼   ► in the car. Uh, more of a way as person myself, but, uh, if you do, uh, maybe look into that if

00:17:58 ◼   ► that's relevant to you. And since we're in neutral corner, uh, John, apparently Honda has decided that

00:18:05 ◼   ► the two EVs they were going to sell or they they've talked about already are not their only offerings.

00:18:09 ◼   ► What else is on the, on the table here? So this is an article from the verge says Honda says the Acura

00:18:14 ◼   ► RSX will be its first original EV. Uh, reading from the verge, Honda announced that its first original

00:18:20 ◼   ► electric vehicle, that is an EV built on its own platform and not based on another automaker's tech,

00:18:24 ◼   ► like the Honda prologue will be the Acura RSX due out in 2026. The RSX is based on the performance

00:18:30 ◼   ► concept, which was introduced last year. That's with a capital P. Uh, it will be the first EV built on

00:18:35 ◼   ► Honda's new vehicle platform and will debut, uh, the proprietary in-house developed ASIMO operating

00:18:39 ◼   ► system that was announced at CES. Honda's two battery electric vehicles in the U S the Honda

00:18:44 ◼   ► prologue and the Acura ZDX. Those are both the same car under the covers are both based on, uh,

00:18:48 ◼   ► General Motors, Altium, General Motors, Altium vehicle platform. The prologue in particular has been an early

00:18:53 ◼   ► success for Honda outselling its sister vehicles, the Chevy Blazer and the Honda, uh, the Equinox EVs.

00:18:59 ◼   ► What is Equinox? It's the Chevy Equinox, right? Uh, the RSX will also be the first EV to be built

00:19:04 ◼   ► at Honda's new factory in Ohio where production is expected to kick off in late 2025. The $4.4 billion

00:19:09 ◼   ► plant is a joint venture between Honda and LG Chemical, the Korean battery company. So, uh, we'll put a link

00:19:15 ◼   ► to this in the show notes. You can see a spy shot of a lightly camouflaged Acura RSX. First thing to note,

00:19:20 ◼   ► the Acura RSX nameplate, you may recognize that from the past because that was the car that

00:19:25 ◼   ► Honda made a while ago back in the early 2000s to succeed the Integra. The Integra is a very famous,

00:19:33 ◼   ► uh, small sporty car. It came in two-seat and, uh, two-door and four-door varieties, but it was like a sporty

00:19:38 ◼   ► hatchback. Uh, the RSX looks very much like an Integra, just not as nice. It wasn't as popular. It wasn't as good,

00:19:44 ◼   ► but the point is it was a small, like, you know, usually two-door sports car. I don't know. I think

00:19:49 ◼   ► there was only two-door for the RSX. I don't think they made a four-door like they did with the, uh,

00:19:52 ◼   ► Integra. Anyway, uh, this is not that. This is another instance like the, uh, the, the Ford, uh,

00:19:58 ◼   ► Mustang Mach, quote unquote, Mustang Mach-E, where they've taken a name from a previous car that was

00:20:04 ◼   ► popular. I don't know. The RSX wasn't that popular, but the Integra was, uh, and said, we're going to use

00:20:08 ◼   ► that name, but what are we going to put it on? The only kind of car anybody buys, an SUV. So now there

00:20:15 ◼   ► will be a car called the Acura RSX that is a four-door sport utility vehicle like every other car on the

00:20:24 ◼   ► road. But the good thing is it looks like a four-door sport utility vehicle. It has a rear window. I bet it

00:20:32 ◼   ► has a steering wheel that's almost round. It has regular-ish doors. Like, it just looks like a

00:20:39 ◼   ► normal car. Oh, and by the way, on the, on the prologue thing, first of all, I saw the first one

00:20:43 ◼   ► that was on the road recently. It's very big. And second, I think it's hilarious that, uh, Honda

00:20:49 ◼   ► essentially licensed a, a car from GM, uh, and GM is selling it two times. They're showing it as the

00:20:55 ◼   ► Blazer and the Equinox. Uh, and Honda is outselling them with its, like, re-skinned, re-badged,

00:21:01 ◼   ► re-interiored version of their car. They must be saying, what's the, it's our car. How are we not

00:21:07 ◼   ► selling more of it than they are? And the answer is because people trust the Honda name and they don't

00:21:11 ◼   ► trust General Motors, uh, which is sad, but you know that you, uh, reap what you sow. Um, anyway,

00:21:17 ◼   ► I'm glad that Honda is going to make at least one non-extreme, let's say, uh, electric vehicle.

00:21:26 ◼   ► This looks like exactly the kind of car they would make. If you're going to make one car that most people

00:21:30 ◼   ► buy, like, make it this shape because that's what people want and I don't want it, but it's,

00:21:35 ◼   ► I'm glad that, you know, that they, their EV platform is not only good for super weird looking

00:21:40 ◼   ► cars with no, uh, rear windows and no steering wheels.

00:21:43 ◼   ► Well, I'm excited for you to buy one in the name of the show. Uh, Alison Sheridan pointed out to us

00:21:51 ◼   ► that there's another entry to the suddenly very robust, uh, you know, 27 inch 5k monitor market.

00:21:57 ◼   ► I am here for this. Yeah, finally. But, uh, you know, somebody pointed out to us, shoot, I don't

00:22:02 ◼   ► know if I can find that tweet recently. Oh, here we go. Uh, Tom Bullock writes, uh, regarding third

00:22:07 ◼   ► party Mac monitors from last week's show, it would have been wild to see all of our reactions in 2016 or so

00:22:13 ◼   ► to find out that the year when the, the dam would break on third party 5k displays would be 2024 and

00:22:19 ◼   ► 2025. Someday. I hope there's a good story about what took them 10 years.

00:22:24 ◼   ► The best part of that would be, and during that time, Apple will ship one, which is better than

00:22:32 ◼   ► zero, but still, it's very good. Anyways, I got, I digress. So Alison writes in with regard to the

00:22:38 ◼   ► ViewSonic VP 2788-5k, such great names. Uh, this is a 27 inch 5k, uh, same resolution as the ones you're

00:22:46 ◼   ► used to. Uh, this has display HDR 400, which goes up to 500 nits, 99% DCI-P3. It has HDMI 2.1,

00:22:54 ◼   ► display port to Thunderbolt 4 at a hundred Watts, uh, two USB-A to SBC at 15 Watts, a height adjustable

00:23:00 ◼   ► stand internal speakers. It sounds decent, if not pretty good. The look of it is fine, but now Casey

00:23:10 ◼   ► is interested because gentlemen, $800 as per Dave Hamilton from the Mac geek, get geek, a gap YouTube

00:23:18 ◼   ► channel. Uh, if it's $800, that is phenomenal value for money. This thing could,

00:23:24 ◼   ► be a piece of crap and I'd still buy six of them because that's so cheap. I mean, ViewSonic

00:23:28 ◼   ► is a good brand and they, I mean, historically have made good monitors. I remember them from

00:23:31 ◼   ► the CRT days. Presumably they haven't gone entirely downhill since then. Uh, you can see

00:23:36 ◼   ► some video of it. Uh, I think it was at CES and Dave Hamilton's, uh, YouTube video will link

00:23:40 ◼   ► that $800 price is unconfirmed by ViewSonic, but that's what Dave Hamilton said in the video.

00:23:45 ◼   ► So fingers crossed. Again, this is another example of no mini LED, no HDR, but if you just

00:23:50 ◼   ► want basically like the studio display, a plain, hopefully good quality 5k monitor in a not ugly

00:23:58 ◼   ► case that is hopefully sturdy with, you know, a full compliment of ports, no built in camera

00:24:03 ◼   ► or anything, but still like good, you know, good compliment of ports. It's nice to see quote unquote

00:24:07 ◼   ► PC monitors with Thunderbolt on them. Right. Uh, they used to be like nothing you could know

00:24:13 ◼   ► equivalent. You'd have to use some weird, you know, you'd use like display port or some other

00:24:16 ◼   ► connector that is not common on the back of max, but this one looks like it will just plug right in.

00:24:20 ◼   ► So yeah, this, I don't quite know why they're all coming out. Maybe it's because like, uh,

00:24:25 ◼   ► PC gaming cards are finally getting to the point with like DLSS and stuff like that, where they can,

00:24:28 ◼   ► people want to run games at higher than 1440, right. Or higher than 1080, uh, and still get good frame

00:24:34 ◼   ► rates. So now suddenly there's a market for higher resolution, or maybe it's just the standard, like

00:24:38 ◼   ► five to eight year lag the PC market has behind, uh, the, uh, the nice stuff in the Apple market.

00:24:44 ◼   ► Uh, but I, I welcome their low prices. I do too. Uh, all right.

00:24:50 ◼   ► Apparently fast directory sizing does exist. Uh, remind me or jump in when you're ready,

00:24:56 ◼   ► but we had talked about how APFS has the ability to very, very quickly figure out the size of the

00:25:01 ◼   ► directory, but then there were a bunch of caveats. We thought that it wasn't actually implemented,

00:25:04 ◼   ► but maybe it is. Yeah. So the, the fast directory sizing is not about figuring out the size. It's

00:25:09 ◼   ► about constantly keeping the size on record up to date with all the changes that happen. So when you

00:25:15 ◼   ► ever ask for the size, it's like, I already have that size. I've been keeping track of it. I don't,

00:25:19 ◼   ► nothing happens in this director without me knowing about it. I'm the file system. And whenever

00:25:22 ◼   ► something happens, I write it down in my little book. And so when you ask me how, what is the total

00:25:26 ◼   ► size of all the stuff in this directory, I just read you the number that I've got written down right

00:25:30 ◼   ► here and it's instant. Um, and that is the feature. And it was advertised with APFS when it was introduced

00:25:35 ◼   ► in 2016. Uh, unfortunately the, uh, API to get that information, the durstat underscore NP, uh, uh,

00:25:43 ◼   ► uh, function has code in it that says, yeah, this is broken. We're not doing it. We're just going to,

00:25:48 ◼   ► if you ever call this, we're going to do it the old fashioned way by crawling over the whole directory

00:25:52 ◼   ► laboriously, uh, and taking a huge amount of time and then giving you your answer. Um, but

00:25:57 ◼   ► apparently this feature does in fact exist in APFS and can in fact be used by a regular user

00:26:05 ◼   ► if they want to use the APFS dot util command line binary that is buried in system library,

00:26:13 ◼   ► file systems, APFS dot FS, contents, resources, APFS dot util. You can run man space, APFS dot

00:26:20 ◼   ► util, all lowercase and read about this command. And what this command can do is turn on fast directory

00:26:25 ◼   ► resizing for a directory. And once it's on, you can run this command to ask the directory, Hey,

00:26:30 ◼   ► what's the size of the stuff inside you? That's pretty cool. That shows that the feature does exist

00:26:37 ◼   ► and does sort of kind of work. Does it work all the time? Is it reliable? Is there something broken

00:26:42 ◼   ► about it? We don't know. I tried the command line thing. I ran it on a directory that had a bunch of

00:26:46 ◼   ► files. It gave me an answer that seemed right. According to my verification, by doing it manually,

00:26:50 ◼   ► maybe it gets confused over time and can't keep up with the pace of changes. Maybe it's going to,

00:26:55 ◼   ► cause some, like, I don't, I don't know what, what the caveats are about this, but it seems clear

00:27:01 ◼   ► that the functionality that implements fast directory sizing does exist. This APFS dot util thing, I

00:27:07 ◼   ► believe is not open source. So I don't know what's inside of it. Presumably it's calling some proprietary

00:27:11 ◼   ► APIs that were you to try to put them in your app, you would get rejected from the Mac app store at the

00:27:15 ◼   ► very least. You could, I believe, run this command line utility from your Mac app in the Mac app store

00:27:22 ◼   ► and get it to get the answer. Um, but yeah, I'm glad to see that this stuff still exists. Uh, and there's

00:27:28 ◼   ► hope for it being resurrected. If it does actually work, I would love for them to actually provide APIs

00:27:35 ◼   ► for it and, or even if they don't provide APIs for it, integrate it into the finder, integrate it into

00:27:39 ◼   ► the iOS setting screen. Like we said before, when I go to see what, you know, which apps are taking up

00:27:43 ◼   ► space on my phone, that could be way faster if you use this, if only it worked. So I don't know what the

00:27:47 ◼   ► caveats are, but if you want to play with it, there's that command line utility. Hopefully it won't

00:27:51 ◼   ► destroy your system. Hopefully not. Oh, and as far, we'll get to this in the topics thing, but as for a

00:27:57 ◼   ► hyperspace, I'm not going to use this with hyperspace. It's not the type of thing that I can,

00:28:01 ◼   ► I don't feel confident that it works all the time or is reliable or, you know, like it's not,

00:28:05 ◼   ► it's a file buried in the system library file systems directory. It's clearly kind of, there's no public

00:28:11 ◼   ► APIs for it. I don't want to run the command line thing. The command line thing could go. So I'm just

00:28:14 ◼   ► ignoring this for now. Um, but it is interesting that it's there. David Ronquist writes, uh, with regard

00:28:20 ◼   ► to sample code in ATP episode 618, John talked about the, about accessing past versions of Apple sample

00:28:26 ◼   ► code. As John points out, the download is always the latest version of the code, but Apple also has a

00:28:31 ◼   ► history of past releases. So you can go back to match a WWDC video from two years ago or look at

00:28:36 ◼   ► the diff to see what's changed. Some sample code like backyard birds and the food truck apps are also

00:28:42 ◼   ► available in GitHub and have, have history there. So you can see this on GitHub. We'll link to those

00:28:46 ◼   ► repos. Yeah, that's much nicer than the, uh, bad old days when everything was like in a zip file that

00:28:51 ◼   ► you had to find somewhere on Apple site that would download from a CDN. Uh, Apple has been slowly but

00:28:56 ◼   ► surely embracing GitHub more, which is strategically maybe they're not, not the best move. Like instead

00:29:02 ◼   ► of having their own kind of Git thing, but like, it's just the nature of the world right now. It's

00:29:05 ◼   ► like GitHub will never go away. Just like Google reader. It'll be fine. Everyone can have everything

00:29:09 ◼   ► on GitHub. And that's kind of the situation we're all in. Um, hopefully that holds for a little longer,

00:29:14 ◼   ► but anyway, I'm glad that the point is, I'm glad Apple is doing more and more open source stuff,

00:29:18 ◼   ► like actually in the open. Um, and also the, like we talked about this, uh, many shows ago,

00:29:23 ◼   ► they've also moved some of their open source stuff out of like the Apple account at GitHub,

00:29:28 ◼   ► like github.com slash Apple's Apple's corporate GitHub account. There is also, I forget what the

00:29:32 ◼   ► name of it is, but there's another one that's like, this is not owned by Apple. It's Apple's open source

00:29:36 ◼   ► stuff, but it is not owned by the Apple corporation. Like, so Swift has been slowly moving

00:29:40 ◼   ► out of the Apple, uh, username on GitHub and into the, whatever the open source equivalent thing is that is

00:29:47 ◼   ► not owned and controlled entirely by Apple, even if most of the people working on it are paid by Apple.

00:29:51 ◼   ► So it's kind of de facto controlled by Apple, but anyway, um, uh, positive trends all around.

00:29:55 ◼   ► Uh, Joe Beninato writes, here's a pretty amazing video of an iPhone 16 pro upgrade from 128 gigs to

00:30:01 ◼   ► one terabyte. Uh, Joe had linked a threads post to tweet, whatever you want to call it skeet. I don't

00:30:08 ◼   ► know. What are we calling it these days? Um, but I also found what appears to be a YouTube version of

00:30:12 ◼   ► it as well. It might be a mirror. I don't know which one came first. Uh, but we'll put both of

00:30:17 ◼   ► them in the show notes. This was fascinating and a ton of work for something you could just

00:30:23 ◼   ► have Apple do on your behalf. And I understand that it's expensive as crap, but this was looked

00:30:28 ◼   ► like hours of work to do this upgrade, but still fascinating.

00:30:31 ◼   ► I mean, it was, it was pretty speedy, but like the reason it's in here is because like we talked

00:30:35 ◼   ► so much about, um, upgrading the SSDs, like in those little modules and soldering the little

00:30:40 ◼   ► things on the circuit boards made in France and like figure out how to essentially like,

00:30:45 ◼   ► can I make a cheaper version of the little thingies that are inside my Apple thingy so

00:30:48 ◼   ► that I can get more stuff for less money. And this, this video was like, shows the extremes

00:30:54 ◼   ► that people are willing to go to forget about like, you know, just soldering thing on a new

00:30:58 ◼   ► printed circuit board and plugging it into a connector. The technique they use on this one,

00:31:02 ◼   ► it's, it's the same type of thing. It's like a NAND chip. It's, it's got a bunch of, uh,

00:31:05 ◼   ► a big grid of metal contacts on the bottom of the chip. And that sits on top of the circuit

00:31:09 ◼   ► board that has corresponding contacts. And that's, that's how it works. Right.

00:31:12 ◼   ► But rather than trying to like desolder it and like get the NAND thing to, to all those

00:31:16 ◼   ► little balls to melt. And then for the thing to come off, they're not really solder balls,

00:31:19 ◼   ► but anyway, get to get it, to get it to like remove the chip from the thing and then put

00:31:22 ◼   ► a new one on rather than doing that, they take a, like a computer controlled milling machine

00:31:27 ◼   ► and they just mill the old NAND out. They just turn it to dust. They just go back and forth

00:31:33 ◼   ► and back and forth. And like they mill it to be, mill the surface to be flush with the printed

00:31:37 ◼   ► circuit board and your previous NAND, your previous like two, three, six gig NAND thing

00:31:42 ◼   ► turns into dust that hopefully you don't inhale. Cause it's probably terrible for you. And then

00:31:46 ◼   ► they clean the surface. Then they take a new chip, they drop it on their solder at epoxy around it or

00:31:50 ◼   ► whatever, and then reassemble the phone. It is an amazing video to watch. You know, it's kind of

00:31:55 ◼   ► like watching, you know, robotic surgery, such, so careful and such precision. I, it, and really like,

00:32:02 ◼   ► like surgery, it's something that you really want someone who is skilled at doing because

00:32:05 ◼   ► it is not easy. Like there's, and the video is zoomed way in. So you don't realize just

00:32:09 ◼   ► how small and how delicate everything is that's taking place in this video. I, I found it completely

00:32:16 ◼   ► amazing. And yeah, big upgrade from one 28 to one terabyte. Indeed. All right. And then finally,

00:32:22 ◼   ► I wanted to call attention to a podcast that I think aired a week, maybe two weeks ago. Uh, I'm going

00:32:29 ◼   ► to, or my, my American will be showing, and I apologize to everyone who's listening across the pond,

00:32:33 ◼   ► but, uh, apparently there exists a podcast called table manners with Jesse and Lenny. Where I haven't

00:32:39 ◼   ► a clue who these people are. My understanding is one of them, at least if not both are very famous in

00:32:43 ◼   ► the UK, my genuine apologies. I just don't, I'm, I'm an ignorant American. What do you want to do?

00:32:48 ◼   ► But, uh, Tim cook was on the show and I didn't, I'm not aware of a video version, although apparently

00:32:54 ◼   ► the whole shtick is they serve the person a meal and they talk over the meal and so on and so forth.

00:32:59 ◼   ► Um, this interview really ticked me off because this is the kind of interview that I think I would

00:33:05 ◼   ► want to do with Tim cook if possible, because they basically don't talk about barely anything

00:33:11 ◼   ► Apple related. And even though the better interview would be to get Tim cook to open up about all the

00:33:16 ◼   ► decisions he's made at Apple and why he made them and so on and so forth. As we've said many times in

00:33:20 ◼   ► the show, he'll never do that. That's never going to happen. So just take that off the table. It's

00:33:25 ◼   ► never going to happen. So knowing that that's never going to happen, what do you do? He's talked

00:33:29 ◼   ► to him about what it's like to grow up as Tim cook and what does he like to do and how does he work

00:33:32 ◼   ► and where does he, you know, go to relax and stuff like that. And it's, I don't know, it was like half

00:33:37 ◼   ► an hour, 45 minutes. I thought it was really, really good. And it showed Tim cook as a human,

00:33:41 ◼   ► which is great because right now I want to, I want him to go away.

00:33:45 ◼   ► He's a human that we're all mad at.

00:33:47 ◼   ► Exactly.

00:33:47 ◼   ► Yeah. I'm so glad Tim had this really hard hitting interview puff piece. I mean,

00:33:52 ◼   ► maybe this is worth it to somebody to, but like, would you right now watch the same interview of

00:33:58 ◼   ► say Mark Zuckerberg? I mean, I'm just saying like, I think this is, this is a puff, you know, BS thing.

00:34:05 ◼   ► And I'm, I'm glad for people who like it. Maybe it'll make you feel better. To me, this,

00:34:09 ◼   ► it just kind of angers me. Like why give him this kind of attention right now when he does not deserve

00:34:14 ◼   ► anything but very strict scrutiny over what he has done. Yeah. And I also think like, you know,

00:34:20 ◼   ► it is, I guess, not somewhat novel for someone to interview Tim cook and ask so little about Apple.

00:34:26 ◼   ► They didn't ask zero, but ask so little about Apple. But I do think that literally everything

00:34:30 ◼   ► he said was entirely controlled in Tim cookie. Like I've just, he is impossible to draw out.

00:34:36 ◼   ► I've never seen anyone do it like to get to the human that's inside there. I'm not saying what he

00:34:40 ◼   ► was saying was like insincere or dishonest. I think he was saying things that he really felt

00:34:46 ◼   ► and did or whatever, but in a very controlled Tim cook way, like in a, in a, in a media trained,

00:34:52 ◼   ► carefully avoiding anything. He's, he's so well trained and disciplined that they would ask him

00:34:57 ◼   ► things about like, which of these two different kinds of fruit do you prefer? And he would not

00:35:02 ◼   ► take a position because he's afraid that the people who like the kind of fruit that he said

00:35:06 ◼   ► he doesn't like will not like, like it's just, he just will not like, I swear to you,

00:35:10 ◼   ► like listen to it. I forget what the particular details are, but they tried to ask him to have,

00:35:14 ◼   ► take a position on food. Like this wasn't it, but like, because he, he did take a position

00:35:18 ◼   ► on dark chocolate versus milk and he said he liked dark. Right. So apparently he's okay with that one,

00:35:22 ◼   ► but another one, they're like, ah, it's not that I dislike it. He will not be drawn out to be like,

00:35:28 ◼   ► you know, unguarded or, uh, you know, he's always very careful in every single thing that he says.

00:35:35 ◼   ► And it must be tiring to be him. And sometimes I find it tiring to listen to him because he is so

00:35:40 ◼   ► controlled. I think, as we've said in past shows, I think the least controlled I've ever heard him

00:35:44 ◼   ► is when he was somewhat stern with, uh, an obnoxious question to ask her at a shareholder meeting,

00:35:50 ◼   ► uh, where they, uh, complained about the return on investment and some, uh, thing Apple is doing

00:35:56 ◼   ► related to the environment or whatever the heck it was. And, uh, Tim Cook said, if you're so concerned

00:36:00 ◼   ► about the ROI or whatever, get out of the stock, it's not, it's not about the bloody ROI, blah, blah,

00:36:04 ◼   ► blah. It's the closest I've ever seen to him show it, showing any real emotion. And it wasn't that

00:36:08 ◼   ► close because really it was just fairly straightforward articulation of Apple's corporate policy, but there

00:36:14 ◼   ► was a tinge with a hint of, of, uh, of sternness. And that was years ago. And apparently he's erased

00:36:19 ◼   ► that part of his brain that does that. So I'm sure he's, I'm sure he is not like this when he's in

00:36:24 ◼   ► meetings with other Apple executives, telling them what to do. We've heard stories about that. Like

00:36:28 ◼   ► there is a real Tim Cook in there, but you're not going to see him on a podcast about food.

00:36:33 ◼   ► Yeah. I mean, that's why like, I, I almost never actually watch or listen to or read his interviews

00:36:38 ◼   ► because there's almost nothing of value to it because he is, he's so guarded and careful and

00:36:44 ◼   ► on message. And so the things that you end up getting from him are just things that don't matter.

00:36:51 ◼   ► Like, and, and I, you know, we all had a cult of personality around Steve jobs because

00:36:56 ◼   ► he was a really interesting personality and, and he would like let out bits and pieces that were

00:37:02 ◼   ► entertaining and insightful and a little bold and a little risk taking. And Tim Cook is none of those

00:37:08 ◼   ► things. Like he is just bland, milquetoast corporate nothingness. And, and whatever, whatever he is behind

00:37:14 ◼   ► the scenes, like, as John said, like, we don't see that. What we see in the public is very controlled,

00:37:19 ◼   ► corporate, boring. And frankly, I don't know how much more of Tim Cook there is than that.

00:37:24 ◼   ► And I don't care because even before I hated him for his political BS that he's doing now,

00:37:30 ◼   ► he's just not interesting. I think Apple is very interesting and, you know, the moves of the company

00:37:36 ◼   ► and the products they create can be very interesting a lot of the times, but he personally, I don't know what

00:37:41 ◼   ► people get out of his interviews because whatever it is, I don't get it. Like, I can't even imagine

00:37:47 ◼   ► having to, like, sit down and talk with him about anything because, like, I don't know what the heck

00:37:51 ◼   ► I would say or what he would say back. It would be, it would be a waste of time for both of us.

00:37:55 ◼   ► If it was entirely off the record and there was no one recording it, he would be a lot more real,

00:38:00 ◼   ► but I don't know that.

00:38:00 ◼   ► I doubt it.

00:38:01 ◼   ► Well, for what it's worth, I thought the interview was worth your time. I hear what you're saying

00:38:06 ◼   ► that he is very buttoned up and I hear what you're saying that he's definitely on our

00:38:09 ◼   ► crap lists, but I thought it was worth it and your mileage may vary.

00:38:13 ◼   ► We are brought to you this episode by Squarespace, the all-in-one website platform for entrepreneurs

00:38:20 ◼   ► to stand out and succeed online. Whether you're just starting out or managing a growing brand,

00:38:25 ◼   ► Squarespace makes it easy to create a beautiful website, engage with your audience, and sell

00:38:29 ◼   ► anything from your products to your content to even your time, all in one place and all on

00:38:34 ◼   ► your terms. And Squarespace now offers design intelligence, combining two decades of industry-leading

00:38:41 ◼   ► design expertise with cutting-edge AI to unlock your strongest creative potential.

00:38:45 ◼   ► Design intelligence empowers anyone to build a beautiful, more personalized website tailored

00:38:50 ◼   ► to your unique needs so you can craft a bespoke digital identity to use across your entire online

00:38:56 ◼   ► presence. And no matter what your business is, Squarespace can probably support it.

00:39:00 ◼   ► physical goods, digital goods, newsletters, podcasts, electronic goods and services. If

00:39:07 ◼   ► you're a trainer, if you are a consultant, if you're a coach, all of that plus so much more

00:39:11 ◼   ► can be supported by Squarespace honestly very, very easily. Squarespace payments is also amazing

00:39:17 ◼   ► and better than ever. Onboarding is fast and simple. You can get started very quickly and

00:39:21 ◼   ► start receiving your payments. And customers have more ways to pay than ever with methods like

00:39:25 ◼   ► Klarma, ACX Direct Debit, Apple Pay, Afterpay, ClearPay, and so much more. You can see for yourself how

00:39:31 ◼   ► Squarespace works for you by going to squarespace.com and starting a free trial. You can build your site

00:39:37 ◼   ► totally in trial mode, see how well it works for you. When you're ready to launch, go to squarespace.com

00:39:42 ◼   ► slash ATP for 10% off your first purchase of a website or a domain. So once again, squarespace.com,

00:39:49 ◼   ► start that free trial, build your site in trial mode, see how it works for you. I bet you're going to

00:39:53 ◼   ► love it. I've used it. My friends have used it. My wife uses it. I recommend it very strongly.

00:39:58 ◼   ► Go to squarespace.com. Start that free trial. Build your site today. Go to squarespace.com

00:40:03 ◼   ► slash ATP when you're ready to purchase to save 10% off your first purchase of a website or domain.

00:40:07 ◼   ► Thank you so much to Squarespace for being awesome and for sponsoring our show.

00:40:11 ◼   ► John, take us through some hyperspace updates if you don't mind. I can prompt some of this. I had some

00:40:20 ◼   ► questions. It looked like you wanted to keep my question for the end, which is fine.

00:40:23 ◼   ► But tell me what's going on.

00:40:25 ◼   ► Yeah. So last episode, I announced the test flight. It went out to all the ATP members,

00:40:31 ◼   ► people who were interested, dutifully started installing it and using it and sending me feedbacks

00:40:36 ◼   ► through all the various channels. And it occurred to me about halfway through the week that I had

00:40:42 ◼   ► included my own little brown M&M in the test flight release notes. Are you too familiar with the brown

00:40:48 ◼   ► M&M thing?

00:40:49 ◼   ► Is this like a sex thing?

00:40:51 ◼   ► No, no, no. I think it's where you ask for like all green M&Ms or something like that on your rider just

00:40:56 ◼   ► to see if people are paying attention to you.

00:40:58 ◼   ► Yeah, kind of. Like the story is that the band Van Halen used to have this very long contract that

00:41:03 ◼   ► would have with the venues that they would play their concerts in. And one of the things they would

00:41:07 ◼   ► ask for is, and in our dressing room, we want to have a bowl of M&Ms, but there should be no

00:41:10 ◼   ► brown ones in the bowl. Right. And it was the story went around in the 80s. It was like, oh,

00:41:15 ◼   ► Van Halen, can you believe these like rock divas? And they got to have, you know, they're so they're

00:41:20 ◼   ► so full of themselves. They want every little thing that is mad with power and just abusing the people

00:41:24 ◼   ► who, you know, who run the concert halls that they run in. But then the the sort of later day sort of

00:41:31 ◼   ► internet era turns out story about that as well. Actually, they put that in there. There was a real

00:41:36 ◼   ► thing and it wasn't their contracts. And they put that in there because if they went into the

00:41:39 ◼   ► dressing room and they saw either no bowl of M&Ms or a bowl of M&Ms, but the brown ones were not

00:41:45 ◼   ► removed. They know that the concert venue did not really carefully read or take seriously

00:41:51 ◼   ► their instructions. And that was important because a lot of their instructions had to do with safety

00:41:57 ◼   ► about, you know, we're going to have this light rig that's going to weigh this much and the stage is

00:42:01 ◼   ► going to put this much pressure on these positions. And we have like to we have to have these kind of

00:42:05 ◼   ► electrical outlets and so on and so forth for it to be a safe show. But I mean,

00:42:08 ◼   ► it wasn't that big, but they had explosions going off and, you know, pyro flames, things and all that

00:42:13 ◼   ► stuff. They wanted the venue to actually read it and not just be like, yeah, yeah, yeah. Rock Band

00:42:18 ◼   ► will set your stuff up. You'll be fine. And so that was the supposed utility of the brown M&M clause

00:42:24 ◼   ► that it was just an easy way to tell. Are they paying attention to our contract or they do they just not

00:42:29 ◼   ► even read that closely and don't even care about the details. Right. I have nothing. I didn't intend to put

00:42:35 ◼   ► around M&M in my release notes, but I did. At the top of the release notes in all caps letters is the

00:42:40 ◼   ► thing that says it doesn't actually reclaim disk space because that was the most important thing

00:42:43 ◼   ► that people needed to know because I didn't want to have a week of telling me that there were people

00:42:46 ◼   ► running my program, but they weren't getting disk space back. So that's all caps. It's line number one.

00:42:50 ◼   ► I think pretty much everybody read that. So good job, everybody. Line number two of the release notes

00:42:56 ◼   ► was a link. It was a URL. And that's where everything fell apart, because I don't think people

00:43:02 ◼   ► followed that link or read anything else. They said, read the all caps line. They said, yep,

00:43:07 ◼   ► got it. Good. Doesn't reclaim disk space, which is fine. But the reason I know is because if you follow

00:43:11 ◼   ► that link, it goes to a bullet pointed list. It's got like five bullet points on the page here.

00:43:17 ◼   ► And the very bottom of the five bullet points says the following. The icon is a placeholder.

00:43:24 ◼   ► The final icon is still in the works. Every single person in there, a lot of you who sent me very long

00:43:31 ◼   ► critiques about the icon. I didn't think it was appropriate. And I should really think of something

00:43:38 ◼   ► else. You didn't read the part about the brown M&Ms. You read the all caps part about how it won't

00:43:43 ◼   ► actually reclaim disk space. So I thank you for that. But that brown M&M is in there. So I just

00:43:48 ◼   ► want to tell everybody, if you're listening to this podcast, the icon is temporary.

00:43:53 ◼   ► I actually think it's pretty good, to be honest with you. But that's neither here nor there.

00:43:56 ◼   ► Yeah, I just wanted people to know it's temporary. Because so maybe week two, a different thing.

00:44:01 ◼   ► All right. Next item, test flight purchases. This was probably the biggest purchase related piece

00:44:07 ◼   ► of feedback I got. And as usual, with anything related to in-app purchase, I have no idea what's

00:44:13 ◼   ► up. This is the first time I'm doing this. Here's the deal. People who are outside the US would tell

00:44:19 ◼   ► me, hey, I tried to do your test flight purchase. I dutifully read the release notes that I know it's

00:44:23 ◼   ► not going to charge me any real money. So I clicked the purchase button in test flight.

00:44:26 ◼   ► And it didn't work. It said, oh, this is not in the whatever, the German store or it's in the US

00:44:32 ◼   ► store. You have, do you want to change stores? And it would pop up a dialogue with a change store

00:44:36 ◼   ► button. And I would click the change store button. And it would change, it would have me sign in and I

00:44:39 ◼   ► would change to the German store. And then it would say cannot reach app store. And I just want to

00:44:45 ◼   ► clarify two things. One, all those dialogues, the whole thing about you can't do it in the store or

00:44:50 ◼   ► change store bubble. That's all Apple stuff. I, I'm not producing those dialogues. That's all Apple,

00:44:56 ◼   ► right? I don't know how they're supposed to work. All I know is that people are telling me

00:45:00 ◼   ► they don't work. All the things that I was able to check seem fine. My app is,

00:45:06 ◼   ► in theory available in every single country that, that Apple allows it to be available in all the

00:45:11 ◼   ► in-app purchases are available in every single country. Like I just double, triple, quadruple

00:45:15 ◼   ► checked. Like, yes, nothing is restricted. Everything is everywhere. But, uh, having never done this

00:45:20 ◼   ► before, I'm a little bit concerned about the fact that if you go to the app availability section in

00:45:26 ◼   ► app store connect, uh, it says for all the giant list of countries, a thing that says available on app

00:45:31 ◼   ► release. So, you know, Angola available on app release, Argentina available on app release. And

00:45:37 ◼   ► as we know, my app has not yet been released. So it could be that non-US people cannot make purchases

00:45:45 ◼   ► in the test light version because this app has literally never been released. And all of those

00:45:49 ◼   ► regions will be available on app release, which hasn't happened yet. So if that is the case,

00:45:56 ◼   ► I apologize for all the people trying to make purchases outside of the U S and having it not

00:46:00 ◼   ► work. I don't think there's anything I can do about that short of releasing my app, which I'm not ready

00:46:05 ◼   ► to do yet. Um, but yeah, that's my guess about the deal. Do either of you two have any clarification on

00:46:12 ◼   ► this? No. And I don't remember this being a problem for me and I definitely had users in other countries,

00:46:18 ◼   ► uh, it tests like beta testers in other countries. So maybe this is a Mac OS thing. I I'm not sure.

00:46:23 ◼   ► It wouldn't surprise me because a lot of stuff on Mac OS is way jankier. So here is a little tidbit

00:46:27 ◼   ► because a couple of people did say, uh, I'm outside the U S and it worked fine for me. So then I'm like,

00:46:32 ◼   ► well, I don't know what the heck to make of that. Right. Uh, one person did say this. They said earlier

00:46:37 ◼   ► today, I reported an issue with the purchase flow due to an incorrect country setting. Although I've

00:46:41 ◼   ► never encountered this problem with other test flight apps, I managed to resolve it here. I clicked

00:46:45 ◼   ► on restore purchases, which prompted a login window. I logged in using my normal Swiss account. And while

00:46:51 ◼   ► there was no feedback and no changes were apparent, the purchasing of the app now worked. So if you're

00:46:56 ◼   ► out there trying to purchase and it's not working, you can try clicking the restore purchases thing and

00:47:00 ◼   ► see if that solved the problem. I don't know if it will. I'm maybe 50% confident that when I

00:47:07 ◼   ► released the app, all these issues will go away and it will be fine. But I guess we'll find out.

00:47:11 ◼   ► I've asked around, I've tried to do research on this. I've tried to look at Apple's documentation.

00:47:15 ◼   ► Ha ha ha. Yeah. Good luck. Um, so I don't know what the deal is, but I will tell everybody if you're

00:47:21 ◼   ► outside the U S you may not be able to purchase it. You can try the restore purchases thing. Right.

00:47:25 ◼   ► Second thing on purchases, many, many people, uh, maybe people who are, uh, new to test flights.

00:47:31 ◼   ► It's a lot of, we've got a lot of test flight testers here wrote in to tell me that they thought

00:47:34 ◼   ► that, uh, my app should not prompt them for their Apple ID password and instead should use touch ID.

00:47:40 ◼   ► And by the way, the dialogue that appears asking for their Apple ID password is super janky and scary.

00:47:45 ◼   ► Look, I agree. Guess who makes that dialogue box? Apple, everything you see in the purchase flow,

00:47:52 ◼   ► all those dialogue boxes. That's not me. I'm using the standard Apple thing, which is like,

00:47:57 ◼   ► okay, go do purchase. And then Apple throws up a bunch of UI. And yes, for whatever insane reason,

00:48:04 ◼   ► as far as I know, this has always been the case, both on iOS and on Mac OS. When you try to make a

00:48:09 ◼   ► test flight purchase, does it let you use touch ID? Does it do password autofill? No, it makes you type

00:48:15 ◼   ► in your Apple ID password. Why does it do that? I don't know, but it does. And it makes you type it into

00:48:22 ◼   ► a terrible text box. It looks like it's totally fake. And Apple is producing that. It's one of the

00:48:28 ◼   ► reasons why I like, I end up uninstalling test flights. Like I'll go back and forth between the

00:48:32 ◼   ► call sheet test flight and the call sheet real one, because test flight purchases like expire on an

00:48:36 ◼   ► accelerated rate. I just never want to have to, Oh, the test flight is, yeah, I have to repurchase the

00:48:41 ◼   ► test flight. Oh, I got to type in my Apple ID. It's just, it's so painful. I, I, there's no way around

00:48:49 ◼   ► it. Like that's just the way that's why it is. It's part of the pain of being a beta tester. And

00:48:54 ◼   ► there is pain. There's, there is pain in being a beta test. I know, but I've got so many paid apps

00:48:58 ◼   ► on my phone. It's, it's annoying. I acknowledge it's annoying. How many years has it been like this

00:49:04 ◼   ► since the existence of the Mac app store? I think it's always, has it always been like this on iOS

00:49:07 ◼   ► too? Uh, it's, it's always been rough. I feel like test flight actually in a lot of ways was better

00:49:13 ◼   ► when it was an independent entity, but you're asking me to remember 10, 15 years ago.

00:49:18 ◼   ► But like, does it always, have you ever seen an iOS app that does not make you enter your password

00:49:22 ◼   ► like in text when you tried to do an app purchase in a test flight? No, no, not that I can think of.

00:49:27 ◼   ► Yeah. So, but then macOS is the same way and everything does look worse on macOS, but in both

00:49:33 ◼   ► cases, it's just like nothing else in the system ever asked you, like if you have like face ID or

00:49:37 ◼   ► touch ID or whatever, like nothing else ever asks you to type in your password. And then all of a sudden

00:49:42 ◼   ► here's this beta thing doing it. It looks so janky and I agree it's janky. I wish Apple would fix it,

00:49:47 ◼   ► just to let everybody know, welcome to test flight. It's not the same as real apps and it's bad.

00:49:54 ◼   ► Oh yeah. All right. What else? Uh, so the other major thing that I spent the week, uh, fighting with

00:50:03 ◼   ► is, uh, my review window. Uh, when I was first making this app, I was like, okay, you know,

00:50:09 ◼   ► pick where you want to scan your files, you scan them, uh, and then, you know, you want to reclaim

00:50:14 ◼   ► space from them. But in between there, it'd be nice if you saw, well, you just did the scan and you told

00:50:18 ◼   ► me you found a bunch of files. Can I just see what those files are? Cause maybe I don't want you to do

00:50:21 ◼   ► all of them. Like may I, or even I just want to see it like just for visibility. Like I want to review

00:50:26 ◼   ► what have you found before we continue to the part where you reclaim space or pretend to in the case

00:50:30 ◼   ► of my test flight app. Um, so thus was born the review window. Uh, it just, you know, here's all

00:50:36 ◼   ► the stuff I found. Uh, and you can remove things and you know, like that's the point of the window is

00:50:41 ◼   ► like for you to take a look at what I found and for you to maybe decide you do or don't want to

00:50:45 ◼   ► include certain things. I, I didn't think too much about it. I just kind of made that on a whim.

00:50:50 ◼   ► It's like, Oh, it seems like a nice thing to have, but pretty quickly, even before the test flight,

00:50:53 ◼   ► I realized, okay, well, if you scan like a big directory, like your documents directory or your

00:50:59 ◼   ► whole home directory or something, or people are scanning their whole drives, uh, it might find a

00:51:04 ◼   ► lot of duplicates, like a lot, a lot, not like 10, not like a hundred, but like thousands, many,

00:51:09 ◼   ► many thousands of duplicates. First of all, is it possible to quote unquote,

00:51:15 ◼   ► review thousands of things? Is someone going to look at a thousand things or are they just going

00:51:19 ◼   ► to be like, Oh, no, I don't know. This looks fine. Like you can't, at a certain point you can't

00:51:23 ◼   ► manually review it anymore. This came up and, uh, my old jobby job when we were talking about, um,

00:51:28 ◼   ► uh, reviewing dependencies for like license and security and stuff like that. Like, you know,

00:51:34 ◼   ► any new project you make, we want to make sure that anything, any third party software you're

00:51:37 ◼   ► depending on, we should review it. There should be a human review process to make sure that like

00:51:42 ◼   ► you're not using some software that you're not allowed to use because of its license or

00:51:46 ◼   ► that has some security problems or whatever. So we should have a process of human review for all

00:51:51 ◼   ► software dependencies, which sounds totally sane. And like a thing that a company would do as a policy,

00:51:55 ◼   ► but I know a lot of you right now are already thinking the same thing that I am. And maybe

00:51:59 ◼   ► Casey's thinking as well, node modules, guess how many third party dependencies,

00:52:07 ◼   ► any kind of non-trivial node JS application has thousands, a trillion, thousands, literally

00:52:15 ◼   ► thousands, right? There's no way to avoid it. Like, and so now are you going to have human review

00:52:22 ◼   ► of thousands of dependencies? And also each time all those dependencies are updated at a certain

00:52:29 ◼   ► point, human review breaks down, but nevertheless, I still wanted to have a review window. It was like,

00:52:34 ◼   ► look, if you want to look at them, they're there, put a search field in the review window. So if you're

00:52:39 ◼   ► looking for something, if you're like, I'd want to make sure it's not doing anything with my whatever

00:52:42 ◼   ► files, type this in some search query, narrow it down, find that thing, you know, uncheck the checkbox

00:52:47 ◼   ► next to it and say, yeah, I don't want to do these things or whatever. And yes, I'll probably add an excludes

00:52:51 ◼   ► feature at some point, but probably not in 1.0. Anyway, um, so I made a review window, I put a search field in it.

00:52:58 ◼   ► Uh, and then I, uh, ran into, you know, the, the brick wall that is, uh, Swift UI performance

00:53:04 ◼   ► because like everything, like everything else in my app, this was a Swift UI window.

00:53:09 ◼   ► And I was asking Swift UI to show potentially thousands of things. At the very least, it's going to be

00:53:15 ◼   ► thousands of checkboxes or some other control that says, yes, do this or don't do this. Right.

00:53:19 ◼   ► And also it's going to be thousands of file names and probably file paths to say, what am I checking or

00:53:26 ◼   ► unchecking? Where is this file? And maybe you want other stuff besides just the file name in a checkbox.

00:53:31 ◼   ► Maybe you want to know what size it is or how many duplicates there are or what the total savings is.

00:53:37 ◼   ► Like pretty quickly, you're, it's not that complicated, but it's like, okay, well, it's like for each item,

00:53:42 ◼   ► it's a checkbox and a string and maybe another string for the path. And then maybe a couple of numbers.

00:53:46 ◼   ► Right. But it shouldn't be that bad. Right. Well, you get the review window, you put a, uh, you know,

00:53:53 ◼   ► a naive Swift UI implementation and it just falls over on its face after a shockingly small number

00:54:00 ◼   ► of items. Uh, you can pull up the page usually with a small number of items, but even scrolling

00:54:07 ◼   ► through a hundred or two of them painfully slow. Right. So then you're like, so what can I do for

00:54:14 ◼   ► Swift UI performance? How can I enhance this? So, you know, uh, what if I use the lazy version of

00:54:19 ◼   ► everything? So it doesn't have to load the thing up front because if you use the non-lazy one,

00:54:22 ◼   ► it's just, you get a beach ball, like trying to load a few hundred things or whatever. So you use

00:54:25 ◼   ► lazy version, it loads fast. Scrolling performance is still not great. So you're moving the scroll

00:54:30 ◼   ► thumb up and down. You're like, Oh, I can see them like lazily loading and it's all jerky. And it's

00:54:36 ◼   ► just like, can I just, can I show less stuff? What can I do to make this better? And so I spent a while

00:54:43 ◼   ► fighting with that. Uh, one of the ideas I had was, uh, maybe I'll just like, maybe I'll just show

00:54:48 ◼   ► like, maybe I'll do like lazy loading on top of lazy loading. So I'll show you the first hundred.

00:54:52 ◼   ► And then when you get to the bottom of the hundred list, I'll have like a little load more button and

00:54:56 ◼   ► it will load more. Right. But of course, if I just let you keep loading more, uh, you'll, it'll just

00:55:01 ◼   ► get long again. So I have to pull off ones from the top. So if you hit load more two times, it'll pull

00:55:05 ◼   ► off a hundred from the top. You know, that didn't really help. I implemented that and I was like,

00:55:10 ◼   ► no, it's still like, even just with the hundred window, it's just the scrolling is not smooth.

00:55:16 ◼   ► Like, it's just not good. I was like, okay, well maybe I shouldn't use like lazy V stack. Maybe I

00:55:21 ◼   ► should use list because list is supposed to be for big lists of stuff. So I re implemented the window

00:55:26 ◼   ► and list instead of using lazy V stack. This is all tech terms or whatever. And it just, so I should

00:55:31 ◼   ► say, I'm, I'm rewriting this, this window in multiple different implementations. I try to list

00:55:36 ◼   ► that has a different set of trade-offs. It's supposedly also lazy. Uh, but it doesn't, it doesn't seem any

00:55:40 ◼   ► smoother than, than a lazy V stack. In fact, in some ways it's worse. You have less control over

00:55:45 ◼   ► the items that are in it. Maybe it's better on iOS. I don't know, but on Mac OS, it wasn't that great

00:55:50 ◼   ► all this time. I've been resisting the, you know, the give up and use app kit approach. Uh, but I also

00:55:56 ◼   ► decided, okay, well, let me see what an app kit approach to this would look like just using app kit

00:56:00 ◼   ► for the scaffolding and still having each individual item be a Swift UI view. So I did that,

00:56:05 ◼   ► uh, didn't really help. It was a little bit better, but because every individual view was a

00:56:10 ◼   ► Swift UI view, you're still in the end loading, you know, and Swift UI views or N items, even though

00:56:16 ◼   ► they're contained in an app kit collection view or whatever the thing you have, which is also lazy

00:56:21 ◼   ► loading. It is more efficient than the Swift UI things, but, uh, you know, not quite the same.

00:56:25 ◼   ► And I think, uh, you know, Marco was a Marco's first advice when I first mentioned, I saw the screen

00:56:29 ◼   ► was slow. I was like, you should just do this in app kit. I'm like, Oh, it's going to be a lot of work

00:56:32 ◼   ► to do in an app kit. But like, here I am on implementation number four, right? I've done

00:56:36 ◼   ► it. I've done it with, uh, well, you know, V stack, lazy V stack list, uh, uh, collection app

00:56:42 ◼   ► kit collection view with, uh, Swift UI views inside of it. Uh, and you know, I ended up, I ended up,

00:56:48 ◼   ► well, let's write it in app kit, which I was resisting because this is literally the most

00:56:53 ◼   ► complicated screen in my entire app. The stupid review window it is. I mean, not that my app is that

00:56:59 ◼   ► complicated, but of all the screens of my app, this is the most complicated. And now I am rewriting

00:57:03 ◼   ► it for a fifth time, uh, wrote it and just straight app kit and this table view, you know, the old ways

00:57:09 ◼   ► still in Swift, obviously, but yeah. Um, and the performance was better, a lot better. I still

00:57:15 ◼   ► kept a Swift UI view for the detail pain. That's one of the things I, one of the changes I made halfway

00:57:19 ◼   ► through is like, look, I got to get less stuff on the screen for multiple reasons, but not the least

00:57:23 ◼   ► of which is that it kills scrolling performance. So what if I have like sort of a, uh, a list of the

00:57:27 ◼   ► individual file groups and then a detail view that when you select one, you see more information

00:57:31 ◼   ► about it. So you only ever need to have one detail view. And then you have the big scrolly list,

00:57:35 ◼   ► which is supposedly simple. Um, that's the design I've stuck with. I re-implemented it all in app

00:57:39 ◼   ► kit, except for the detail view that I left in Swift UI. I bashed my head against that for a while.

00:57:44 ◼   ► Uh, and the performance is much improved as they say. Uh, that's like, you know, a glimpse into a week

00:57:52 ◼   ► of development, uh, on, uh, and a, on a pure Swift UI macOS app. I don't think what I was asking you to do

00:58:00 ◼   ► was that big a deal. Although some people like the testers out there, they're trying hard. I had one

00:58:04 ◼   ► person who, uh, had a review window with 150,000 items in it. Oh my. Uh, and, and, and that person tried,

00:58:12 ◼   ► I think most of the different versions of this screen that I made and would tell me when it was

00:58:18 ◼   ► not cutting. Right. And so I think the new one can handle that and it's okay. But some point during

00:58:24 ◼   ► this whole week of me banging my head against this screen, a thought occurred to me and it's going to

00:58:31 ◼   ► spawn a slight side discussion here. I want you guys to, uh, go to this URL. This is web-based.

00:58:38 ◼   ► Oh no. Can you, uh, scroll that webpage for me please? Yeah. It scrolls pretty fast. Are you

00:58:44 ◼   ► going to write it in web kit? Is it, is it smooth for you? Does it seem smooth? Oh no. Can you load

00:58:49 ◼   ► that? Can you load that on your phone? I presume I could. Oh my God. Are you asking me to do that?

00:58:54 ◼   ► Can you see how? Yeah. See how this works on your phone maybe. Oh my God. Hold on.

00:58:59 ◼   ► You're going to do this with web tech, aren't you? Wow. It's really fast.

00:59:05 ◼   ► Does it scroll okay? Does it seem smooth? Did it load fast? Sure did. Oh my God. You're going to do

00:59:10 ◼   ► this with web tech, aren't you? This is, I'm having them load a webpage because I'm, I'm banging my head

00:59:14 ◼   ► against, uh, you know, Swift UI, app kit, NS collection view, NS table view, lazy V stack list.

00:59:20 ◼   ► The performance is crap. I'm on a, on a Mac pro with 192 megs of Ram. I'm like, why can you not scroll

00:59:27 ◼   ► a list? I don't care if it has 10,000 items in it. Is it like it should, why can you not scroll this

00:59:31 ◼   ► list? What's the problem? It's just text. It's text and it's check boxes. And I'm like,

00:59:34 ◼   ► I could, and it's just, I'm like, I could do this in two seconds in the web tech and granted it's web

00:59:39 ◼   ► developer for 25 years. So I have a little bit of more of skill in that area, but I'm like, I could do

00:59:43 ◼   ► this. I know this would work fine in a webpage. Like this is, I'm not asking too much. Right. So I made a

00:59:50 ◼   ► webpage and I made one with a hundred items, 500 items, a thousand items, 10,000 items. And like,

00:59:56 ◼   ► I would load it and we'll just scroll like today, right now, this scrolls faster than the app kit,

01:00:02 ◼   ► the native Swift, pure app kit, NS table view on Mac OS 15.2 on a Mac pro with 192 megs of Ram.

01:00:14 ◼   ► This webpage loads instantly and scrolls perfectly smoothly with an equivalent number of items.

01:00:22 ◼   ► Right. We're talking about like, Oh, web, web apps always feel worse. You can always tell it's a web

01:00:27 ◼   ► app because it's not as good and it's not as smooth and snappy and this and that. And the other thing

01:00:31 ◼   ► web tech has had so much effort put into it that right now, HTML and CSS are an amazingly performant

01:00:43 ◼   ► engine for quickly and easily creating user interfaces that scroll like butter. This wasn't true in

01:00:51 ◼   ► 2007 when the iPhone came out, right? Web kit views were not as fast as native views, right?

01:00:56 ◼   ► This is not recycling as far to my knowledge. It is not recycling cells in this table, right? It's,

01:01:01 ◼   ► it's just rendering them all, putting them into the giant image and just scrolling with the GP,

01:01:06 ◼   ► like just shake the thing up and down. It's unbelievably performant, right? I don't think

01:01:12 ◼   ► there is a way with any of Apple's native UI toolkits to make a scrolling list of items with some text in

01:01:22 ◼   ► them that is smooth as just doing it in stupid HTML. I believe this is an HTML table. I've already

01:01:28 ◼   ► forgotten. It's just, you slap this together and it takes two seconds, right? And you can change that 500

01:01:33 ◼   ► number in there to larger numbers to see different versions. But here's the thing. I was, I was real

01:01:38 ◼   ► close in the middle of the week. I'm like, screw it. I'm doing this in web kit. Like I'm, I'm sick

01:01:42 ◼   ► of, I'm sick of native development. I know I can do this in, in, in, uh, in HTML and CSS. Why am I

01:01:49 ◼   ► banging my head again? It's so much harder to like app kit, like doing the NS table view. It's such like

01:01:54 ◼   ► ancient technology. Like the, the number of classes you have to implement, the number of methods you

01:01:59 ◼   ► have to override, the number of things you have to do in them. It's like, what is going on here?

01:02:03 ◼   ► How many lines of code is this? And it's like an HTML. It's just, it's like a page of HTML and CSS,

01:02:09 ◼   ► like in two seconds. And it's just straightforward and obvious. And like the Swift UI one is also

01:02:15 ◼   ► pretty straightforward and obvious, but then the performance is terrible. So who cares that it's

01:02:19 ◼   ► straightforward and obvious, right? It's great if you have 10 items, a hundred items, right? But if

01:02:23 ◼   ► you have 150,000, they just, these things just throw up their hands. Uh, but I didn't implement it in

01:02:30 ◼   ► web kit because I think if you change that 500 number to 10,000 in your URL and then load that

01:02:37 ◼   ► page. Oh, it drops out. Yeah. It kind of gives up after a certain point and you just get blankness.

01:02:44 ◼   ► Now I can tell you that that will eventually load all of it. And then once it does load,

01:02:50 ◼   ► it'll, it'll be smooth. And even while it's blank, it'll be smooth. What we're saying is you,

01:02:54 ◼   ► if you scroll this list, all of a sudden the list disappears and then there's no more list.

01:02:59 ◼   ► there's just, then you're just scrolling. It's fine on my desk. You guys got to get better

01:03:02 ◼   ► computers. Oh, by the way, Chrome does it way better than, uh, than, uh, Safari. So if you load

01:03:08 ◼   ► that page in Chrome, much better job than Safari, but Safari on both the Mac and on iOS, when you load

01:03:15 ◼   ► the page with 10,000 or more items, it just stops drawing it very quickly. Now, like I said, eventually

01:03:23 ◼   ► it will all load in and God knows how much memory is thick. Uh, this is a consequence of it not being

01:03:29 ◼   ► lazy, but this made it a non-starter for me because as slow and janky as it is in Swift UI or an app kit

01:03:37 ◼   ► for 150,000 items, it does actually load. You can actually scroll. It is just jerky and slow, right?

01:03:46 ◼   ► Web kit at a certain point says, nope, check, please. Not going to do it. And then, like I said, if you

01:03:53 ◼   ► wait, if you wait, like, well, mine just, mine just came in finally. Now, if you wait, eventually,

01:03:58 ◼   ► especially have 192 megs of RAM or gigs of RAM, eventually it will load in, right? And eventually

01:04:04 ◼   ► you can scroll your list of 10,000 items and it will, you know, it's a little bit blinky and

01:04:09 ◼   ► stuttery, but it's still pretty smooth. John, have you tried this on Tina's computer? I'm not trolling

01:04:13 ◼   ► you right now because this, the performance problems you're describing on your computer,

01:04:16 ◼   ► I'm not having on mine. I tried it on my, you can see the same thing on the phone too.

01:04:20 ◼   ► Try it on the phone. Okay. You didn't see the blank. You didn't see the blanking. Like it,

01:04:23 ◼   ► it, it blanks for variable amount of time. It blanks for like a split second, like a blink of

01:04:29 ◼   ► an eye. No, I'm not on my phone. I'll send you, I had it a long enough time to screenshot it on my

01:04:32 ◼   ► phone. It is blank for a long enough time for me to stare at it and take a screenshot. Right. And my

01:04:36 ◼   ► phone was my measurement of like, look, this is, you know, this is a good baseline. Right. And like

01:04:41 ◼   ► I said, Chrome does way better than WebKit, but obviously if I'm doing it, uh, well, actually I could

01:04:46 ◼   ► use, I could embed like the blink engine in my app, but I'm not going to do that. So anyway, I didn't choose to use

01:04:53 ◼   ► WebKit for it, but had I chosen to use WebKit for it, this one aspect of it, how quickly it can draw

01:04:59 ◼   ► this and how smooth it can scroll it would be better. What would not be better? I think is say

01:05:05 ◼   ► sortable column headers, because if I did that naively in HTML, uh, in JavaScript, the performance

01:05:10 ◼   ► would be horrendous. What I would have to do is essentially re-implement NS table view in JavaScript,

01:05:14 ◼   ► which many people have done like where it's like, okay, well, I'm not actually going to redraw

01:05:18 ◼   ► everything. I'm just going to have a fixed number of cells. I'm going to recycle them and I'm going to

01:05:21 ◼   ► refill them with content. And when you tell me to sort, I'm going to sort the data store behind the

01:05:25 ◼   ► scenes and then redisplay the window of them that you're looking at, like all the stuff that NS table

01:05:29 ◼   ► view and lazy V stack are doing behind the scenes. You can also do that in HTML, but either I would

01:05:33 ◼   ► have to implement it all myself in HTML and JavaScript, or I have to find a third party framework that does

01:05:37 ◼   ► that of which there are a thousand, which is part of the problem. Cause I have to find one of those

01:05:41 ◼   ► thousands to embed in my app. And then finally I would be communicating a fairly, uh, large amount

01:05:48 ◼   ► of app state in and out of a web kit view through the, the slurping straw of JavaScript. Uh, uh, and I

01:05:57 ◼   ► did not relish that even doing it the way I did it, where I have app kit and Swift UI views communicating

01:06:02 ◼   ► and both trying to manipulate a fairly high volume of data, uh, in real time up to sync everywhere.

01:06:10 ◼   ► That was difficult enough to do between Swift UI and app kit throwing web kit into the mix would be

01:06:15 ◼   ► even more difficult, but I just, I, this is a good, interesting thing to note that the conventional

01:06:21 ◼   ► wisdom about quote unquote native apps and how much better they are and how much better the

01:06:26 ◼   ► performance is and how you can always tell when something is janky in a web kit. Now, you know,

01:06:31 ◼   ► with the caveats, I said, I am an expert web developer. I am not an expert Mac OS or iOS

01:06:37 ◼   ► developer. So maybe someone who was a better Mac OS developer than me could do a better job. Uh, I

01:06:43 ◼   ► think I did an okay job on the app kit table view. If you two have the latest, uh, test slide version

01:06:48 ◼   ► of the thing, you can run it against something and get a big review window and scroll it. It's all right.

01:06:52 ◼   ► You know, it's fine, but it's not as smooth as that web kit view, is it? It's not as smooth as that

01:06:59 ◼   ► web page. And that is disappointing. So for whatever it's worth it, native dev should be

01:07:06 ◼   ► faster. Now the, the most common trick that Apple's frameworks use, and I presume other platform

01:07:13 ◼   ► frameworks probably do similar things. It shouldn't matter really how many items are in a scrolling

01:07:19 ◼   ► list for the list performance with the trick they usually do is they, you know, if, if the list,

01:07:26 ◼   ► you know, suppose on screen, you can fit 10 cells. Well, as you scroll through a list of, of a hundred

01:07:32 ◼   ► thousand items, it only keeps like 12 cells alive in memory. It just recycles their content. And so

01:07:39 ◼   ► it has like, you know, the 10 cells that fit in the screen and it has like one above and one below.

01:07:43 ◼   ► So as you partially scroll, that's already loaded. And then as you scroll the list, all it's doing is

01:07:50 ◼   ► swapping in the content of those same 12 cells. So it isn't like allocating everything. It isn't

01:07:55 ◼   ► rendering the entire list. It's just rendering the part that you are looking at. So theoretically it

01:08:00 ◼   ► should be fairly linear. Like the performance of the list should be about the same no matter how many

01:08:06 ◼   ► items it has. Now, there are a few things that can break that assumption and require the frameworks to like

01:08:13 ◼   ► load all the items or to render all the cells. That can be things like if they are variable heights and you

01:08:19 ◼   ► want an accurate scroll indicator of where you are in the, in the list position, then the framework has to render

01:08:25 ◼   ► every cell to know, well, how tall are all the cells? So I know how tall is the total view. So I know where to put the

01:08:32 ◼   ► scroll indicator. And there's also things like, well, where, you know, where the cell, like cell

01:08:37 ◼   ► content is, does one cell's content depend on another cell's content or does something depend on the

01:08:42 ◼   ► content of all the cells in order to render it? And so there, there are little pitfalls you can fall

01:08:46 ◼   ► into that will require the framework to, to load or render everything rather than loading and rendering

01:08:53 ◼   ► only what is on screen and kind of paging in the data dynamically. And it can be very, very easy to

01:08:59 ◼   ► accidentally fall into one of those pitfalls. And this was true of both UI kit and swift UI app kit.

01:09:05 ◼   ► I never really used, so I don't really know, but definitely UI kit and swift UI both had the

01:09:10 ◼   ► potential for a UI table view or a list respectively, or a lazy V grade or whatever. They, they all had

01:09:18 ◼   ► the potential to make some small decision or some small mistake or not flag something correctly in the

01:09:25 ◼   ► code. And it would have to render the entire list every time. So I'm guessing that now, and

01:09:30 ◼   ► on iOS, I can tell you, I don't have this problem. Like using swift UI list on iOS, like I tested my

01:09:36 ◼   ► playlist screen with a hundred thousand items and it scrolls just as well and just as smoothly as it does

01:09:42 ◼   ► with 20 items. Um, so I'm pretty sure I don't have this problem with overcast and I, that's just,

01:09:48 ◼   ► let's literally, let's say swift UI list.

01:09:49 ◼   ► I don't think you would ever have a, uh, overcast playlist. It's 150,000 items either. So it's not

01:09:53 ◼   ► really something you need to worry about too much.

01:09:55 ◼   ► Well, you'd be surprised what people try to do, but that's why I have a test account that has a

01:10:01 ◼   ► hundred thousand podcasts in it. Like, trust me, people do some, some interesting stuff. Uh, anyway,

01:10:06 ◼   ► so I can tell you the swift UI, like this is not an inherent problem to swift UI in general as a

01:10:12 ◼   ► concept. It has that same optimization that UI table view has of only loading certain cells on screen

01:10:18 ◼   ► and buffering in like, you know, changing their content. Like it does that same thing,

01:10:21 ◼   ► or at least it can do that same thing on iOS where I've used it. Now, the problem is again,

01:10:27 ◼   ► there are all these different pitfalls. Like you could be inadvertently triggering it to do

01:10:32 ◼   ► a full render with some detail of how you've implemented it. Or it's also possible that that

01:10:38 ◼   ► optimization doesn't work or it doesn't work correctly on Mac OS because swift UI on Mac OS is a little bit

01:10:45 ◼   ► of, it's like they don't, it's not nearly as, as tested and mature as it is an iOS. So I can tell

01:10:52 ◼   ► you, this is probably not a problem with swift UI overall, but it might be a problem with swift UI,

01:10:57 ◼   ► the way you are using it, or it might be a problem with swift UI on the Mac.

01:11:00 ◼   ► Oh, I can tell you, I know all those things that you just said. And, uh, I'm pretty sure that is not

01:11:06 ◼   ► what I'm running into because you can very easily trigger it so that, you know, for example, use list,

01:11:11 ◼   ► use V stack instead of lazy V stack. If you want to see what it looks like when it loads all of them

01:11:15 ◼   ► up front, use just plain V stack without the lazy. And the difference is stark. You will just get a

01:11:21 ◼   ► blank screen and a beach ball for minutes. It's not subtle, right? The, the, and you know, even like on

01:11:28 ◼   ► the NS table view thing, like all these, obviously they're all the same height. They're all fixed.

01:11:33 ◼   ► They're all not doing computation. Like it's just, you know, all the optimizations I know about from

01:11:37 ◼   ► app kit stuff, applying them to swift UI. Like it's so clear that what the problem is, is not that it's

01:11:42 ◼   ► not doing the thing because it is, you can, you can literally see it doing it. Like you can see lazy

01:11:46 ◼   ► V stack recycling those cells. And like, you know, it's doing it. The reason you know it is because

01:11:51 ◼   ► you load a thousand, 10,000, a hundred thousand, they perform exactly the same. Like there's no

01:11:54 ◼   ► difference in the performance. The problem is the thousand performance is not good enough. Like the

01:12:00 ◼   ► hundred performance is not good enough. The hundred and fifty thousand performance is exactly the same

01:12:05 ◼   ► as a thousand performance. They're both not good enough. Like it's so clear that it is, it's doing

01:12:11 ◼   ► the thing you described just like NS table view is right. There's nothing that's happening that is

01:12:15 ◼   ► like subverting that optimization. Now there may be other things that are happening that are

01:12:20 ◼   ► making it like slower, but like the basic optimization of just show some, a small number

01:12:24 ◼   ► of cells and recycle the content is absolutely happening. And like, you know, I did, I did the

01:12:29 ◼   ► thing I didn't describe as part of the debugging process, but when it was first happening with my

01:12:32 ◼   ► 50 UI view, I said, all right, start over a new test app, uh, list. All it is a list with the word

01:12:38 ◼   ► hello in it a hundred times, right? Strip it down to nothing. How fast can it be? And then like build up

01:12:43 ◼   ► from there a constant string in a hundred thousand, you know, a thousand, a hundred thousand or whatever,

01:12:48 ◼   ► just empty app, nothing in it. Like, just let's see what the performance is like. And I can tell you

01:12:52 ◼   ► having built up from zero, from like the simplest thing you can possibly have, right. Building up

01:12:58 ◼   ► slowly to be something approaching a UI, the performance gets crappy so fast. Like it's, it

01:13:04 ◼   ► doesn't, you know, it's not like it becomes like unusable, but like the smoothness, like, Oh, this is

01:13:08 ◼   ► with the word. Hello. It seems pretty smooth. This is great. Right. And then you add like, Oh, can I have

01:13:12 ◼   ► another word in there? Hmm. I'm starting to get a little bit like there's still constant. Can I have

01:13:17 ◼   ► a third one? Maybe right. Justified. Oh no, it's all like it. It's not like it's terrible, but it

01:13:24 ◼   ► doesn't feel like it should. It doesn't feel like that webpage. It doesn't feel totally smooth. And

01:13:30 ◼   ► like, that was the thing I was doing of like, is there something that was like, is there something I

01:13:34 ◼   ► can do with the content? Is it, is the problem? The content is a problem like the data model or where

01:13:38 ◼   ► it's coming from, or like, let me just eliminate. There's, you know, there's no data model. It's

01:13:42 ◼   ► literally constant strings, right? You know, can I get acceptable performance in like the best case

01:13:48 ◼   ► scenario? And as I slowly added things besides the word, hello, it just immediately started to feel

01:13:54 ◼   ► not that smooth. Even just the word, hello, by the way, if you compare just the word, hello to an

01:13:59 ◼   ► NS table view with the word, hello and a table view stomps all over it on the Mac, right? It's still,

01:14:03 ◼   ► it's a, it's a, it's a table that is recycling cells with the word, hello in every cell. That's all it is,

01:14:08 ◼   ► right? It's a fresh new app. There's no data model, right? And NS table view is just faster,

01:14:12 ◼   ► right? So that shows immediately that SwiftUI on macOS has a long way to go to catch up in the

01:14:19 ◼   ► naive case to the responsiveness of AppKit. But both of those things seem to have a real far way to go to

01:14:27 ◼   ► catch up with the stupid brute force implementation of HTML and CSS with no recycling of cells, no clever

01:14:37 ◼   ► anything, just render it all. Just render it all immediately now and scroll it as smooth as glass

01:14:45 ◼   ► on your phone or on like, and any computer, like web technology is amazing, right? Like I said, not in

01:14:54 ◼   ► every aspect because of, again, once I start sorting column view headers, it's like, guess what? You're

01:14:58 ◼   ► re-implementing NS table view. You're re-implementing UI table view. Like there's a reason those optimizations

01:15:03 ◼   ► exist. There's a reason they've been re-implemented in the web and things start to tumble downhill pretty

01:15:07 ◼   ► quickly once you're doing everything in JavaScript versus doing it in Objective-C or Swift. Like

01:15:10 ◼   ► I'm not saying web technology is better than native and it's not the case. I'm saying that on the Mac

01:15:17 ◼   ► specifically, this is definitely a functional gap where I would have been very disappointed by the

01:15:23 ◼   ► performance. And like, again, I'm not experienced on the platform. So obviously there may be some things

01:15:28 ◼   ► that I'm doing wrong, but I asked a lot of more experienced people and every single thing they

01:15:31 ◼   ► told me to check out, it's like already doing that, already doing that, already doing that. Like

01:15:35 ◼   ► I was able to eke out some more performance, you know, it was already acceptable in NS table view,

01:15:40 ◼   ► right? And I was able to make it a little bit better. It's fine. Like it's okay. It just bothers me that

01:15:48 ◼   ► any amount of effort should be required on the Mac with any of Apple's native, uh, platforms to try to

01:15:56 ◼   ► match the performance of a naive HTML page that someone could slap together on geo cities.

01:16:02 ◼   ► It wasn't, it wasn't fast back in the geo cities days, but anyone can learn HTML and type those

01:16:06 ◼   ► tags and they can be lowercase. They can be capital. You don't even have to close them. Right.

01:16:09 ◼   ► The thing will just scroll like butter. So anyway, that was my journey this week on that screen.

01:16:15 ◼   ► I re-implanted it at least five times, ended up at NS table view. Performance is now acceptable.

01:16:20 ◼   ► Uh, that's probably where I'm going to ship in 1.0, uh,

01:16:24 ◼   ► may be revisited in future versions if I can get the web kit thing to work, but probably not.

01:16:29 ◼   ► Wow.

01:16:30 ◼   ► That was a journey, John. That was a journey.

01:16:33 ◼   ► Journey for me, man. Yeah. You want to write, rewrite the most complicated screening you're out

01:16:36 ◼   ► five times in a week? Don't recommend.

01:16:38 ◼   ► Nope.

01:16:38 ◼   ► Do not recommend.

01:16:40 ◼   ► I do not.

01:16:41 ◼   ► I'll do the last two items quick.

01:16:43 ◼   ► One, I'm working on voiceover stuff.

01:16:44 ◼   ► I am lousy at it. If you two have any voiceover tips, please send it to me.

01:16:48 ◼   ► I find it so hard to figure out where and how to put the right, like, uh, modifiers on the right

01:16:53 ◼   ► elements to get it to say same things when I use voiceover.

01:16:56 ◼   ► Cause like, if I put it on like the parent element, it stops saying the things about the child elements,

01:17:00 ◼   ► but I want it to say that the parent element is this larger thing. And anyway, I'm no voiceover

01:17:04 ◼   ► expert, but I'm trying. So that is another thing I'm struggling with this week.

01:17:08 ◼   ► Well, so very, very quickly, very quickly, if you think about call sheet and the right

01:17:12 ◼   ► hand side of like a person or a movie or something like that, there'll be like a title and then

01:17:17 ◼   ► below that a runtime. And there are modifiers that you can use to tell voiceover treat these

01:17:25 ◼   ► two things as one thing. So instead of saying, well, and I forget exactly how it works with

01:17:30 ◼   ► something, it would say something like, you know, a release date title, October 24th, 2024.

01:17:36 ◼   ► Well, now it says like, you can have it say, you know, released on October 24th,

01:17:40 ◼   ► 2024 or something like that. And you can do that pretty easily. So if that's what you're

01:17:44 ◼   ► talking about, you and I can talk after the show and I can show you how I did that.

01:17:47 ◼   ► Yes. Please tell me a lot of my problem is like the, I have a lot of things like laid out like

01:17:51 ◼   ► grid views and stuff. And so the label and the value are separated. So I can't even put one

01:17:55 ◼   ► modifier on both of them. So it's, it's a little true. Like, you know, anyway, I, I'm, I'm, I'm not,

01:18:00 ◼   ► I know it's not going to be the voiceover support is not going to be great, but I want it to

01:18:04 ◼   ► be okay. And so I'm trying to get to the level of like, I could use it in my eyes closed and

01:18:08 ◼   ► sell what the things are. I wanted to say reasonable things for every item and just figuring out

01:18:12 ◼   ► where I can get it to say the right things. It's a little bit tricky. Oh, and you'll be

01:18:16 ◼   ► shocked to learn the controlling focus in Swift UI and Mac is terrible.

01:18:20 ◼   ► Oh, it's terrible on iOS too. I was fighting that earlier today.

01:18:23 ◼   ► It's worse on the Mac. I believe it's so bad.

01:18:26 ◼   ► Yeah. There's the new, does the focus state stuff exist on Mac yet?

01:18:29 ◼   ► Yeah, it is.

01:18:30 ◼   ► Yeah. That's it's, it is, it's a little limited.

01:18:33 ◼   ► It's the way it interacts in the hierarchy is bananas. Like doing things on the, on the

01:18:38 ◼   ► parent view overrides things in the child viewing. Like, but I don't want it. Like the whole point

01:18:42 ◼   ► is if I override it in the child, like why is the parent taking over? Like, oh, it just makes

01:18:46 ◼   ► certain things like very difficult. So I'm struggling.

01:18:50 ◼   ► Final item, uh, analytics. I said in the last show, I didn't want to deal with it at all.

01:18:54 ◼   ► Uh, having all the feedback from the Tesla light testers on it, by the way, I want to thank all

01:18:57 ◼   ► the ATP members. Casey was totally right. Uh, you are all great testers. I have so much feedback,

01:19:02 ◼   ► so much of it. Great. Just appreciate all of it. Uh, it also quickly led me to learn that I need

01:19:09 ◼   ► analytics because trying to get a sense of what's going on. I was not able to do that by it. And I'll

01:19:18 ◼   ► tell you, I'm reading everybody's feedback. I cannot respond to all of it. If I responded a lot

01:19:22 ◼   ► of your feedback, all I would do all week is just respond to feedback. So I thank you for all your

01:19:25 ◼   ► test flight feedback, but I can't actually respond to you all. It doesn't mean I'm not reading it. I am.

01:19:30 ◼   ► But anyway, I need analytics. Unfortunately, um, a, uh, company that is apparently a friend of the

01:19:36 ◼   ► show offered me a free account for their analytics service, which I gladly accepted. I probably

01:19:41 ◼   ► wouldn't have done this if they had not given me a free account. So thank you to them. Uh, and I am

01:19:45 ◼   ► trying it out and collecting analytics and seeing what it can tell me. I'm fighting a little bit

01:19:51 ◼   ► with the analytics backend, but at the very least the front end, uh, is doing stuff. Um, what am I

01:19:56 ◼   ► collecting? Just numbers. How many items did you scan? How many files? How many folders? How many

01:20:00 ◼   ► errors did you encounter? How many bytes did you scan? How many bytes did you reclaim? How many bytes

01:20:03 ◼   ► could you have reclaimed? Um, you know, how many times did you launch the app? I think I just listed

01:20:08 ◼   ► everything that I'm collecting. It is completely anonymous. There is no, uh, you know, no personally

01:20:13 ◼   ► identifying information whatsoever. It's just a bunch of numbers. Uh, and yeah, that's it. And so

01:20:19 ◼   ► it's given me some insight at least into the, uh, the testers. And, and I was glad I liked this, uh,

01:20:24 ◼   ► analytics package package because incorporating to the app took like two seconds. It was straightforward

01:20:28 ◼   ► to do. I am not enjoying the backend where I get to analyze this data because it is beating me up with

01:20:34 ◼   ► a free language that I do not like. Uh, but you know, it is what it is. So I will probably ship with that

01:20:40 ◼   ► analytics in there. So, um, one, I, I, I, I'm sure he won't mind me sharing this. Um, one of the most

01:20:48 ◼   ► ingenious things I ever heard from underscore, uh, is that for one of his apps for analytics,

01:20:54 ◼   ► he was just having the app just make a URL request to his server and encode a bunch of stuff in the URL.

01:21:03 ◼   ► Now this URL was actually not a real page on his server. It would just 404, which would be logged

01:21:12 ◼   ► to the error log, which he could then parse. Yeah. I've done, I've done the exact same thing

01:21:17 ◼   ► my whole career in web dev. Yep. That is a common thing. So it actually is like a, like a, a reasonably

01:21:23 ◼   ► easy. Absolutely. Because you, because if you're at a big company, you already have some system that

01:21:27 ◼   ► is ingesting your logs and like you can use it to analyze them. Just make an HTTP request, put data

01:21:33 ◼   ► in, in the URL and then take your law, your thing you already paid for. It's analyzing your logs and it

01:21:40 ◼   ► can extract stuff from the query string and you can, you know, decode it and deparse it and decrypt it and,

01:21:44 ◼   ► you know, slice it and dice it. Yep. It is the world's jankiest analytics system. Yeah. And you can,

01:21:51 ◼   ► you know, and if you think about like, you know, what you need for privacy protection is basically

01:21:55 ◼   ► like don't associate anything with people's IP addresses. Like that at this context, like that's

01:22:01 ◼   ► basically all you need to do is like, don't have any kind of persistent customer identifier in those

01:22:05 ◼   ► requests and don't associate IP addresses with them. You can make a custom HTTP log that has just these

01:22:13 ◼   ► query strings for things of this format and logs it to a log that does not, that does not log IP

01:22:18 ◼   ► addresses with a fairly straightforward engine X or whatever configuration. Yeah. And that's all I want to

01:22:23 ◼   ► know is like, but I just wanted to say like, what is the average number of files scan per scan? So I

01:22:27 ◼   ► just, every, every entry is a number. I just add them all up and divide by the number of numbers.

01:22:31 ◼   ► There's my answer, right? That's it. Like I'm just, I'm literally just, uh, log numbers, but yeah,

01:22:35 ◼   ► trying to, trying to sort of get a feel for that from people's screenshots was surprisingly difficult

01:22:40 ◼   ► because not everyone sent one and just getting a sense of them. Like what happens is like,

01:22:45 ◼   ► I think like the, the outlier standout, like that person who had 150,000 files is kind of an

01:22:49 ◼   ► outlier, 150,000 duplicates, not 150,000 files, 150,000 duplicate files. I don't even forget how

01:22:55 ◼   ► many millions of files were scanned to get that result, but, uh, but yeah, uh, the number, having

01:23:00 ◼   ► the actual numbers is going to be coming in. So I will probably ship with that. Uh, like I said, I'm

01:23:03 ◼   ► pretty happy with the, um, the SDK side of it seems pretty lightweight. And, uh, the performance is

01:23:10 ◼   ► good. Cause obviously when you tell it to log, something doesn't actually do it. It just puts in a

01:23:13 ◼   ► queue and then flushes it later. It's all Swift six compliant, you know? So it's, it was a very,

01:23:18 ◼   ► uh, simple and straightforward, uh, thing to put in there. So yeah. Analytics, uh, they are a thing

01:23:24 ◼   ► and we'll see how it goes. Oh, and the other, the only other thing I put in there is I did put

01:23:27 ◼   ► analytics for like how many people click the help buttons. Like did someone click a help button and

01:23:33 ◼   ► I'll just count up, you know, the app was launched 10 times and the help button was clicked

01:23:37 ◼   ► zero times, stuff like that. Oh yeah. And, uh, test flight testers. Don't forget to pretend

01:23:43 ◼   ► reclaim. I, now that I know from the analytics, a lot of you are not pretend reclaiming. You're

01:23:48 ◼   ► doing the scan and you get to see the numbers and you're like done and done. Don't forget to click

01:23:52 ◼   ► the reclaim button. Even though it doesn't actually get you disk space back, it does everything else.

01:23:57 ◼   ► It does a whole bunch of work and then just throws the work away. Right. But I want, I want you to

01:24:02 ◼   ► make it do that work because in the course of doing that work, it will encounter errors and

01:24:06 ◼   ► then you'll send me those errors and then I'll fix them or try to fix them or whatever. So please

01:24:11 ◼   ► the ratio of the ratio of people scanning to hitting the reclaim button is very low. Please do the fake

01:24:18 ◼   ► reclaiming. I know it will not actually reclaim space. It seems like a waste of time, but it really

01:24:21 ◼   ► helps me because you could do that reclaim and then tell me it crashed the app. It did this like

01:24:26 ◼   ► that's beta testing. You know, it broke my computer. Hopefully it won't break your computer, but you

01:24:30 ◼   ► know, beta testing. If you don't want to use a beta, don't sign up for a test flight. Guess what?

01:24:35 ◼   ► Test flight apps. They have bugs. So to release apps, don't tell anybody. But anyway, test flight

01:24:41 ◼   ► apps definitely do. So if you are a brave tester and you want to be a brave tester, click that reclaim

01:24:46 ◼   ► space button and then cross your fingers and let me know what bad things happen. By the way, I think

01:24:52 ◼   ► for pricing, like we got a few, we got a bunch of feedback on how you should price. I've got a ton of

01:24:58 ◼   ► that through a test flight as well. Yes. Yeah. I, what I have come around to being the best price

01:25:03 ◼   ► is a consumable IAP price per reclaim. Isn't that what I said? Yes, I think it is.

01:25:10 ◼   ► Come on, man. I know. I'm just saying like, I, we like upon further thought and upon, you

01:25:15 ◼   ► know, replaying Casey's argument in my head over and over again, definitely. That's how I was

01:25:19 ◼   ► convinced. That's how I was convinced. Um, you know, upon further thought, I do think like

01:25:24 ◼   ► given all the trade-offs, given your desire for ongoing revenue, given how you want to be

01:25:28 ◼   ► able to fund future things and, and, uh, you know, make the app better to be able to reclaim

01:25:33 ◼   ► more space and everything. And because of the nature of it being like, most people are going

01:25:38 ◼   ► to have most of the value be like this one time upfront thing. You know, I think about,

01:25:42 ◼   ► you know, a, a kind of similar, but not quite a market is those, uh, like SD card data recovery

01:25:51 ◼   ► tools where those are, those are almost always like, you know, you don't get a free trial for

01:25:58 ◼   ► your SD card data recovery tool. Because chances are, if you have a need for that kind of app,

01:26:03 ◼   ► you need it right now, probably once, and then you'll never use it again. Uh, or maybe you'll

01:26:11 ◼   ► use it again, like five years from now where you're, you will again, like desperately need

01:26:14 ◼   ► it right now. So those apps are priced and, and are structured such that like, you know, all

01:26:20 ◼   ► their value is upfront. So they don't like give you a week free or anything. You just have

01:26:25 ◼   ► to pay for it. If you want to recover the data, maybe you can see the data before

01:26:28 ◼   ► paying, but then to actually get the data you have to pay. I think this app has, you

01:26:35 ◼   ► know, a similar, like customer value timing dynamic where like, you know, as, as mentioned

01:26:40 ◼   ► last time for most people, the, the most value they will get out of this app will be captured

01:26:46 ◼   ► the first time they run it. So I think having it be, you pay me, you know, whatever it is,

01:26:52 ◼   ► 10 bucks, like whatever it is, you pay me 10 bucks to do the, the reclaim step. Like

01:26:58 ◼   ► I'll scan it. I'll show you how much you can reclaim for free. And if you want to actually

01:27:02 ◼   ► reclaim, reclaim this space, you pay me 10, 15, 20 bucks, whatever it is. I think that's

01:27:07 ◼   ► the right move. And then if you want to reclaim, if you want to run it again in two years and

01:27:12 ◼   ► get another 50 gigs, a hundred gigs back, it's another 10 bucks. I think that's best. You

01:27:17 ◼   ► could even then, if that is your model, you could even then also have tiered pricing by

01:27:23 ◼   ► how much data is being saved. So like if someone's only going to save 20 gigs, maybe they're going

01:27:28 ◼   ► to have that for like, you know, two bucks or five bucks. If someone's going to save, like

01:27:32 ◼   ► in my case, when I scanned my, my NAS drive, I could save 750 gigs.

01:27:40 ◼   ► It's a good thing. I didn't have the analytics on that because you were literally thrown off

01:27:44 ◼   ► the average.

01:27:45 ◼   ► Yeah. Right. Maybe that's 20 bucks. Like, you know, like I, I think you can, you can see that

01:27:50 ◼   ► scaling, like, you know, maybe a hundred gigs is 10 bucks. Maybe, you know, up to, up to a

01:27:57 ◼   ► hundred gigs to 500, you know, like what you could tier it like that. Um, and then, you know,

01:28:01 ◼   ► if I, if I run it there and that gets me that reclaim perfect. But if I all, if I have

01:28:07 ◼   ► two computers, I think it kind of makes sense to pay for two different reclaims since what

01:28:12 ◼   ► you're, what you're paying for is literally, I am paying to get that amount of space back.

01:28:18 ◼   ► So I really do think that that is probably, you know, there, there are ways in which it's

01:28:23 ◼   ► not perfect, but I think that is probably the best price structure. And I think that will

01:28:28 ◼   ► give you the most bang for your buck, so to speak. Like I think that'll give you the best

01:28:31 ◼   ► income. And I think it will be easier to do things like dynamic pricing to help align the

01:28:38 ◼   ► value that the app delivers to the customers with how much they are then willing to pay for

01:28:42 ◼   ► it.

01:28:43 ◼   ► I think that, uh, the word best in the sentence, uh, the best pricing structure for your app

01:28:47 ◼   ► is doing a lot of work there.

01:28:49 ◼   ► The least terrible pricing structure for your app.

01:28:53 ◼   ► It depends on what you value. I have to say that the, uh, the test flight feedback has

01:28:57 ◼   ► not been as enthusiastic about this approach as you are. But again, test flight is not necessarily

01:29:03 ◼   ► representative either because they're all like ATP members and you know, they're technical

01:29:07 ◼   ► people or whatever. But then again, they're also the people who are going to buy the app.

01:29:09 ◼   ► And anyway, uh, you know, I'm not really worrying too much about pricing this point, except for

01:29:14 ◼   ► dealing with bugs related to pricing, which I'm still trying to make sure I can make sure

01:29:18 ◼   ► everything works the way it's supposed to, uh, you know, be before I ship, I can obviously change

01:29:22 ◼   ► my mind about monetization and stuff. But for now I'm just working on the app.

01:29:26 ◼   ► I obviously agree with Marco, who's in turn agreeing with me that I really think consumables,

01:29:32 ◼   ► I, this is one of the very, very few places other than a game that I think consumable does

01:29:38 ◼   ► make sense. And, and, and I think it's worth considering and you likely will not end up going

01:29:44 ◼   ► that route, which I understand, but I really think you should think about it.

01:29:47 ◼   ► We are sponsored this episode by delete me. You ever wonder how much your personal data is out

01:29:54 ◼   ► there on the internet for anyone to see and easily find with a quick web search. It's so much more

01:29:59 ◼   ► than you think your name, your contact info, your phone number, social security number, getting a

01:30:04 ◼   ► little creepy, your home address, getting pretty creepy. Even that same information about your family

01:30:08 ◼   ► members, which to me is extra creepy. All of that is being compiled by data brokers and is easily

01:30:14 ◼   ► sold online to whoever wants it. And this means your data is just a commodity. Anybody can buy your

01:30:19 ◼   ► private information. You can even find it really easily with web searches for free. This can lead to

01:30:23 ◼   ► identity theft, phishing attempts, harassment, and spam and all sorts of problems. So you can protect your

01:30:29 ◼   ► privacy better with delete me. Here's what they do. They go to the data broker sites. They, you tell them what

01:30:35 ◼   ► information you want deleted and their experts will go and remove it from those data brokers. They send you

01:30:41 ◼   ► regular personalized privacy reports showing what they found, where they found it and what they were

01:30:45 ◼   ► able to remove. They're always working for you. It isn't just like a one time thing. They are constantly

01:30:50 ◼   ► monitoring and removing this information you don't want from these brokers databases. And this makes it

01:30:55 ◼   ► much harder to find your stuff. It shows up in way fewer places. So delete me does all the hard work

01:31:00 ◼   ► of wiping your and your family's personal info from these data brokers. So you can take control of your

01:31:06 ◼   ► data and keep your private life more private by signing up for delete me now at a special discount

01:31:10 ◼   ► for our listeners. Today, you get 20% off your delete me plan. When you go to join delete me.com

01:31:16 ◼   ► slash ATP, use promo code ATP at checkout. The only way to get 20% off is to go to join delete me.com

01:31:24 ◼   ► slash ATP and enter code ATP at checkout. That's join delete me.com slash ATP code ATP. Thank you so much

01:31:31 ◼   ► to delete me for sponsoring our show. All right, let's do some ask ATP. And we start with Jeremy

01:31:40 ◼   ► Kelleher, who wrote probably three years ago, knowing us, but I think it was actually fairly

01:31:44 ◼   ► recently. Wondering about your suggestions for a nerd who will be shopping for their first home soon.

01:31:50 ◼   ► While I'm touring homes, are there tech related questions I should ask? I'm thinking, is there

01:31:54 ◼   ► ethernet running throughout the house? Or is there power in the garage I can use for an EV charger?

01:31:59 ◼   ► I think those questions are great. You're also hitting me at a bad time or really a great time,

01:32:05 ◼   ► depending on how you look at it, because as we'll probably be talking about in the post show,

01:32:09 ◼   ► I'm turning into one of those. It's not CrossFit. No, it's the nerd equivalent. It's home assistant.

01:32:16 ◼   ► And so, um, I think it is not quite as healthy, not quite not nearly as healthy and probably quite a bit

01:32:23 ◼   ► more expensive. Um, it's worth thinking about if you want to do any sort of home automation, be that,

01:32:30 ◼   ► you know, home kit, be it a home assistant, be it whatever. Uh, what is the situation for the

01:32:36 ◼   ► switches in the house? Are there smart switches? And if so, will they convey, you know, will the owner

01:32:41 ◼   ► leave them? Are you talking about light switches? Yes. I'm sorry. Yes. Light switches.

01:32:44 ◼   ► I'm sorry. People don't think of the ethernet switches, but yeah, light switches. Yeah. Let's

01:32:47 ◼   ► say you see a bunch of Lutron Caseta stuff in the house. Are they going to take those with them?

01:32:51 ◼   ► Cause honestly I probably would. Um, and if you, you're going to rip out the light switches when

01:32:56 ◼   ► you move out of your house. Oh, hell yeah. And I'd put it in the regular dumb switches. I absolutely

01:33:00 ◼   ► would. Oh my God. It's like getting the fans off the ceiling. I wouldn't go that far, but,

01:33:04 ◼   ► um, so in this, hold on. So in this scenario, so, you know, Lutron Caseta switch is about 60 bucks.

01:33:09 ◼   ► So in this scenario, you're going to rip out a switch that is probably by that time,

01:33:13 ◼   ► like a decade old, uh, just, and, and, you know, you should probably have an electrician

01:33:18 ◼   ► do some of this types of things too. So it's like, that's never going to be worth it.

01:33:23 ◼   ► Actually, that is true. I'd probably use it as an excuse to upgrade. So maybe I'll take

01:33:26 ◼   ► it all back. Okay. Casey's never going to move. So it'll be fine.

01:33:28 ◼   ► That's also true.

01:33:28 ◼   ► If you buy someone's house who was a smart home enthusiast, chances are what you're going

01:33:34 ◼   ► to find in, if, if they do have like wall switches, it's all X10.

01:33:38 ◼   ► Yeah. Or it's going to be like an old, like, you know, broken, like old thing from, you

01:33:41 ◼   ► know, some standard from 15, 10, five years ago.

01:33:45 ◼   ► X10.

01:33:45 ◼   ► Well, right. Fair. Yeah. But like, you know, it's, it's going to be like, you know, Belkin

01:33:49 ◼   ► Wemo switches that no longer pair to the anything or like, it's going to be like old, broken,

01:33:54 ◼   ► crappy home gear. Like that's, you're not going to find somebody with, with a house full of

01:33:59 ◼   ► caseta switches. Like, you're not that lucky. Like that's, that's not, that's not what you're

01:34:03 ◼   ► going to find. You're going to find somebody with a bunch of cheapo Amazon knockoffs.

01:34:07 ◼   ► Yeah. But leaving that aside, like, I think it's worth identifying, you know, whatever smart

01:34:13 ◼   ► home stuff is there and figuring out what's going to happen with it. But on the assumption

01:34:16 ◼   ► that nothing is there, depending on the age of the house, you might want to maybe during

01:34:21 ◼   ► inspection or perhaps even before figure out, you know, what is it? The, the wire that I'm

01:34:27 ◼   ► thinking of, the common, is that what I'm thinking of? The, the wire that for the thermostats?

01:34:30 ◼   ► Well, for thermostats and I think for smart switches as well.

01:34:33 ◼   ► Oh, a neutral.

01:34:34 ◼   ► Neutral. Maybe that's what I'm thinking of.

01:34:36 ◼   ► How did you forget that word on this podcast?

01:34:38 ◼   ► Right? Seriously? I think I was conflating the two, but yes, a common wire for, as Marco

01:34:43 ◼   ► said, a thermostat or a neutral wire, uh, for light switches. Basically, if the house is old

01:34:47 ◼   ► enough, the switch may not have power unless it's switched on. And that's bad for a smart

01:34:55 ◼   ► switch, right? You want the smart switch to always have power. And then the device that

01:34:59 ◼   ► it's switching may or may not have power depending on whether the switch is on or not. Um, so

01:35:03 ◼   ► you might want to ask about that. Uh, another thing that I think is very important. And I

01:35:06 ◼   ► mean this genuinely is what is the, uh, what are your ISP options where you're living? You

01:35:10 ◼   ► know, I, all three of us now have been spoiled by Fios for 10 plus years. I genuinely think that

01:35:17 ◼   ► if I had the choice between a darned near perfect house in Comcast territory and a house that

01:35:23 ◼   ► wasn't quite as good, but in Fios territory, I'm buying the Fios house every day of the

01:35:27 ◼   ► week and twice on Sunday because it is that much, it truly makes my life as a nerd that

01:35:33 ◼   ► much better. And just the other day I was somewhere, I want to say it was a library or something

01:35:37 ◼   ► and the internet was a little spotty there and it was beyond infuriating. I, I, I don't have

01:35:44 ◼   ► patience at 40, almost 43 years old. I don't have patience for crappy internet. I cannot tell

01:35:50 ◼   ► you how amazing Fios has been for me. And I think I speak for all three of us. So I think

01:35:53 ◼   ► I would look into that.

01:35:54 ◼   ► And on the ISP front, by the way, I feel this pain, not personally because I like Casey, uh,

01:35:59 ◼   ► intentionally bought a house that could get Fios. Um, my relatives unfortunately live in places

01:36:04 ◼   ► where their ISP options are very limited and have been terrible. So every time we do FaceTime

01:36:09 ◼   ► calls with people, they look like potatoes because their upload is terrible. Also they have terrible

01:36:16 ◼   ► lighting in their house, but other than that, their upload is terrible. And they, we look clear to them

01:36:21 ◼   ► because it's like, you know, some crappy Comcast package where their download is perfectly adequate,

01:36:25 ◼   ► but their upload is like nothing. Right. And so a very exciting development. My sister recently said,

01:36:31 ◼   ► Hey, there's this company in the neighborhood there. They're say they're offering me, you know,

01:36:36 ◼   ► internet service for X amount, Y, Z or whatever. And I was like, do it, take it, do it. Like you

01:36:42 ◼   ► need to get off of Comcast. Right. It was, I don't know if I remember the name of the company is,

01:36:46 ◼   ► but it's one of those, like, you know, like, I don't know if it's municipal fiber, but some kind

01:36:50 ◼   ► of like one of those upstart fiber companies that's like, but I've never heard of this company.

01:36:54 ◼   ► I'm like, it's like, do it.

01:36:55 ◼   ► Names that sound like Skynet, but are not Skynet.

01:36:58 ◼   ► It's just like something I'd never heard of. I'm like, whatever it is, do it. How many years

01:37:04 ◼   ► have you been suffering under the yoke of Comcast, Xfinity, whatever the hell it's called now,

01:37:09 ◼   ► do it. And guess what? She did it. Uh, and her upload speed went from like 0.5 megabits per second

01:37:17 ◼   ► to 600. You have, and the other thing is she called me and she was like, uh, there's something,

01:37:23 ◼   ► you know, I can't, I'm not getting, I did a speed test and it's showing me these numbers

01:37:26 ◼   ► and they're not, you know, the speed test up here on the third floor is not as good as

01:37:29 ◼   ► it is in the basement or whatever. And it's like, um, well, first of all, that number is

01:37:34 ◼   ► like, you know, 200 at that point. And it used to be like 0.5 megabits. So like, congratulations,

01:37:40 ◼   ► that's way better than it was. But second of all, I debugged the situation and what they did,

01:37:43 ◼   ► they had installed, uh, the ISP router, like where, where her old, uh, you know, Xfinity router

01:37:49 ◼   ► was like, and it's like next to the TV and like the sort of downstairs, like split

01:37:53 ◼   ► level, like entertainment room or whatever. Uh, but she had an Eero system that I had given

01:37:57 ◼   ► her one of my old Eeros. I gave her an installed at her house to try to like mesh network the

01:38:02 ◼   ► wifi from what is essentially the basement up to like the third floor or like loft area where

01:38:06 ◼   ► she's got her iMac on wifi essentially. And she said that Eero system for ages. And so she's

01:38:12 ◼   ► like, I, I hooked up the Eero to try to get better signal to the Mac upstairs, but it's not

01:38:16 ◼   ► working. I looked at the way everything was configured and it was, she had two wifi networks,

01:38:21 ◼   ► both somehow with the same SSID, but they were like fighting with each other. Uh, in the end,

01:38:26 ◼   ► the solution was unplug all the Eeros, put them into a Ziploc bag, find someone else who wants them

01:38:31 ◼   ► and use the one router that this weird janky fly by night company that gives you fiber gave her

01:38:39 ◼   ► that's in the basement. And now she's at 400 megabits per second, up and down symmetrical from

01:38:44 ◼   ► a wireless iMac on the third floor. I'm like, welcome to civilization. ISPs make such a big

01:38:52 ◼   ► difference. You don't think of, Oh, you're such a premium. You need to have your fast speed for

01:38:55 ◼   ► your torrents. No, no. It's, it's about human connection. Do you do FaceTime calls with your

01:38:59 ◼   ► family or like Google video? Like this is how we see whenever this is, this is how we see our

01:39:04 ◼   ► relatives, people who aren't flying around from place to place, right? We see the other people in

01:39:08 ◼   ► our family and talk to them through two-way video. And if people have poor upload, you can't see

01:39:15 ◼   ► them. It's not a thing that you can control yourself, but you know, so this is the gift

01:39:19 ◼   ► you give to everyone else. Get a good ISP with good upload speed. Do not ignore the Xfinity thing that

01:39:24 ◼   ► say, Oh, look at this big number. You're going to get down. Who cares about down? You want symmetrical

01:39:28 ◼   ► and cable tend not tends not to be symmetrical for a lot of historical and technical reasons.

01:39:33 ◼   ► and fiber tends to be. So yeah, look for a house that has a choice of fiber ISPs, not just Verizon,

01:39:40 ◼   ► but there's all sorts of other ones that are around. Uh, and they, some of the, again, I don't

01:39:44 ◼   ► even remember the name of this company. Anything is better than massively asymmetrical and expensive

01:39:49 ◼   ► cable. Yeah. And, and, you know, there's a number of, you know, shortcomings for nerds that houses

01:39:55 ◼   ► might have that you could fix, you know, if you want to either yourself or maybe by applying small or

01:40:00 ◼   ► maybe large amounts of money, usually your availability of ISPs cannot be fixed with any

01:40:06 ◼   ► amount of money. Sometimes you can like pay somebody to run a cable to your house, but that's rare.

01:40:09 ◼   ► You're going to pay them huge amounts of money, like enough to buy five more houses.

01:40:12 ◼   ► Right. Yeah. Like for the most part, like whatever ISPs are available for your address,

01:40:16 ◼   ► you're stuck with that and it's very hard to ever change it. So my sister has been in the same town

01:40:21 ◼   ► for, I don't know, 15, 20 years. Finally, she has one ISP choice. It's not like RCN or Xfinity or

01:40:27 ◼   ► whatever. Yeah. And so like, you know, when you're thinking about like, you know, going back

01:40:30 ◼   ► to Jeremy's question here, like, is there power in the garage you can use for an EV charger? Well,

01:40:34 ◼   ► if there's not, usually the circuit breaker box is in the garage. So it's pretty easy for an

01:40:40 ◼   ► electrician to come out and add that without too much cost or hassle, because you're adding something

01:40:44 ◼   ► in a garage next to the circuit breaker. Like that's fine. That's one of the, but I already

01:40:48 ◼   ► actually answered Jeremy's email from who knows how long ago, because I didn't want to leave them

01:40:52 ◼   ► hanging about this, but that was the main piece of advice I had is when purchasing a home and when

01:40:56 ◼   ► you're looking at a home. And I was giving advice from the perspective of somebody who is, who did

01:41:02 ◼   ► the one amount of home shopping he has ever done in a very hot real estate market, where the idea of

01:41:08 ◼   ► picking a house based on what it has is laughable, let alone like demanding that you have things.

01:41:14 ◼   ► It's just like trying to find a house that will accept your bid and, you know, waiving the inspection

01:41:19 ◼   ► and just accepting that a family of rats lives there or whatever. Cause that's what it's like

01:41:23 ◼   ► in a hot real estate market. And you don't forget to ask to, to offer a 20% over asking. Anyway,

01:41:28 ◼   ► um, the, the way I'd framing it is questions is like finding out what you're going to have to do to

01:41:35 ◼   ► the house when you buy it, to factor that into your equations. Not like you should look for a house

01:41:40 ◼   ► that has this. Marco's right. The ISP thing is the one thing you have to do that because you can't fix

01:41:44 ◼   ► this, but almost everything else, especially if you're in a hot real estate market is like,

01:41:48 ◼   ► um, I'm giving you advice. So you know what you're in for, not so that will influence your choice.

01:41:53 ◼   ► You should not forego a house that doesn't have what I'm about to describe, but just be aware that

01:41:58 ◼   ► the house you're buying doesn't have this because you're going to have to pay for it yourself. And I

01:42:02 ◼   ► think the one thing I suggested was find out how many amps are supplied by the, the, the circuit breaker,

01:42:10 ◼   ► the panel, like how many amps of power are available in this house? I forget what they come in,

01:42:14 ◼   ► like a hundred, 150, 200, or whatever. You kind of have to know how much power is already in the

01:42:20 ◼   ► electrical system in the house and how close to the limit of that power of the house is. Very small

01:42:25 ◼   ► house might not need that much. Very big house might need more. Does it have air conditioners? How many,

01:42:28 ◼   ► you know, air conditioning uses it have? What is all, what is the heating and cooling like? And then you

01:42:33 ◼   ► have to add to that the loads that you think you're going to add with your nerd stuff. Do you have an EV?

01:42:37 ◼   ► Do you have a bunch of computers? Do you have a big TV and entertainment center? Do you have a big stereo?

01:42:41 ◼   ► Like that's going to add up. You should do some kind of back of the envelope math and figure out,

01:42:46 ◼   ► Hey, this is a 3000 square foot house with 100 amp service. Nope. I'm going to have to upgrade that.

01:42:52 ◼   ► That's why I'm telling you, look at, look at the panel, like find, especially old houses are way

01:42:57 ◼   ► under provision for modern standards. Yes. Despite the fact that they had incandescent lights,

01:43:01 ◼   ► they didn't have EVs. Right. So be aware that when you're looking at a house again, don't not buy it,

01:43:06 ◼   ► but fact, you know, go to electrician and say, Hey, if I want to upgrade the service and they can,

01:43:10 ◼   ► they just run another line from the street or like connect the lines already running from the street.

01:43:13 ◼   ► Like it's not, it's not like you can't do it, but you have to pay an electrician to do it because you

01:43:17 ◼   ► will die. Okay. Right. Um, and it's going to cost you a lot of money because it is dangerous work that

01:43:25 ◼   ► only electrician can do. You want to know that number. So that was my number one piece of advice

01:43:31 ◼   ► for any tech nerd buying a house, find out how much power is going to it. And if you will have to

01:43:36 ◼   ► on day zero, before you move in, upgrade the service to your house and pay an electrician to do that.

01:43:42 ◼   ► Yeah. Well, and also that, that typically involves the electric company as well. Like you have to get

01:43:46 ◼   ► approval from them to upgrade the service and you will then have to replace probably your entire

01:43:50 ◼   ► breaker box. Like it, it's, so it is, it's quite a job, but it can be done. But it's, you know,

01:43:55 ◼   ► it's probably like a few thousand bucks.

01:43:56 ◼   ► And sometimes it has to be done. Like if you want to live a sane life with like a lots of

01:44:02 ◼   ► electronic equipment and it's definitely an EV. Yeah. And you can do stuff like, you know,

01:44:06 ◼   ► smart breaker panel boxes that'll make better use of limited service, but usually upgrading your

01:44:10 ◼   ► service is actually pretty much the same price as a, as a smart breaker box. So you might as well

01:44:15 ◼   ► just upgrade the service. But, uh, sometimes if you don't have that option,

01:44:18 ◼   ► the smart breaker boxes terrify me. It's just like, yeah, we're just going to take power from this part

01:44:22 ◼   ► delivered over there. It's like, I just, I need like, let me do that. I'll turn lights off

01:44:26 ◼   ► and stuff. I just need, I need it to be possible to cook in the oven or on the microwave at the same

01:44:31 ◼   ► time. I need to be able to do that. Like without the lights going out. So yes, please check your

01:44:36 ◼   ► service. Yeah. And I think a corollary to that is how many open slots do you have in your box? I mean,

01:44:41 ◼   ► it very well, maybe that you were going to replace it anyway, but if you're bursting at the seams,

01:44:45 ◼   ► maybe, maybe you have 500 amp service. I'm being facetious, but you know, you have 500 amp service,

01:44:51 ◼   ► but you have one little itty bitty slot for a new circuit breaker. Well, guess what?

01:44:55 ◼   ► The whole kitchen's on one circuit breaker. That's the thing you want to know.

01:44:58 ◼   ► That's the other, yeah, right. That's the other thing. But, but you know, if you only have one

01:45:02 ◼   ► slot available, then you're either going to need to have a daughter, you know, box or what have you,

01:45:06 ◼   ► or you're probably going to need to replace the whole damn thing and rejigger it all. So

01:45:08 ◼   ► that's also worth looking at. Um, but in terms of nerd stuff, I mean, yeah, is there Ethernet running

01:45:14 ◼   ► throughout the house? I think that's a fair question. Um, if not Ethernet,

01:45:17 ◼   ► is coax running throughout the house. I have had extremely good luck with, as I've talked about

01:45:22 ◼   ► many times in the past, uh, Mocha bridges, which are basically things that go from Ethernet to coax

01:45:28 ◼   ► and then back again. So my house is sort of kind of wired for Ethernet nerds. Just let it go. It's

01:45:33 ◼   ► fine. Uh, my house is sort of kind of wired for Ethernet because I have these boxes in a couple of

01:45:38 ◼   ► places and I just ride on the coax and it's surprisingly fast. It's not as good as real Ethernet,

01:45:42 ◼   ► but it's close. It's certainly not as good as fiber. Am I right? Uh, but anyways, you know,

01:45:46 ◼   ► I would look at what is the in wall situation for Ethernet for coax and for anything really and see

01:45:53 ◼   ► what's available. But I think for me, that's most everything. Marco, I feel like you haven't had a

01:45:58 ◼   ► chance to offer any unique suggestions. I you've certainly had commentary about ours. Uh, anything

01:46:03 ◼   ► you can add? Yeah. Mainly that like, so yeah, Ethernet running through the walls would be amazing.

01:46:07 ◼   ► You're not that lucky. It's not going to happen. You're not going to find it. I've, I don't think

01:46:10 ◼   ► I've ever seen a house that had Ethernet already in the wall. Or if you did, it's not going to be

01:46:14 ◼   ► like cat six or cat seven. So it'll do one gigabit or whatever. Yeah. So for me, the, the, the question

01:46:20 ◼   ► there is not, is there Ethernet in the walls and is there an EV charger? Cause there won't be either

01:46:25 ◼   ► of those things. But although you'll, you're more likely to find an EV charger these days than

01:46:29 ◼   ► Ethernet. But the question is how hard is it to add it? And that depends on the house. Like one,

01:46:34 ◼   ► what would really help a lot is if the house has a basement or a crawl space under

01:46:40 ◼   ► it and an attic above it, then you can much more easily like run wires, you know, in and

01:46:46 ◼   ► out. Or like, if there's an attached garage, you can kind of go from the garage and go in

01:46:50 ◼   ► and out of stuff. Like basically like, does your house have like utility spaces above, below,

01:46:55 ◼   ► next to, or throughout, uh, any kind of utility clauses, anything like that, where you could run

01:47:00 ◼   ► wires through and access the interior walls of some of the other rooms, like by, by going in

01:47:07 ◼   ► from above or below. So you don't have to like tear up big sections of wall. So the question is not

01:47:11 ◼   ► like, will you find a house with Ethernet? No, you won't. But the question is how involved and

01:47:16 ◼   ► disruptive and expensive will it be to add Ethernet to this house? And you don't necessarily, like,

01:47:22 ◼   ► you know, if you're going, if you're going to have to do that to a house, you don't need

01:47:25 ◼   ► Ethernet in every single room. If you can get it in, in most rooms, that's great. But if, you know,

01:47:30 ◼   ► if you're trying to retrofit it to an existing house and, um, you know, and don't want to tear up

01:47:36 ◼   ► every room or don't want to spend quite that much money to do it, you can just kind of have like, you

01:47:40 ◼   ► know, the greatest hits, like, you know, have, have Ethernet go from like the garage, wherever your

01:47:46 ◼   ► computer will be, wherever your TVs will be, and wherever you think you might need a wireless

01:47:53 ◼   ► access point. Now, if you want to go even, you know, even further, you could, you know,

01:47:57 ◼   ► run Ethernet to anywhere. You might want a power over Ethernet device, like a camera. Um, but that's,

01:48:03 ◼   ► that's more kind of advanced mode. Uh, but yeah, most houses could be well wired for nerds sake for

01:48:10 ◼   ► Ethernet with between like two and four ports. Like if they're well placed throughout the house.

01:48:17 ◼   ► Yeah, I agree. That's all I've got. The only things that are connected to Ethernet and I wired them

01:48:21 ◼   ► myself through my large basement is my computer room. So every single computer that is not a laptop

01:48:26 ◼   ► is connected to Ethernet, uh, and the TV entertainment center. So all my streaming boxes and everything

01:48:31 ◼   ► like that. And my PlayStation is in here in the computer room. So every device that I care about

01:48:35 ◼   ► is on Ethernet, but there's literally only two rooms in the house that have Ethernet. And my security

01:48:40 ◼   ► cameras, those have power going to them through like a little USB-C thing that plugs into a plug that's,

01:48:44 ◼   ► you know, in the garage or whatever. Like, but they just use Wi-Fi because with a good mesh network,

01:48:50 ◼   ► you don't need that many access points to cover my not so big house. So yeah, if you're thinking like,

01:48:54 ◼   ► I got to have Ethernet in every room, you don't, unless you live in some like 50,000 square foot

01:49:00 ◼   ► giant mansion, right? Like just Ethernet in strategic places plus good mesh Wi-Fi will get you covered.

01:49:05 ◼   ► The only other thing I think about related to networking stuff is, I don't know if this is a thing you can

01:49:11 ◼   ► really check because the people you're buying the house from are never going to tell you this or whatever,

01:49:15 ◼   ► like, do your walls have lead in them? Isn't one of those old houses where for some reason,

01:49:21 ◼   ► Wi-Fi cannot penetrate from room A to room B, you know, you're only going to kind of find that out

01:49:26 ◼   ► when you're there. But like the things we're talking about here, this is another reason why if at all

01:49:31 ◼   ► possible, again, don't not buy a house because of these things, but just be aware of them and factor

01:49:35 ◼   ► it into both your budget. And considering like, can we afford this house given that we have to upgrade

01:49:39 ◼   ► service, given that we have to do X, given that we have to do Y. And also the time of like, before

01:49:45 ◼   ► you move in is the time to have somebody ripping apart walls and fishing things through attics and

01:49:50 ◼   ► basements before there's furniture, before you live there. I know that's a luxury that sometimes you

01:49:53 ◼   ► don't always have, but like before you settle in, do the, you know, obviously the, you know,

01:50:00 ◼   ► refinish the floor. It's like before you move your stuff in, right? But even just fishing things

01:50:04 ◼   ► through walls, uh, or, you know, trying to get something into a difficult place, it's a lot

01:50:10 ◼   ► easier to have some, to either do that yourself or have someone else do it when there's nothing else

01:50:13 ◼   ► in your house. And, and, you know, in worst case scenario, if you, if you want ethernet throughout

01:50:18 ◼   ► your house, uh, but it's difficult, you know, to, to get it through the walls or anything like

01:50:22 ◼   ► a lower tech solution might be fine depending on how much jank you can tolerate. Um, like when we were,

01:50:30 ◼   ► when we first bought this house and I, my ethernet wiring wasn't, uh, wasn't installed yet,

01:50:35 ◼   ► I ran the cable out the window and threw into the garage. Like I, cause ethernet is very tolerant

01:50:42 ◼   ► of running long distances through lots of different conditions. And we know Margo's kink, so

01:50:47 ◼   ► origin story. Yeah. So like, I just, I bought like 140 ethernet cable and plugged it into my computer

01:50:54 ◼   ► and ran it out the window and closed the window on top of it. So it wouldn't move and just ran,

01:51:00 ◼   ► you know, through the bushes across the, across like the front of the house. Yeah. It's like

01:51:04 ◼   ► running, it's like running Christmas light wire. You just got to tuck it in different places and

01:51:08 ◼   ► then, you know, under the garage door, like into the garage. It was, and I ran it that way for like

01:51:12 ◼   ► a couple of months and it was fine. Similarly, like, you know, if you like, you don't need necessarily

01:51:17 ◼   ► to have ethernet jacks in the wall. If you need to, you can just like, I mean, depending on again,

01:51:24 ◼   ► where you can kind of hide or get away with this, you could just like drill a hole in the floor and

01:51:29 ◼   ► run a cable from your basement up into the, like, like there's lots of different ways you can do it.

01:51:35 ◼   ► It's pretty tolerant and it doesn't have to be perfect.

01:51:38 ◼   ► That's how my internet gets to my rooms.

01:51:40 ◼   ► Yeah. Right. Like, cause it works. Like, like a lot of times, if you, especially if you have an old

01:51:45 ◼   ► house, like it can be pretty difficult to, to run like professional wiring in, in the walls,

01:51:51 ◼   ► into jacks in the walls, like that could be very disruptive. Unless you're willing to rip open the

01:51:55 ◼   ► entire walls and that's a much bigger project. Right. Exactly. It can be like, you could do it

01:51:59 ◼   ► the way every college nerd did it when we were in college, just like run the cable down the stairs

01:52:04 ◼   ► and tape it to the wall. There's, there's lots of options, but anyway, good, good luck with the

01:52:09 ◼   ► house hunt, uh, Jeremy, if you're still in it, uh, or if you, if you are, if you weren't to begin

01:52:15 ◼   ► with, but yeah, there, there, there are a lot of options, but the thing with most houses, it's,

01:52:18 ◼   ► it's not, will it have this already? Cause it won't. Uh, and if it does, it'll be some

01:52:23 ◼   ► ancient or bad version that you won't want to use. It's more, how easily can this be added

01:52:27 ◼   ► and how much will it cost me? Yeah. Pick your house based on the location. That's stupid.

01:52:31 ◼   ► You know, saying location, location, it's true. That's stupid, but it's true. Pick it based

01:52:35 ◼   ► on the location. All right. The, the, your people's commutes to you, to your jobs, uh, proximity

01:52:40 ◼   ► to public transportation, to, uh, you know, grocery store, all that is going to may have

01:52:46 ◼   ► such a bigger effect on your life. The only reason all these things we're talking about

01:52:49 ◼   ► come in is because you have to factor them into your time and money budget. And so that's

01:52:53 ◼   ► how you're selecting. You're not, you know, like I said, do not reject the house if it's

01:52:56 ◼   ► in the right location. If it doesn't have all these things, if you, if it fits within your

01:53:00 ◼   ► budget to fix all of them, the only one you can't fix is the ISP.

01:53:03 ◼   ► Yeah. It's all about location and fiber ISP access. All right. Thank you to our members

01:53:11 ◼   ► who support us this week. And thank you to our sponsors, Squarespace and DeleteMe. One

01:53:15 ◼   ► of the perks of membership is our weekly overtime, our bonus topic every week. This week in overtime,

01:53:21 ◼   ► we're going to be talking about the Nintendo Switch 2 that was announced. Uh, we don't know

01:53:25 ◼   ► much about it yet, but we know enough to talk about it. So this week overtime, Nintendo Switch

01:53:30 ◼   ► 2 announcement, uh, you can join us at atp.fm slash join. If you want to listen to that overtime

01:53:35 ◼   ► and all the other member exclusive content that we do, including overtime every week and

01:53:39 ◼   ► a bunch of different specials, et cetera. So thank you very much for everybody for listening

01:53:43 ◼   ► and we'll talk to you next week.

01:53:52 ◼   ► And you can find the show notes at ATP dot FM. And if you're into Mastodon, you can follow them

01:54:18 ◼   ► at C A S E Y L I S S. So that's Casey Liss. M A R C O. A R M. And T Marco Armin. S I R A C.

01:54:32 ◼   ► U S A Syracuse. It's accidental. Accidental. They didn't mean to. Accidental. Accidental. Tech

01:54:44 ◼   ► So I alluded to a little bit of home automation talk earlier.

01:54:52 ◼   ► Oh, I can't wait. I can't wait. There's a, there's been a monumental, uh, occurrence in

01:54:57 ◼   ► the Liss household, uh, which literally nobody in the household is even aware of other than

01:55:01 ◼   ► me, but, uh, this is how it goes. Uh, so to recap, we talked, and I believe it was on episode

01:55:08 ◼   ► 376, which we'll put a link in the show notes. We talked a couple of years ago, one of my

01:55:12 ◼   ► pandemic projects as especially nerds will want to do was to make the most cockamamie and ridiculous

01:55:20 ◼   ► Rube Goldberg scenario for alerting myself if the garage door was open. Um, we have a smart

01:55:27 ◼   ► garage door opener, like the physical machine that opens and closes the garage door. Uh, but

01:55:33 ◼   ► it doesn't work with home kit. It will never work with home kit. And I could get the like

01:55:39 ◼   ► my Q thing, but I had one and it was all right. And then it got better for a while. Then they

01:55:45 ◼   ► like took away home kit access or something like that. I forget the details. It doesn't really

01:55:48 ◼   ► matter, but I needed a project anyway. And so what I had done was I got a couple of raspberry

01:55:53 ◼   ► Raspberry Pi zeros, which at the time were the cheapest and most underpowered raspberry

01:55:59 ◼   ► pies that existed. Um, I think that they have, uh, things that are closer to an Arduino now,

01:56:05 ◼   ► but either way at the time in like 2020, they were the cheapest I could get. They were like

01:56:09 ◼   ► 10 or 15 bucks. I think each, uh, I got zero WH is, which is to say zeros that had wifi capability.

01:56:15 ◼   ► There's a W and the H meant that they had the GPIO that basically the IO pin soldered on because

01:56:21 ◼   ► by default a Raspberry Pi zero doesn't have any of the pins to connect to other stuff.

01:56:26 ◼   ► And I had one, uh, literally sitting on top of the garage door opener with a contact switch,

01:56:32 ◼   ► uh, running on up to the top of the garage. And it would use that contact switch hooked to one of

01:56:39 ◼   ► these aforementioned GPIO pins to figure out whether or not the garage door was open. And when it was

01:56:44 ◼   ► opened or closed, either way, it would periodically broadcast a UDP packet on the network saying to

01:56:49 ◼   ► anyone who wanted to listen, the garage is open, the garage is open, the garage is open or whatever

01:56:54 ◼   ► the case may be. And then I had another PI zero WH up in the bedroom hooked up to an led. And when it

01:57:01 ◼   ► received one of those UDP packets saying the garage is open, then it would illuminate the led. And

01:57:06 ◼   ► although in the two or three years, I forget when we recorded that episode, it got, it might've been

01:57:10 ◼   ► five years at this point. Time is something else. Anyways, in the several years since this, uh, since,

01:57:16 ◼   ► since I started this whole project, it's been mostly bulletproof and there have been five or 10 times in

01:57:23 ◼   ► five years that I have had the garage door closed because I noticed the red illuminated LED by my bed. Uh,

01:57:30 ◼   ► so mission accomplished. Put all the, putting all that aside, uh, recently over the last several months,

01:57:36 ◼   ► I've started to, started to dabble again with home assistant. I had been running home bridge, which was my

01:57:42 ◼   ► preferred home automation thing of choice. And home bridge is pretty darn good at taking things that

01:57:50 ◼   ► don't have native home kit support and putting them into home kit. And that's done mostly via

01:57:57 ◼   ► JavaScript, uh, like add-ons and things like that, because Hey, why wouldn't you JavaScript's everywhere?

01:58:01 ◼   ► Um, and I did like it and use it for a long time, but let me tell you the home assistant people,

01:58:09 ◼   ► you think John's flying monkeys are bad. Oh, let me tell you the home assistant flying monkeys are worse.

01:58:14 ◼   ► Uh, they will not stop talking about home assistant. Everything relates to home assistant.

01:58:18 ◼   ► There's no problem that cannot be solved by home assistant. And it is the only thing is the only

01:58:24 ◼   ► software you should care about period. And I always found that so incredibly off-putting. And I did try

01:58:30 ◼   ► home assistant around the time I had trialed home bridge and I just couldn't wrap my head around it.

01:58:35 ◼   ► It was wildly different than what I wanted. And I didn't understand how it works.

01:58:40 ◼   ► Well, I am here to tell you, I now understand how it works. I am now one of the flying monkeys

01:58:45 ◼   ► and everything relates to home bridge or excuse me, home assistant. Now there is no problem gentlemen

01:58:49 ◼   ► that I cannot solve with home assistant. Um, but I, in my home assistant, uh, journey,

01:58:56 ◼   ► I became aware of something that I should have known about. It's existed for like 20 years or

01:59:02 ◼   ► something like that, but I'd never heard of before. And this is MQTT. It's an acronym who's, I already

01:59:09 ◼   ► forgotten what it stands for. It doesn't really matter, but what it basically is, uh, there you go. MQ

01:59:15 ◼   ► telemetry transport. That totally explains what it was, what it is, or at least that's what it originally

01:59:19 ◼   ► was called. I think it has a different definition now. Um, what this basically is, and the nerds will

01:59:25 ◼   ► come after me for this description, but what it basically is, is like a data bus. So it's a pub

01:59:29 ◼   ► sub sort of thing where you can say, I would like to know when such and such happens or Hey, such and

01:59:35 ◼   ► such happened. And so I'm running this as you would expect, uh, as a Docker image, as a, as I am home

01:59:41 ◼   ► assistant on my Synology, it is extremely lightweight and extremely fast. And I have realized now that

01:59:48 ◼   ► what I can do is I can put things into a, into an MQTT, uh, a message, if you will, and then in

01:59:58 ◼   ► somewhere, and then I can read them somewhere else. Now, what that means is since home assistant has

02:00:05 ◼   ► even more support for different devices than home bridge did and home bridge had a lot home assistant

02:00:12 ◼   ► actually has support for my cockamamie, uh, garage door opener. So it has native support for it, which

02:00:19 ◼   ► is great. And what I can do is I can have home assistant when it sees there's been a change in the

02:00:27 ◼   ► state of the garage door, it can publish a message on MQTT that says, Hey, the garage door is open.

02:00:34 ◼   ► Then I can have the Raspberry Pi that's upstairs in the bedroom, listen for those messages and it can

02:00:39 ◼   ► turn the led on or off, which means that now I don't need my garage Raspberry Pi. And so it has

02:00:47 ◼   ► been officially decommissioned as of earlier today. And at this point, Marco, if you would like to insert

02:00:52 ◼   ► taps, please feel free. Wow. Uh, I am down to only one Raspberry Pi and two Docker images.

02:01:00 ◼   ► It's my, you might want to run the Docker containers in the Raspberry Pi because maybe it has a better

02:01:06 ◼   ► CPU and memory than your Synology. Like you're running so much on the Synology.

02:01:09 ◼   ► Not the, not the Raspberry Pi W's or excuse me, the zero W's. Those are very weak. I'm sure. I bet

02:01:15 ◼   ► they could do it, especially for Mosquito, which is the particular.

02:01:18 ◼   ► I'm just saying like running, I always get nervous about you running all this stuff in your Synology

02:01:21 ◼   ► that like does actual computation stuff. You say it's lightweight, but like I'm, you know,

02:01:25 ◼   ► what does your Synology have? And is that like an Atom processor or something?

02:01:28 ◼   ► I think it does. I understand the question. I forget what it is. It's a 1621 plus. So it was,

02:01:34 ◼   ► it's not the original one that we had all gotten years ago. I'd gotten this a couple of years ago

02:01:38 ◼   ► now, maybe a year and a half ago. So it's, so it's, uh, you know, one 800th as fast as an Apple TV.

02:01:45 ◼   ► I don't know if I would go that far, but your point is fair. Uh, but I'm running a,

02:01:50 ◼   ► let's see right now I am running, uh, where is it? Uh, I don't know. 20, there are 22 Docker

02:01:56 ◼   ► containers that are on my Synology of which 20 are running at the moment and it's fine. Like

02:02:00 ◼   ► it really is fine. It's fine. Um, but, but in any case I, I have now thanks to, uh, MQTT and

02:02:07 ◼   ► I'm using mosquito, which is the particular implementation of MQTT. I have decommissioned

02:02:12 ◼   ► one of my Rube Goldberg, uh, raspberry pies.

02:02:15 ◼   ► Sounds like kind of like you've replaced it with another Rube Goldberg machine. You just think

02:02:18 ◼   ► it's cooler because it has an acronym. Yeah, pretty much. And it's not relying on UDP,

02:02:23 ◼   ► which I think is an improvement as well. Why is that? What's wrong with UDP? I mean,

02:02:27 ◼   ► nothing. It just seems so old and janky by comparison. Old and janky. It's not any older

02:02:31 ◼   ► than TCP IP. They're the same age roughly. It just feels jankier to me. And you want,

02:02:36 ◼   ► you want to do anyone want to do the joke? You want to do the joke? I don't know what joke

02:02:39 ◼   ► you're talking about. So no, I don't want to do the joke. I know a joke about UDP, but you

02:02:43 ◼   ► might not get it. Oh, there it is. Well done. Well done. Wow. Yeah. Well,

02:02:48 ◼   ► and MQTT does run on TCP. Um, in any case, uh, what this is now created though, other than

02:02:55 ◼   ► probably more problems and certainly a complete time suck is now I want to do something different.

02:03:03 ◼   ► And I know you two are going to make fun of me and I don't care, but I need help. And I was talking

02:03:07 ◼   ► to, uh, my good friend, Eric Wielander, who has a phenomenal YouTube channel about, uh, smart home

02:03:13 ◼   ► stuff, especially home kit, but not exclusively home kit. Um, and I was talking to him and I, he,

02:03:20 ◼   ► he came up with a couple of D a pretty good options, but I haven't come up with a perfect option. What I

02:03:25 ◼   ► think I want to do is I want to have a very low tech in-home status board. So what I want is like

02:03:32 ◼   ► three LEDs. Now I think the terminal that Marco has the, the little e-ink thing, I think it could

02:03:39 ◼   ► serve this purpose. I could write my own custom, um, thing for it. And to be honest, I might end up

02:03:44 ◼   ► going that route because, uh, I don't know if we spoke about it on the show, but terminal was kind

02:03:48 ◼   ► enough to offer John and I, uh, freebies, uh, basically because of Marco's hard work. So thanks

02:03:53 ◼   ► guys. Um, my hard work and buying one and talking about it. Well still, um, and I believe in to be, to

02:03:59 ◼   ► be fair, I believe they are sponsoring a future episode of the show, but, um, one way or another, I could

02:04:04 ◼   ► do this on the terminal. I think I'm pretty sure I could, but what I kind of want to do is I want to

02:04:09 ◼   ► take like a light or the space that a light switch would take up and I want to have three LEDs there.

02:04:17 ◼   ► This is such a 1970s slash 80s solution. It is. Forget about a screen with information. Can I get

02:04:23 ◼   ► three lights? Yeah, no, I know. And stick them in a switch plate? I know. So that only I will know. It's

02:04:28 ◼   ► like looking at the lights on your cable router in 1994. It's like, I know what those lights mean.

02:04:33 ◼   ► Why stop at lights? Why not go for like Nixie tubes or those like flip board things? Yeah, exactly.

02:04:39 ◼   ► Maybe I should go that route. No, I mean, I, again, I know you're making fun of me and truth

02:04:43 ◼   ► be told, if I was on the receiving end of this conversation, I would make fun of you as well.

02:04:47 ◼   ► But I think it would be neat to have like two or three LEDs that will show like the state of things

02:04:53 ◼   ► that I really, really care about. And the things you know how to read them, if you know how to read

02:04:57 ◼   ► them. So one of them is whether, whether or not, whether or not Aaron's car is actively charging,

02:05:02 ◼   ► uh, whether or not the garage door is open and whether or not the mail has been delivered.

02:05:07 ◼   ► Because I think we talked about in a past show, yeah, we did talk about with my ridiculous

02:05:10 ◼   ► setup out in my mailbox. Um, you know, I've got, I've also gone deep into the Yolink world.

02:05:15 ◼   ► And so, um, now that that's been integrated into home assistance, et cetera, et cetera.

02:05:19 ◼   ► But I think those three LEDs and I, what I want to do is like John described, I'm not literally

02:05:25 ◼   ► replacing a light switch, but in the same kind of setup, you know, like I can, I can envision

02:05:28 ◼   ► in my mind three of these LEDs in the spot where a light switch could be.

02:05:33 ◼   ► And they will illuminate based on presumably like an Arduino, or maybe if I had the physical

02:05:39 ◼   ► space to fit the PI zero in there, which I probably wouldn't. Uh, but I don't know, I can't figure

02:05:44 ◼   ► out a graceful way to do this because presumably if I were to literally replace a light switch,

02:05:50 ◼   ► which I don't plan to do, but for the sake of conversation, if I were to replace a light

02:05:54 ◼   ► switch, I would have power there, but not in the way I would want. You know, that's not like

02:06:00 ◼   ► an AC outlet is in a, you know, junction box behind the light switch. There's, there's,

02:06:04 ◼   ► you know, 120 volts back there or whatever, 110 volts back there.

02:06:07 ◼   ► And in the spirit of your mailbox contraption, you should, you can get one of those switch

02:06:11 ◼   ► plates that, uh, that has USB ports on it, USB A or C ports, and then you plug a cable

02:06:16 ◼   ► into the port and fish that cable back behind the switch plate.

02:06:19 ◼   ► And that'll match your mailbox first.

02:06:21 ◼   ► They would match my mailbox perfectly. But what I'm, what I'm driving at is, is there some

02:06:27 ◼   ► sort of, you know, LED, a controllable LED, preferably from either home assistant or like

02:06:33 ◼   ► an Arduino or something like that, wherein I could turn, you know, one to three LEDs on

02:06:37 ◼   ► or off as I see fit. And I don't think I want a single one because multiple things could be

02:06:43 ◼   ► happening at the same time. You know,

02:06:44 ◼   ► I'm pretty sure an Arduino, uh, can handle turning on LEDs. In fact, that may be the main

02:06:49 ◼   ► thing people do with them when they first get them, or you can just get yourself a breadboard.

02:06:53 ◼   ► That's also fair, but the problem is like, how do I power the Arduino? Where do I physically

02:06:57 ◼   ► put it? And so I think there's probably a more graceful solution to this, which probably is

02:07:02 ◼   ► the terminal, but a more graceful solution to this, um, that, that I'm not thinking of.

02:07:06 ◼   ► So Eric gave me a couple ideas. Like he had suggested, um, I think it's called nano leaf,

02:07:11 ◼   ► the, the like tiles you can stick on the wall, which he knew isn't exactly what I wanted, but

02:07:16 ◼   ► it's in the vicinity of what I want. Um, but I, I presume there's some other options that

02:07:22 ◼   ► I'm not thinking of. So if you have something like that, that you've done or, or that you,

02:07:26 ◼   ► that you're thinking of, uh, please reach out to me on either email or masked on, let me know.

02:07:31 ◼   ► Cause I would love to have some suggestions.

02:07:32 ◼   ► So the next person who buys this house someday is going to be like, why are there LEDs in the

02:07:36 ◼   ► wall? This must've been done in the sixties. Like, nope, 2025.

02:07:40 ◼   ► No, it's so true. It's so true. And I did not have computer screens. No, they have them.

02:07:45 ◼   ► This old fogey just didn't want to use them. That's what it boiled down to. Uh, no, I just

02:07:49 ◼   ► think it would be, it's one of those things. It's just a fun project. And, uh, so far I'm

02:07:53 ◼   ► failing miserably, but it's nevertheless, uh, I'd, I'd love to have some feedback if you have

02:07:59 ◼   ► any, so please feel free to reach out.