Re-Crop With the Wisdom of Age
Marco:
I do feel really good tonight because earlier today I moved my deployment target for my new rewrite of the app from iOS 16 to iOS 17.
Marco:
I mean, we all knew you would.
Marco:
Part of the rewrite is a new sync protocol that is way more efficient both on the client and the server.
Marco:
So I thought I should target iOS 16 because like 95% or something of my users are on iOS 16 and above.
Marco:
So I'm like, if I can deploy this to them, I can also save a bunch on the server side resource-wise and dramatically lighten the load on the servers.
Marco:
So my thinking was, if I ship this thing sometime this winter, I can ship it to everybody and dramatically lighten the load on the servers.
Marco:
Well...
Marco:
In the meantime, I made the mistake of looking at my numbers for last fall of, like, how quickly did people adopt iOS 17 last fall out of my user base?
Marco:
Not, you know, not out of the entire world of iPhone users, but just out of my users.
Marco:
You mean iOS 16?
Marco:
Yes, that's what I meant, sir.
Marco:
And it turned out that by December...
Marco:
I had something like 88% by December 1st of people who had already installed iOS 16 by then.
Marco:
It hadn't come out the prior September.
Marco:
It only took a few months to reach almost 90% of adoption on the new OS.
Marco:
And I was looking at my own life introspectively and thinking, what are the odds that I ship this thing before December 1st?
Marco:
It's basically zero.
Marco:
I cannot imagine that happening.
Marco:
I just cannot imagine making that much progress in that much time where I'd have this entire rewrite of the app ready to ship only five months from now or something.
Marco:
It's not going to happen.
Marco:
Look, and I would love if, for some reason, if...
Marco:
four and a half months from now, you hear me on the show complaining, oh, I can't believe I can't ship this rewrite.
Marco:
It's been done sitting around for weeks now and I can't ship it because my iOS 17 adoption isn't high enough yet.
Marco:
Listeners, if that happens, you can feel free to say I told you so.
Marco:
But there is no chance of that happening as far as I can tell.
Marco:
There is no way I ship this entire rewrite by December.
Marco:
I'd be lucky to ship it by April, I think.
Marco:
Oh, no.
Marco:
Maybe not quite that bad, but there is just so much in the app.
Marco:
You don't realize when you have a decade-old app...
Marco:
just how much of an app that is like how many subsystems there are how many features there are how many screens there are there is so so much and i don't have to look i can kind of part this and i don't have to rewrite every subsystem but because of the way i'm modernizing things i will have to rewrite many subsystems and most or all of the ui which is much of the app like the only thing i'm not touching is the audio engine i'm not rewriting the audio engine
Marco:
But I am rewriting some of the things that interact with the audio engine.
Marco:
So there's even that.
Marco:
Like, there's so much that I have to rewrite and all these little tiny behaviors that I have to, you know, rewrite or reconsider and make sure I get right.
Marco:
So it is going to be... It is still a process.
Marco:
But I decided, since there's no way I'm going to ship it by December 1st, and assuming I have a similar curve this fall with my adoption of the new OS...
Marco:
if I can ship iOS 17 plus and use all of the new observable stuff as I'm writing all my Swift UI stuff, like I just, I converted like two views over to the observable stuff today.
Marco:
Oh my God, it's so much easier.
Marco:
And I couldn't believe it.
Marco:
Like I could get rid of so much crap, so much boilerplate, so much like, you know, moving values around by using that system.
Marco:
Oh man, it's so nice.
Marco:
So I thought, all right, I'm going to get this done.
Marco:
I'm going to just require iOS 17.
Marco:
And by the time I, you know...
Marco:
I mean, by the time I ship this rewrite, it might be time for iOS 18.
Marco:
We'll see, but hopefully not quite that long.
Casey:
I'm glad that progress is being made.
Casey:
You sound like you're in a good spot insofar as you sound chipper about it.
Casey:
And you're not in the doldrums of what have I done?
Casey:
Why am I doing this?
Casey:
You know, et cetera.
Marco:
Oh, that came yesterday when I was working on the widgets.
Marco:
Because I am, in the meantime, going to ship an iOS 17 update for the old code base that has a new widget for iOS 17.
Marco:
Whenever it's time for that, I'll ship that.
Marco:
And those are, I think, done.
Marco:
It was tricky to... Back when I naively thought I will just modify my iOS 16 widgets to work on both...
Marco:
No.
Marco:
As I started designing it and started looking into what does interaction mean?
Marco:
What does it mean when the widgets are in all these different new places?
Marco:
You've got the standby mode.
Marco:
You've got the beaming into the Mac.
Marco:
You've got the iPad lock screen.
Marco:
You've got the iPad desktop.
Marco:
All these different places widgets go.
Marco:
And there's no way my existing design works well in all these cases.
Marco:
It just doesn't.
Marco:
And I started modifying it, and I had all these giant conditional logic of, okay, well, if you're on iOS 17, then modify this thing this way.
Marco:
But also, if you're on iOS 17, but your background is removed, modify this way.
Marco:
And it got so ridiculous.
Marco:
And at the end, I'm just like, you know what?
Marco:
This is impossible to maintain and impossibly complicated design.
Marco:
I'm just going to have a separate set.
Marco:
So I literally renamed all of those widgets to have underscore iOS 16 on the end and just copied them and made entirely new ones for iOS 17 and just conditionally render the entire widget from a whole separate class or struct, I guess.
Marco:
A whole separate definition of widget.
Marco:
And that was much better.
Marco:
Because the thing is, making them interactive, first of all, that changes everything.
Marco:
But you don't want them interactive everywhere because interaction in standby mode is kind of annoying because you have to unlock the phone after you interact with it to do anything.
Marco:
So there are certain places where you don't want interaction or that it kind of has to be different.
Marco:
It's a whole thing.
Marco:
Anyway, all this to say, this fall, listeners, I would expect...
Marco:
Many of your apps that have widgets are going to completely rewrite them, and many of them will require iOS 17 to make this job easier.
Marco:
So be ready to adopt iOS 17 quickly.
Marco:
If not for my app, then for all of your other nerdy apps.
Casey:
Before we move on to follow up, I should mention that if you are currently driving or perhaps walking, if you're mobile at the moment, please do yourself a favor.
Casey:
Not even me.
Casey:
Do yourself a favor.
Casey:
Pull over.
Casey:
Step to the side.
Casey:
Do whatever you got to do.
Casey:
and go ahead and go to hypercritical.co slash shirt.
Casey:
Get yourself a hypercritical t-shirt.
Casey:
I think clearly because of the amazing sales job I'm doing right now, I will end up getting easily 25% of the profit.
Casey:
I think that's the agreement that we've just reached.
Casey:
So go to hypercritical.co slash shirt.
Casey:
Get yourself a once every five years hypercritical t-shirt.
Casey:
Now is the time.
Casey:
Do not wait.
Casey:
Do not say, oh, I'll remember.
Casey:
You won't remember.
Casey:
Go now, hypercritical.co slash shirt.
John:
Only one of these episodes left.
John:
Next episode is going to be the final warning, people.
John:
Five years.
Casey:
Five whole years.
Casey:
Now is the time.
Casey:
And John, your silence is consent.
Casey:
That's 25% for me.
Casey:
Sounds good.
Casey:
Moving on.
Casey:
Follow up.
Casey:
We've got a lot of people wrote in to remind me of something that I am actually actively using, except I almost never use it.
Casey:
Let me explain.
Casey:
I was talking in the after show last week about when I had my IP address on my home internet connection change out from under me, which happens extremely rarely because, you know, this is a connection that's always up.
Casey:
But it does happen from time to time.
Casey:
And it changed out from under me.
Casey:
And I think, John, you were talking about, you know, dynamic DNS solutions.
Casey:
That led us on the rabbit hole of...
Casey:
d-y-n-d-n-s dot org, whatever it used to be.
Casey:
Anyways, a lot of people pointed out, including a friend of the show, Spencer, and many others, that Synology has its own dynamic DNS setup thing that I could and should use.
Casey:
And as it turns out, I do use that.
Casey:
And what you can do is you can have your Synology phone home to the Synology server's website, what have you, and it will update the IP address of your Synology.
Casey:
And then you can refer to, you know,
Casey:
123mainstreet.sonology.me, or whatever the case may be, and that will get you back to your Synology.
Casey:
That, of course, would also get me back to my house.
Casey:
It's not specific to the Synology.
Casey:
It's DNS.
Casey:
It's just resolving to an IP address.
Casey:
And I should keep that in mind as a backup, as a way to get to the house.
Casey:
But for whatever reason, I guess because it has Synology in the URL, I think of that as being unique to the Synology.
Casey:
It isn't unique to the Synology.
Casey:
Again, it comes to the house.
Casey:
But I think of it that way, and that's why I'm not using it.
Casey:
Alex Maznoff, who is the author of Swift Bar, which I highly endorse, he wrote in and said, speaking about Dynamic DNS, Synology not only has a built-in client, but also provides a free service.
Casey:
And Alex talked about this.
Casey:
We'll put a link to this in the show notes.
Casey:
But what was interesting was Alex said, then you could add a CNAME, such as MainStreet.kclist.com, pointing to 123mainstreet.synology.me on Hover, and that's it.
Casey:
So to recap, what Alex is saying, which is a clever idea that I probably wound up doing,
Casey:
is i have hover my my subdomain on hover just be become a c name you'll refer to whatever dot synology dot me and then i've got the best of both worlds because the the kind of backing store if you will for the ip address is the synology setup that should always be updated but i can still continue referring referring to it as whatever dot caseless.com i just thought that was interesting
John:
I'm also using the free Synology Dynamic DNS service.
John:
And so I was aware that it existed.
John:
But what I wasn't aware of is that if you go to that same place, it's on your Synology, it's under Control Panel, and then External Access, and then DDNS.
John:
It also supports third-party services.
John:
So it's not just the Synology.me service that I guess they just run for free for Synology owners.
John:
It does a bunch of other ones.
John:
It doesn't include the service that I've been freeloading on for 17 years.
John:
So that's not in there, but...
John:
Or actually, maybe it was, but Hover wasn't in there for whatever reason.
John:
But anyway, a lot of them are supported.
John:
And like a lot of these systems, it's probably pluggable.
John:
So you could probably maybe get a plug-in for your service or whatever.
John:
But the CNAME thing is interesting.
John:
I should probably do what you just described.
John:
Just pick one of my unused domains and map it to the thing.
John:
I'll have to decide whether I'm going to continue freeloading to continue my 17th.
John:
I think I should make it to 20 years.
John:
Never freeloading for 20 years.
John:
And it can...
Casey:
right into the company and get a tour of the factory or something shake hands with the ceo this person has refused to give us money for 20 years here's your plaque congratulations we'll see what i do but yeah i should just i should just make an alias from one of my umpteen domains all right marco you i know that you got an overwhelming amount of security camera update because john and i got an overwhelming amount of security camera update uh or updates can you tell me what the executive summary is for all of this please
Marco:
Yes.
Marco:
So first of all, I am vindicated.
Marco:
Everyone has these problems with Logitech CircleView cameras.
Marco:
A lot of people wrote in.
Marco:
First of all, thank you.
Marco:
Second of all, wow, we've had a lot of people write in with a lot of content and it's all very good and helpful.
Marco:
So thank you very much.
Marco:
Also, I think you can stop now.
Marco:
Anyway, it's been and seriously, thank you very much to everyone who's written as it's actually been extremely helpful and really quite elaborate.
Marco:
But anyway, so Logitech circle view cameras, the issues I was having with constant like Wi-Fi dropouts and connection drops and everything.
Marco:
Everyone has these problems, both with the circle view and the doorbell version of it.
Marco:
It seems like some people have had good luck putting Wi-Fi access points extremely close to them, and it seems like that helps.
Marco:
A few people have said that trying to configure their Wi-Fi system such that they only ever connect to the same AP occasionally helps, but some people said that didn't help them, some people said it did, so...
Marco:
it seems like weak and buggy wi-fi is their problem uh and that if you can somehow make the wi-fi to them easier for them to handle that that seems to improve the error rate and that actually kind of maps like the i mentioned that like the one one of them that i have is is pretty reliable the bike camera one and that happens to be about five feet from an ap so that actually makes a lot of sense that you know why that one would be more reliable than the others which are
Marco:
A totally reasonable distance from APs, but not quite so close.
Marco:
Anyway, though, everyone wrote in to say, first of all, there are more HomeKit secure video cameras than I thought.
Marco:
I linked it in the show notes after the fact, and we'll link again maybe this time to this iMore article that shows every HomeKit secure video camera currently on the market currently.
Marco:
And I also want to point out there's there's multiple forms of HomeKit cameras.
Marco:
There is there's like HomeKit compatible.
Marco:
And then separately from that is HomeKit secure video compatible.
Marco:
Those are actually two different levels of integration with HomeKit.
Marco:
And a lot of the things people wrote in only were compatible with HomeKit in the sense that you could like view them in the home app, but not necessarily secure video, which is their own kind of, you know, cloud storage and, you know, certain other features kind of thing.
Marco:
Anyway, a lot of people wrote in to recommend the Eufy cameras, the EUFY.
Marco:
This is Anchor's home, like smart home kind of brand.
Marco:
And I had Eufy cameras first.
Marco:
Listeners may remember, that's the brand that I kept killing the cameras I put in them outside.
Marco:
That much to John's chagrin.
Marco:
So I had Eufy at first, and they are fine.
Marco:
They actually have had a couple of little scandals here and there since then with some security badness here or there.
Marco:
I didn't love them, but they were fine and they are cheap.
Marco:
They have some options that work with HomeKit and some options that work with HomeKit Secure Video.
Marco:
some of which are outdoor compatible and people say they're okay but ultimately everyone said just get ubiquity cameras everyone like i had no idea we had so many ubiquity fans in the audience and everyone basically said yes you know you the the the wi-fi cameras and everything are nice and cheap and simple however if you want reliable cameras you
Marco:
It has to be PoE cameras.
Marco:
Power over Ethernet, hardwired, hard-powered cameras.
Marco:
That's how to make reliable home cameras.
Marco:
You can use any PoE cameras.
Marco:
Like, there's this brand Amcrest.
Marco:
Some people recommended it and everything.
Marco:
But everyone basically said, yeah, use Ubiquiti stuff.
Marco:
It's really good.
Marco:
You can also use Synology's surveillance station with other cameras if you want.
Marco:
But everyone basically said Ubiquiti stuff is either as good or better.
Marco:
And then there are a couple of ways to get that into HomeKit if you also want.
Marco:
So the recommended setup is to run PoE cameras, probably Ubiquiti's cameras, with Ubiquiti's recorder and stuff like that using their Protect app.
Marco:
Like Nest, that provides 24-7 recording.
Marco:
And it's stored on your local hard drive and inside whatever Ubiquiti appliance you're using to record the video.
Marco:
That's like the 24-7.
Marco:
But then you can also bridge that into HomeKit...
Marco:
and possibly HomeKit Secure Video to get those features on top of it.
Marco:
So that gives you all the Apple integration.
Marco:
So that way you get the nice notifications from HomeKit.
Marco:
You get the motion detection from HomeKit.
Marco:
You get the feature that I've actually never used where you can have it like...
Marco:
pop in a picture-in-picture on your Apple TV if someone's at your front door camera, like kind of show it right there on your Apple TV as like a little video doorbell kind of thing.
Marco:
So you can do all that with Ubiquiti and other cameras using either HomeBridge or the one thing that everyone said I need to try is this app called Scripted, S-C-R-Y-P-T-E-D.
Marco:
So Scripted with a Y in the middle of it.
Marco:
Scripted apparently bridges...
Marco:
those kind of systems to HomeKit Secure Video.
Marco:
And so this is what I'm going to do.
Marco:
I have stuff on order.
Marco:
It might take a couple of weeks to get it all in here and set it all up and actually try it, but this is the setup I'm going to do.
Marco:
I cannot tell you how many people wrote in to say Ubiquiti's cameras are great and use them with Scripted to bridge them into HomeKit.
Marco:
everyone wrote in to tell me this and people people gave me sample footage people were like pointing out like people who worked there people who didn't work there people who use it who've installed this for many different homes or like as like for clients that they work with businesses that use it everyone agreed ubiquity cameras and then you scripted
John:
I feel like you have a special case here, though.
John:
I was thinking about this while reading through all the email with the people recommending the power over Ethernet cameras.
John:
I'm not sure if that's the best solution for you because I just kept thinking of that Ethernet connector out there in the elements and thinking about that USB.
John:
I know, but I'm thinking about the Ethernet connector that will be on your power over Ethernet phones.
John:
And then I was comparing it to the USB-A connector that you showed that had rusted out.
John:
The advantage that a wireless one has is it can be completely weather sealed with nothing plugged into it at all, except for, I suppose, power.
John:
Or even that, it could be battery power with one of those magnetic charging base things.
John:
I think the Nest cameras have that, where it's hardwired to a base that inductively charges a magnetically attached thing.
John:
Anyway, you'll find out, but the advantage of wireless for you is less rust surface, potentially.
John:
Or it could be, no matter what you do, the Salt Air is going to destroy this camera in a year anyway, so might as well get cheap ones, but I guess you'll find out.
Marco:
Well, so on that front, what attracts me to the PoE option here...
Marco:
is you can get like 100-foot Ethernet cables and just run them from a safe place.
Marco:
And so my physical setup here is I have like a utility closet where all the networking gear is based, and that is interior condition space.
Marco:
And there is a small pipe conduit that runs from that down like to under the house and to all the utility areas down there.
John:
Is this the water closet or is it a different closet?
John:
Different closet.
John:
Is there water stored in this one too?
Yeah.
Marco:
Yes, actually.
Marco:
You get the water out of the closets with your electronics.
Marco:
Well, the water's in gallon jugs on the floor.
John:
You thought the same thing in the other closet and they started to leak.
John:
Do not store water next to your electronics.
Marco:
It's below the electronics.
Marco:
Unless we had a significant steam situation forming from this water, it would not reach the electronics.
John:
You just cannot stop putting indoor things outdoors and storing water next to your electronics in closets.
Marco:
There's a chest freezer there, too.
Marco:
Is it going to beep them to death?
Marco:
Anyway, so the advantage here with power release net is that I can – and this is how all – I have a couple of access points that are outdoors as well, and this is how I use them.
Marco:
They're also powered by PoE.
Marco:
And so I basically have long cables that run from the inside closet through that conduit to the outside world.
Marco:
And so all I have to do is seal the end of the cable that plugs into the camera.
Marco:
And all of these cameras are designed to do exactly that.
Marco:
And I can enhance it if I want to.
Marco:
There's, like, a little additional, like, boxes you can mount them to that are their own kind of sealed little things.
John:
Are they airtight sealed?
John:
That's the problem for you.
John:
You have to airtight seal them.
Marco:
So that's why I'm looking at these boxes, too.
Marco:
So there are different options.
Marco:
And somebody recommended, I believe it's called dialectic grease, something like that.
Marco:
So I bought a tube of that as well to kind of stick like on the connector.
Marco:
So it kind of seals it up that way.
Marco:
So I'm going to do all the sealing and everything and see how it goes.
Marco:
I don't know if it's going to work out here.
John:
Can you evacuate the air from the chamber?
John:
Because even the small amount of air that you trap inside there is probably filled with salt that is going to corrode things.
John:
i mean it is definitely filled with salt but i can't imagine like the static amount of non-moving air in there would would really be i mean the reason i think about this is because the little the contacts on an ethernet connector rj45 connector they're so tiny and delicate compared to the huge contacts on usba and your weather defeated the usba connector so i'm thinking those little tiny contacts on the ethernet connector don't stand a chance
Marco:
And the USB-A connector was not just bare in the world.
Marco:
It was inside.
Marco:
You can buy on Amazon these little sealed plastic boxes that are made for if you're running Christmas lights and you have a cable outside that you want to join with an extension cable or something.
Marco:
And so even if you have two outdoor cables, wherever you plug them into each other, that's going to be a joint that can rust and have problems.
Marco:
So you can buy these plastic boxes that are made to put cable connections into and then they seal up from the elements.
Marco:
That USB-A plug from last week or whenever, that was in one of those boxes.
Marco:
And it still got like this.
John:
I think you need to start shopping.
John:
See, this is getting you more towards the boat stuff.
John:
Find things for people who live on boats.
John:
You know what I mean?
John:
Buy the marine equivalent because that's your only chance.
Marco:
That's what I look for.
Marco:
Like whenever I'm looking for anything that goes outside, like, you know, like a padlock or something like whenever any of that stuff, I always look for like marine grade.
Marco:
But the thing is, everyone says everything's marine grade and then you get it.
John:
Yeah.
John:
Yeah.
John:
You got it.
Marco:
You got to actually go to the place where people who own boats shop.
Marco:
And I bet it's just not an Amazon.
Marco:
I don't think people who own boats have things last forever for them.
Marco:
Think about what boat ownership is like.
John:
It lasts pretty long.
John:
One of my favorite sailing channels that I watch, I've been watching for many, many years.
Casey:
You watch a sailing channel?
Casey:
What do you not watch?
Casey:
My goodness.
John:
They have a five-cylinder Volvo engine in their sailboat for when there's no wind.
John:
uh connected to a transmission and everything and like it's in a sailboat and they live at sea so it's the worst case scenario and this thing lasted for years they just recently replaced some parts and i'm like how do you have a giant hunk of metal in a sailboat at sea that has lasted you this long so there must be some way that boat people know how to seal things up so they don't rot it's same thing they had solar panels so they just replaced the solar panels after several years i'm like how are those solar panels functioning marco can't keep a usb a plug functioning
John:
outside his house.
John:
You're literally in the middle of the Pacific Ocean with these solar panels.
John:
Anyway, so they must know something we don't.
John:
Maybe it's a lot of dielectric grease on things.
John:
I don't know.
John:
I guess.
Marco:
I don't know.
Marco:
Because like, you know, I buy stuff that claims to be like, you know, stainless steel, everything.
Marco:
And then, you know, you get it.
Marco:
It's like, yeah, okay.
Marco:
Maybe like the main body of the thing is stainless steel, but somewhere there's two screws that are not and they rust out instantly.
Marco:
And you can always tell like, oh, they didn't get that one washer in stainless steel.
Marco:
Like there's always something.
Marco:
There's some part on everything that
Marco:
That is clearly just crap metal, and it rusts instantly out here, despite everything claiming to be marine grade or whatever.
Marco:
So I think marine grade is a bunch of horse crap, personally.
Marco:
In my experience, that doesn't actually lend much credibility to the longevity of a product out here.
John:
I don't think there's probably no laws governing the use of that phrase.
John:
You can put it on anything.
Marco:
Yeah, right.
Marco:
It's like natural flavors.
Marco:
Marine grade.
Casey:
All right, so Marco, when you're buying all this stuff, how are you going about doing that?
Marco:
Oh, yes.
Marco:
This is one of the things I wanted to cover.
Marco:
So I mentioned last episode about the Ubiquiti router.
Marco:
I was trying to get this router that was out of stock on Ubiquiti's site, and I ended up ordering it from some Amazon scalper for like a $50 premium because I kind of need it.
Marco:
The internet connection is being installed in like two days, so I need the router.
Marco:
So I ended up buying it from them.
Marco:
And then about two hours after it shipped from that vendor... Oh, no.
Marco:
it was pointed out to me by a few people actually that bnh is a ubiquity retailer and they had it in stock uh for only a 30 premium instead of a 60 premium uh so now i know and i ended up buying all the surveillance stuff from bnh because i they're they're local to us here in new york they are a wonderful retailer i've bought from them forever um i don't buy everything from them but i i always buy like
Marco:
Things from them that Amazon will either treat poorly or that has a high chance of being counterfeited.
Marco:
So things like SD cards or like fancy cameras, that kind of stuff I always buy from B&H.
Marco:
And if you're anywhere around New York, shipping is extremely fast.
Marco:
Like it's basically free overnight shipping.
Marco:
So anyway, it's wonderful.
Marco:
I recommend them as a retailer.
Marco:
So when I learned they were Ubiquiti retailer, I'm like, oh, done.
Marco:
Now I'm only buying from them.
Marco:
so anyway thanks for pointing that everybody and thank you again thank you everybody for all your feedback on ubiquity stuff and on the camera situation um it's been extremely helpful and hopefully i'll have more to report on that front soon we are brought to you this week by trade coffee
Marco:
If you want to make great coffee at home, you need freshly roasted beans.
Marco:
And Trade Coffee is a wonderful service that makes it simple to discover new coffees from over 55 top indie roasters and have them shipped to your house on whatever schedule you want.
Marco:
So here's how this works.
Marco:
You go to Trade Coffee, and then they curate the selection for you based on what you tell them about your taste.
Marco:
So they have a wonderful, sophisticated matching algorithm that curates coffee perfect for you.
Marco:
And they have all this deliverable to you with flexible subscription plans and a diverse assortment of roasts tailored to whatever your needs and preferences are.
Marco:
They have over 450 coffees.
Marco:
So no matter what you need, dark roast, light roast, espresso, blends, rare roast, whatever it is, they guarantee you'll find something new to love.
Marco:
And whether you're a nerd like me or whether you aren't really sure where to start with fancy coffee, they are great because they will guide you through the process and help you be matched to coffees uniquely suited to your taste.
Marco:
And so this is delivered all fresh to you, roasted within 48 hours and shipped directly to you by their roasters.
Marco:
So it is a great way to get fresh roasted coffee delivered at home.
Marco:
However you like it, whenever you like it, as much as you like, it is great.
Marco:
It's hassle-free.
Marco:
They have free shipping, customizable plans.
Marco:
You can cancel or pause whenever you want.
Marco:
So Trade makes it super easy to discover better coffee.
Marco:
Upgrade your morning routine with better coffee.
Marco:
Right now, Trade is offering you a free bag of coffee with any subscription at drinktrade.com slash ATP.
Marco:
That's drinktrade.com slash ATP for a free bag of coffee with any subscription purchase.
Marco:
Once again, drinktrade.com slash ATP.
Marco:
Thank you so much to Trade for sponsoring our show.
Casey:
All right, John, do you want to take us through faraway memory?
John:
Sure.
John:
This is a little bit of feedback about a suggestion.
John:
It was an Ask ATP question about what do you think about a Mac Pro that uses like a big RAM disk to make swap faster, to make up for the fact that Mac Pro SoCs can't have a lot of RAM on them.
John:
It was a quite elaborate scenario that we discussed in a past episode.
John:
And Akshay Narayan had some information to share about that.
John:
Uh, you, it says your discussion of this topic touched on a research product that I was part of.
John:
So I thought it would chime in.
John:
John was right to describe the technique as an expansion of the memory hierarchy.
John:
And when restricted to low performance, personal slash professional computing, which covers everything Apple manufacturers, this discussion was correct.
John:
You can tell someone's an academic when they talk about low performance computing.
John:
Those wimpy little computers you have in your desk that don't fill entire rooms, right?
John:
So Akshay continues.
John:
However, I wouldn't be so quick to dismiss this technique in higher performance settings.
John:
A recent trend in both academia and industry has been in resource disaggregation.
John:
In the specific context of memory, this is sometimes called far memory.
John:
which refers to the unbundling of hardware resources from physical computers, almost always servers in a data center, due to hardware restrictions referred to as the memory capacity wall.
John:
Basically, the amount of memory that it's possible to pack into a single server has an upper bound, and the only way around this is to either store less stuff in memory, this is unacceptably slow for the same reasons regarding page fault handling that John mentioned, or to put the memory somewhere else, which is basically the idea the Ask ATP question was considering.
John:
The general rule of thumb is remote memory is faster than local disk.
John:
Like any other level in the cache hierarchy, it works pretty well if there's stuff you need to access all at once before then moving on to another batch of stuff to access all at once.
John:
If you need to go pointer chasing through gigabytes of memory, on the other hand, this is not likely to play nice.
John:
If you'd like to read more, here's my own paper from 2016, and we'll put a link in the show notes to that, that makes the use of the swap device trick.
John:
And there are a couple other papers we'll link.
John:
There's a Google paper that uses far memory in the sense of compressed pages in the same machine.
John:
macOS does this.
John:
macOS, since it was called macOS 10, has done this.
John:
I think if you go on activity monitor, you can look and see
John:
Is it which pages are compressed?
John:
There's a way in macOS to see which memory is compressed.
John:
But macOS does this because it is faster and cheaper to compress and decompress the memory as it goes into and out of RAM than it would be to not do that and let it spill over into swap.
John:
Because like I said, once you hit swap,
John:
You're not reading memory from a memory bus anymore.
John:
Now you're asking the operating system to run a whole bunch of code that invokes the IO subsystem that reads from disk that goes through the disk driver.
John:
And it's just so much slower.
John:
So you would think, isn't that going to be incredibly inefficient to run compression routines on when you're reading and writing data from RAM?
John:
That turns out to be the most optimal path.
John:
And that's what macOS does for, I think, pretty much all memory.
John:
But like I said, I think there's a way you can tell in the OS which pages are compressed or whatever.
John:
Um, and there's also, uh, another paper that tries to figure out how much performance gains there are to be had by using techniques like this.
John:
So the idea of far memory is fun, but I, you know, it really is not particularly relevant to personal computers because they're talking about like a data center with tons and tons of machines in them.
John:
And you're basically using Ram that is not installed on your computer.
John:
It's installed on the computer three racks over, you know, sort of just collecting all that Ram together as one giant pool.
Um,
Casey:
sounds cool probably not relevant to the mac pro though probably not all right uh in the last couple of days as we record this on a sunday night which is a little unusual uh we got some news that apple is in the app store are going to require developers to describe why their apps use certain apis this broke just a couple of days ago i think i don't think it was breaking news i think they said this at wwc but nobody noticed because it's one of those sessions that's boring and nobody looks at
John:
Yeah, I thought it came out of nowhere.
John:
But I think what has happened is that the thing they talked about at the WWDC session is now a real thing that you can do.
John:
So that's the news.
John:
Like they talked about a WWDC, but I think it didn't ship until the latest version of Xcode 15 that's out now.
Casey:
Yeah, so we'll put a summary from 9to5Mac in the show notes, and I believe this is quoting from there.
Casey:
As detailed on the Apple developer website, some APIs are now classified as, quote, required reason APIs, quote.
Casey:
This means that in order to use them in an app, the developer must describe to Apple the purpose of that API in the app.
Casey:
The company explains that the measure aims to crack down on fingerprinting a technique for tracking users across different apps and websites.
Casey:
So if you look at the documentation for this, which will be linked in the show notes as well, and I started looking through this the other day when this came out.
Casey:
OK, file timestamp APIs.
Casey:
Well, I'm not entirely sure how that gets fingerprinting, but OK.
Casey:
I mean, whatever.
Casey:
That's fine.
Casey:
System boot time APIs.
Casey:
OK, well, that makes sense.
Casey:
Disk space APIs.
Casey:
I can get behind that.
Casey:
Yep, sure.
Casey:
Active keyboard APIs.
Casey:
What languages are accessible to the user?
Casey:
Yeah, that makes sense.
Casey:
Use it.
Casey:
User defaults?
Casey:
What?
Casey:
And so very, very at the very bottom is user defaults.
Casey:
Now, if you're not an iOS developer, user defaults is the, I would describe it as like the default place to, that's overusing the word.
Casey:
This is the standard place to store little chunks of information, like the user's preferences for things and stuff like that.
Marco:
Yeah.
Marco:
In fact, on Mac OS, if you look in the library folder and you have a preferences subfolder of that and you have all those like, you know, com.domainname.whatever.plist files, that's where user defaults are stored on the Mac.
Marco:
It's that for iOS, basically.
Marco:
And it's a similar storage mechanism there.
Marco:
You just don't see it.
Marco:
But it's like those little plist files that have little bits and pieces of preference data usually.
John:
yeah and plist meaning property list it's basically an xml you know kind of equivalent of json sort of kind of and when we say preferences though we mean like any app that has any kind of setting do you want light mode or dark mode uh you know what do you want your default home page to be in your web browser what's the minimum font size like literally any setting if you go into settings and there's a checkbox or radio or whatever on pretty much any apple platform
John:
You can store that however you want.
John:
But in practice, everybody just uses user defaults because it is a system provided framework that is tailored to exactly that job.
John:
You're not storing huge amounts of data.
John:
It's just settings, just individual settings, just so you know, like which checkbox they checked, which thing they picked from whatever.
Casey:
Yep.
Casey:
And so basically every iOS app uses this.
Casey:
I mean, I am about a small sample size, but all of my apps use it for just a handful of little switches and bits and bobs here and there.
Casey:
It's nothing particularly interesting or exciting, but that's the obvious place to turn.
Casey:
And so now we need to justify the use of something that basically every damn app on the planet uses.
Casey:
And
Casey:
I'm not entirely clear, and maybe you two can shed some light on this, how or why it is that user defaults they feel is privacy risky or maybe privacy leaking.
Casey:
But it seems, at a glance, not having thought too much about it yet, it seems an odd choice to enforce this upon iOS developers because, again...
Casey:
Pretty much every iOS developer touches user defaults for at least one or two pieces of data.
John:
That's why this has become a story, because like, OK, so you have to, you know, give a reason why you use a bunch of these APIs that use a fingerprinting.
John:
And it's an example of bad actors ruining it for everybody because bad actors use things like how much free disk space you have.
John:
In the web browser world, they used to use what fonts you had installed.
John:
All sorts of clever ways to track you without using cookies in the web world.
John:
Same thing in iOS.
John:
They need something to uniquely identify you.
John:
They try to combine a bunch of information that they think the combination of which will uniquely identify you.
John:
That's what these APIs are getting restricted.
John:
That's a bummer, but yeah, we understand.
John:
Bad actors are in it for everybody.
John:
We've got to do this thing.
John:
Once they threw user defaults in there, that's basically saying that
John:
to to a reasonable approximation every developer will have to uh create one of these required reason api things it's this thing in xcode you just create a little document then you gotta you gotta enter which apis you use it's all manual you're just sort of reporting saying i use one of these apis here's the api i use and here's the reason i use it and they apple has reason codes that say okay if you use these apis here are the valid reason codes for you and and
John:
this is all supported in xcode you make the little p list you tell which api you're going to use you get a little pop-up menu pick from one of these reasons um so user defaults there is but one valid reason it's ca92.1 they all have little codes right ca92.1 uh this is what it says declare this reason to access user defaults to read and write information that is only accessible to the app itself
John:
This reason does not permit reading information that was written by other apps or the system or writing information that can be accessed from other apps.
John:
That may sound reasonable to you because it's like, okay, well, you know, I'm starting preferences for my app.
John:
But the thing is, when I read this, I said, the one and only reason that you're allowed to use user defaults does not cover either one of my two apps that use user defaults because my two apps that use user defaults use a feature supported by Apple called app groups.
John:
Where you can, if you have two apps made by the same developer, you can say these are both members of the same app group.
John:
And that allows them a shared pool of user defaults that is shared between the two apps.
John:
If you have some setting that's relevant to both of them, or if you want one app to know about the settings of another app while still, you know, honoring sandboxing and all that, you can use shared user defaults.
John:
So CA92.1, the one and only reason you're allowed to use user defaults, does not allow this.
John:
It explicitly says read and write information that is only accessible to the app itself.
John:
And that's not true.
John:
Both of my apps write to shared user defaults.
John:
They do have their own separate user defaults, but they both write to shared user defaults.
John:
So what do you do if you're in a situation like mine?
John:
Well, Apple has a process that says, hey, if you want to use one of these APIs and one of our existing valid reasons doesn't cover your thing, you can ask us.
John:
Here's the wording they say.
John:
It says, if you have a use case that directly benefits users and isn't covered by an existing approved reason for one of the APIs, complete submit this form.
John:
And here's what the form asks you.
John:
And I filled out this form.
John:
It says, describe your use case.
John:
And that's just a text field.
John:
So I basically said, I've got two apps.
John:
They have a shared user defaults using app groups.
John:
I didn't say, which is a feature you offer Apple?
John:
Like, I don't know what they're thinking.
John:
Like, I think a lot of things use app groups or whatever.
John:
And then it says, does your use case require your app or third party SDK to send information derived from this API off the device?
John:
No, I answered no to that.
John:
I'm not sending any information off devices just for these two apps to share stuff.
John:
Does your use case directly benefit people using the app on the device?
John:
This is their kind of way of saying, are you using it for advertising?
John:
Because the answer to that would be no, right?
John:
So I said, yes, it does directly benefit the user because I'm not like, it's not for advertising.
John:
I'm not tracking people.
John:
I'm using this to implement my features.
John:
Next question.
John:
How does the use case directly benefit the people using this app on the device?
John:
And that's a free text field.
John:
So I explained at length.
John:
Here's what I'm storing.
John:
Here's why I'm storing it.
John:
You know, this is what it does.
John:
There are certain features that I have to use this system to implement.
John:
I didn't say.
John:
And by the way, the reason I have to use the system is every other avenue of cross application communication is closed to me because of sandboxing.
John:
Anyway, next question.
John:
Can your use case be implemented without using this API category?
John:
And I had to say, I don't think so.
John:
I tried basically everything that's available to me.
John:
I mean, technically, I could use a API that's like 10 times slower, but you feel it like my my use cases.
John:
My apps need to know what the other is doing.
John:
So when you click somewhere, so they don't like fight with each other.
John:
And so they know what each other thing is doing.
John:
Like when you click to change to a different application, either by clicking on a window, which front and center would notice, or clicking on an app icon in the switch class app switcher, which switch class would notice.
John:
It has to happen instantly.
John:
People don't want like even like a, you know, a 10 millisecond extra 10 millisecond lag when they click on a window before it switches applications.
John:
It has to be instant.
John:
And so I have to have my applications essentially already know everything about each other because they share these user defaults.
John:
I don't read the user defaults in response to a click.
John:
My apps already know they already have in local memory the information they need to make the decision instantly.
John:
So that's that's what I wrote for this thing.
John:
you know so this is can your use case be implemented without using the api category yes no i said no and it says please explain why and text field and i explained and i did all this and wrote this whole big thing up and saved it off to the side because these web forms don't save your information anywhere so you better write in a text document first i'm like just like i'm
John:
I can't believe I'm writing to justify the existence of my dinky little applications that do almost nothing because I use, I dare to use app groups and share settings.
John:
And then some kind person in one of the slacks that I'm in said, Oh, by the way, you know, this doesn't apply to the Mac, right?
John:
And I said, no, I didn't know that.
John:
So here's this note from an Apple URL.
John:
It says you only need to supply the NS privacy access to API types, which is that P list thing.
John:
for apps and third-party SDKs on iOS, iPadOS, tvOS, visionOS, and watchOS.
John:
So finally, the Mac being ignored pays off because that doesn't list macOS.
John:
And so I guess I don't need to do all that.
John:
But that said, even if I had known this beforehand, I still would have filled out that form because I am paranoid they're going to say, oh yeah, and of course macOS, we just forgot to list it.
John:
And I think this is like the reasons I think shared user defaults in an app group should be a valid use case.
John:
Now I understand how it can be abused.
John:
Everything can be abused because, and we'll talk about this in a little bit, like Steve Trout and Smith wrote in to give us some examples of how user defaults can be abused, but shared user defaults using app groups,
John:
That's not as common as just plain user defaults, but I have to think it's pretty common.
John:
Developers that have more than one app often want to share small bits of information among the suite of applications so they can interoperate.
John:
And so there's like synergy for using them.
John:
That's why I do it.
John:
So my apps know about each other.
John:
And if you run both of them so they don't fight with each other, they synergize to provide, you know, cooperate with each other to provide the behavior that you want.
John:
Could that be used to share information?
John:
Oh, this app gets some information and then shares it with the other thing.
John:
Yeah, of course.
John:
But like there's a million ways to do stuff like that, especially if your goal is just to export information that you don't need the, you know, millisecond.
John:
You don't want to shave milliseconds off like I do when I'm trying to provide a responsive experience.
John:
So I think they should add another reason that says, you know, CA92.2 that says I'm sharing user preferences among apps in an app group from the same developer.
John:
And I took great pains to explain, like, this is what I'm sharing.
John:
I'm sharing serialized NSRECs, which is just a series of floating point numbers, literally XY with height.
John:
That's it.
John:
Floating point numbers, which are, what do they correspond to?
John:
The placement of my own app's user interface on the screen.
John:
And I'm sharing a single integer, which is the front and center behavior setting, which is either a one or a two.
John:
That's not personally identifiable information.
John:
I'm not exfiltrating your contacts.
John:
It's a bunch of floating point numbers and an integer, and I just want to share them among two of my own applications, and there's no reason for that.
John:
So I'm glad it doesn't apply to macOS, but I'm also glad that I filled out the form.
Casey:
Thank you for your service, John.
Marco:
It's kind of an interesting policy type that Apple has here.
Marco:
Whenever Apple has reason to tighten security for privacy reasons or for security reasons, they're kind of intertwined sometimes, but
Marco:
Whenever they want to tighten security and privacy, they basically have two tools at their disposal.
Marco:
One is they can use technical measures to just close whatever door is opened.
Marco:
So in this case, if people are using certain APIs to try to fingerprint the user, and as I mentioned, the important distinction here is what fingerprinting is for is for, say, Facebook to be able to track your usage of different apps and different websites at different times and
Marco:
That kind of thing is the most common use for fingerprinting.
Marco:
So what they need is a way for their ad platform and stuff to identify you are the same person both when you come from, you know, when you're using your phone in, you know, app XYZ over here, and then later on you go to the Facebook website using the same phone or use the Facebook app on the same phone and you buy a product or something.
Marco:
Like, so they, you know, they're trying to associate to make sure that they're talking to the same person in all those places.
Marco:
Yeah.
Marco:
And the only ways to do that are super creepy and privacy invasive.
Marco:
And that's basically what tracking is based on.
Marco:
And so people figured out a long time ago, as John was saying, if you can look at certain unique properties of the device that tend to narrow it down really, really far and can pretty much guarantee that it's one person as opposed to a bunch of people.
Marco:
So what you do is you combine different data points.
Marco:
So you say, all right, well, a device that had this number of bytes of free space
Marco:
And this battery percentage at this time, then a minute later, we have on our other app that another device that had that exact same battery percentage and that exact same number of bytes free or a very close number of bytes free.
Marco:
It's probably the same person.
Marco:
And so Apple can go and say, all right, you know what?
Marco:
this battery percentage api we don't actually need to report the super precise battery percentage that people have on their phones to apps because apps don't need to know that you have 97.537 percent battery they just need to know that you have a lot of battery they can also do what the web browsers do which is lie web browsers this is old hat in the web browser world web browsers used to have all sorts of apis for determining things like you know again what fonts you have installed or
John:
free space or your ethernet address and pretty much every modern web browser those apis exist but they return either garbage data or random data like they don't even put like they're no longer useful at all for the purpose of they're supposed to they're supposed to be there they can't remove the apis but this is essentially this because they would break web pages and stuff this is basically like removing them though and and apple i think apple does that with battery percentage too not only is it imprecise i think that's why i use that example
John:
Yeah, I think it fuzzes it.
John:
I think it's like, oh, it's an integer value and we might plus or minus it by one every once in a while.
John:
But yeah, but web browsers is like, no, the number we give you has no relation to the battery thing and it's random every time you pick it.
John:
It's a real war out there for the fingerprinting stuff because...
John:
it's it's a cat and mouse game every time someone you implement one of these technical things like you can't actually remove all the apis from the system because people do sometimes need to know things like how much free disk space there is for example an application that's about to write a file this is one of the valid use cases it might want to say hey you're about to save this file but before i save it i checked if you have enough room on your disk and you don't so you can't save it because you don't have enough disk space you should delete some stuff
John:
That's a good application saying I'm not just going to try to write it and fill up your entire disk and then have an IO error and put up an ugly dialog.
John:
I'll pre-flight it and say you don't have enough space.
John:
So that's a valid reason.
John:
So they can't get rid of the or make get rid of the free space API or make it lie like in a web browser where it's like you have a billion bytes free or whatever, you know, just a random number.
John:
So they need some other solution besides the technical because the technical is always going to be cat and mouse.
John:
Every one of those you can actually close, they'll come up with something else because they're highly motivated by money to find a way to fingerprint you.
Marco:
And actually, the free disk space is a good example.
Marco:
Because I'm going to have to request that exception for my app.
Marco:
Because before Overcast performs a sync and starts downloading new episodes of a podcast, it checks, hey, is there at least 100 megs of free space?
Marco:
Something that I can be reasonably sure I'm not going to fill up the disk by doing this.
Marco:
Because bad stuff happens when you fill up a disk.
Marco:
Anyway, so they have methods like this where they can say, all right, technically we can close this hole in some way.
Marco:
So we can either...
Marco:
Fuzz the API so that it's still there, but it returns data that's so imprecise or so generic or so generalized that many people with a given other set of circumstances will have the same value responded here.
Marco:
So that that would be like, you know, I know a while ago with the battery percentage API, they just rounded it to the nearest 5%.
Marco:
So, you know, you'd have 85% and then you'd have 80% later, you know, so it was just rounded to the nearest five.
Marco:
And I don't know what they do now.
Marco:
I haven't looked at it recently, but that's one example.
Marco:
Other examples are like, you know, they a long time ago, you could get the Mac address of various network interfaces of the device.
Marco:
And of course, that's a pretty firm, unique identifier.
Marco:
That was like the dream identifier for these people.
Marco:
And so what they did was they modified the API to return all zeros for all Mac addresses that you get in iOS.
Marco:
But you can start thinking like by looking at this list, you can see like there's other things that make it hard to fuzz.
Marco:
Anyway, so method number one is fuzz the data or make the API return bad or no data.
Marco:
And that closes the hole that way.
Marco:
Or option two, they make you pinky swear.
Yeah.
Marco:
And you see all of iOS and all of Apple's modern platforms are some combination of these things, but iOS security is based upon a certain level of technical security and a certain level of pinky swearing.
Marco:
The problem is when you put these APIs on the pinky swearing side...
Marco:
I think that's where we start to see inconsistent enforcement.
Marco:
We start to see people having pretty strong reason to just kind of a little white lie and just game the system.
Marco:
And you see the same thing with the privacy nutrition labels in the App Store.
Marco:
There's a lot of kind of fuzzing required there.
Marco:
And I remember I was talking to some Apple people when they announced the privacy label thing.
Marco:
And I was asking, what's going to stop people from just lying?
Marco:
What's going to stop people from just not filling in this correctly or kind of BSing it a little bit?
Marco:
And they said, well, you're making a legal statement to Apple with this submission.
Marco:
What?
Marco:
When you declare that your app follows these privacy guidelines and uses this information but not this information, when you're filling out the privacy thing on App Store Connect, you are making a legal attestation to Apple saying, this is what my app does.
Marco:
So they're kind of relying on good actors, both wanting to do the right thing, but also companies and responsible individuals trying to make sure that they're not going to have problems with Apple later.
Marco:
And that's all well and good, and that probably does cover a lot of people and a lot of companies.
Marco:
But that's not good enough if you have a technical option on the table.
Marco:
If you can close these doors technically, that's way better.
Marco:
It's the same principles of like, you know, that the App Store, you know, it keeps us safe in some ways, but not quite as safe as Apple likes to promote it as.
Marco:
Because AppReview...
Marco:
is all pinky swear stuff it's all i mean for the most part they can detect certain rule breaking things technically but for the most part all the app review rules are very often pinky swear based you know maybe casey and i you know we won't want to break the rules john will never be in the ios app store so we don't have to worry about that so like we don't want to make it out of the app store so we're going to follow the rules but at the really big end you have companies like facebook or uber who don't
Marco:
kind of don't follow the rules a lot of times, or at least try not to follow the rules because they know, like, what's Apple going to do?
Marco:
Kick them off the App Store?
Marco:
Probably not.
Marco:
Like, there are certain companies that are so big, Apple kind of has to work with them behind the scenes and be like, come on, you got to do this.
Marco:
You know, they kind of have to do stuff like that because, you know, they're going to have a problem with iPhone owners if, like, you all of a sudden can't get Facebook on the iPhone.
Marco:
And then on the very, very small end, you have developers that either don't know what these things mean or...
Marco:
or willfully lie because they don't care because what are you gonna do kick my developer account of the app store oh well i'll make another one with you know some other random name you know some other random identity or whatever like so there's there's like tiny tiny developers and scammers just outright scammers who don't care at all about the developer account that's hence being a scammer if they can make some money you know quickly they don't care about the longevity of that account so you have all these other kinds of actors that will out of ignorance or willfully ignore any of these pinky swear kind of rules
Marco:
So technical barriers are way better.
Marco:
So in cases like this, you've got to look and see why couldn't they make a technical barrier to this?
Marco:
Why did this thing have to be a pinky swear method instead of a technical barrier that would actually be just enforced by the system, period?
Marco:
And it's interesting, I think, to try to figure out, how could someone use this to fingerprint you?
Marco:
So if you look through the different APIs, it's kind of genius how people would use some of these things.
Marco:
So file timestamp APIs, creation date, modification date.
Marco:
I'm guessing, again, I'm not an expert in this area of how people fingerprint people, but I'm guessing these were used to check maybe certain creation dates of system files that for some reason their directory entry had to be accessible to third-party apps for some reason through the API.
Marco:
So maybe you could check like the modification date on some file that's installed, like when the phone is set up.
Marco:
And then that would basically stay that way for like a year until the next OS update or whatever, or the next phone, you know, was dropped in the toilet and they got a new one.
Marco:
That is probably the file timestamp hole there is probably something like that.
Marco:
So that's why they have to, you know, modify that.
Marco:
And that's why they have to apply pinky swear things to that.
Marco:
And they can't really get rid of file timestamps because lots of apps use those for good reasons.
Marco:
So, okay, that makes sense.
Marco:
System uptime.
Marco:
That's really interesting, too, because if you take one of these super precise timestamp things like mock absolute time, you can say, all right, at this time I access this API and it was reported that there was this kind of uptime.
Marco:
Then you can kind of back solve from that to see what was the boot time of the device.
Marco:
Many people hardly ever reboot their phones, you know, unless the battery totally dies.
Marco:
But most people like your phone, the uptime on your phone is usually pretty long.
Marco:
It's many days, if not weeks or months for a lot of people, basically until a software update or until your battery is totally dead.
Marco:
So you could actually use that to, at least within a brief window, fingerprint somebody really accurately to say this person, this device has been up since exactly like this nanosecond.
Marco:
And that's a pretty clever way to do it.
Marco:
So, OK, that's why that makes sense.
Marco:
You'd have to restrict that.
Marco:
disk space similar thing uh in terms of like it is a very precise number this in this case though they could probably fuzz this api i don't know why the disk space api needs to be like bite accurate necessarily i mean i'm sure there's some some use cases i'm not thinking with apfs it isn't let's be honest
Marco:
Yeah, that's very true.
John:
The concept of free disk space has become about as complicated as the concept of shared memory is on modern Unix things because there's so much sharing of pages slash blocks between snapshots and the sealed system volume.
John:
Yeah.
John:
swap being changed i'm actually kind of surprised that free disk space is useful for fingerprinting because it's got to be changing all the time in response to just little turdy files being written and rewritten and snapshots being made and stuff like that but you know i guess it's just one ingredient in the giant stew that's trying to define uh your unique identity
Marco:
I'll tell you what, my app has checked free disk space for years before syncs and before downloading files for the reason I mentioned.
Marco:
That API is incredibly unreliable.
Marco:
Oftentimes, I will check it, it will return free space, I'll download the file, and all of a sudden, oh, you're out of space, it's full, I can't do it, I don't know what you're talking about, why'd you even try?
Marco:
Other times, it'll say there is no free space, but there is free space.
Marco:
So it is, I find that very unreliable.
Marco:
And in fact, maybe I'll just stop using it instead of filling out my reason code here.
Marco:
Anyway, active keyboard APIs is the other one.
Marco:
Honestly, I don't know anything about this.
Casey:
I think it's because if you have only English and Italian installed, then they can know that, oh, you're probably Federico Faticci.
Casey:
Not literally, of course, but it's one of those components.
Casey:
Like, oh, you only have English and Italian installed, and your uptime started at 2.15 in the morning six weeks ago.
Casey:
Put those two together, and suddenly you're Federico Faticci.
Casey:
You know what I mean?
Casey:
It's that sort of a thing.
John:
Yeah, I feel like it's like rough geolocation, like because you probably have some combination of keyboards available and you're going to have like your native language and then like the emoji and then maybe a swipe keyboard.
John:
Like it's just another setup about your phone that might be not unique to you, but it's one more ingredient pinpoint, one more degree of specificity.
Marco:
Then that leaves us with user defaults.
Marco:
And this, as mentioned, this is a core API for lots of things.
Marco:
And so you have to wonder, how are people using user defaults to do accurate fingerprinting?
Marco:
Because between different apps from different vendors, you don't have a shared sandbox.
Marco:
I don't really have a good idea about this, but our friend Steve Trouton-Smith actually posted a pretty interesting bit of information on this.
Marco:
So Steve says, user defaults has always been a silent exfiltrator of private data.
Marco:
Every framework your app can access, photos, music, Safari, telephony, et cetera, generally needs access to its own user defaults store, which left tons of side channels for any app to pick up things like phone number, email address, real name, recent photo searches, et cetera.
Marco:
Without any kind of permissions prompt.
Marco:
Any library you include in your app, like analytics packages, can then yoink all of this without you, the app developer, knowing about it.
Marco:
And in fact, Steve Troutensmith has actually had credit in some of Apple's security.
Marco:
He linked it to an Apple security note with one of the updates that closed a security vulnerability that he found and reported to them that was related to this.
Marco:
So basically, I think the way this works...
Marco:
Suppose you have an app that reads from the music library in some way.
Marco:
The framework that you're accessing, unless it's running through an XPC service, which many of these things aren't, the framework that you're accessing has to be able to read its own user defaults stuff.
Marco:
But it's reading it from your app if you're using the framework directly, not through XPC.
Marco:
I think what this would mean is if that framework is not super careful about what's stored in that user default store, then any app can read like the music preferences that are exposed through the music library frameworks or whatever.
John:
Or they can find it in memory.
John:
Like if you're in the same process, you can do all sorts of sneaky things to wiggle your way down to some piece of memory that the music framework because, you know, it's
John:
It's Apple's framework, but it's in your memory image of your process.
John:
And it just did something and put something in memory.
John:
And your program has access to that memory because it's your process.
John:
And so you can, you know, sneakily find it.
John:
And that's actually very difficult to pick up with static analysis because it's kind of the halting problem to detect data.
John:
when someone is worming their way over some piece of memory loaded by some framework at runtime, right?
John:
And so this is a thing where technical barriers, I mean, they would have to put everything in XPC to sort of make it so it's not in the same process, but that's difficult to do.
John:
And sometimes there's efficiency things that make that, you know, inadvisable.
John:
So they need to go pinky swear here because there is no other way to stop, no other way to check if an app is doing this.
Marco:
I think it makes sense why they're why they added user defaults to this list.
Marco:
But I also think that's going to be a mess because everything uses user defaults.
John:
I mean, it's basically it just means every app.
John:
I almost feel like they should have in Xcode should have just defaulted every single application to say I use user defaults and I use it for the one valid reason code.
Marco:
There's even built-in... There's an app storage property wrapper in SwiftUI that uses user defaults.
Marco:
So many things use user defaults.
Marco:
So much of Apple's guidance, so much of their sample projects, so many commonly used features and tasks are backed by user defaults, even if you don't even realize you're using it.
Marco:
So it's going to be almost every app that does pretty much anything.
John:
Although I think speaking of app storage and stuff, I think what they mean by this little list is you have to actually type the word user defaults in your code.
John:
So even though app storage uses it, I don't think that would count as you using user defaults.
John:
I think you actually have to have the code yourself.
John:
So like you don't get dinged because the music framework uses it or whatever.
John:
I think it has to be directly in your code.
John:
But like I said, that's like...
Marco:
any app that has any settings uses user defaults it's you know aside from some weird cross-platform electron type things like even marco even when you had the magazine and the app had no settings i bet you still use user defaults of course i did because it's like it isn't just settings it's state yeah like that's that's a that's a common place to store little bits of state like does the user have this panel expanded and the next time you launch the app you want to you want to you know reshow it with the panel expanded
Marco:
You know, it's every little bit.
John:
That's what I'm saying, that every single iOS developer is going to have to create this little file and put this reason code to use it to false.
John:
They may need to do additional things, but pretty much everyone needs to do this.
John:
And it's not that big a deal to do this, but it's...
John:
It's what happens when bad actors ruin everything for everybody.
John:
Oh, now the entire process of app development has one more little annoying thing.
John:
And why?
John:
Because of bad people.
John:
Because of people abusing these APIs and we all have to pay the price for it by dutifully, you know, filling out one more form that says, yes, we are allowed to have an app.
Marco:
In the user default case, I think Apple needs to work harder to make this not necessary for us to do.
Marco:
By modifying the systems, by modifying the APIs, by maybe only requiring it for certain types of edge cases, like shared group containers.
Marco:
You could only require it for certain parts of the API that most legitimate use wouldn't even go near.
Marco:
Um, so like there's ways to do this that like, cause what they're doing right now is they're going to make a mockery of the user default example here, because as you said, everyone's going to, going to add this, uh, add that little, that little permission code says, yes, I swear, you know, and it's, it's just like, you know, suppose when you were a, uh, you know, a 17 year old trying to look at pictures of things on the internet, you weren't supposed to be looking at.
Marco:
And there was, there'd be a link that says, click this link.
Marco:
If you're over 18, um,
Marco:
I mean, come on.
Marco:
That doesn't do anything, right?
Marco:
These attestations for user defaults are going to do nothing because every single developer, they're going to run into a problem where maybe if you upload the binary to App Store Connect and it detects user defaults,
Marco:
and you don't have this in, it'll reject it.
Marco:
So whatever phrase it says on that rejection, people are going to paste that into Google or Stack Overflow, and they're going to find, oh, you got to add this one playlist entry with this, you know, the playlist entry is CA92.1.
Marco:
Like, this doesn't mean anything.
Marco:
Like, they're going to see this, and they're going to just copy and paste.
Marco:
Okay, I got to do this to submit it, then it works.
Marco:
That's it.
Marco:
No one's going to understand what this means.
John:
I think their plan is not to reject based on this initially.
John:
I think there's some sort of period of either six months or a year where they're just going to yell at you about it.
John:
But then they're going to start rejecting if you don't do the correct pinky swearing.
John:
So they have a phased program to try to get people used to it.
John:
So you're not going to immediately be rejected by this, but you're just going to get scolded.
John:
And hopefully that will get you to Google it and enter it or whatever.
John:
But that's what I'm saying, like...
John:
xcode projects like the sample pro you know when you start a new project and you pick the api it should just include this by default because you're going to use user defaults right and so just put just declare the reason because the reason is so limiting like i said they need to add another reason for shared you know app groups because that is a supported feature uh but
John:
Yeah.
John:
I mean, if they're really looking for this, like it's, it's so weird to be how it described as like, well, now we kind of quote unquote have it in writing that you said you were doing X, but really we found out you're doing Y, Y Apple, you can reject any app for any reason.
John:
And you do.
John:
And fingerprinting is already against the rules.
John:
Yeah.
John:
Yeah.
John:
you know like but the whole point is like oh in case we get sued like good luck suing apple for rejecting your app i think a couple companies have tried that it hasn't worked out well for them thus far the courts have said yeah apple can do whatever it wants with its own app store so it seems weird to me that they were like oh we want to have some legal you know some legal cover here because we can say well you said you're only using your defaults for this but actually you were sneakily doing that so so we're allowed to reject you you
John:
You can reject them for whatever reason you want.
John:
You can reject them because you don't like their face.
John:
So it's so weird that they want this.
John:
But I kind of understand.
John:
It's kind of like the rules for the developer or kit for Vision Pro or whatever.
John:
You just want to say, hey, you said that you agreed to this and you said you were going to do these things.
John:
So basically...
John:
If we decide to bring the hammer down, it's so easy to find a violation.
John:
And I feel like lots of good actors are going to not properly fill out the pinky swear form.
John:
And their apps are going to technically be in violation because, oh, they forgot this reason code doesn't cover it.
John:
Like my example, if you just read this quickly and didn't think about it, you'd be like, oh, yeah, I'm using user defaults for the usual reason.
John:
I'll put this reason code in.
John:
my app would be in violation because I'm actually using a shared, you know, an app group in a shared container.
John:
And if, you know, maybe you just didn't notice that.
John:
You're not doing anything, you know, nefarious with user defaults.
John:
You just didn't realize your use case isn't covered by the thing and you didn't fill out that big form to get a new use code or whatever.
John:
So...
John:
I mean, this is kind of like all of the entitlement things where there's a list of entitlements for doing stuff that you want, but you can also ask for temporary, quote unquote, temporary exceptions.
John:
Some apps have had temporary exceptions for it's got to be close to a decade now.
John:
Quote unquote, temporary, because they're like an important app and Apple wants them to exist.
John:
And so here your app can have this temporary exception.
John:
But Apple always says, but, you know, we're not saying every app can do this.
John:
just you can because you submitted a request for it and we like you we gave you a temporary exception so now you're allowed to send apple events good for you but no one else is don't use apple events uh this feels a little bit like that so i don't i don't know we'll come with it presumably this will be useful for apple it's it's one more little thing that we have to deal with it's not that big a deal again most of the blame for this is on the bad actors not an apple they're just trying to
John:
They're trying to find a way to make a system that is less bad.
John:
So I feel for Apple in doing this.
John:
It's all the people who have found ways to abuse the system that are ruining it for everybody.
Casey:
Yeah, I feel like any time Apple has some sort of thing like this come out, we can just ask ourselves, how did Facebook screw us all this time?
Casey:
Because from everything I've understood and can discern, it seems like at least half the time this is Facebook doing something shysty.
Marco:
We are brought to you this week
Marco:
In this world, phished credentials are useless to hackers, and you can manage every OS, even Linux, from a single dashboard.
Marco:
Best of all, you can get employees to fix their own device security issues without creating more work for IT.
Marco:
The good news is, you don't have to imagine this world.
Marco:
You can just start using Collide.
Marco:
Collide is a device trust solution for companies with Okta.
Marco:
And it ensures that if a device isn't trusted and secure, it can't log into your cloud apps.
Marco:
Visit collide.com slash ATP to watch a demo and see how it works.
Marco:
That's collide spelled K-O-L-I-D-E dot com slash ATP.
Marco:
Thank you so much to Collide for sponsoring our show.
Casey:
John, I don't think you need Marco and I for at least the next 20, 30 minutes because I hear you're using photos a lot and it's time for our annual topic.
Casey:
The John uses photos a lot topic.
Casey:
So what grievances would you like to air today, John?
John:
Yeah.
John:
This is the time of year when I'm back from my beach vacation and I have literally thousands of photos to deal with and process and put out into little albums for people to see and make my photo book and do all those things that I do.
John:
And it is the time of year when I use the photos application the most.
John:
Any contact with the photos application on the Mac drives me into a rage.
John:
and i usually talk about some of it on this podcast so here this year i have limited myself to just two things there's so there's so much about the mac photos application that that i would love to change in fact i just just this evening i was ranting to somebody who works at apple about the photos application and they were giving me some pushback and they said oh you mean the photos application on the mac i'm like
John:
Yeah.
John:
The real photos application.
John:
Oh, shots fired.
John:
Where you can do all the things like add keywords and identify faces.
John:
The application that hasn't been updated in like seven years.
John:
That one.
John:
That's the one I'm using.
John:
Because we had this disconnect.
John:
I was like...
John:
but we we changed the photos application all the time like no the mac photos application they'd forgotten it even existed and it feels that way so here this for this year 2023 i have but two things to say to the photos team if they're listening uh and i honestly i don't think there is a mac photos team i don't know if they exist i love the server side people who did shared icloud photo library awesome job that's mostly the server side people i guess there must have been some client side people to do the integration so fine that works good too
John:
The rest of the application is just like untouched.
John:
It boggles my mind that it is untouched.
John:
That's why I'm really targeting this year at two specific things.
John:
One really, really easy and one a little more difficult.
John:
And I'm setting aside all the other things that I can plan about.
John:
First one, I finally broke down and filed this as a feedback this year, mostly because I thought of the maximally snarky way to file this feedback, but it's been driving me crazy for the entire eight years that the Mac Photos application exists.
John:
It was iPhoto before that, and it was a little bit different.
John:
I don't remember what it was like back then, but Photos, when it was called Photos on the Mac,
John:
it has had this problem when i edit my photos pretty much the first thing i do to any photo that i'm editing is crop it to reframe it to you know if i didn't if i didn't get the framing exactly right even i'm just trying to rotate the horizon to be level because i'm really bad at holding the camera level i'm getting better but and i guess i do use the thing in the viewfinder that shows the level but that's not that accurate and it's laggy and it's hard to see anyway
John:
cropping that's move number one before i start adjusting anything i don't edit every photo but i added a lot of them when i crop the photo what i want to happen is for the photo to be a some subset of the size that it is so here's the entire frame of the photo and cropping means taking some smaller portion of it and saying no this is the photo now discard everything that's outside there
John:
When I do that, I don't want the aspect ratio of the photo to change.
John:
So if the aspect ratio is four by six or three by two, when I crop it, I want to end up with a photo that is still four by six or three by two or five by seven.
John:
I don't want to change it to some weird aspect ratio for multiple reasons.
John:
One,
John:
consistency i don't want to have photos with all sorts of weird aspect ratios too if you're going to do prints they come in standard aspect ratios if you try to make a print of this weird long skinny photo or a tall thin one like you want them to be print size three when you're making books the book pages come in standard ish aspect ratios you can lay out photos on a page and each of those little rectangles is usually one of the several different standard aspect ratios for your photos
John:
And I have to think this is common.
John:
When you're cropping a photo, you want it to maintain its aspect ratio.
John:
On photos for the Mac, when you hit the C on the keyboard to crop, because you're using the keyboard commands because you don't want to keep clicking things, you have to then say, oh, and by the way, when I crop this, I want it to maintain the original aspect ratio.
John:
And you have to click the word original in the sidebar.
John:
And the bug I filed as FB12744158 is titled, I have clicked original aspect ratio 16,171 times.
John:
Do you really know that?
John:
I counted it using the SQLite database that's in photos.
John:
How many photos do I have?
John:
How many photos do I have that are A, cropped, and B, cropped with the original aspect ratio?
John:
And the answer is 16,171.
Casey:
Like I heard what you said about the SQLite database, but they actually have like columns for these things.
John:
it's a little bit tricky to find but you can combine it but you can do like a smart album and then you can combine it with the data from sequel light to get this answer that's a that's a a minimum estimate because sometimes you crop more than once and change your mind sometimes you make it portrait then landscape and you decide you want to change the aspect ratio and change it back but at minimum this is what it is but this is how many are currently cropped to original aspect ratio and every single time i cropped one of those i had to click original because you know what the default is in photos
John:
Freeform, which is whatever.
John:
Make it any aspect ratio you want.
John:
Just grab the corner of the thing and move it.
John:
Now, there are ways around this for trackpad users, powerbook, powerbook, laptop users that have trackpads or Mac users who have trackpads.
John:
You can go to crop and then pinch and zoom.
John:
Then you don't have to click original because if you pinch and zoom, it will maintain the aspect ratio because it'll just zoom the picture from within that.
John:
But that is much less precise, pinching and zooming, much less precise than grabbing one of the corners of the little crop thingy or whatever.
John:
And practically speaking, I don't have a trackpad and I don't like trackpads.
John:
So I'm setting that aside.
John:
So when I did this, because I don't have a trackpad and don't use a trackpad to do my editing, I clicked original 16,171 times.
John:
That's about a little over 5.2, 5.3 times per day for the past eight years.
John:
Obviously, it's not really like that.
John:
What it's really like is I don't use photos for a long period of time.
John:
And then over the course of three days, I click crop, aspect, original, crop, aspect, original, crop, aspect, original thousands of times.
John:
What I would like is for the photos application...
John:
to declare in their privacy manifest thing or whatever that they're going to use the user defaults api there it is there it is and in the user defaults api they're going to store an integer value that indicates the last aspect ratio i clicked on when cropping a photo and you know how many more times i would have to click original once
John:
And then every other time I crop, I would hit crop.
John:
Original would already be selected because the photos application would have remembered for the past eight years, this person has clicked this 16,000 times.
John:
Maybe they want to crop to the original aspect ratio.
John:
Maybe they can use machine learning to figure it out.
John:
Hmm.
John:
It seems that over the past 16,171 photos this person has cropped, they have chosen original 16,171 times.
John:
What should we select as the default aspect ratio?
John:
I don't know.
John:
Send it through the model.
John:
See what answer we get.
John:
I just want this one setting to be saved.
Marco:
How much power can we apply towards solving this one problem?
Marco:
We can either store an integer.
John:
I'm so tired of clicking this.
John:
Remember that I want it to be original.
John:
Who doesn't want it to be original?
John:
But I don't care.
John:
I don't care if I'm literally the only person on the planet who wants the original.
John:
I don't care what you want your default to be.
John:
You could have your default be square.
John:
I don't care.
John:
Just remember it.
John:
Remember the default aspect ratio that I have selected somewhere.
John:
Put it as a value in user defaults.
John:
I'm begging you.
John:
Eight years.
John:
I haven't complained about this.
John:
I think it mentioned that in this program.
John:
It's like...
John:
when when is does anyone use this application to edit photos do people crop photos i don't so i found that it's a snarky bug i don't apologize for the snark it's been eight years i want them to remember this setting i really hope there's some kind of secret p list that someone's going to tell me they just say defaults right you know com.apple.photos default aspect ratio you know integer value five and it'll just remember original but
John:
It bothers me.
John:
This makes me think that no one uses this program because you can't use it like in earnest.
John:
You can't use it to edit a thousand photos without noticing that it does not remember your aspect ratio.
John:
So that is complaint number one.
John:
I would like sometime in the next decade, someone to make it remember that I am always going to click original.
Marco:
Now, before you move on to complaint number two, because I'm sure people are going to write in and ask you this, and so I might as well save them the time.
Marco:
Have you ever considered using some other photo ingesting app to do like your initial first pass and basic cropping and everything and then dumping it into photos to save you some of the steps?
John:
No, because here's why I'm kind of quote unquote trapped slash happy to be trapped in photos.
John:
Everything I do in photos is non-destructive.
John:
So when I do that cropping, it's not throwing away the rest of the picture.
John:
Every single thing you do in photos is non-destructive.
John:
I value that a lot because I recrop.
John:
I go back.
John:
Sometimes I do like summary books of like, you know, the past five years of the beach or something.
John:
And I will re-edit and recrop with like the wisdom of age or a different taste or whatever.
John:
Everything you do in photos is non-destructive.
John:
um even when you edit an external editor you can like preserve edits or whatever and be able to revert to the original so if i use some other program to do the cropping it's i don't know of a way to do that in a way that when i feed it into photos it continues to be non-destructive okay
John:
So number complaint number two, this is more complicated.
John:
The other one, the other one, by the way, it reminds me of like the story of the, I don't know, it's probably apocryphal, but everybody was on Twitter ages ago where someone applied for a job.
John:
And in their first two weeks on the job, they went into the repo for the code.
John:
They fixed some bug that had been bothering them.
John:
And then they gave it a two weeks notice.
John:
Yes.
John:
You just basically, because this is the type of thing where, I mean, granted,
John:
It's kind of a fantasy to think that you're going to spend two weeks fixing this because even if you are a new employee at Apple, it would probably take you six months to get this through the bureaucratic process to be in the thing.
John:
But implementation wise, it's literally saving a user default.
John:
I could implement this in Mac photos.
John:
If you sent me the source code, I 100% could do it.
John:
I am confident I could do it.
John:
And then, you know, you'd have to herd it through the release process and it would come out and Mac OS, you know,
John:
whatever is going to be after Sonoma.
John:
If you're lucky, if it isn't already too late to get it into that release and you have to justify it to some high-up person, like, why are we changing Mac photos?
John:
We haven't changed that app in eight years.
John:
Is this a strategic thing?
John:
Someone wants to add a user default?
John:
We have too many settings already.
John:
No, no, no.
John:
I understand the difficulty.
John:
Like, I understand what it's like in big companies.
John:
It's hard to do this, but technically speaking, I could implement it.
John:
So I should get a job at Apple, fix this, and then quit.
John:
But that seems like a lot of effort.
John:
It would be great if someone could just pick up this feedback and just do it.
John:
second one second one is kind of a meta complaint that we've talked about before but it was really bothering me in this this year's uh run through photos for whatever reason i think it's probably because something was being wonky and i did the thing where you hold down command and option when you launch photos on the mac and it says do you want me to rebuild your photos library i think i did that recently ish
John:
I'm not sure why.
John:
If that's not the cause, then maybe it's something else.
John:
But every once in a while, the people detection in photos on the Mac loses its way and kind of forgets what you think it once knew.
John:
I know more recently...
John:
Apple has been syncing the faces you affirmatively identify.
John:
If you say, yes, this is my wife, it will remember that you said that and sync it across all your devices so you don't have to say it again elsewhere.
John:
That didn't used to be the case.
John:
So I think it's probably retaining my affirmative answers, but what it seems to lose is, okay, based on your affirmative answers of who your son is, who your daughter is, who your wife, all these people are, I'll figure out using...
John:
facial recognition, all the other pictures of them.
John:
You didn't affirmatively identify it as them, but based on the ones you did identify, I can figure out this is also your son.
John:
Sometimes it seems to forget some of that.
John:
And certainly if you import thousands of new photos, it has to go over those photos and say, based on what you've told me,
John:
Let me go through these photos and A, find all the faces in them, which is task number one.
John:
And B, of all the faces that I found, do any of those faces belong to people that you've previously identified so I can group them in?
John:
And when I gather my thousands of photos from vacation and edit them and favorite them and keyword them and do all that stuff...
John:
One of the things I also want to do is have sort of sub smart albums like Long Island 2023 favorites of my daughter for because I'm arranging a page in a photo book or something.
John:
That's a smart album that you can make using the power of photos for that to work.
John:
Photos on the Mac has to have done those two things, found all the faces of my new photos and identify which ones are my daughter.
John:
And when I'm editing photos, like I'm loading them on my laptop at the beach.
John:
And then when I come home, I start, you know, start up my Mac and they all sync there and everything, you know, gets loaded up.
John:
And probably a day or two after I'm back, I'm like, OK, now it's time for me to start doing my photo editing, make my albums, make my book.
John:
And I was thwarted this year because my little smart albums that I would make to help me sort of arrange things for the book had no idea who was in any of the photos.
John:
And I'm like, why is, you know, favorites of my daughter from Long Island 2023 have zero photos in it?
John:
And I went and looked through my photos from Long Island and I'm like, no, you can turn on a thing in Mac photos that will put circles around people's faces.
John:
You can view like where it found the faces.
John:
And it hadn't found faces in any of my photos.
John:
And I'm faced with that situation that we're all kind of faced with in macOS and Mac apps and many apps that Apple makes, which is, all right, what do I do now?
John:
Like, what I wanted to say was, Apple Photos, find faces.
John:
Do that now.
John:
Because I can't do the thing that I want to do until you find faces.
John:
And lots of things like this...
John:
are sort of like, you don't have to worry about that.
John:
There's no button to find faces.
John:
It will just find them for you.
John:
Don't worry about when it will find them.
John:
Don't worry about how it will find them.
John:
In fact, we'll find them at a low priority, only when you're plugged into battery, and there's all these sorts of conditions, and you don't have to worry about it.
John:
Well, I do have to worry about it if I have thousands of photos where you haven't found the faces, let alone identified who's in them, and it's blocking my work.
John:
So what I would like to say is,
John:
Right now, on my plugged-in desktop computer, use every single resource on the system to find faces and identify.
John:
Use all the cores.
John:
Use all the GPU.
John:
Use everything.
John:
I'm literally not going to be doing anything else on my computer.
John:
You have the full power of this mighty Intel Mac Pro to right now identify all the faces on these thousands of photos.
John:
Do it now.
John:
Excuse me.
John:
Excuse me.
John:
Once mighty Intel Mac Pro.
John:
It's still mighty because it still has the highest potential GPU capability of any Mac.
John:
Potential?
John:
And it can hold the most RAM.
John:
Just just do it now.
John:
But there is no do it now button.
John:
And so you end up on Google and what you will find on Google are tons and tons of results for how do I make Mac photos identify my faces right now, right now, right now.
John:
And there's all sorts of, you know, witchcraft and superstition about how to do it.
John:
I will link to one of the pages and it's like, you can, you know, okay, so restart your computer because that's always step number one.
John:
Log in.
John:
Launch photos to get the photos demons to run.
John:
Launch activity monitors and search for photos so you can see them.
John:
So you want to see cloud library D, photo library D, photo analysis D. But then quit photos because photos can't be running when it identifies faces.
John:
Photos will say something like, we will identify faces when you're not using the application.
John:
But that language makes people debate on the internet.
John:
Does that mean photos can be running but I'm not using it?
John:
Or should photos be quit?
John:
Or will it only run if Photos is the app is running, but I'm not using it?
John:
Or will it also run when Photos is quit?
John:
And people are like, oh, okay, well, the photo analysis, the daemon won't launch until you launch Photos once, but then quit Photos.
John:
And some people are like, you got to remove all login items, right?
John:
There's just all sorts of just like reckons people have about what is the precise set of conditions.
John:
Oh, make sure Photos isn't open on your iPad or your phone either with the same Apple ID.
John:
Make sure multiple accounts aren't logged in.
John:
And I was doing all these things.
John:
I'm like, please, because I'm like everyone else.
John:
I'm an activity monitor and I'm trying to say, photo analysis D, why are you using 0% CPU?
John:
Am I looking at the wrong demon?
John:
Is it really photo library D that I should be looking at?
John:
But I would search for photo or cloud and they'd all be using 0% CPU.
John:
There's nothing going on on my system.
John:
Everything is logged out.
John:
I'm logged into a single account with nothing else running and I'm just like, please.
John:
please analyze faces please analyze for days i'm trying to get this thing to analyze and then sometimes i'll come back to my photo analysis is using 60 cpu oh it's down to zero again was that a fluke and and you'll come back to the people library and it will say oh sometimes it'll say you have you know 10 000 more photos to analyze come back later and they'll probably be done but i'm like please like it took me like
John:
Three days of just delicately trying to arrange the world so that my Mac felt like it was safe for it to analyze faces in my photos, as opposed to having a button somewhere in settings that says, analyze the faces right now.
John:
That's what I want.
John:
And this is not a good user experience because if you aren't willing to Google the world and figure out how you have to get everything just so, so it feels comfortable enough to analyze faces, you would never know.
John:
Like you would think this feature doesn't even exist.
John:
And for this during this time, that's literally the only thing I wanted to do on my computer.
John:
I wanted to make my photo book.
John:
I wanted to make these smart albums.
John:
I wanted to do this thing and I couldn't do it because my computer, which was otherwise idle, refused to do the thing I wanted to do all in service of having this magical.
John:
Don't worry about it behind the scenes.
John:
I'll do this whenever you want.
John:
Like I won't drain your battery.
John:
Don't worry.
John:
I'll do it when I feel safe.
John:
I just want it to do it right now.
John:
So that's complaint number two.
John:
And it's a meta complaint because it's true across tons of Apple's applications where they want it to be a magical user experience where you don't have to worry your pretty little head about it.
John:
But sometimes I just want a button to do it.
John:
That's why we always talk about the sync button in messages as this amazing thing.
John:
I mean, it doesn't work all the time or whatever, but just to have some kind of button that says, do the thing now.
John:
The thing that you're afraid to do because you think it's going to drain my battery or make my system slow or whatever, do it now.
John:
And then maybe a button to cancel it, you know, or whatever.
John:
Like, call me crazy.
John:
Like, I feel like we've gone backwards in technology with this whole magical, you know, I'll do it behind the scenes and you don't have to worry about it.
John:
Sometimes it needs to be done right now.
John:
So that's number two.
John:
So number one, remember the aspect ratio I want.
John:
That's a single user setting.
John:
And number two, some way for me to tell Photos to do this and all the many other things that Photos claims to do for you in the background transparently so you don't have to worry about it.
John:
Just that, John?
John:
Two things.
John:
Just two things this year.
John:
Not even going to talk about the info window and how it is incredibly hostile to all forms of user input.
John:
How kind of you.
Casey:
Yeah.
Casey:
Oh, I'm sorry.
Casey:
I'm sorry for your troubles.
Casey:
And I don't know.
Casey:
I...
Casey:
I don't do a lot of these editing things that you do in photos, which probably makes my pictures not as great as yours.
Casey:
But nevertheless, I can see how that would be incredibly, incredibly frustrating.
Casey:
And I am deeply amused that you went spelunking through the SQLite database in order to answer this question for yourself.
John:
That's just to make a snarkier feedback.
John:
You know, that wasn't really part of the process.
John:
I did eventually analyze all my photos, by the way, after, I think it was three days of, uh, of trying to arrange the world.
John:
It's kind of like, you know, I'm trying to think of an analogy of like, just, you know, the, the stereotypical thing where there's a bunch of guys in a movie are trying to pee, but they can't pee if someone's watching them or they need to have water running or whatever, like that whole, it almost was like my computer.
John:
It's like, I can't, I can't do it.
John:
If you're watching me, leave the room and don't have any other apps running.
John:
And then I'll think about analyzing face.
John:
Nope, no, you scared it away again.
Marco:
We are sponsored this week by ATP Membership.
Marco:
Please consider joining as a member, and you really will support the show in an even better way.
Marco:
Now, if you can't do it, that's cool.
Marco:
Keep listening.
Marco:
You have the ad version, and that supports us too.
Marco:
If you can join as a member, we strongly encourage it.
Marco:
So here's what you get.
Marco:
First of all, you get an ad-free version of the show, which, you know, just like this, same feed, same production and everything, but ad-free.
Marco:
You also get the bootleg version, which a lot of people enjoy.
Marco:
The bootleg comes out right after we finish recording, so usually about 12 hours or so, maybe a little more, before the regular release version.
Marco:
So you get an early release.
Marco:
It's totally raw and unedited.
Marco:
So it doesn't have chapters and stuff, but it does have Casey swearing, and everyone loves that.
Marco:
It has our title selection process, any bits and bobs that we cut out for the final version.
Marco:
That's all in the bootleg.
Marco:
A lot of people love that.
Marco:
um occasionally there's other benefits as well so a couple times a year when we do the big merch sales we'll give a merch discount to members and stuff like that but really what you're paying for for the most part is the bootleg feed the ad free feed and supporting the show so if that interests you atp.fm join it's eight bucks a month or a couple other currency options a couple other plans but it's basically eight bucks a month atp.fm join we would love it if you supported us as a member and hey if not we're still cool again keep listening we love that too but
Marco:
If you can join us as a member, we'd really appreciate it.
Marco:
Thank you so much.
Marco:
And back to the show.
Casey:
All right, let's do some Ask ATP.
Casey:
Aaron Bushnell writes, what in your SwiftUI apps still needs UIKit to create the experience you want?
Casey:
I want to stick to SwiftUI as much as possible, but it feels like there's still a lot missing.
Casey:
One example, using focus state to focus an input when a sheet is presented is still not as instant as UIKits become first responder.
Casey:
For me, I'm pretty sure I'm not even using this anymore, but the one place that I can think of off the top...
Casey:
I think it's the only place I'm using UIKit is, speaking of spelunking, the internet's favorite spelunker, Guy Rambeau, helped me figure out a way to determine if the search field is focused or not.
Casey:
But as I think Marco and I talked about just a couple of weeks ago, that is coming in iOS 17.
Casey:
It's just not there in 16.
Casey:
And I'm pretty sure that's the only place I'm using UIKit in CallSheet.
Casey:
But Marco, what are you doing in Overcast?
Casey:
I know you've said that there's been some times in the new rewrite that you've considered dropping down to UIKit.
Casey:
Are you actually doing that at all?
Casey:
Or did you just think about it and then abandon ship?
John:
Well, actually, Casey is the only one who can actually answer this question because neither Marco nor I have, quote unquote, Swift UI apps.
John:
Yeah.
John:
He has UIKit apps, and I have AppKit apps, and we use SwiftUI, but only Casey, if I'm correct here, has the actual SwiftUI app lifecycle thing.
John:
That's what you have, right, Casey?
Casey:
That's right.
Casey:
That's right.
Casey:
That's definitely right for CallSheet.
Marco:
Actually, John, that's not correct for me.
Marco:
I have a SwiftUI app.
John:
Really?
John:
You went full-fledged to the SwiftUI app lifecycle?
Marco:
thing no wonder it's taking you forever no it's not overcast oh that's right you got that was it the tide thing i have my my fire island driving app yeah that is all swift ui except um since i wrote it uh last year and it had to be compatible with ios 15 and 16 wait why i thought you were installing it for like three people
Marco:
Yeah, and two of them had iOS 15.
Marco:
That's why, because it's like, you know, it's not all like tech nerds.
Marco:
It's like real people.
Marco:
Users ruin everything.
Marco:
Yeah.
Marco:
Anyway, so that is almost all SwiftUI, except I have to wrap all the MapKit stuff, because that was, like, I think SwiftUI just got MapKit now with iOS 17, or at least maybe 16.
Marco:
But anyway, so I had to wrap all that stuff.
Marco:
So I had to drop down the UIKit first.
Marco:
tons and tons and tons of the map stuff and that honestly really sucked um but if i if i were writing that app from scratch today i wouldn't need uh ui kit probably for anything anymore um and and i think that's you know where i am with my rewrite which is which you didn't ask but i'm gonna tell you anyway
Marco:
I am actually using entirely SwiftUI, I think, for pretty much everything.
Marco:
There's been occasionally a time where I'll run into some issue like, how do I apply my font, which is not the system default font.
Marco:
It has a few tweaks.
Marco:
I use SFRounded, and I use the alternative 4, 6, and 9 glyphs.
Marco:
So I need, for part of my interface to look correct, I have to be able to customize the font.
Marco:
Sometimes I'll have an issue with SwiftUI, like, all right, well, how do I customize the font of this navigation bar title or something like that?
Marco:
Occasionally, I've had to dip into UIKit to style certain appearance attributes like that.
Marco:
But then a month or two later, I'll find some way to do it where I don't need that anymore, and then I'll take it out.
Marco:
So right now I have, I think, either almost nothing or nothing that's UIKit in the current build of the app.
Marco:
But, you know, it peaks in here and there, but I'm trying very hard to not need it.
Marco:
That being said, you know, for the questioner here, it depends a lot on what your app is doing.
Marco:
Like, you know, last year when I had to make an app that uses MapKit, well, I didn't really have much of a choice.
Marco:
I kind of had to use UIKit there.
Marco:
And so I think, you know, obviously it depends what your app is doing, but if your app is doing something that can be done in 100% Swift UI, it's generally recommended, I think, these days that you do it in Swift UI, if the rest of your app is obviously in Swift UI, you know, mindset.
John:
Yep.
John:
Even though I'm not using UIKit, I'll answer this from the AppKit perspective.
John:
My app is an AppKit app.
John:
My main UI is SwiftUI.
John:
But in some cases where I could have used one or the other, for example, the context menus, I have right-click menus on my little things.
John:
You can do that in SwiftUI, and I did it in SwiftUI using the SwiftUI native context menu pop-up thingy, and it looked and behaved terribly on the Mac.
John:
And so I just I used AppKit for it because AppKit menus work and they look and work exactly how you would think they would.
John:
If you use the Mac, have used the menu bar, you know, those menus.
John:
I want those menus.
John:
And the things SwiftUI was giving me was not those.
John:
So I chose to use AppKit for that context menu, even though I could have used SwiftUI.
John:
there's tons of life cycle stuff.
John:
And we talk about life cycle.
John:
I mean, like, what is the top level of your code?
John:
How do you define this is my app?
John:
And these are the parts of my app.
John:
And here's where execution begins in the code that I wrote.
John:
This is the first line of the code that I wrote that runs in the second and the third.
John:
Like that's what we're talking about as a life cycle, like a top level structure.
John:
There's lots of things you can do in an app kit app that currently don't have an equivalent place in the quote unquote native Swift UI, like from top to bottom thing.
John:
Um,
John:
All sorts of callbacks and delegates and stuff like that that I use to implement functionality in my app that don't exist in the SwiftUI top-level thing on the Mac.
John:
Another example is my apps have menu bar icons.
John:
You can do that in SwiftUI, but it's so much easier for me to do stuff like, oh, but what about when someone option clicks on it?
John:
What about when they, you know, like you can...
John:
I have access to exactly what's happening at the individual click level and all the modifiers and what's focused.
John:
And it's just so much easier to do that from AppKit because in SwiftUI, since it's all declarative, someone has to have thought about wanting that information at this point.
John:
to make it accessible whereas app kit it's all imperative and i can just go get that information wherever i wanted and in fact there's tons of callbacks for everything you can possibly imagine an app kit because it's like a 40 year old api or whatever the hell it is um so i continue to to use app kit for all those things that haven't made it into swift ui yet and for all like the the obscure i mean not that obscure but they're kind of obscure because my apps are not like
John:
My apps are not normal apps that just have like it's not a document based app with a bunch of windows and saving things.
John:
It's weird.
John:
And for weird apps like that, falling down to AppKit makes a lot of sense.
John:
And I imagine it's similar on UIKit.
John:
If you're doing something out of the ordinary, SwiftUI probably hasn't gotten around to implementing your thing.
John:
But UIKit probably has some kind of hook or callback or delegate method or completion handler or something that does what you want.
Casey:
Indeed.
Casey:
David Campbell writes, what does John think about the Sony a6700?
Casey:
I sat out the last upgrade opportunity, and I am about to click buy on an a6700.
Casey:
Well, sorry, David, this probably took way too long, but nevertheless, to replace my a6300.
Casey:
Just curious about his thoughts.
Casey:
I'll be using it much like John does, family vacations and outings.
Casey:
I have a few Sony lenses, so I'm feeling locked into the ecosystem.
Casey:
Is it still a good camera when I feel like pulling out the quote-unquote big camera, or should I jump to Canon?
John:
So it's actually kind of timely.
John:
The a6700 just came out.
John:
The a6 something something something thousand line of cameras are Sony's APS-C cameras.
John:
So the sensor is smaller than full frame and the cameras are also smaller.
John:
It was the first Sony that I really got into.
John:
I had a series on them.
John:
I had the A6300, then I upgraded to the 6600, and the 6700 is the new one, and that's what they're asking about.
John:
All these cameras still just have APS-C sensors.
John:
The reason I, you know, because they've been upgrading them, the reason I use these APS-C ones is because when I want my long lens for the beach,
John:
If I want an equivalent zoom distance on a full frame camera, the lenses are huge, just massive and so heavy and so big and so expensive.
John:
Whereas on a smaller sensor...
John:
So you get a double whammy.
John:
One, the lenses are smaller.
John:
They're just physically smaller.
John:
Their diameter is smaller.
John:
They weigh less.
John:
They're not as long.
John:
They're smaller lenses.
John:
And two, when you get a lens that says, like mine, 350 millimeter maximum zoom, that's 350 millimeter at full frame.
John:
With an APS-C sensor, what is it, like a 1.5 times multiplier?
John:
There's some... It's more zoomed in than that.
John:
Yeah, 1.6.
John:
Yeah, it's more zoomed in than even that.
John:
So when I want to shoot people in the ocean waves and they are far out from the shore...
John:
APS-C cameras are really great because, I mean, I wouldn't want to buy buying a high quality, you know, what is the equivalent of 350 times 1.6.
John:
Can't do the math in my head.
John:
Try to find a full frame zoom lens like that.
John:
That's good quality.
John:
That's a huge amount of money.
John:
And then try carrying that in the hot sun for a long period of time.
John:
It's too big.
John:
It's just too big.
John:
Maybe I'll eventually get to there.
John:
I look at them all the time, and then I look at how much they weigh, how big they are, and I'm like, no.
John:
So...
John:
I think the APS-C camera size and this line of cameras is still worth having.
John:
I do wish that they would make the sensors a little bit better.
John:
They increased the megapixels a little bit.
John:
They made the sensor a little bit better.
John:
It's the same sensor they've used in a lot of their video cameras.
John:
So what have they done from the 6600 to the 6700?
John:
The 6600 was the previous top of the line.
John:
And it's got in-body stabilization.
John:
And it's got the best motion tracking stuff.
John:
And, you know, the most features.
John:
And it uses the big battery, which I think is the most important feature.
John:
It uses the big battery from the full-frame camera.
John:
So the battery lasts forever because this is a smaller camera.
John:
But with the battery from the big camera, it's kind of like the 15-inch MacBook Air, you know.
John:
So the 6600 is great.
John:
The 6700, to me, for my purposes, is not a pure win because they made it thicker.
John:
Like the body is thicker, which kind of cuts into the, oh, this is a small camera.
John:
It doesn't weigh that much more, but it is visibly substantially thicker.
John:
They also made the handle bigger.
John:
So I guess that's good if you want a bigger grip on it.
John:
But they made it thicker.
John:
The sensor is a little bit better, but a lot of the features they added are for video.
John:
I don't care about video.
John:
If you don't care about video with your camera, I feel like the 6700 is, I mean, I'm not going to say it's not a good deal, but I would think hard about whether you should get the 6700 over the 6600 if you don't care about video, because you're getting a thicker camera that takes slightly better pictures, but in exchange for, like, it costs more money, it's bigger, and
John:
I don't know, it's tough.
John:
The one thing that I pushed the 6700 over is they further improve the autofocus system and the tracking and all that.
John:
And the 6700 has their, I don't know, everybody brands everything with AI, but their AI subject detection, which is better than the 6600, it can...
John:
find birds and insects and people and animals and it's really good about following them and it'll follow people even when their heads are turned their backs turn to you and they turn back like it'll keep focused on them the whole time that is better on the 6700 but it's not compelling me to upgrade and if i was buying a camera straight out now i would think a lot about getting 6600 instead of 67 just because all the features they added this to this thing that have to do with video i do not care about and
John:
i don't know i guess i would probably go with it just for the ai motion tracking thing but this is i say this not having actually held it in my hand i might be disappointed in the extra thickness so think about the 6600 hold the 6700 if you can handle the extra size and weight even if you don't care about video just get it for the better tracking i guess
Casey:
Ben Gunsberger writes,
Casey:
Then I manage to find a few people I respect and try to join interesting conversations but get no responses or feedback, including from ATP.
Casey:
Then I give up and go back to one-way communication, such as podcasts, newsletters, RSS Flipboard, etc.
Casey:
Maybe I just haven't persevered enough, but I hear people talking about the great discussions and friendships they've experienced on these platforms, and I can't work out why my experience is so different.
Casey:
I totally sympathize with what Ben is saying, although it certainly sounds like you're not coming to this with a terribly open mind.
Casey:
It's hard to discern that from what you're saying, but that's kind of the vibe I got.
Casey:
I can probably speak for the three of us.
Casey:
We get a surprising amount of mentions on Mastodon and previously on Twitter.
Casey:
I mean, Axe.
Marco:
No, when we were there, it was called Twitter, damn it.
Casey:
Fair enough, fair enough.
Marco:
I have not used X. Same.
Casey:
So anyways, in the same way that we get probably 100 emails a day or something like that, when you're getting 100 mentions a day, you're just not going to respond to all of them.
Casey:
And it doesn't mean that something that you tweeted, tooted, Xed at us wasn't good or interesting or useful.
Casey:
It just means that we don't have time to reply to everything.
Casey:
I can only speak for the three of us in that regard.
Casey:
But generally, the way I've made inroads into kind of cliques or social circles, even in these social networks, is by just participating in the conversations.
Casey:
And even if you are perhaps jumping in on a conversation between the three of us hosts...
Casey:
Perhaps somebody else makes an interesting point to one of us that you happen to see, and then you comment to them.
Casey:
Oh, that was a really good point, and so on and so forth.
Casey:
And then over time, you start to realize, oh, I spoke to that guy or that girl or that person, whatever.
Casey:
I spoke to them three weeks ago, and we shared that one witty story or whatever the case may be.
Casey:
It's not that dissimilar from real life.
Casey:
And so I think to some degree, yeah, you might have to persevere more, and to some degree, you might have to open your mind a little more.
Casey:
But that's just my two cents.
Casey:
John was just talking a lot, so let's start with Marco.
Marco:
Hi, this is Marco.
Marco:
I think the key to getting into a social network and getting into communities is to not expect the world immediately, but to be persistent.
Marco:
In a community, people who show up and who are consistently putting out interesting or good or kind thoughts...
Marco:
tend to get found and and tend to get integrated into the community over time but it might take a little while you know it might take some persistence it might take you know making some posts here and there not a lot of people see for a while and you just kind of keep at it and like good people good content tends to be found
Marco:
Um, but it just might take a while.
Marco:
And it's a little bit harder now in the fragmented world, um, of, you know, the, the random, you know, Twitter spinoffs, basically all these like different communities that have like broken off of Twitter or communities that have that pre-justed Twitter like Mastodon, but have been invaded by Twitter refugees and are now effectively, you know, Twitter break off communities.
Marco:
Um,
Marco:
It was much easier on Twitter when that was the big game in town when, quote, everybody was just in one place.
Marco:
It was just Twitter.
Marco:
And that's one of the greatest powers that Twitter had back before the doofus bought it and ruined it is that it was the one place where...
Marco:
So many people were.
Marco:
You could assume like if you wanted to have a conversation with any media personality, any celebrity, any famous person, any any content creator, like any any company like you could you could be reasonably sure they were probably on Twitter and you'd go look and you'd probably find them.
Marco:
And that is gone now and it's fragmented now and it's going to remain fragmented for the foreseeable future as we've talked about.
Marco:
And so it's harder now in the sense that now you might need to go to multiple places to try to develop communities or audiences or whatever.
Marco:
And it would probably help most to specialize to one.
Marco:
Rather than kind of bouncing between a bunch of different places, I would say stick on one and kind of try to get in, you know, try to establish yourself there.
Marco:
The problem is there, it's kind of hard to know which one right now.
Marco:
And there's been so much turbulence in the last, you know, 10, 12 months in terms of, you know, all the...
Marco:
different services that you know well twitter's ruins and now where we're gonna go oh let's try mastodon and now oh hey look there's blue sky oh now look there's threads oh my god like and there's all these things going on everywhere and there is no clear winner yet and there might never be one or it might be a very long time like twitter is still around even though now it's renamed and it's you know progressively getting worse but it's still there there's still a bunch of people there mastodon is still very much around and still doing great and that's where i spend most of my time
Marco:
Threads is still booming like crazy, and everyone's using it now, but there's also still masks on it.
Marco:
Blue Sky, I think, probably doesn't have a great future ahead of it, but it's still there, and there's still a community there.
Marco:
So now there's a whole bunch of places, and it's kind of hard to know which one to invest in.
Marco:
So it can be a little tricky, but...
Marco:
I can tell you from somebody who has the privilege of having the audience on these platforms, you're seeking the experience that I have to some degree.
Marco:
And I can tell you, first of all, that was built up over time by doing exactly this.
Marco:
It was built up over the last 15 years or whatever it's been, putting out good stuff on a regular basis, or at least putting out stuff on a regular basis.
Marco:
It wasn't all good, but putting out stuff on a regular basis.
Marco:
And over time, that develops communities and audiences.
Marco:
When I look through the mentions for an account or when I look through emails, I don't respond to most of them because as Casey was saying, like sometimes we get a lot like, you know, the example, this ubiquity camera topic or this, you know, the home security camera topic that we've gotten so much feedback.
Marco:
There are so many emails that have been like incredibly like detailed, helpful things.
Marco:
And I've responded to some, but like it's, it's been a lot.
Marco:
And so there's a lot that I'm not responding to.
Marco:
However,
Marco:
When I see the same name pop up every few weeks, I'll see somebody write an email with the same name.
Marco:
I'll start to remember some of those names.
Marco:
Or on Twitter or Mastodon or whatever Twitter-like service I'm on this semester, I'll recognize people's usernames and I'll start recognizing, oh, hey, it's them again.
Marco:
I remember them and I remember their stuff.
Marco:
When you are persistent, not overbearing, not responding to every single thing, but when you are consistently having good feedback or good interaction in some way or posting good stuff yourself, that does tend to pick up traction eventually.
Marco:
It might take a little while, but it does pick up traction eventually.
Marco:
I would actually say, on one level, because we haven't really settled on where necessarily we're going to be long-term in a lot of cases yet...
Marco:
On one level, it's hard to know where to invest your time, and that makes this kind of thing more difficult.
Marco:
On the other level, every time one of these new services launches...
Marco:
All of us who go try it out, go find new people to follow.
Marco:
Because that's not only an opportunity to do that, because it's all brand new and it's a kind of fresh, unclaimed ground and freshly formed audiences that haven't collected into stars and galaxies yet.
Marco:
And it's just like everyone's kind of floating around after the Big Bang.
Marco:
So there's a lot of opportunity when services change to get new audiences and new communities formed.
Marco:
So even though it's a little hard to know where to focus your energy, which one of these communities to invest in right now, or which multiple of these communities to invest in right now, it is also a huge opportunity to establish yourself.
Marco:
It's like changing schools.
Marco:
You're establishing yourself with new people, new environment.
Marco:
So there's a lot of opportunity there.
Marco:
But ultimately, this boils down to put good stuff out there, and eventually it does tend to be found.
Casey:
John?
John:
So Ben mentions a couple of different things here.
John:
One is just seeing like random comments from people.
John:
That's what I feel like is one of the reasons the chronological timeline is not and, you know, not the best for most people, because if you show up on a service and you're like, and it's chronological timeline, who should I follow?
John:
Like sometimes they'll suggest somebody you should follow or maybe you try to find some of your friends or you follow them.
John:
But it's a pretty meager experience because you're like, OK, I thought of three people to follow.
John:
And neither one of them seem to be either awake right now or using the service at all.
John:
So my timeline has like nothing in it.
John:
Should I follow a famous person now?
John:
Like just that feels empty.
John:
And then so Ben says, you know, they find a few people they respect and try joining those conversations and don't get any response.
John:
I've followed the person who is the reason that I get into podcasting.
John:
I followed that person for 16 years on Twitter.
John:
I read all of their tweets because I'm a timeline completionist.
John:
I would respond when I thought I had something interesting to say.
John:
I've never gotten a response from that person.
John:
Never.
John:
16 years.
John:
So that's the problem with...
John:
Finding important or famous people and saying, I'm going to follow them and participate in their conversations.
John:
Because of the volume, it's just impossible for those people to guarantee that you're going to get any kind of response.
John:
I mean, again, the amount of email we get...
John:
You know, if you've looked at the total amount in our mailboxes, like, oh, that's not that much.
John:
But if we responded to every single one of those emails, all we would do all day from when we woke up and went to sleep is respond to listener email.
John:
That would be our whole day.
John:
Like that's nothing, nothing else.
John:
You know, you'd stop for meals and go to the bathroom, but you'd just be answering email because giving a good answer to an email, a good, thoughtful answer to a very long, well thought out email requires that.
John:
Never mind like follow up emails and responses or whatever.
John:
So, I mean, talk to Merlin about it.
John:
It's important to, you know, manage your time and maybe perhaps think about which emails require a response.
John:
What do you have time to respond?
John:
You know, that's that's why the person I followed the 16 year never replied to me.
John:
They don't hate me.
John:
They don't even know who I am.
John:
They get lots of replies.
John:
Famous people like real famous people, like celebrities or whatever.
John:
I forget about our little nerd circles, like famous people.
John:
Get too much stuff.
John:
So if you're going to go on a service and find people who are either little F famous or big F famous and think you're going to reply with something witty to them and suddenly you'll be involved in the conversation...
John:
That's probably not going to happen.
John:
It doesn't reflect anything on you and doesn't reflect anything on them.
John:
It's just a numbers game.
John:
They can't possibly, real celebrities can't even look at all their replies, no matter what service they're on.
John:
Even if you're like, you know, it's the first day that Blue Sky is here and you're, you know, a famous sci-fi author is on Blue Sky.
John:
Maybe you get like one response because there's five people on the service, but that's it.
John:
So don't pin your hopes on becoming buddy-buddy with someone famous.
John:
It has nothing to do with you.
John:
It has nothing to do with them.
John:
It's just about volume.
John:
So how do you go about finding people?
John:
First of all, this is what algorithmic timelines are for.
John:
For services that offer them, especially services that offer ones that work in some reasonable way, and I think threads does kind of work in a reasonable way, use the algorithmic timeline to discover...
John:
subgroups that you might be interested in hopefully that do not involve celebrities or anybody with tons of followers there is going to be some period of time where you're either mostly listening or trying to find the groups where you fit in and the way the way you sort of become part of that group is by having having something i was gonna say having something to offer because everyone has something to offer but like
John:
whatever it is that you are interested in that you know about that is you know a thing that you that everyone's got something that they're you know whatever it is it's like i know everything about this particular reality show on tv i mean you might think it's dumb but there will become a time when someone in some group is having a conversation about that and you'll be like you know what i've seen in every episode of that show and i've re-watched the seasons that i like 17 times and now it's my time to shine
John:
And I can be helpful, useful, provide information that people didn't know, have an informed opinion, you know, like whatever thing you're good at.
John:
If you want to be able to do the thing that you're good at and offer the things that you have to offer,
John:
And that's how you'll stand out in a conversation.
John:
And you don't know when that's going to be.
John:
You may be super interested, like I'm super interested in cars, but if someone's talking about Formula One, I don't have anything to offer in that conversation.
John:
I like cars.
John:
I just am not into Formula One.
John:
And so if the famous people that I respect are talking about Formula One, I can't provide any value to that conversation.
John:
And if I tried to, they're not going to remember me because I'm not providing anything that is memorable.
John:
So part of this process of finding, you know, of making the services valuable is finding the group where you are a valued and valuable member.
John:
And there's a million different ways to do that.
John:
It can be about hobbies.
John:
It can be about, you know, where you live.
John:
It can be about the fact that you just got married and you're involved with a group of other people who just got married.
John:
Like there's so many ways you can bin yourself.
John:
That's the magic of the Internet.
John:
And in those subgroups where you have something to offer, you will become an important, notable, valued member of that by what you offer to the group.
John:
Don't enter a subgroup about Formula One if you've never seen Formula One.
John:
You will not become a valued member of that group unless you want to get into Formula One, in which case read that group for a year.
John:
And on year two, you're going to be like, you know what?
John:
I know a lot about Formula One now.
John:
And I can participate in these conversations, you know?
John:
So it takes time.
John:
But I feel like that's the thing that people miss.
John:
And I think about the people who have become people that we know in our nerd subgroups.
John:
All of us at one point, we're not in this nerd subgroup that we're in.
John:
We were not in it at all.
John:
And we entered into it somehow by offering something that was found to be valuable.
John:
Here's an example.
John:
Underscore David Smith that we talk about on the program a lot.
John:
he came into this nerd circle kind of around the same time that we were entering into it as well the first time i remember seeing him was in the irc chat room for my hypercritical podcast he was underscored david smith in the chat room and the reason i recognize his name even though it's probably like one of the most common names in the english language david smith there's a lot of them in the world i think um
John:
was because he was always in the chat room and he always used underscore David Smith.
John:
And the things he said in the chat room were smart and interesting because he turns out he knows stuff about the stuff we were talking about, Apple and technology stuff.
John:
uh at that when i first started seeing his name i didn't know he was an app developer i didn't know he made ios apps right i didn't know him from anybody uh i think he was in the chat room of marco's podcast as well build and analyze on five by five where else would see he would like you would if you were involved in the tech podcast world and they had a chat room chances are you'd see someone named underscore david smith in there
John:
eventually we learned that he did make Mac apps and he had a website and he would tweet things and he would blog about it and he would talk about his apps and eventually met him in person and became friends with them and it's like he was first he was nobody and then he was a name you saw and then he was a name you remembered and then he was somebody who was offering things in fact a lot of people would you know
John:
I bet if you listen to ADP, you know, there's some people like not just Steve Stroud and Smith, but some people you've heard who've offered feedback in the follow up section.
John:
You've heard their names over many years in ADP.
John:
And we know their names because we know they listen to the show and they send us tons of feedback and they send us 500 things of feedback, but they get three on the show.
John:
But that's three spread across three years.
John:
And you hear that same name once a year for three years.
John:
You're like, hmm.
John:
This person, I recognize their name.
John:
And maybe if you were at WWDC and you were talking about ATP, you'd be like, oh, I recognize your name because they said it in the feedback section or when they were talking about follow-up or, you know, Ask ATP.
John:
And then you have something to talk to them about.
John:
And why are they in Ask ATP?
John:
Why are they in follow-up?
John:
Because they're offering answers to questions that we asked on the show, things we didn't know, or asking interesting questions that we think are things that other people might want to hear about.
Yeah.
John:
That will happen in social media as much as it does on podcasts, as much as it does in chat rooms.
John:
It's just that it's not going to happen instantly.
John:
And you have to know where...
John:
where and who you should be talking with and where you are where you're interested in participating and where you have something to offer and if you don't have something to offer today like i said you can lurk there which used to be a thing and use that you would lurk in the news group for like you know several months before you even put your first post in to get up to speed because if you're interested in something you eventually will become knowledgeable about it and be able to participate in the conversation in a way you couldn't in the beginning so i
John:
I know it's frustrating to not just instantly be like, oh, here's a circle of people and they welcome me and we're all having fun together.
John:
But that's tough to do.
John:
And the final thing I'll say is almost all these little these little circles that we're talking about are a little Apple nerd circle in the sub circles or whatever.
John:
Most of these, the way these tend to form is not by looking in existing circle of famous people and joining it.
John:
If that was true, I'd be in a circle with David Pogue and John Dvorak.
John:
I am not in a circle with those people, not because they're bad people or anything.
John:
But my dream reading Mac magazines is like, I'm going to talk to those visionary people who write on the back page of these Mac magazines.
John:
Reality, I was never going to be in circles with them.
John:
Instead, I formed circles with a bunch of people who were quote unquote nobodies who became somebodies over the course of 15 years of hanging out with each other.
John:
There's this thing of like, oh, I see the people who are currently popular or famous and I want to join them.
John:
When in reality, you should be finding other people who are not popular and famous just like you and make your own circles with them because you will be the next popular and famous people.
John:
Like that's how it works.
John:
Like everyone wants to look towards the famous people.
John:
Find the other people who are your current peers in experience or knowledge or whatever and
John:
Join with them.
John:
It doesn't feel like, oh, but I'd much rather be talking with these famous people.
John:
It's like, yeah, but that's not going to happen, right?
John:
John Dvorak never answered any of my letters, and he's actually kind of a jerk.
John:
David Puck's cool, though.
John:
Very rarely do you meet your heroes and become incorporated into little circles with them.
John:
What actually happens is you form your circles with your own people.
John:
So I would suggest...
John:
apply less value to the current fame of people and believe that you and your non-famous quote unquote regular people friends have just as much value because you do and make your own circles and like that's that's the way to be happy on the internet i feel like thanks to our sponsors this week trade coffee and collide and thanks to our members who support us directly you can join us at atp.fm slash join and we will talk to you next week
John:
Now the show is over They didn't even mean to begin Cause it was accidental Oh, it was accidental John didn't do any research Marco and Casey wouldn't let him Cause it was accidental Oh, it was accidental And you can find the show notes at atp.fm
Marco:
And if you're into Twitter, you can follow them at C-A-S-E-Y-L-I-S-S.
Marco:
So that's Casey Liss, M-A-R-C-O-A-R-M-E-N-T-M-A-R-C-O-R-M-N-S-I-R-A-C-U-S-A-C-R-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A-C-U-S-A
Casey:
So, you know, a week or two ago was the last week.
Casey:
I don't know.
Casey:
Time is a blur right now.
Casey:
Last week I was at the beach and, um,
Casey:
I did something very, well, maybe unusual.
Casey:
I don't know.
Casey:
So late last year, I think it was, I was watching a video that a friend of the show, Quinn Nelson, did on YouTube about, I think it was like really good gift ideas for the holidays or something like that.
Casey:
I'll dig it up and put it in the show notes.
Casey:
And Quinn had suggested, among many other things,
Casey:
That he really likes this one travel router.
Casey:
It has a really godawful name because, of course, it's a little teeny tiny travel router.
Casey:
And the idea is, you know, you can bring that and you can perhaps if you're at, say, a beach house.
Casey:
you can plug that either into their router or even replace the Beach House's router and use that instead.
Casey:
And then it's a known quantity, and that works out really nicely because then all of your devices, you don't need to input some new SSID and some new password.
Casey:
You can either use literally the exact same SSID and password as you have at your house, or you can use some other known thing that all of your devices are familiar with and so on and so forth.
Casey:
What?
Casey:
the beach house router is locked in a shed casey yeah well that that is that well it might actually because one of the things because this is specifically a travel router one of the things that it does is it will i forget the technical term for it but it will basically re um like i want to say repost that's not the word i'm looking for i'm sorry i'm very tired
Casey:
But it will take captive Wi-Fi, and you can spoof a MAC address of the router if you want to.
Casey:
But it'll take a Wi-Fi connection and rebroadcast that as a different SSID and so on and so forth.
Casey:
There's a term for this, which I'm failing to think of.
Marco:
You can log in to the captive thingy through it, and then it rebroadcasts from that?
Marco:
How does that work?
Casey:
Well, no.
Casey:
So what you would do is you would log in on your Mac, figure out your Mac's Mac address.
Casey:
That's a lot of Macs all in one spot.
Casey:
You would figure out your Macintosh computer's media access control address.
Marco:
What processor might that Macintosh computer have in it?
Marco:
Might it be the...
Casey:
So it might be a M1 maximum.
Casey:
But anyway, so the point is, it will then rebroadcast Wi-Fi and whatnot.
Casey:
And one of the neat things that this particular travel router does is that it will also, if you so choose, it can, at the router level, connect to a wire guard access point.
Casey:
So...
Casey:
What I did at the beach was I brought this router, and then I plugged it in so it was double-natted, but it doesn't matter because there was nothing coming into this router.
Casey:
I just needed to get out.
Casey:
So I plugged this router into their router because it was not locked away.
Casey:
And then I turned on the WireGuard client.
Casey:
And so that meant that not only is it extremely unlikely that the owner of the house, I mean, not that they would, but the owner of the house could snoop any of the stuff that I was doing.
Casey:
But even more importantly, I have my pie hole.
Casey:
Hi, Marco.
Casey:
I have my pie hole available to me.
Marco:
It's still funny.
Casey:
I know.
Marco:
It's like how butt jokes are always funny, no matter how old you are, no matter how mature you are.
Marco:
Butts are funny.
Marco:
Similarly,
Marco:
The Pie Hole, that's just always a funny name.
Casey:
I know, I know.
Casey:
So anyway, so I had that all available on the travel router and so on and so forth.
Casey:
They were on the network when we were at the beach house.
Casey:
But one of the very...
Casey:
interesting things that I was quite proud of myself for coming up with this idea, which is probably not that unique, but I was excited that I thought of it.
Casey:
I am, and I think we've talked about this plenty of times in the past, I am one of those people that is kind of a nut job about always having some sort of music playing.
Casey:
I really don't like exceedingly quiet places.
Casey:
It's not that I can't do it.
Casey:
I just don't like it.
Casey:
So basically, anytime I'm conscious, I'm either listening to a podcast, usually in headphones, or music, oftentimes from our Sonos system that we have in the house.
Casey:
Well, it occurred to me, I have two portable Sonos speakers.
Casey:
I have a Move and a Roam.
Casey:
The Roam is like sort of kind of small, like a jam box, and the Move is quite bigger, quite a bit bigger.
Casey:
Well, if I set the travel router up to use the same SSID and password as I have at home, hypothetically, I should be able to take my two portable speakers and put one on each floor of this two-story beach house, and they should just...
Casey:
think they're at home.
Casey:
And so I plugged in my travel router.
Casey:
I plugged in the, or I put the two travel speakers, roaming speakers, whatever on their little charging bases, started them up.
Casey:
And just like that, that that's, I got a two speaker Sonos system with pretty much no configuration at the beach house.
Casey:
And I was very excited about it and it made me very happy.
Marco:
I'm surprised that that works as well, especially something like the Sonos speakers, they have Wi-Fi and some of them support Bluetooth, but usually they kind of need to be on their Wi-Fi network at least for setup and even sometimes after that.
Marco:
It's a whole thing.
Marco:
So that's actually pretty impressive that it works.
Casey:
Yeah, and it worked really, really well.
Casey:
Okay, so I can't find Quinn's video.
Casey:
I'm going to have to try to find it for the show notes after I'm done recording.
Casey:
But the travel router is the GL.inet.
Casey:
GL-MT1300.
Casey:
Barrel.
Casey:
VPN wireless.
Casey:
Little travel router.
Casey:
Connect to a hotel Wi-Fi and captive portal.
Casey:
USB 3.03 gigabit ports.
Casey:
Range extender.
Casey:
Assess point.
Casey:
Not access, but assess point.
Casey:
Pocket-sized microSD slot ready to set up.
Casey:
Assess point?
Casey:
A-S-S-E-S-S.
Casey:
Assess point.
John:
People aren't familiar with this bit.
John:
He was just reading the product name.
John:
Yeah, that is the product name on Amazon.
Casey:
So anyway, but this thing, this is super cool.
Casey:
I really like it.
Casey:
And then we actually had brought this to Disney when we went in January, and it just so happened we won the hotel room lottery in Disney World because in our hotel room in Disney World,
Casey:
surprisingly not in the ceiling or on the ceiling or anything like that.
Casey:
In the hotel room at Disney World, I can dig up a photo because I took a photo of it because I was so happy about it.
Casey:
There was the wireless access point for that block of rooms near us.
Casey:
And not only that,
Casey:
But it had a live Ethernet port.
Casey:
Whoa.
Casey:
Right?
Casey:
It was amazing.
Casey:
So here it was.
Casey:
I could just plug this router via Ethernet directly into a hotel access point.
Casey:
Because if you know anything about any hotel, but particularly Disney hotels, the Wi-Fi is often trash because it is way overloaded.
Casey:
But I didn't need to worry about that because I had Ethernet, baby, because we won the hotel room lottery.
Casey:
And I was very excited about that.
Casey:
But anyway, this little travel router, I'll put a link in the show notes to the Amazon link.
Casey:
Now, this GLiNet company has many different flavors of this same router.
Casey:
There's lots and lots and lots of different configurations that you can get.
Casey:
This is just the one I happened on.
Casey:
I honestly don't remember how I landed on this particular one.
Casey:
But yeah, if you're going places with any sort of regular, not even regularity, but if you're going places for like an extended length of time, like a week plus,
Casey:
I really, really enjoyed having this.
Casey:
It's a super nerdy, super dorky, super kind of ridiculous over-the-top thing to have.
Casey:
I'm really glad I had it.
Casey:
It worked out nicely.
John:
So your story makes me think of Secret Weird Things in the spirit of Reconcilable Differences.
John:
I'm thinking in my head, if I did a poll, what's your reckon about how many people are like Casey and want music playing or audio playing and how many people don't?
John:
How do you think that would break down?
John:
I guess for the US, let's say.
Marco:
Well, I mean, so two things.
Marco:
Number one, similar question, but TV, I think you get a lot of different results.
John:
Oh, that's true.
John:
I'm saying like regardless of source, regardless of the source of the sound, it's like sound, like something other than just, you know, like sound playing from something or not sound playing.
John:
Because Casey is very strongly in the sound playing camp.
John:
And I, for example, I'm very strongly in the not sound playing camp.
John:
And I and everyone can feel I can bend themselves, even if they're not strongly at one point or the other.
John:
Like, I don't think a lot of people are kind of in the middle.
John:
You kind of, you know, so I would in my first instinct, of course, me being, you know, everyone thinks like, oh, whatever I do is normal.
John:
That's the whole point of the whole secret weird things that, you know, so I'm thinking surely Casey is an outlier.
John:
But then I think, but if you did that poll.
John:
Would he be in the majority?
John:
And how big a majority would it be?
Marco:
Well, because part one is like what kind of noise do you want to have?
Marco:
Many people consider it no big deal at all and nothing out of the ordinary.
Marco:
As soon as they arrive home, they flip the TV on and the TV is playing, just playing ambiently constantly.
John:
That's a very common thing.
John:
Back in the day when I was a kid, people had radios, kitchen radios, right?
John:
You'd have a radio in your kitchen and it would just be on when you're home.
Marco:
Right.
Marco:
So a lot of people love having some kind of ambient media playback somewhere in their house all the time whenever they're there.
Marco:
I personally, I don't give a crap about TV for the most part, but I love music and podcasts.
Marco:
And so whenever I'm if I'm like around the house and especially like it's interesting, like when I am alone in the house, I always want something playing when my family is home.
Marco:
we often have silence and part of that is because i don't want the pressure of choosing the music you can't agree on what but anyway um but yeah if i'm like if i'm alone and i'm like you know going to make lunch for myself or have some coffee i will definitely play either music or a podcast that being said though you're you're in the casey thing
John:
I feel like they would bin you into the Casey camp.
John:
So now we're at 66% of the US is like Casey and 33% is like me, judging by ATP.
Marco:
John, and as you know, ATP does not just represent the US.
Marco:
We represent the entire world.
Marco:
As the world always lets us know, whenever we state anything and they accuse us of being US-centric, well, no, we will represent the whole world now.
Marco:
Everyone.
Marco:
We are 66% of everyone.
Marco:
Anyway, to answer your... Another part of this, though, Casey, is that
Marco:
This was one of the great surprises that I learned when developing Overcast at some point when I put analytics about output devices.
Marco:
A lot of people are fine to just listen to their phone speaker for both podcasts and also for music.
Marco:
And that was a surprise.
Marco:
And by the way, that destroys your battery.
Marco:
Yeah.
Marco:
If you listen to a lot of podcasts or music out loud on your phone's built-in speakers and you get terrible battery life, that's why.
Marco:
It murders the battery more than having the screen on.
Marco:
If you're playing music loud, it destroys it.
Marco:
Anyway, I find in a lot of cases, that's fine.
Marco:
Especially if I'm in a hotel, I never turn on the hotel TV.
Marco:
Ever.
Ever.
Marco:
like i just i don't i sometimes if i can move out of the way i'll move out of the way like i just i don't i never use to touch the hotel tv yeah i know i know the the merlin man's assumption um it certainly comes into play there this is about the remote but i'm thinking about the tv itself they always look kind of icky well yeah but it's certainly the their most probably touched more than the tv itself anyway um and you know the tv can fit in fewer places um
Marco:
But a lot of times I will just I'll use my phone to play like, you know, music as I'm getting dressed or something like it's not our phones are surprisingly less crappy than we would think.
Marco:
They actually just for also in this department last night for the first time I think ever I watched a TV show in bed on my phone with AirPods in.
John:
this is something that's extremely common for many people to do and for whatever reason it is extremely yeah i know john you do this right i mean i use my ipad most of the time but i will watch a youtube video on my phone sometimes i mean here's the thing my i do it for such a weird reason me being me my phone has an oled screen it has way better blacks than
Marco:
That's what I was going to say.
Marco:
This is the first time I've ever watched a show on my phone in bed with AirPods.
Marco:
We have those stupid Samsung frame TVs, which are terrible TVs.
Marco:
They're okay as visual objects in the room.
Marco:
As TVs, image quality-wise, they're horrific.
Marco:
They're just really...
Marco:
basic and not very good lcd tvs uh they they don't have any even fancy dynamic backlighting at least the one i have from a couple years ago um it's just it's a very basic lcd tv so like the black levels are terrible um and it's it's nothing like an oled and every time i see an oled i'm like oh god it's so much better why not
Marco:
Why do we have these stupid Samsung frames?
Marco:
And of course, the answer is, you know, OLEDs would have ridiculous burn in if they tried to do what the frames do with their static idle image anyway.
John:
By the way, LG's OLEDs do that.
John:
They have a just like the frame where it shows artwork and stuff.
John:
The LG OLEDs actually do that.
John:
So, I mean, you're right about burn in, but it doesn't stop manufacturers from offering that.
John:
Do they just shift the picture around?
John:
They do, but it doesn't help that much.
John:
How much are they shifting it?
John:
They do have pixel shift.
John:
They do have pixel refresh.
John:
The LGs are somewhat resilient to burn in, but you can't fight City Hall.
John:
You're going to leave it up all the time.
John:
It's going to burn in.
Marco:
Anyway, so I was watching some stupid show, like some bad Apple TV Plus show.
Marco:
And by the way, usually Apple TV Plus shows are good, which is why it stuck out.
Marco:
This one was bad.
Marco:
So I was watching the show, and it blew me away, first of all, how much better it looked on my little phone screen than on my giant Samsung frame TV because it's an OLED.
Marco:
OLED iPads coming soon.
Marco:
You know I'm going to scoop one of those up.
Marco:
Oh, yeah, right?
Marco:
And then second of all,
Marco:
I was blown away how good it sounded with my AirPods Pro.
Marco:
It had a full surround mix.
Marco:
And this is not like an action.
Marco:
It's like a dialogue-based show.
Marco:
But I could tell it was a surround mix.
Marco:
It sounded incredible.
Marco:
You got to turn that stuff off, Mark.
John:
no i'm not not even the positional thing i wasn't doing the thing where like it it comes from the phone like see every single you have to turn off in every single app and every single app that you use with your airpods on your phone you have to go to the spatial audio thing and pick i turn it off you can do fixed or position or off and uh you might want to think about turning it off
Marco:
no honestly i for tv shows i'm gonna leave it on it's incredible all right and and it kind of it kind of got me thinking like maybe maybe i should probably like you know think about surround sound setups again but it really it really did sound really good you're pushing way off of the topic that i wanted to get the answer to which is what's your guess u.s population percentage casey or non casey
Marco:
oh for so are we are we including tv yes anything that makes noise phones tvs radios anything sonos any just literally anything do they need to have sound playing or not i'm gonna say if we're talking you know if we rule out like you know kids it's just like a u.s adults yep um i'm gonna say probably 60 70 it's probably a lot casey what do you think
Casey:
it's really tough um it's tough for me for a couple reasons one i think i'm the way i am as with everyone else because my upbringing right like my dad always had music playing always always always and my mom tended to if dad wasn't playing music like maybe he was at work or whatever mom tended to have the tv on that she was casually watching like it's not the sort of thing where she would just have it on as noise and
Casey:
But she tended to have the TV on whenever there was something going on.
Casey:
I'm sorry, there was nothing going on.
Casey:
And so one way or another, both parents, constant noise.
Casey:
Well, I mean, that's a little pejorative.
John:
That's how I would describe it.
Casey:
Yeah, yeah, yeah.
Casey:
Constant noise going on in the background.
Casey:
And so I'm the way I am, presumably, right?
Casey:
Because that's what I grew up with.
Casey:
Aaron, very, very much not that way.
Casey:
And I think the reason that part of the reason we are a music all the time family is because Aaron doesn't typically care what I play.
Casey:
She'll listen to basically anything.
Casey:
And I don't just play one band over and over and over and over and over again, Marco.
Casey:
Hey, it's now two.
Casey:
Oh, all right.
Casey:
We're making progress.
Casey:
So anyway, so for me, it's all I've ever known.
Casey:
And so to me, having a house that's silent is just unusual and weird.
Casey:
But that being said, to actually answer your question...
Casey:
I would guess somewhere in the 30% to 40% range have either a TV or music playing.
Casey:
That low?
Casey:
I think so.
Casey:
Because I feel like an oddball.
Casey:
I feel like an oddball that I always have to have something on.
John:
I think you just always feel like an oddball.
Casey:
Well, there is that as well.
John:
I think you're in the majority.
John:
My personal experience is when you go to someone else's house, and I notice it because it is... I'm not going to say it's offensive to me, but like...
John:
I don't like it, so I notice it.
John:
I notice it when it's there.
John:
It's like if you went in someone's house and you were ankle-deep in Jell-O, you would notice the houses where you're ankle-deep in Jell-O and the houses where you're not.
John:
Other people would be like, they don't even notice, it's just there, but you're like, oh, ankle-deep in Jell-O again.
John:
So I think you are safely in the majority, and I was going to say 75-25.
John:
really huh yeah because one thing i've learned from my secret weird thing surveys is whatever is like is it a i'm almost never in the majority and be your personal experience of like just meeting people in life tends to be tends to be borne out by the percentages like you really like like in the thing with the the cup in the bathroom a little survey of the group of people we were in a room with like you know 10 people 5 or 10 people
John:
That ended up being basically the percentage of like the thousands of people in the poll, you know.
John:
And so my experience of being in people's houses is, yeah, they have the TV on, they have the radio on.
John:
I've seen people playing things on their phone.
John:
And, you know, it's modified by like what Marco said is like if you have a multi-person household.
John:
There's less of that because you don't want to – people can't agree on what they want to play.
John:
So sometimes you default to nothing and there's just ambient noise from the people there.
John:
But I think Marco's example is great.
John:
And if I had to pull it, I would say like if you're in the house yourself, do you put on some audio, radio, television, phone, Sonos, whatever?
John:
I think that would be like 75-25, which is yet another case where I have to realize that just –
John:
How weird you are?
John:
That I am the oddball and that I need to stay away from people.
Marco:
Also, I think some strong driving factors to that also, if that's true, that this is the predominant American choice, keep in mind also,
Marco:
A lot of Americans live alone compared to other places.
Marco:
In a lot of other countries and cultures, it's more common for single people to live with their parents still or for if you are a parent and your spouse passes away, you move in with your kids.
Marco:
I think there's larger families in a lot of other places culturally as a norm.
Marco:
And in America, you have a lot more people who live alone.
Marco:
And Americans are largely like a little bit paranoid and a little bit scared of being alone.
Marco:
And so I think that combines to constant audio or, you know, whether it's TV or music makes people feel comfort that like, oh, there's other people around.
Marco:
I'm not alone.
John:
I was like, so when you leave the radio on for your dog when they're home alone.
John:
Right.
John:
Do people do that?
John:
Yes.
John:
Yeah.
John:
You know, the thing like that people used to say, I have no idea there's any value in this, but I'm just telling you what people used to say when I was a kid and they still do.
John:
Oh, if you're leaving the house and your dog is anxious when you're gone, put on something with human voices, radio, television or something like that, because that'll comfort the dog in your absence.
John:
Does it actually come from the dog?
John:
I have no freaking idea.
John:
I doubt it.
John:
It's just a thing people said.
John:
I'm surprised you haven't heard that as a dog owner.
John:
Oh, I absolutely have.
John:
Because you would think, you know, like dog owners and like parents, you'll hear advice from everybody.
John:
But that's a thing people would say.
John:
And every time you're talking about, oh, I like to have audio playing, I think, oh, you're like a dog who's home alone.
Marco:
I mean, that's really cute.
Marco:
It doesn't sound like it would actually help or work.
John:
I have no idea there's any basis to this.
John:
But I know people have, A, said it, and B, I know people do it.