PodSearch

ATP

502: Going Retina Again

 

00:00:00   My desk is covered in glasses and iPhone cases

00:00:04   It's that time of year apparently. I saw a picture of you in one of those pairs of glasses. I have notes

00:00:10   Okay for the record. I thought they looked pretty good, but apparently I'm wrong so what what would what should I have said?

00:00:17   I mean, it's hard

00:00:18   I'm not one of those people who can look at a picture and know what like

00:00:22   Focal length the lens was that took it so it may be it was like kind of a wide angle thing

00:00:27   but it looked a little bit too big for your face.

00:00:29   - I mean, it's just the iPhone front camera,

00:00:32   whatever that is.

00:00:33   - I mean, that is kind of wide angle,

00:00:35   so that I could have been fooled by the angle.

00:00:36   But I mean, although I have to say, disclaimer,

00:00:40   we've been going to the eye doctor frequently,

00:00:43   we were swapping glasses for the kids,

00:00:44   and every time I'm there,

00:00:45   I try on every single pair of frames in the entire store.

00:00:49   Not that I'm there to get them, but I'm like,

00:00:50   here I am, I'm gonna try them all on,

00:00:52   and every single one of them I think

00:00:53   is too big for my face.

00:00:53   So it could just be that the current trend in glasses

00:00:56   disagrees with the way I think glasses should look

00:00:58   on someone's face.

00:00:59   - Well, I'll tell you here, I'll send you this other one.

00:01:00   This is the really big ones.

00:01:02   - Oh my, oh my.

00:01:04   - That's obviously too big, but yeah.

00:01:05   - That's one of the pairs I got today.

00:01:07   And then these are the ones--

00:01:09   - I mean, you like me have a narrow face.

00:01:12   So it's almost like you might be better off shopping

00:01:14   in the kids glasses section or the women's glasses section

00:01:16   where I frequently have to go to find glasses

00:01:19   that I think look reasonable on my skinny face.

00:01:21   - That's, oh, that second one, I'm sorry,

00:01:22   this is not good podcasting content,

00:01:23   but the second one is a very big Steve Jobs energy,

00:01:26   just huge Steve Jobs energy right there.

00:01:28   - And also the glasses, all these glasses,

00:01:30   unfortunately make you look older,

00:01:32   which is not the look you're going for, but.

00:01:33   - Yeah, thanks.

00:01:34   Anyway, and so, well I mean here,

00:01:37   I have right here the Steve Jobs glasses.

00:01:39   - I mean yeah, of those three,

00:01:40   you made the right choice for sure.

00:01:42   - Here, I'll take a picture of the ones

00:01:44   that are actually the Steve Jobs frames.

00:01:47   These will have to have podcasting headphones in them.

00:01:48   - I do like that you found some frames

00:01:50   that are like one of my pair of glasses,

00:01:52   don't have the frame around the bottom,

00:01:53   just have the little string. I love those, but they're very rare these days because

00:01:57   they're not in style apparently. Wait, what do you mean by the little string? So they're

00:02:01   not, if you took the lenses out of those glasses, they wouldn't be like a metal hoop where you

00:02:05   expect the lens to be. It would be just like a U-shape. Right. Oh, is there like a string

00:02:09   that goes along the bottom? Yeah, there's like a fishing line basically. Oh, I don't

00:02:14   think I need that. So the lenses don't fall out. Gotcha. Well, I just assumed they were

00:02:17   like glued in or something like that. Nah, it's just fishing line kind of stuff. Alright,

00:02:21   These are the actual Steve Jobs glasses.

00:02:23   - Okay, well, that's fair.

00:02:24   - Yeah, I mean, those are not,

00:02:25   those are good for a costume, but yeah.

00:02:28   - I mean, they don't have real glass in them.

00:02:29   This is like the plastic things that came with them.

00:02:31   Anyway, so--

00:02:32   - We're gonna have to edit all that out.

00:02:33   This is terrible podcasting content.

00:02:34   - I know.

00:02:35   So I've learned a few things so far about it.

00:02:38   So we had so many people write in

00:02:39   and tell me what to get with glasses.

00:02:40   So thank you very much to all of you.

00:02:42   Now I actually have had a chance to try some of them.

00:02:45   And keep in mind, my quote prescription

00:02:48   is merely a .75 reading glasses, that's it.

00:02:52   There's no distance or other,

00:02:55   like there's no other prescription.

00:02:56   So all the other squares in the prescription are empty,

00:02:58   just the little add column says plus .75.

00:03:01   So these are just readers and I don't need anything else.

00:03:04   So that obviously changes certain things

00:03:06   about what's good and what's not.

00:03:08   The frustrating thing I'm finding is that

00:03:12   if I could just wear a pair of glasses

00:03:14   that would just fix my range of vision in all ways.

00:03:18   - That's not a thing for old people, sorry.

00:03:21   - Yes, I've learned that, thank you.

00:03:24   But like, so that's, the frustration is like,

00:03:26   there is no way seemingly to fix this all the way.

00:03:30   And so I have to either see things far or see things close.

00:03:35   But not at the same time.

00:03:37   - If you could get some of those, like what do they do

00:03:39   where they take like the blood of very young people

00:03:41   and inject them into old people

00:03:43   to restore their youthful vigor

00:03:45   and to make your eyeballs more flexible.

00:03:47   - No one has-- - Sounds like

00:03:47   a Silicon Valley joke. (laughs)

00:03:49   - Yeah, no, it's totally, it's a thing that rich people do

00:03:52   because they think it works,

00:03:53   but no one has corrected me so far in my theory

00:03:55   about the stiffening eyeball thing,

00:03:56   so I'm just gonna assume it's correct,

00:03:58   but anyway, yeah, getting old sucks.

00:03:59   - Yeah, well anyway, the,

00:04:03   what I have found is that for actual reading glasses,

00:04:08   I have the nice pair from the eye doctor,

00:04:10   and I have some cheapos from Amazon,

00:04:13   and they're not that different.

00:04:15   Actually using reading glasses to read things close up

00:04:18   is amazing.

00:04:21   Oh my God.

00:04:22   It's like, I love like browsing my phone

00:04:25   with the reading glasses on is incredible.

00:04:28   It looks--

00:04:28   - It's like having HD again.

00:04:29   - Oh my God, it's like going retina again.

00:04:32   Like it's incredible.

00:04:33   Like I guess, hey, maybe that's where they got it from.

00:04:36   So.

00:04:37   - Oh, I got it.

00:04:38   - But yeah, so anyway, the downside is of course

00:04:40   that then you can't see anything far away

00:04:42   'cause then it blurs.

00:04:44   And so I did get from one of the cheapo online places,

00:04:49   on someone's recommendation, I got two different things.

00:04:51   I got an intermediate set,

00:04:53   which is kinda like reading glasses,

00:04:55   but the focal range is a little bit further out.

00:04:58   And so it's meant to be like for computers.

00:05:00   Now, I found this was pretty good for using a laptop,

00:05:05   like in your lap, but at my desktop setup,

00:05:08   my monitor is too far from my face.

00:05:12   it's out of the focal range of the intermediates.

00:05:14   So actually, if anybody out there has any idea,

00:05:16   does anybody make a pair of intermediate readers

00:05:20   where the focal distance is customizable

00:05:22   or a little bit further out than the regular ones?

00:05:24   - I mean, you can just ask your eye doctor for that.

00:05:26   What I'm wearing now are my computer glasses,

00:05:28   and I told my eye doctor, I want a pair of glasses.

00:05:32   Here's where I'm gonna use them.

00:05:33   I'm gonna use them at my computer.

00:05:34   Here's how far away my monitor is.

00:05:36   Get me glasses to let me see my monitor perfectly.

00:05:38   That's what I'm wearing right now, right?

00:05:40   can't drive in them, but like you can just tell them that and you will get a prescription

00:05:43   for whatever that is for your eyeballs. But in terms of finding off the shelf ones that

00:05:48   work with that, lots of people wrote in to suggest that they basically sell computer

00:05:51   glasses, but they all probably have some assumptions about how far screens are from people. And

00:05:55   I think when people think computer nowadays, they probably mean laptop. I mean, who has

00:05:59   a desktop? What kind of weird people?

00:06:01   Exactly. Like, like, and that's why like these intermediates are perfect for laptop distance,

00:06:06   But I'm almost never working that way.

00:06:07   So, and for my actual desktop monitor,

00:06:10   it's just too far out.

00:06:11   The other, the good news is that one of the ones I got

00:06:14   is a progressive that goes from nothing to reading.

00:06:18   That is actually more interesting.

00:06:21   Because that's like the one thing that like, okay,

00:06:22   if I had to wear one pair of glasses all the time

00:06:26   to correct everything, that's what I would do.

00:06:29   - If you want the whole world to look like Jell-O

00:06:31   all the time, progressives may be for you.

00:06:33   - Well, but you know, like right now,

00:06:36   only needing the .75, like it's just not worth it.

00:06:39   - Yeah, it's not a big deal.

00:06:40   - But you know, so what I can see myself doing

00:06:41   is like in the future, as this gets worse,

00:06:43   as I get older, then I will probably start wearing

00:06:47   progressives for that reason, like closer to full time.

00:06:50   Whereas right now, I don't really need to wear them

00:06:53   full time, but, and when that does happen,

00:06:56   I can definitely see myself maybe like making some changes

00:06:59   to my monitor situation, because the problem

00:07:02   with the progressives is--

00:07:04   - You gotta point your nose in the air when you--

00:07:07   (laughing)

00:07:08   - No, it's the opposite.

00:07:09   I have to look down a little bit over the blurred range

00:07:14   because the bottom range is for stuff

00:07:15   that's closer than my monitor.

00:07:16   - Oh, that's too close, right.

00:07:17   - So I have to look through only the top,

00:07:19   which means the bottom fifth of my monitor is blurry

00:07:24   if I'm looking straight at it.

00:07:25   - Again, if you get prescription progressives,

00:07:27   you can tell the doctor what ranges you wanna see

00:07:30   through what part of your glasses

00:07:31   and they can do that for you.

00:07:33   - Yeah, well, anyway, so that's,

00:07:36   it was really nice, like when I have the progressives on,

00:07:39   it's really nice to be able to like, you know,

00:07:40   bring like a soda can close to me

00:07:42   and read the ingredient label, like, you know, really close.

00:07:44   Like, it's nice to have that, you know,

00:07:46   and that's when you like tilt your head up

00:07:47   and you're, you know, you're peering down

00:07:49   through the bottom of the half or whatever, but,

00:07:51   but yeah, so it's okay, but I,

00:07:55   I'm glad I'm learning more about this world

00:07:57   with very inexpensive, you know, online brand sunglasses.

00:08:01   or glasses rather, and kind of getting a feel

00:08:04   for what I actually will work with

00:08:08   when my needs get more severe,

00:08:09   where I actually have to address this all the time.

00:08:11   But right now, I don't have to address it all the time,

00:08:13   and so I'm probably gonna only use these occasionally.

00:08:16   Like, you know, I'm keeping the pair that I got from the doctor

00:08:17   I'm keeping them next to the bed.

00:08:19   And that way, like when I'm reading my phone at night in bed

00:08:22   I can put them on and man, that's awesome.

00:08:24   Like, it's so great.

00:08:27   But then, you know, when I'm at my computer,

00:08:29   I'm still not, right now I'm not having any trouble

00:08:32   seeing my monitor, so right now it's fine, but over time.

00:08:35   - It's so damn big, how could you?

00:08:37   - Right.

00:08:37   - No, but the pixels are small.

00:08:39   - Yeah. - Fair.

00:08:40   I'm genuinely wondering, why not pull a Jeffrey Wright

00:08:44   and look over the top of, well, he has regular-sized glasses

00:08:48   but get one of those half-frame, 70-year-old man

00:08:51   reading glasses and just look over the top

00:08:53   for everything except reading reading.

00:08:55   Is that not something that would work for you?

00:08:57   - Talk about making you look old, though.

00:08:59   - Yeah, I mean, I have some self-respect.

00:09:03   I can't, I'm not gonna do any option

00:09:05   that I can't say that looks good.

00:09:07   And fortunately, my face is compatible with glasses.

00:09:10   Like, I can put glasses on and they look fine.

00:09:13   And I can even probably find some that look great.

00:09:15   I don't know.

00:09:16   But I have to stay within modern fashion to some degree.

00:09:21   - People have glasses or modern fashion

00:09:23   for senior citizens.

00:09:23   You just gotta get one of those strings that go on them.

00:09:26   They're on your neck, you know?

00:09:28   - Well, if I didn't care at all about fashion,

00:09:29   I would get those ones that clip together

00:09:31   with the magnet in the middle,

00:09:32   and you like drop them down, like over your,

00:09:34   like wear them as a necklace, and then you pop them up,

00:09:36   you know, 'cause those are the,

00:09:37   that's the most functional.

00:09:38   - Yeah, when they're like safety glasses too,

00:09:39   they protect you from, you know,

00:09:40   things coming up from the saw.

00:09:42   - Yeah, exactly. - You could be worse.

00:09:43   I mean, what I do, because my vision is the opposite of yours

00:09:46   I'm constantly looking under my glasses,

00:09:47   which looks ridiculous.

00:09:49   (laughing)

00:09:50   Looking over your glasses where they slide down your nose,

00:09:52   imagine you have glasses, you're sweaty,

00:09:54   they're sliding down your nose,

00:09:55   and you're craning your neck to look under them

00:09:57   so you can see close up things,

00:09:58   because that's what I have to do

00:09:59   half the time with my glasses.

00:10:00   It's actually not that bad with my little skinny

00:10:02   like driving glasses, 'cause they're super distanced,

00:10:05   and if I need to look at my phone,

00:10:06   I cannot look through the lenses at all to see my phone.

00:10:08   So I look underneath my lenses at the phone,

00:10:11   and that works out pretty well.

00:10:12   If you're going to the supermarket or whatever,

00:10:13   and you need to look down at your phone,

00:10:14   it's probably down low anyway,

00:10:15   so I can stay looking straight ahead,

00:10:17   and look down below my lenses at my phone, which I can see.

00:10:21   Anyway, yeah, I'm not looking forward to the day

00:10:23   when I have to get either bifocals or progressives,

00:10:25   because my wife just got progressives,

00:10:26   and I looked through hers and her prescription is like,

00:10:28   not as bad as mine.

00:10:30   And boy, obviously it's a thing you get used to, right?

00:10:33   But you can get used to anything.

00:10:35   I just asked, you know, but like,

00:10:37   I don't know if I can help progressives at my prescription.

00:10:40   Bifocals almost seem like they'd be better

00:10:42   'cause I just feel like I was wearing two pairs of glasses

00:10:44   on my face, but I'll cross that bridge when I come to it.

00:10:47   For now, I'm just eternally swapping glasses.

00:10:49   Driving, not driving, driving, not driving, it's fine.

00:10:52   - Do you wanna talk about iPhone cases

00:10:56   or do we wanna save that for another time?

00:10:57   - Yeah, let's do it.

00:10:58   So the only, I just have a quick update.

00:11:00   I finally got in the two cases that people

00:11:04   all recommended to me for the last year

00:11:06   and I just didn't get them for the iPhone 13

00:11:08   for whatever reason.

00:11:09   The Pitaka and the Peak Design.

00:11:13   These are two extremely well-regarded case options.

00:11:17   This is the Pitaka MagEasy Case 3.

00:11:22   So it's their newest, thinnest MagSafe compatible case.

00:11:26   for the 14 Pro and the Peak Design,

00:11:29   they have this system where they have

00:11:33   this little like square mount in the back.

00:11:35   So it is MagSafe compatible,

00:11:37   but then also they have their own line of like mounts

00:11:41   and custom chargers and things that can latch into

00:11:44   this square ridgy kind of mount hole in the back.

00:11:48   And so you can actually have really strong mounting options

00:11:51   like for if you're putting it on a bike or a motorcycle

00:11:54   or something like where you, you know,

00:11:55   MagSafe is not really strong enough for that kind of use.

00:11:58   So they, you know, so Peak Design

00:12:00   sells this whole line of stuff.

00:12:01   So anyway. - Wait, hold on, I'm sorry.

00:12:02   The Pitaka MagEZ case,

00:12:05   does it look like what I'm seeing on the website 'cause--

00:12:07   - Like carbon fiber?

00:12:09   - Yeah, like, you know what the,

00:12:10   everyone got upset about the Mac Pro

00:12:11   'cause that thing where you don't like holes or whatever?

00:12:13   - Yep. - I'm getting this like,

00:12:15   and I don't care about the Mac Pro in every regard,

00:12:17   but like the look of it never bothered me.

00:12:18   In fact, I think it looks kinda cool.

00:12:20   But this case, I'm getting like major angst over this.

00:12:24   I don't like this at all.

00:12:25   Like it is a fake carbon fiber.

00:12:27   This is--

00:12:27   - No, no, I think it's actually real carbon fiber.

00:12:30   - Is it?

00:12:31   - Well, that's what Aramid is, right?

00:12:32   - I have no idea.

00:12:33   - I think it is.

00:12:34   Anyway, so yeah, we'll go with Pitaka first.

00:12:36   So the Pitaka case, I've only had it on

00:12:38   for a few days so far.

00:12:40   It works the best and looks the worst.

00:12:45   - I could buy that.

00:12:46   I could totally buy that.

00:12:47   - It looks like, it is as far as I think

00:12:51   it's actually real carbon fiber,

00:12:53   But because fake carbon fiber is so often used

00:12:57   as a decoration element in lots of things,

00:13:01   it just looks like fake carbon fiber.

00:13:02   It looks cheap as a result of that.

00:13:04   - This does not look good.

00:13:06   - Like I wish, and they have these alternating colors.

00:13:08   I have the black and blue one.

00:13:10   I wish they would just do like a solid color option

00:13:12   'cause like if what you want is a solid color,

00:13:15   they don't offer that.

00:13:17   So you know, the gray one is close but it's not.

00:13:21   So anyway, it doesn't look great.

00:13:24   It is a very, very minimal protection kind of case.

00:13:28   It is a very thin and lightweight case.

00:13:30   And rather than having its own button covers

00:13:35   or having holes for the buttons,

00:13:36   it has these huge cutouts of the case

00:13:38   where the entire button area on each side,

00:13:42   the case just kind of cuts around it.

00:13:44   So you are directly pressing the phone's buttons,

00:13:47   which in some ways is nice, in some ways is not,

00:13:50   'cause you still have the ridge to contend with

00:13:52   with your finger.

00:13:53   It does have a mostly open bottom.

00:13:56   So, you know, John could mostly be okay with it.

00:14:00   Overall though, the major upsides of this

00:14:03   are it's very thin and light.

00:14:04   It feels not that different from having a bare phone

00:14:08   in terms of size and bulk.

00:14:10   And it has a very good amount of grip

00:14:15   for the tackiness of the surface.

00:14:17   The downsides are it does not look good,

00:14:20   it does not provide much protection,

00:14:22   and the camera, there's like a plastic ridge

00:14:27   to protect the camera area on the back,

00:14:29   and it feels really cheap and sharp.

00:14:32   That's the biggest downside I think

00:14:34   is that camera area just feels crappy.

00:14:37   I like this case, I don't know if I'm gonna keep it

00:14:40   like keep it on the phone long term,

00:14:42   I'm gonna live with it for a while and see what I think.

00:14:45   The Peak Design case definitely looks the nicest

00:14:50   of all the ones I have.

00:14:52   I would say the Peak Design case probably looks,

00:14:56   it's probably one of the best looking,

00:14:57   if not the best looking non-leather case that I have seen.

00:15:01   - This is the everyday case for iPhone

00:15:04   and it looks like it's almost like a cloth on the back

00:15:06   or like a fabric.

00:15:07   - Yeah, it's like a gray kind of heathered fabric

00:15:09   on the back with what I believe is a TPU outer band

00:15:14   going around the whole outside of the case,

00:15:15   like around the ridge.

00:15:17   It totally covers the buttons,

00:15:19   it has a closed bottom, sorry John.

00:15:21   The button covers that and pushing them feels very nice.

00:15:25   It's a very high quality case.

00:15:27   The ridge around the camera plateau protector is smooth

00:15:32   and it just feels really nice, it looks really nice.

00:15:36   The big square mounting hole on the back

00:15:39   does not look crappy or bad, it looks tasteful.

00:15:43   There is no big in your face branding.

00:15:46   So the Peak Design looks the best by far

00:15:49   of all the non leather cases I've ever tried.

00:15:51   The downside is that that back fabric material

00:15:55   does not provide significantly more grip

00:15:58   than the bare phone would.

00:15:59   The sides are a little grippy,

00:16:01   it's like a little bit of a rubbery TPU material,

00:16:03   not like a silicone and not like the clear squishy cases

00:16:06   that I like.

00:16:08   So it's not that much grip is my main problem with it.

00:16:12   but it does look and feel good in other ways.

00:16:16   Just not a lot of grip.

00:16:17   And it's also a fairly thick protection band

00:16:20   around the phone.

00:16:21   This is obviously like, you know,

00:16:22   if you actually drop your phone,

00:16:23   this is, I'm not sure that I have this on my phone

00:16:25   than any of the other ones I've tried so far.

00:16:28   But it is a little bit thick for what I'm going for.

00:16:32   So I'm not sure I'm gonna stick with this either,

00:16:35   but if I had a need,

00:16:36   and I didn't yet buy any of their mounts or anything,

00:16:39   but if I had a need for one of their custom mounts

00:16:41   to use this cool square mounting hole in the back?

00:16:43   No question I would go right to this case

00:16:46   because those mounts all look awesome.

00:16:48   Unfortunately, I don't ride a motorcycle

00:16:50   and I don't need to mount my phone on my bike

00:16:52   when I'm driving to the grocery store, so.

00:16:54   - You don't wanna mount it in the Defender

00:16:55   adjacent to the Tide watch?

00:16:57   (laughing)

00:16:59   - I don't need to.

00:17:00   - I think MagSafe would be okay inside a car.

00:17:02   - Yeah, it is, it's totally fine.

00:17:03   So anyway, so the, yeah, Peak Design,

00:17:07   I don't know if I'm gonna have much use for it,

00:17:10   but I'm gonna keep it around anyway

00:17:11   in case you need that mount for something.

00:17:13   And the Pitaka does work very well.

00:17:15   I'm gonna keep it on for a while,

00:17:16   but I really don't care for the look.

00:17:18   The Apple Clear case I used for most of the last week,

00:17:21   and I still don't like how little grip

00:17:25   it provides on surfaces.

00:17:27   So like, if you lay the Apple Clear,

00:17:30   I'm hearing your click ears.

00:17:32   - Wow, my word, I can hear that too.

00:17:34   - Still going, still going strong over here, just FYI.

00:17:37   But yeah, anyway, I don't love the lack of tackiness

00:17:41   on surfaces.

00:17:42   If you put it on-- - I was gonna ask you

00:17:43   about the carbon fiber case,

00:17:44   'cause that can't possibly be grippy, can it?

00:17:46   It's gotta be slick.

00:17:48   - It has some kind of surface treatment on it, I think,

00:17:51   because it feels like the squishy clear case kind of finish,

00:17:56   that kind of slightly rubbery kind of tacky feel.

00:17:59   So I don't know what it's made of,

00:18:01   some kind of resin, aramid, something or other, I don't know.

00:18:04   But that, for some reason, grips surface,

00:18:07   but I actually, I devised a little test earlier

00:18:10   to try to quantify how much surface tackiness it had

00:18:15   where I laid them on a long plank,

00:18:19   and when I say plank, what I mean is an Apple Watch

00:18:22   strap box, 'cause that's what I had nearby.

00:18:24   And I put it on the far end, and I slowly,

00:18:29   keeping one side of it down, I slowly lifted the box up

00:18:33   like a big seesaw, or like a big lever.

00:18:35   - The camera lump is really gonna screw with this test,

00:18:37   'cause what you wanna test is the friction

00:18:39   of the flat part of it, don't you?

00:18:41   - Well, I wanna test the friction of the whole thing,

00:18:43   'cause the whole thing is on surfaces.

00:18:45   So I held a tape measure up, and I slowly raised up

00:18:49   the Apple Watch box as the seesaw, and saw, okay,

00:18:52   when does the phone slide down?

00:18:54   Like, how high can I raise it before the phone slides down?

00:18:58   And so just, again, these numbers mean nothing

00:19:00   except relative to each other.

00:19:02   - You could've done some trigonometry

00:19:03   and give us an angle here, come on.

00:19:04   Well, yeah, I don't have a protractor here.

00:19:07   Anyway, so having no case at all.

00:19:09   - Don't need a protractor.

00:19:10   - Oh yeah, right, I could just do the, yeah, anyway.

00:19:12   - Trigonometry.

00:19:13   - Yep, all right, so no case at all, four inches.

00:19:16   The Peak Design, four and a half.

00:19:18   Apple Clear Case, five and a half.

00:19:20   Pitaka, six.

00:19:21   Apple Silicone, six and a half.

00:19:23   So that kind of gives you some idea of

00:19:25   like the relative grippiness of all these.

00:19:28   Apple Silicone is the most grippy.

00:19:30   Unfortunately, it means you can't put it

00:19:31   into a pocket easily.

00:19:33   And the Pataka was the second place.

00:19:35   And then Apple Clear was third,

00:19:36   Peak Design fourth, and Nocase was last place.

00:19:39   - Having used the Apple Silicon one

00:19:41   and the non-Apple leather one,

00:19:43   despite the obvious difficulty of pocket,

00:19:46   this is where it highlights how

00:19:48   silicon interacts differently with different surfaces,

00:19:51   because the inside of your pockets are lined

00:19:52   with whatever cotton fabric,

00:19:53   and that's the worst, and they're tight,

00:19:55   and that's the worst case scenario for the silicon case.

00:19:57   But I find in one of my scenarios,

00:20:00   or two of my scenarios where I care about grip,

00:20:02   One, being picked up with my hand,

00:20:04   and two, being rested on the arm or back

00:20:07   of a piece of furniture, or specifically my couches.

00:20:10   I find the leather does better in both of those situations.

00:20:13   I always found the Apple silicone one

00:20:15   ever so slightly more slick and less secure in my hand

00:20:18   than the leather one, I don't know,

00:20:19   just because of the sweatiness and the break-in-iness

00:20:23   of leather where it just kind of starts to be more grippy

00:20:25   or whatever, whereas I think the leather would do worse

00:20:28   on your incline test than the silicone,

00:20:30   because I think silicone grips better

00:20:32   on that very flat surface of cardboard

00:20:34   than it feels in my hand.

00:20:35   But they're both pretty good in terms of grip.

00:20:37   And the Clearone, which I've been using

00:20:39   since I got my phone, it's pretty good in terms of grip.

00:20:42   Like I don't feel like it's super slick,

00:20:45   definitely way more slick than a silicone case

00:20:47   or a leather case, but it's not so bad

00:20:49   that I feel like the phone is slipping out of my hand.

00:20:51   The only weird thing is sometimes

00:20:52   when I reach into my pocket, I think for a second,

00:20:55   maybe 'cause you mentioned in the last show,

00:20:57   did I accidentally face the screen out?

00:20:58   No, that's just the back of the case.

00:21:00   It feels kind of like a screen.

00:21:02   - I will say also, I really came to appreciate the look

00:21:05   of the clear case with the white phone.

00:21:08   I think the darker phone colors you probably have,

00:21:13   that the MagSafe ring probably stands out

00:21:15   a bit too much against them to look very good

00:21:17   on that clear case.

00:21:18   But on the white phone, it's not that bad

00:21:21   and I really did appreciate,

00:21:24   I was at a wedding this past weekend,

00:21:27   which we'll get to in a little bit,

00:21:28   But I wanted to look like, I was all dressed up,

00:21:32   I wanted my phone to not look too crappy.

00:21:34   And I had the clear case and that's what I used.

00:21:36   And it looked fine, it looked like a nice piece of equipment.

00:21:41   The combined look of the clear case with the white phone,

00:21:45   it looked nice, it did not look ridiculously out of place

00:21:49   with formal wear, it was nice.

00:21:51   And I definitely wouldn't say that about the Pataka,

00:21:55   I think the Peak Design would be the nicest looking

00:21:57   option I have, but I didn't have it then.

00:21:59   - I was gonna say on the clear case too,

00:22:00   the wall that surrounds the giant camera thing

00:22:03   on the 14 Pro, it is a wall,

00:22:05   and it's, you know, if you don't want a big wall,

00:22:07   don't get this one, but it is, it doesn't feel cheap.

00:22:11   The wall around it is nicely rounded over.

00:22:14   - Agreed. - Right, it's not sharp,

00:22:16   it's not flimsy, you know, it is what it is, it's a wall,

00:22:19   but I think they did a good job of making it

00:22:22   as inoffensive as they could.

00:22:23   - Yeah. - Yeah, this peak one

00:22:25   really does look pretty good,

00:22:26   but gosh, I do not like the look of the Pataka at all.

00:22:29   - It is very nice feeling in certain ways,

00:22:32   but yeah, it's hard to get over that look.

00:22:34   We are sponsored this week by Green Chef,

00:22:38   a CCOF certified meal kit company.

00:22:41   Green Chef makes eating well easy

00:22:43   with plans to fit every lifestyle,

00:22:45   whether you're keto, paleo, vegan, vegetarian, gluten-free,

00:22:50   or just looking to eat more balanced meals,

00:22:52   Green Chef offers a range of recipes

00:22:54   to suit your preferences.

00:22:56   Green Chef is also now owned by our former sponsor,

00:22:58   Hello Fresh, and with a wider array of meal plans

00:23:01   to choose from, there is something for everyone.

00:23:04   You can pick one or the other, whatever you like.

00:23:06   And Green Chef has all these high quality ingredients

00:23:09   to make these meals.

00:23:11   Ingredients like USDA certified organic ground beef,

00:23:14   USDA certified organic chicken, wild caught sockeye salmon,

00:23:17   and all these exciting new ingredients,

00:23:19   recipes, and delicious meals

00:23:20   can support your healthy lifestyle.

00:23:22   You can eat well without sacrificing taste.

00:23:25   They have their new fall collection,

00:23:27   they call it the fall's finest.

00:23:28   This is a curated selection of farmstead favorites,

00:23:31   fresh seasonal ingredients, and premium proteins.

00:23:34   And they just have so many options for you.

00:23:37   So one of the options they have,

00:23:38   besides keto, paleo, vegan, vegetarian,

00:23:41   they have these things called fast and fit meals.

00:23:43   These are under 700 calories

00:23:45   and ready in 25 minutes or less.

00:23:48   So many different options

00:23:50   that you might want with Green Chef.

00:23:51   All this comes with pre-made, pre-measured ingredients,

00:23:55   spices, sauces, dressings, whatever you need

00:23:57   so that you can get more chef-curated flavor in less time.

00:24:01   So go to greenchef.com/atp135

00:24:06   to get $135 off across five boxes

00:24:10   and your first box ships free.

00:24:13   Once again, greenchef.com/atp135

00:24:18   and promo code ATP135

00:24:21   to get $135 off across your first five boxes

00:24:24   and your first box even ships for free.

00:24:27   Thank you so much to Green Chef,

00:24:29   the number one meal kit for eating well,

00:24:31   for sponsoring our show.

00:24:33   - We have a little bit of housekeeping to do.

00:24:39   First of all, for the very last time this year,

00:24:41   we're going to ask, nay, beg you to go to stjude.org/atp,

00:24:46   S-T-J-U-D-E.org/atp, and throw a few bucks

00:24:51   in the direction of kids with cancer

00:24:53   and the doctors that are trying to help them.

00:24:56   Hey, so here's the thing.

00:24:57   If you listen to this show,

00:24:59   you are likely to have at least a dollar or two

00:25:02   to scrape together and send in the direction

00:25:04   of Memphis, Tennessee to St. Jude Children's

00:25:05   Research Hospital.

00:25:06   Why would you do that, you ask?

00:25:07   Well, because they do everything that they can

00:25:11   to try to cure childhood cancer.

00:25:12   And September is National Childhood Cancer Awareness Month.

00:25:16   And we and Relay, especially Relay, get behind St. Jude

00:25:20   in order to try to raise money on their behalf.

00:25:23   We do that because Relay co-founder Stephen Hackett,

00:25:25   a dear friend of all three of us,

00:25:26   his eldest son was stricken with childhood cancer

00:25:29   at six months old.

00:25:30   Stephen and his son and his family

00:25:32   received literally millions of dollars of treatment

00:25:35   from St. Jude and have paid literally nothing for it.

00:25:39   If you live in a sane and in a good country,

00:25:42   that might be a little bit unremarkable,

00:25:44   but for those of us here in the very broken America,

00:25:47   that is extremely cool.

00:25:48   And you might say to me, "Well, hey Casey,

00:25:50   "I don't care because I don't live

00:25:51   in a broken country like America.

00:25:53   Well, you should care because St. Jude

00:25:55   does a lot of research and they share,

00:25:57   I don't know if donate's the right word for it,

00:25:58   but they share a lot of that research

00:26:00   with hospitals and doctors and whatnot around the world.

00:26:03   So, you've probably spent a bunch of money

00:26:06   on stuff you don't need and I'm parroting Marco here,

00:26:08   I'm taking all of Marco's thunder and I'm sorry,

00:26:10   but I'm not sorry.

00:26:10   - Fair enough.

00:26:12   - You've probably bought a bunch of stuff you don't need,

00:26:14   I certainly have, and we're gonna talk about that soon.

00:26:16   So you should, in order to kind of offset that,

00:26:20   It's not a carbon offset, it's a frivolous expenditure offset.

00:26:24   You should go to stjude.org/atp, S-T-J-U-D-E.org/atp and donate.

00:26:30   The donations are accepted until the end of the month at that address, but certainly feel

00:26:34   free to donate anytime you want to St. Jude, we're not going to stop you.

00:26:37   And also with related housekeeping, we have a new leader on the leaderboard.

00:26:43   And taking over from the entire company of 1Password, one individual, the famous James

00:26:49   Neil who donated something like seven or eight grand last year I forget exactly

00:26:52   what the total was but it was nuts. This year James Neil a single human

00:26:58   by himself donated $32,000. He bought a civic and donated it to

00:27:06   St. Jude. 32,000 actually that's a really nice

00:27:09   Civic that's probably almost in court isn't it John?

00:27:11   $32,000. Civic has gotten pretty expensive it's probably that close to

00:27:15   the top of the line Civic. Yeah it's not quite a type R but it's a really nice

00:27:19   So anyway, $32,000.

00:27:22   - Yeah, regardless, the three of us

00:27:23   each individually donated a used Camry,

00:27:26   and this blows us out of the water.

00:27:28   I mean, my God, James Neill is incredible.

00:27:31   - He is my hero. - This is incredible.

00:27:33   - Get out the sticker cannon.

00:27:35   - Yeah, get out the sticker cannon.

00:27:36   I actually offered, he never said anything to me,

00:27:38   I offered to shoot the sticker cannon

00:27:40   in his general direction one more time,

00:27:42   and he very politely and very kindly said,

00:27:44   "I've got plenty from last year."

00:27:45   - He's counting off of your stupid stickers.

00:27:47   - Exactly, so don't worry about that.

00:27:50   - We'll just order a new production run

00:27:51   and have them sent directly to his house.

00:27:53   - I should, I really should.

00:27:55   But here's the thing, I might have this wrong,

00:27:56   but I think last year,

00:27:58   Relay raised something like $700,000.

00:28:01   If I'm lying to you, it's not on purpose, I promise.

00:28:03   But sitting here now, we're at $550,000.

00:28:06   Let's get to 700, baby, let's get to $700,000.

00:28:09   Do what you can to donate $150,000 in just a couple days.

00:28:12   A tall order, I don't know if we're gonna make it,

00:28:14   but let's try, what's it gonna hurt to try?

00:28:16   stjute.org/ATP.

00:28:18   And that is the last time we're gonna talk about that

00:28:20   for now.

00:28:20   Similarly, last time we're gonna talk about something else,

00:28:23   ATP Movie Club is back, baby!

00:28:25   And we've got one final episode for you, at least for now.

00:28:28   And this episode is Jon's episode.

00:28:30   Jon, would you like to tell us anything

00:28:31   about what we have done?

00:28:33   - I'm just gonna tell you the name of the movie we picked,

00:28:35   'cause that's what we do on this show.

00:28:37   So this is the third and final movie,

00:28:39   and as we talk about in the episode,

00:28:40   I had a difficult time finding a movie to pick

00:28:44   for these two.

00:28:45   What I picked is not one of the things that lots of people have been sending tweets and

00:28:49   emails saying, "I bet Jon picked this, I bet Jon picked this."

00:28:52   Nope, I didn't pick any of those things that you're guessing.

00:28:54   Nobody guessed this movie, but it's what I picked.

00:28:55   I picked Edge of Tomorrow.

00:28:57   If you've seen that movie or if you've heard me talk about it on other podcasts, maybe

00:29:01   that's not surprising to you, but no one guessed it.

00:29:03   Everyone was guessing other big name movies.

00:29:05   If you listen to the show, I will explain why I ended up picking what I picked, and

00:29:09   then we talk about it.

00:29:10   Yep.

00:29:11   So this is just for members as a thank you for sticking around with us all the way through

00:29:15   episode 500 and you can become a member at ATP.fm/join. Certainly you could and should stay a member forever, but you could do the John thing where you just sign up briefly, get the episodes and leave. But we don't want you to do that. Please, ATP.fm/join.

00:29:31   All snark and jokes and whatnot, leaving the room for a moment. Sitting here now, I am sure at some point we will do more membership only content, but we are not planning to make a habit of it. We will maybe do it like once a year or something.

00:29:43   And sitting here now, we genuinely have no, even vaguely concrete plans.

00:29:48   We have basically no plans at all.

00:29:49   We have a bunch of ideas, but no actual plans.

00:29:52   And so if you're not in a position where you can sign up for a membership, we totally understand.

00:29:56   That's totally fine.

00:29:57   And I don't want you to feel like you're missing out on something forever more.

00:30:02   We'll do this from time to time, but for now we're going to put it to bed and let these

00:30:06   three episodes live in infamy or something like that.

00:30:09   And at any time in the future, if you become a member, of course you'll have access to

00:30:12   to these episodes.

00:30:13   - That's an excellent point.

00:30:14   Thank you, Jon.

00:30:15   That is very, very true.

00:30:16   All right, let's do some follow-up.

00:30:19   Jon, can you tell me about shared photo library limitations?

00:30:23   This is still in beta, isn't it?

00:30:25   I don't think this is in the release version, right?

00:30:27   - Right, yeah, and occasionally I update the betas.

00:30:28   I updated my Ventura boot disk a little while ago,

00:30:32   and I think I talked about this in the past show,

00:30:34   but one of the things that have been tripping me up

00:30:36   in trying to test the Apple shared photo library thing

00:30:39   was my complete inability to create a new Apple ID.

00:30:43   'Cause I needed an Apple, I had gone through

00:30:45   this Apple ID purge a while back

00:30:46   that I also talked about on the show,

00:30:47   getting rid of like a bunch of my testing Apple IDs.

00:30:49   I still had one testing Apple ID,

00:30:51   which is the one I'm using in Ventura,

00:30:52   like I'm not using my real Apple ID,

00:30:54   but I needed another one to be part of my family

00:30:56   so I could do, they don't need to be part of my family,

00:30:58   you can share it with anybody.

00:30:59   But anyway, I needed another Apple ID

00:31:01   that was not a real person,

00:31:03   that I could share my shared photo library with.

00:31:05   I didn't wanna share it with any actual people in my family

00:31:08   for fear of inducing any bugs.

00:31:10   I didn't want anything to touch my real Apple ID

00:31:12   until Ventura is done.

00:31:13   And I just cannot create an Apple ID.

00:31:15   So anyway, we're on beta six, beta eight,

00:31:18   whatever we're on in Ventura,

00:31:19   finally I was able to create an Apple ID.

00:31:21   And by the way, I tried creating Apple IDs

00:31:22   outside of Ventura, tried it on the web,

00:31:25   tried it from all sorts of places,

00:31:26   and it was just never working for me.

00:31:27   Just, I don't know, bad internet weather

00:31:30   on the days when I tried it.

00:31:31   Apple was having server problems.

00:31:33   Whatever the problem was,

00:31:34   I'd get halfway through the process

00:31:35   and I'd be close to the end and it'd be like,

00:31:37   "Sorry, this failed."

00:31:38   And there was no explanation.

00:31:40   Anyway, I created a second app, ladies.

00:31:42   Now I'm sharing a photo library.

00:31:44   And I didn't need to do this test to figure this out.

00:31:48   It should have been obvious from our past discussions

00:31:50   and the description of the future,

00:31:52   but I just didn't think about it,

00:31:53   and it really hit home once I actually did the sharing.

00:31:55   Because when I was just doing it by myself,

00:31:57   I was like, "Oh, look, you can toggle any photo

00:31:58   "if you want it to be in the shared library

00:32:00   "and your private library,

00:32:01   "and you can view both of them merged together,

00:32:03   "and it's real convenient."

00:32:04   That's when I'm just looking at,

00:32:05   It's a shared library with one person.

00:32:07   Once I had a second person, I really see the limits.

00:32:10   And I immediately filed a feedback request to say, hey,

00:32:14   please improve this.

00:32:15   It's not a bug report.

00:32:16   It's a suggestion, they call it.

00:32:18   They don't call it a feature request,

00:32:19   but it's a suggestion.

00:32:20   If this is a 1.0, fine, good 1.0.

00:32:23   But there needs to be a 1.1, a 1.2, a 1.5, and maybe a 2.0.

00:32:28   Here's what it's missing.

00:32:29   Shared photo library makes it sound

00:32:31   like you're sharing an entire photo library, but you're not.

00:32:35   because what is part of a photo library?

00:32:37   Obviously the photos are part of a photo library,

00:32:39   but there's way more than just photos in a photo library.

00:32:43   There are albums, there are smart albums,

00:32:45   there are slide shows, there are book projects.

00:32:48   That's all part of the library.

00:32:49   There's ratings, there's keywords, there's favorites.

00:32:51   That's all part of the library.

00:32:53   Like that's a photo library, right?

00:32:56   When you share it, none of those things are shared,

00:32:58   nor can they be shared.

00:33:00   And when I look at my actual family photo library

00:33:03   that is owned by my wife's Apple ID currently,

00:33:06   we have tons of albums.

00:33:07   We have folders full of smart albums.

00:33:09   We have all the old book projects that I did.

00:33:11   We have slideshows.

00:33:13   We have all the metadata, all of the keywords,

00:33:16   all the favoriting, all of the ratings,

00:33:18   just tons of metadata.

00:33:21   None of that is shared.

00:33:23   So what that means is,

00:33:25   although the main selling point of this future,

00:33:27   which I think is great and I'm gonna be excited to have,

00:33:30   I'll finally be able to see all of my family's photos

00:33:33   on my phone and on my Mac.

00:33:36   When I have to go in and basically work

00:33:38   with the photo library,

00:33:39   I'm still gonna be logging into my wife's Apple ID.

00:33:41   Because what am I doing

00:33:42   when I'm working in the photo library?

00:33:44   I am not just modifying pictures,

00:33:47   which those would be shared,

00:33:49   but I'm marking things as favorites.

00:33:51   I'm adding location metadata.

00:33:52   I'm putting things into folders.

00:33:54   I'm labeling things with keywords.

00:33:55   I'm setting person information.

00:33:58   None of that is shared, right?

00:34:00   The edits to the photos, I believe, are shared,

00:34:03   but the other stuff is not.

00:34:04   So good job for a 1.0.

00:34:06   You're not going to get everything in the very first

00:34:08   version, and the 1.0 looks like it

00:34:10   does a really good job of exposing the features

00:34:12   that it has.

00:34:12   But I really hope that feedback request lands in someone's

00:34:15   inbox and they say, oh, yeah, we're totally already working

00:34:18   on that for the next version two years from now.

00:34:20   Please do work on it, because until that comes to fruition,

00:34:24   I'm still going to be logging into my wife's account

00:34:26   to work on our photo library, which is kind of a bummer.

00:34:29   I can understand how they ended up there with not sharing albums and whatnot, but that is

00:34:34   kind of crummy.

00:34:35   Yeah, I mean, it's in the name.

00:34:36   It says "Shared Photo Library."

00:34:37   It doesn't say "Shared Photos," because, yes, you are sharing photos, but the library has

00:34:41   tons of stuff in it, and when I'm working with it, it's mostly what I'm doing is working

00:34:44   with the metadata.

00:34:45   I'm rearranging things, I'm tagging things, I'm organizing things and stuff like that.

00:34:49   So I would like to be able to do that for my account, but that is not going to be possible.

00:34:53   Speaking of disappointments, do you want to tell me about creaky clear cases?

00:34:57   - Yeah, people were discussing this in the chat room

00:34:59   when I made the creaky noises with my case.

00:35:01   Lots of people are experiencing this.

00:35:03   Lots of people think it's like,

00:35:04   "Your case must be defective, return it."

00:35:06   It's not defective.

00:35:07   Like if you look at it, it looks like it fits perfectly.

00:35:10   There are no obvious gaps.

00:35:12   It is all even around all the sides.

00:35:14   Like this is a question of micrometers.

00:35:17   It is not bulging, deformed, warped.

00:35:20   Some people said, "Hey, did you get the wrong case?

00:35:22   "Maybe what you got us for the 14 instead of the 14 Pro."

00:35:24   It's not the wrong case.

00:35:25   It's not everything is right.

00:35:27   And lots of people were sending feedback,

00:35:29   tweeting, emailing, saying, "Hey, I have the clear case."

00:35:32   And it also creaks, right?

00:35:34   I think, and some people were saying,

00:35:36   "I have it and it doesn't creak at all."

00:35:38   It may just be a matter of,

00:35:40   maybe people don't squeeze their case as much,

00:35:42   maybe it creaks and they don't notice.

00:35:44   Like it's, I don't think there is this big, you know,

00:35:47   bifurcation in the production run

00:35:49   where half of the cases creak and half the cases don't.

00:35:52   I think it's just sensitivity to minor differences in,

00:35:57   it's not even differences in fit.

00:35:59   'Cause I think it's material really.

00:36:01   'Cause I don't think any case I've ever had

00:36:02   from my phone fit any better than this.

00:36:04   It's just a question of when it doesn't fit,

00:36:06   how does that manifest in the case?

00:36:07   And it's this particular kind of clear plastic material

00:36:10   that's like tacky and sticky that kind of like clings

00:36:14   to the sides of the phone and then releases,

00:36:16   making that little noise like that.

00:36:19   I think it's the material.

00:36:20   I think every case does that,

00:36:21   but if it's not made of this material,

00:36:23   it doesn't make that noise and doesn't feel as insecure.

00:36:25   I don't know.

00:36:26   I'll let you know when one or both of my leather cases

00:36:29   come in, how they do.

00:36:30   Some people also had a theory it's because I had

00:36:32   the black Pro and maybe the black finish

00:36:35   on the stainless steel is prone to this

00:36:37   and it's gonna happen with every case I get.

00:36:39   I don't know.

00:36:40   But anyway, just wanted to let people know

00:36:41   that I am not the only person who got the clear case

00:36:44   on their iPhone 14 Pro and hears it creaking

00:36:48   and doesn't like it.

00:36:49   - All right, breaking news from earlier today

00:36:51   stage manager will support older iPads,

00:36:54   which is very selfishly exciting

00:36:56   because I have an older iPad.

00:36:59   I have a 2018 era original iPad Pro with Face ID.

00:37:03   And allegedly the stage manager will support

00:37:07   even my creaky four-year-old iPad,

00:37:09   which actually isn't that creaky

00:37:10   and still surprisingly peppy,

00:37:12   as long as I don't use it with an external display,

00:37:15   which I think is a perfectly fair trade,

00:37:17   to be honest with you.

00:37:18   And I'm pretty excited about this.

00:37:19   - Not alleged.

00:37:20   actual quote from Apple and to be specific it'll be available on the 2018

00:37:26   and 2020 models that use the a12x and the a12z chips so if you might know

00:37:31   that's not simply but with the limitation that those iPads cannot use

00:37:36   external displays with stage manager and then on top of that in the latest beta

00:37:42   of iPad OS 16 they just remove external display support for everybody even the

00:37:47   M1 iPads.

00:37:48   That's a temporary condition that will be coming back later.

00:37:51   But yeah, the whole stage manager situation seems to be not going great over there at

00:37:57   Apple.

00:37:58   And the press release said, "We worked hard to make sure this works on older iPads.

00:38:02   We heard your feedback."

00:38:03   Well, that's all good and everything, but the feedback from the folks who are messing

00:38:07   with every one of the new iPad OS 16 betas on their M1 iPads is that stage manager is

00:38:12   still a mess.

00:38:14   Not only, last time we heard about this, we said like,

00:38:16   oh, it's a mess because Apple can't figure out

00:38:18   how it should work, or like the way they made it work

00:38:20   is not pleasing to the users, right?

00:38:21   But now, on top of that, people are saying,

00:38:23   oh, and by the way, also it crashes all the time.

00:38:25   So those are two things that are also not good.

00:38:29   When it's working, we don't like it,

00:38:30   but most of the time it doesn't work and it crashes.

00:38:32   So I really hope they figure out this stage manager thing

00:38:35   and on some reasonable timeline.

00:38:37   - Yeah, it's been a mess all summer long.

00:38:41   I don't know anybody all summer long

00:38:43   who has been using Stage Manager and says,

00:38:45   this is ready to ship.

00:38:47   On one hand, A, it's fantastic that they have added

00:38:50   the support for the older iPad Pros.

00:38:52   That's great.

00:38:53   That could have saved me $1,000 earlier this summer.

00:38:56   Thanks for the timing on that one.

00:38:58   But hey, that's great for everybody else.

00:39:00   You can have this win over me, everybody.

00:39:02   It's better that they're disabling

00:39:06   the external display support now

00:39:08   than shipping it as broken of a state as it was in.

00:39:11   So I'm glad they're at least willing to pull something

00:39:15   before shipping if it's not working out.

00:39:17   I'm surprised Stage Manager is making it

00:39:19   into the release at all.

00:39:21   Based on the feedback from people-- again,

00:39:23   people who have actually been using it all summer long,

00:39:25   it's not a positive overall sentiment

00:39:28   out there about Stage Manager.

00:39:29   It seems like everyone pretty much

00:39:31   says that it needs some significant design

00:39:34   functionality changes before-- and reliability changes--

00:39:38   before it can actually be shippable.

00:39:40   And so many of us were thinking they

00:39:42   were going to pull Stage Manager entirely before release.

00:39:45   I mean, they might still.

00:39:47   They might still, you're right.

00:39:48   But seems like this is what they're doing instead of that.

00:39:51   And so, OK, we'll see.

00:39:55   Maybe-- they know better than we do.

00:39:57   Maybe things are better than we think they are.

00:40:00   I hope, because again, what we've heard is not great.

00:40:07   But maybe things are getting better in the last few betas.

00:40:12   We'll see.

00:40:12   I have to say, I'm running the latest iPod S beta on my iPad.

00:40:15   It's an M1 iPad.

00:40:17   And if you never use Stage Manager, so far,

00:40:20   it doesn't bother you.

00:40:21   Just to be clear, this is not a feature

00:40:23   that you have to use if you don't want to.

00:40:25   Obviously, it's a headlining feature.

00:40:27   You would hope it would work, and it would be useful,

00:40:28   and you'd want to use it.

00:40:29   But after my initial experimentation

00:40:31   with Stage Manager, I don't mess with it at all,

00:40:33   and it does not affect my life.

00:40:35   so it has that going for it,

00:40:36   but that's not a great thing to say about it

00:40:38   once it was supposed to be a headlining feature

00:40:40   of your new OS.

00:40:42   Also, do we have a date for,

00:40:44   I know they delayed iPad OS 16,

00:40:46   but did they even have a date or did they just say fall?

00:40:48   Did they say October?

00:40:49   I forget what they said for iPad OS 16.

00:40:52   - I don't believe we have a date except fall.

00:40:54   - I don't think so either.

00:40:55   - So here's the problem with the whole thing.

00:40:57   So they took external display,

00:40:59   they said flat out external displays

00:41:00   aren't gonna work on the older iPads.

00:41:01   Maybe that's a RAM limit or whatever, right?

00:41:03   but they took it away from all of them.

00:41:05   And this is a direct quote from Apple that they sent to,

00:41:09   I forget where they sent it, this is from MacRumors,

00:41:10   but this is from Apple.

00:41:11   "External display support for Stage Manager

00:41:13   and M1 iPads will be available

00:41:15   in a software update later this year."

00:41:17   There's not that much of this year left.

00:41:19   And fall, later this year,

00:41:22   if iPad OS 16 comes out on December 1st,

00:41:28   and it ships with external display support,

00:41:33   It doesn't say that, hey, first we're gonna release

00:41:36   iPad OS 16, and then after iPad OS 16 is out

00:41:39   and released to the public, some point after that

00:41:42   we'll roll out external display support for M1 iPads.

00:41:45   This doesn't say that at all.

00:41:46   It just says, we'll be released in a software update

00:41:49   later this year.

00:41:50   So I don't know, like there's lots of outs in this plan

00:41:52   where they could comply with the letter of this law

00:41:54   and do all sorts of weird things in terms

00:41:56   of external display support,

00:41:58   including potentially like missing this deadline

00:42:01   of update later this year and have it be,

00:42:03   actually it'll be updated later this spring.

00:42:06   Although, it seems to seem weird to you

00:42:08   that they would pull external displays of support

00:42:10   for the M1 at this point because,

00:42:14   like, is it crashing 'cause it's running out of RAM?

00:42:18   Like, the limitation of the older machines

00:42:21   not being able to do external displays for it

00:42:23   makes some sense in terms of resource limits, right?

00:42:25   'Cause you can have more apps running

00:42:27   and more windows displayed and stuff like that.

00:42:29   But the M1 doesn't suffer from those limits,

00:42:32   so why is that part of the feature

00:42:34   being pulled at this point?

00:42:35   It's mysterious, and I don't understand the motivation

00:42:38   behind the changes, but it all just

00:42:40   leads to continuing uncertainty about what

00:42:44   is this going to look like when it ships to users.

00:42:47   And in the current situation, even

00:42:50   if they fix all the crashing bugs

00:42:52   and they shipped it the way it works today,

00:42:54   I think people would be like me and just

00:42:56   be happy that they can turn it off and be sad that, like,

00:42:59   it didn't turn out better than it did.

00:43:01   - Well, I think when you're talking about a second screen,

00:43:05   that changes a lot, and yeah, I mean,

00:43:08   iOS has supported secondary screens

00:43:11   in the API levels for a while now,

00:43:13   but this is, I think, the first case

00:43:14   where things can be pretty different

00:43:17   in ways that regular people will run into a lot

00:43:20   if you happen to have a second screen,

00:43:21   and that a lot of apps get away

00:43:22   with making a lot of assumptions about like,

00:43:24   UI screen, .main, that just don't,

00:43:27   like you just can't do that anymore,

00:43:29   I believe .main is actually deprecated in iOS 16 now.

00:43:32   And so all throughout iOS history of software development

00:43:36   both in Apple and in the App Store, you know,

00:43:39   devs like us, we've been able to assume

00:43:43   that UIScreen.main would give us whatever aspect

00:43:46   of the screen we were looking for,

00:43:47   whether it was like the scale to know like, you know,

00:43:50   what kind of retina level we're talking about,

00:43:51   like the, you know, things like, you know,

00:43:53   the different attributes of what's going on with the screen,

00:43:55   the screen size, like we've been able to count on that

00:43:58   for all this time being this singleton

00:44:00   that we could just refer to and just know things.

00:44:03   This external display support with Stage Manager

00:44:05   is the first time that assumption is really broken

00:44:07   for lots of apps.

00:44:09   And so I think by saying that they're gonna disable

00:44:12   this part right now, regardless of the hardware,

00:44:15   that suggests to me this is not about resources,

00:44:18   like hardware resources.

00:44:19   This is about bugs.

00:44:20   And so many bugs will and have crop up

00:44:25   because of that assumption being broken now

00:44:27   for the first time ever in iOS.

00:44:29   I think it's gonna be a while and a lot more work

00:44:31   before that is gonna be really reliable.

00:44:34   And that's gonna be made worse by the simple reality

00:44:38   that almost no one, relatively speaking,

00:44:41   is going to be doing this.

00:44:42   Like almost no users of your app,

00:44:44   whatever your app might be,

00:44:45   like the percentage of your app's users

00:44:48   who are actually going to have an external display

00:44:50   with their iPad using Stage Manager is so low

00:44:55   that it's not really worth a lot of developers' time

00:44:57   to make that work.

00:44:59   I mean look at how many developers even make basic iPad resizing and multitasking work.

00:45:04   Not a large number.

00:45:05   And when you look at something like this, odds are low.

00:45:09   Anyway, so all this is to say I have a feeling this is about software bugginess and not hardware

00:45:15   resources.

00:45:16   It's a little trivia from, you know, you got all those UI kit folks have all these

00:45:20   APIs with UI something in the name.

00:45:22   Well back here on the Mac/Next, all our stuff begins with NS.

00:45:26   So you've got UIScreen.main.

00:45:28   Any guess what NSScreen.main is on the Mac?

00:45:31   Slash next.

00:45:32   - Is it like the dock or something weird?

00:45:34   - No, I mean, it's the same thing.

00:45:36   They're displays.

00:45:37   - The monitor that contains the dock.

00:45:39   - So NSScreen.main might seem, well, what's your guess?

00:45:43   What is the main screen on your Mac?

00:45:45   - Well, on a laptop, it's the built-in one.

00:45:47   - Right, but just assume you have a desktop.

00:45:49   Like think about Next,

00:45:50   because this is an API from like the next days.

00:45:51   You have a Next computer, it's got monitors,

00:45:53   there's no built-in monitors, there's no Next laptops.

00:45:55   That would be awesome.

00:45:57   NanoRaptor, please make me a next laptop.

00:46:01   What's the NSScreen.main?

00:46:03   I guess you have to be a Mac user.

00:46:05   The obvious thing that would come to mind for me

00:46:07   is NSScreen.main is the screen with the menu bar, right?

00:46:10   Of course, modern versions of Mac OS

00:46:12   screwed that up by putting the menu bar on all the screens.

00:46:14   Remember when they made that change a while back?

00:46:16   It used to be that the menu bar was only one screen,

00:46:18   and in the little displays arrangement,

00:46:19   you could drag the little menu bar to different screens

00:46:22   to bless one of them.

00:46:23   You can still do that, I think, to set the primary display

00:46:25   if I'm not mistaken.

00:46:26   - Right, wouldn't you think that would be NSScreen.main?

00:46:28   - I would assume.

00:46:29   - Yeah, but it is not.

00:46:31   It is absolutely not, right?

00:46:33   - Oh no.

00:46:34   - To Apple's credit, in the documentation it says,

00:46:36   the main screen is not necessarily the same screen

00:46:39   that contains the menu bar.

00:46:40   And by the way, the main screen,

00:46:42   the one with the menu bar has its origin at zero, zero

00:46:44   with the coordinate system and all that stuff.

00:46:45   The coordinate system on screens in the Mac is super weird.

00:46:48   Yeah, no, that's not NSScreen.main.

00:46:49   Can you guess how you find that,

00:46:51   the screen with the menu bar on it,

00:46:53   if it's not NSScreen.main?

00:46:55   - Oh, I don't know.

00:46:57   I mean, I assume you have to like do some,

00:46:59   like NS workspace hack or something.

00:47:01   I don't know, what is it?

00:47:02   - No, NSScreen has a screens plural method

00:47:05   that returns a list of all the screens

00:47:08   and the one with the menu bar is the first one.

00:47:10   - Oh God.

00:47:11   - It's the worst, it's the worst.

00:47:12   It's so bad. - Neat.

00:47:13   - It is not what anyone will ever guess.

00:47:16   NSScreen.screens.first is the menu bar screen.

00:47:20   NSScreen.main refers to the screen containing the window

00:47:23   that is currently receiving keyboard events.

00:47:25   - Oh, so it changes constantly?

00:47:28   - Oh yeah, oh yeah.

00:47:29   Which makes some kind of sense.

00:47:30   - Oh my gosh.

00:47:31   Oh my goodness.

00:47:32   - I mean, you can do everything you need to do

00:47:34   with these APIs, but boy, so it makes me wonder,

00:47:36   what does UIScreen.main refer to

00:47:39   in a multi-screen iPad scenario?

00:47:41   Is it the screen that is receiving keyboard input?

00:47:45   - Well, it's deprecated, like Marco said.

00:47:47   There is no UIScreen.main anymore

00:47:49   for all intents and purposes.

00:47:51   - I wonder what the replacement API

00:47:53   whatever that's going to be.

00:47:54   - It's terrible.

00:47:55   You have to basically go through the scene manager

00:47:57   and all this stuff.

00:47:59   It's very, there's no singleton way to refer to it.

00:48:02   You basically have to--

00:48:03   - Oh, you can't arrange screens on the iPad, right?

00:48:06   Shows I've never used an external screen with an iPad.

00:48:08   You can't do like you can on the Mac where you arrange them.

00:48:11   One is half overlapping with the other

00:48:13   on the right hand side and stuff like that.

00:48:14   - I would assume you can, but darned if I know how.

00:48:17   - I honestly have no idea.

00:48:18   This is something I like.

00:48:19   I have screens, I guess I could plug in,

00:48:22   but I have never even attempted this.

00:48:25   - All right, speaking of screens,

00:48:26   you wanna tell me about

00:48:28   when the always-on iPhone screen goes dark?

00:48:30   - We talked about this last show,

00:48:31   two things having to do with us

00:48:34   not liking the always-on screen.

00:48:36   One of them was I had to put on my nightstand

00:48:38   and it's lit up, and we talked about different ways

00:48:40   to deal with that in terms of sleep focus

00:48:42   and other things like that, and we'll get to that in a second

00:48:44   but Apple has a document on this

00:48:45   that we got a link to last time.

00:48:46   I think we even talked about it in the show,

00:48:47   but I just wanted to read off the items.

00:48:49   If you just turn on the always-on screen

00:48:51   and don't do anything special to it.

00:48:54   There are scenarios where even though you have

00:48:56   always on screen on, the screen will turn off.

00:48:59   And what the Apple document says,

00:49:00   always on display goes dark when you don't need it.

00:49:02   To save battery life, the display is completely dark

00:49:05   when your phone is lying face down,

00:49:08   your phone is in your pocket or bag,

00:49:09   sleep focuses on, low power mode is on,

00:49:11   your phone is connected to CarPlay,

00:49:12   you're using continuity camera,

00:49:14   you haven't used your phone in a while, parentheses,

00:49:17   your phone learns your activity patterns

00:49:18   and turns off display off and on accordingly,

00:49:20   including if you set up an alarm or sleep schedule.

00:49:23   And finally, your phone detects that you moved away from it

00:49:25   with a paired Apple Watch, always on display,

00:49:27   will turn on when your Apple Watch

00:49:29   is close to your phone again.

00:49:29   So the phone is trying hard not to bother

00:49:32   having it's always on screen on

00:49:34   when it's pretty sure you're not using it

00:49:37   or you're not going to possibly look at it.

00:49:39   So kudos for Apple figuring out all that stuff.

00:49:42   But then the scenario I was describing

00:49:44   doesn't fit any of those,

00:49:45   except for the sleep focus thing,

00:49:46   which if you don't wanna use smoke phones, that won't work.

00:49:48   and the whole learns your activity patterns.

00:49:51   Obviously I don't have the patience for that.

00:49:53   If it were eventually learned by activity patterns,

00:49:55   oh well.

00:49:55   But yeah, but the other way to deal with that is

00:49:59   black and white always on lock screen.

00:50:02   So if you go to settings, focus,

00:50:04   select one of your focus modes, options,

00:50:06   there is an enabled dim lock screen option.

00:50:09   And when you're in that focus mode,

00:50:11   your lock screen will basically be all black,

00:50:13   but just with like the time and other stuff.

00:50:15   And I'm not sure if it works with widgets,

00:50:16   but this is selectable on a per focus mode basis.

00:50:19   It doesn't have to be your sleep focus.

00:50:21   You can do this for any focus mode.

00:50:22   If you're interested in having a darker lock screen

00:50:26   in the OEI's on a feature, try that out.

00:50:29   Otherwise you can rely on apparently Apple smarts

00:50:33   to eventually figure out

00:50:34   when you're probably not using the phone.

00:50:37   - So I went to the Apple store twice today.

00:50:39   First of all, Apple stores,

00:50:40   even not remarkable ones like mine,

00:50:43   apparently have the Apple watch ultra in stock to look at

00:50:46   I shouldn't say in stock, they have it available to look at, they have display models.

00:50:50   And I briefly, very briefly, put one on my wrist.

00:50:54   And it is freaking mammoth.

00:50:57   It is a monster of a watch.

00:50:59   I should have taken a picture, but I was trying to accomplish other things, which we'll talk

00:51:01   about momentarily.

00:51:02   But it was huge.

00:51:04   I will say I liked the orange band.

00:51:07   I forget what it's called, like the Adventurer band or something like that.

00:51:10   But I thought that was pretty cool with like the titanium clip in it.

00:51:13   I did like that.

00:51:14   play with the software on the Ultra, but holy cow it's huge. And I happen to be there with

00:51:20   Aaron, and I think I heard this from Marco on the last, or one of the recent episodes

00:51:25   of this very program, but maybe I heard it from somewhere else. But I said, "Oh my gosh,

00:51:29   this thing is enormous!" And Aaron said, "I actually don't think it looks that bad." And

00:51:32   Marco, I think, had said a couple episodes ago, like, "Whatever you think when you look

00:51:37   down at your wrist, that's not necessarily what everyone else thinks." But oh my gosh,

00:51:41   when I looked down I was like this thing is eight sizes too big it's just

00:51:45   ridiculous. Was that you Marco or am I making this up? Yeah like watch fashion

00:51:49   is very personal and and it varies a lot between like who you ask. If you ask the

00:51:55   watch world you know what what how big of a watch is too big generally the only

00:52:01   thing people can agree on is if the lugs which on a regular watch are like those

00:52:06   little metal things that come up and down from the top and bottom that hold

00:52:08   to strap on, so if those extend over your wrist,

00:52:13   like on top and bottom, that's generally considered too big.

00:52:17   But the Apple Watch doesn't have lugs.

00:52:19   It has the strap slots, so it's kind of a different way

00:52:22   to look at it, but generally speaking,

00:52:24   whatever watch that you can rock with confidence

00:52:28   will look good on you.

00:52:29   And so it's basically whatever you think looks good on you,

00:52:32   because if you think it looks good,

00:52:34   you'll rock it with confidence.

00:52:35   So that's how actual watch fashion works,

00:52:38   is like if you think you're pulling it off,

00:52:41   you're probably pulling it off.

00:52:42   And so you can kind of wear whatever makes you feel good

00:52:45   and it'll be fine.

00:52:46   - Fair enough.

00:52:47   I've seen a lot of people, you know,

00:52:49   all the videos of people wearing the Ultra and everything.

00:52:51   And I feel like the design of the watch,

00:52:55   not excuses, but like explains or makes sensible its size.

00:53:00   Because when I see people wearing it,

00:53:02   I don't know if I, like, I feel like they're using the,

00:53:05   what is it, the Pip-Boy or whatever from the Fallout,

00:53:08   games like that it's like it's utilitarian and in the same way I would

00:53:12   if someone saw something like a you know a really old Garmin GPS watch you know

00:53:16   ages ago or whatever it's like oh yeah it's big and clunky but like that's what

00:53:19   it has to be to do what it does and not that the ultra is big and clunky or

00:53:24   anything but it's just like it looks too enough you know what I mean like it

00:53:29   looks like a it looks utilitarian it looks I don't know it looks more like a

00:53:36   a practical thing that you're wearing for a purpose.

00:53:39   Now granted, I know it's just the same as any other Apple watch with a bunch of extra

00:53:41   features, like it's not actually that different, but when I see that, and even like the flat

00:53:46   screen that helps with that, when I see that I say, "Oh, I'm no longer judging it as a

00:53:52   fashion accessory."

00:53:53   I'm now judging it like the same way if you saw someone running and they have one of those

00:53:56   like straps that go across their chest for heart rate or whatever, right?

00:54:01   You wouldn't like judge that as a fashion accessory and go, "Oh, I feel like that heart

00:54:04   rate sensor's a little bit bulky."

00:54:05   Like, you know, it doesn't match their outfit.

00:54:07   It's like, no, it's a utilitarian thing.

00:54:09   And that's what I think when I see the watch.

00:54:10   And so I, not that I care what watches look like on people

00:54:14   or whatever, but like, I think the Apple Watch Ultra

00:54:17   looks really good in that role.

00:54:20   And, you know, again,

00:54:20   maybe it's the flat screen that helps it.

00:54:22   I see it as a little computer on the wrist and I go,

00:54:24   hey, that's a cool little computer you got on your wrist.

00:54:25   I don't think, hey, that's a giant watch.

00:54:28   - But why did I go to the Apple store, you wonder?

00:54:29   Well, I had ordered myself and Aaron's Solo Loops

00:54:34   with our new Apple Watch Series 8s.

00:54:36   So these are the things that,

00:54:37   they're made of similar material to the sport band,

00:54:40   not exactly the same, but similar materials to the sport band

00:54:42   that is like the quintessential Apple Watch band.

00:54:45   But they're a little bit stretchier

00:54:46   and there's no like clasp or anything like that.

00:54:49   It's just one single piece of this fluoro elastomer rubber,

00:54:53   whatever it is.

00:54:54   And I actually think they look really good

00:54:56   and feel really nice because instead of having

00:54:57   all the lumpiness where you have the band folded over

00:55:00   on itself on the sport loop or whatever it's called,

00:55:03   It's just a single piece of rubber,

00:55:05   for lack of a better way of describing it.

00:55:07   And I really do like it.

00:55:08   And I had one for my Series 6,

00:55:10   and I liked that until it eventually got a crack

00:55:13   and then one day split in two,

00:55:15   which was a little undesirable,

00:55:16   but you know, what are you gonna do?

00:55:18   So anyway, so when I ordered my Apple Watch

00:55:21   and Aaron's Apple Watch,

00:55:22   I did the thing where you print out a sheet of paper

00:55:25   and you cut out like a faux Apple Watch, like sizing tool.

00:55:29   And I tried this and I tried it with Aaron

00:55:31   and tried it with me and I got it all wrong.

00:55:32   I just got it completely wrong.

00:55:33   And I had ordered a size seven for myself,

00:55:36   and it turns out that I actually prefer a size five,

00:55:38   so I was not even close.

00:55:40   For Erin, I believe I ordered a size five,

00:55:42   and she needed a four.

00:55:43   So Erin and I went to the Apple store

00:55:46   because we wanted to just exchange these bands

00:55:48   for the exact same thing, but different sizes.

00:55:51   I had a vague recollection that this was a nightmare.

00:55:54   Two years ago, when I had last gotten an Apple Watch,

00:55:56   and these Solo Loops were brand new,

00:55:59   I had thought that Apple had said,

00:56:01   "Oh, no, no, no, we'll fix this.

00:56:03   It's gonna be better, it's gonna be better."

00:56:04   Because, again, two years ago, it was not better.

00:56:07   It was quite bad.

00:56:09   So I go to the Apple store and I talk to a very nice person

00:56:11   and I said, "Oh, I'd like to exchange this."

00:56:13   And they said, "Okay, I'm gonna need the watch, too."

00:56:17   I said, "Sorry, what?"

00:56:19   "Yeah, because you bought it with the watch,

00:56:21   I'm gonna need to return the watch."

00:56:23   "I'm sorry, what now?

00:56:24   That's still a thing?"

00:56:25   "Yeah, yeah, yeah, yeah, it's because it's in the system,

00:56:26   blah, blah, blah, blah, blah, blah, blah."

00:56:29   Okay.

00:56:30   So I go home and I do what any privileged person does.

00:56:35   I write a Moany tweet about it.

00:56:37   And a bunch of people, including Marco, replied to it.

00:56:41   And Marco confirmed what I had thought,

00:56:43   which was, "Wait a second, didn't they say this got better?"

00:56:46   And then a bunch of people replied to the two of us

00:56:48   saying, "Yes, they did."

00:56:49   In fact, almost exactly two years ago,

00:56:52   on the 24th of September in 2020,

00:56:55   there is a post on TechCrunch where Apple is quoted as having,

00:56:58   It says Apple has since clarified and addressed some of the issues. For starters, users can now just replace the band rather than the entire watch either in store or by mail.

00:57:07   That's exactly what I want to do. Like, that's what I want.

00:57:11   So, okay, fine. So we drive the like 15 minutes back home, which is like, as I said to some friends of ours, like if this is the biggest of my problems today, I'm doing pretty friggin' well.

00:57:21   But in the heat of the moment, it's really damn frustrating. So, nevertheless, we drive home, I collect her, you know,

00:57:27   I take Erin's watch off of her wrist.

00:57:29   I leave mine on my wrist because I figure,

00:57:32   what's the worst thing?

00:57:33   I'll just take it off and hand it to them.

00:57:34   I collect the Apple Watch boxes.

00:57:36   I put them all back in the foldy thing.

00:57:37   So for context here, as of a couple of years ago,

00:57:40   when you get an Apple Watch and band,

00:57:42   what they do is they take a Apple Watch box

00:57:45   that has the watch and the charging cable and nothing else.

00:57:49   And then they put that below or above or whatever

00:57:52   next to a band box, the same band box you would buy

00:57:56   if you just went and bought that band straight out of nowhere, you know, you didn't buy a watch,

00:57:59   you just bought the band. It's the same thing. They put both of these together in like this

00:58:04   kind of origami papery thing and then they fold that all up and that becomes your purchased Apple

00:58:10   watch. It's very clever. But the thing is that makes me think, "Why can't I just take the band

00:58:15   box and bring it in and return that?" Well, oh no, my friend, oh no. So fine. Erin needed to go pick

00:58:21   up Michaela from preschool so she went off her way. I went back to the Apple store and I talked

00:58:25   someone who I think was a little more senior, said, "Okay, I'd like to, you know, return or

00:58:30   exchange these two." And, "Oh yeah, I remember you from before. Yeah, yeah, yeah." So what ended

00:58:34   up happening was they didn't need the watches, because the impression they had given me, actually

00:58:40   the same fellow had given me earlier in the day, was that I needed to literally return the watch

00:58:45   and potentially maybe even get a new one in order to just exchange these bands. I don't want to

00:58:50   return the bands. I don't want to do a totally different band. I just want a different size of

00:58:54   of the same band. So anyway, so I go back to do it and I have Aaron's watch in the box. I have my box

00:58:59   with my watch on my wrist and I say, okay, I'd like to do these exchanges, please. Oh, well, we don't

00:59:03   have a, I forget the technical term for it, but we don't have a Starlight Blue band. We have a Midnight

00:59:07   Blue band. Okay, fine. Can I, can I see that one, please? I bet it looks the same. Sure enough, it looks

00:59:13   exactly the same, but whatever. But so they bring me the two bands that I want and he ended up scanning

00:59:20   a barcode on the back of the Apple Watch boxes,

00:59:24   but could not have cared less whether or not

00:59:27   there was anything but air in those boxes.

00:59:29   It was the weirdest thing.

00:59:31   And I feel like Apple has a record of my purchase

00:59:35   and the serial numbers associated with my purchase.

00:59:37   Like, why are we still doing this two years on?

00:59:41   Am I the first person to have bought the wrong solo loop?

00:59:44   I can't imagine I am.

00:59:46   Like, again, in the grand scheme of things, it's fine,

00:59:48   but it was just so startling

00:59:49   because you know, Erin's been a little perturbed with some of the things that

00:59:54   that have been going on with her phone and her watch and whatnot. Like her

00:59:57   Series 6, the battery life has just become atrocious over, you know, the span

01:00:01   of two years. The battery life on her 14 Pro has actually been very disappointing

01:00:05   to the point that she turned off the always-on display and still is

01:00:09   complaining about her battery life as compared to the 13 Pro. So Erin's already

01:00:13   fired up about everything. And she keeps saying to me, and she's kind of right,

01:00:17   Like what happened to the "it just works, we make it easier for the customer"

01:00:22   like "oh it's just everything is roses and daffodils" like that's that's just

01:00:26   not the Apple today and that sucks dude like that's just not cool and it makes

01:00:32   me sad and again this in the grand scheme of things not a big deal like it

01:00:37   really could be so many way worse and so many just infinite ways but I just I

01:00:42   miss the time when when and maybe I'm making this up maybe it's rose-colored

01:00:46   glasses, but I feel like I could go to the Apple store years and years and years ago

01:00:49   and know I was gonna have a decent experience. Another silly example, when I

01:00:52   picked up my phones, or you know her phone and my phone, when they were brand

01:00:56   new, I got like the real, not a runaround, not like Marco had to do at Staples back

01:01:02   in the day, but like, "Oh do you want a screen protector?" "No, I'm good." "Are you

01:01:05   sure you don't want a screen protector?" "Yes, I'm fine." "Well if you get a screen

01:01:09   protector and we put it on ourselves, then there's like this super fancy

01:01:12   guarantee from Belkin or whoever makes it." No, really, I promise.

01:01:15   - Can I offer you the gold-plated screen protector,

01:01:17   which will protect your screen even faster.

01:01:19   - Right, exactly.

01:01:20   What about, do you want AppleCare?

01:01:21   Are you sure you don't want AppleCare?

01:01:23   No, really, really, really.

01:01:25   Are you really sure you don't want AppleCare?

01:01:27   And it's like, on the one side,

01:01:28   the complimentary way of looking at this is,

01:01:31   they're just trying to help me out.

01:01:33   And I can make a solid argument

01:01:34   that that's legitimately what they were trying to do,

01:01:37   but I don't know, man.

01:01:38   It just felt kinda slimy.

01:01:41   And leaving aside the fact that Californians

01:01:43   don't believe in lines/cues, leaving aside the fact that you walk in and just look like

01:01:47   a friggin dummy until somebody takes pity on you and asks what you need. Leaving all

01:01:52   that aside, it's just not great in an Apple store these days. And it stinks. I feel so

01:01:59   bad. I kept thinking to myself, you know, the last place I lived before here is Charlottesville,

01:02:03   Virginia, which has a bad reputation because of the gross people that came in and did terrible

01:02:07   things in 2016, but is actually a very wonderful place to be. It's super progressive. I really

01:02:12   miss it. And Charlottesville is about an hour west of where I am. And the nearest Apple store

01:02:17   to Charlottesville is my store. So imagine I had driven to Richmond for an hour, gone to the Apple

01:02:25   store, wanted to exchange my band, and they say, "Okay, screw right off. You have to go home and

01:02:29   get your box for your Apple Watch." How annoyed would I be? And there's places in Virginia,

01:02:34   which is not a small state, and granted, a lot of Virginia is relatively rural, if not very rural,

01:02:38   But there are places that have people, I promise, they exist.

01:02:42   Despite what John thinks, people exist below the Mason-Dixon.

01:02:45   And so, like Roanoke, Virginia, Blacksburg, where I went to school,

01:02:49   the nearest Apple stores to these places are either mine,

01:02:52   which is like two, two and a half, three, three and a half hours away,

01:02:55   or somewhere in North Carolina.

01:02:56   Like, it's just, I can't fathom how upset I would be

01:03:00   if I had made one of these drives and been turned away

01:03:04   because he just needed to scan a barcode.

01:03:05   It would be, it's so off-putting.

01:03:08   I don't know, it bums me out.

01:03:09   (upbeat music)

01:03:10   This week's episode is brought to you by Tailscale.

01:03:13   Tailscale is, to use their own line,

01:03:15   a secure network that just works,

01:03:16   which honestly is true.

01:03:19   I've been a Tailscale user for the past several months

01:03:21   since before they said they were going to sponsor the show,

01:03:23   and I can tell you it honestly is really, really good,

01:03:26   and they can't pay us to say that.

01:03:27   So what is Tailscale?

01:03:29   Well, it's a secure network across other networks.

01:03:33   So what does that mean?

01:03:33   Well, let's say you have a server,

01:03:35   maybe it's at school or some cloud instance,

01:03:37   somewhere. Maybe you have your own devices. Maybe you have a Raspberry Pi or 6. Maybe you have a

01:03:42   Synology or something. One way or another, if all of these devices are on your same tail scale

01:03:48   network, you can communicate between them as though you're on the same network. That means if

01:03:53   you're sitting on a park bench / picnic table in the middle of nowhere, as long as you're connected

01:03:58   to your tail scale network, you can reach all of these other devices and servers and whatnot as

01:04:02   though you're on the same network. It is amazing and for all intents and purposes

01:04:08   completely transparent. And what I really love about Tailscale is that it is

01:04:11   completely free for personal use if you have 20 devices or less. So what you can

01:04:16   do is go to tailscale.com. T-A-I-L-S-C-A-L-E.com. Check it out and sign up if you'd like.

01:04:22   And they also wanted me to tell you that it makes a lot of other things really

01:04:25   simple too. For example, if you want to do the whole SSH key exchange dance,

01:04:30   Tailscale can manage that for you and make it extremely easy and extremely transparent.

01:04:35   So a lot of people like me thought of Tailscale as just a VPN.

01:04:39   It kind of sort of is a VPN, but really what it's about is linking all your devices irrespective

01:04:45   of what network they're on.

01:04:47   And that makes it super duper cool.

01:04:49   So please visit Tailscale.com, T-A-I-L-S-C-A-L-E.com, and check it out.

01:04:55   Like I said, it is free if you are using it for yourself and you have 20 devices or less.

01:05:00   Thanks to Tailscale for sponsoring this week's episode.

01:05:03   - This past weekend, we had a wedding in our family,

01:05:10   and people who have been listening for a very long time

01:05:12   might remember that a long time ago,

01:05:15   my wife was a wedding photographer,

01:05:17   and during this time, I would be her second shooter.

01:05:20   So she was the main photographer,

01:05:22   but I'd be like, you know,

01:05:24   standing off to the side with a long lens,

01:05:25   like sniping pictures of people

01:05:27   when they were smiling and not looking at me.

01:05:29   And so we were at a family wedding

01:05:31   and we were not the photographers.

01:05:35   They had other professional photographers there doing it.

01:05:38   But I was like, well, I might as well

01:05:41   stick the 90 millimeter lens on my Sony

01:05:43   and try to get some good pictures.

01:05:45   And I also used the iPhone, the 14 Pro.

01:05:48   And so this is the first time I had actually

01:05:52   used a big camera in a while.

01:05:56   So this is my Sony A7R III, I think.

01:06:00   (laughing)

01:06:00   I think it's a III, yeah.

01:06:02   (laughing)

01:06:03   Yeah, 'cause I don't think I've ever got the IV.

01:06:04   Anyway, A7R III with the 90 millimeter

01:06:08   Sony prime macro lens, which is an awesome lens.

01:06:11   Extremely sharp, handles pretty well.

01:06:14   A little slow to focus, but otherwise pretty good.

01:06:17   It's the longest Sony prime I had,

01:06:19   and so I mounted that, and I was gonna be

01:06:21   from audience distance to everything,

01:06:23   so I couldn't like, because there was

01:06:25   a real photographer there, my goal was to never be

01:06:29   in the real photographer's way.

01:06:30   'Cause I know from having shot weddings,

01:06:32   that's really annoying when someone who's not

01:06:35   the photographer, who's just an attendee of the wedding,

01:06:38   is like walking in front of you, stealing your shot,

01:06:40   or constantly being in your shot,

01:06:42   with their big camera sticking up.

01:06:44   So I knew to stay out of their way,

01:06:46   and stay out of their shots and everything.

01:06:48   So, shot a bunch of pictures with the Sony,

01:06:50   and I quickly wanted to pick through and edit them

01:06:54   in some basic way and give them to them the next day.

01:06:58   So I had kind of a quick turnaround.

01:07:01   So happy that I had the laptop,

01:07:03   I had my 16 inch with the SD card slot.

01:07:06   Oh, what, so nice.

01:07:08   So pop the card, do that, do all that.

01:07:10   I first tried, we talked a while, maybe a year or two ago,

01:07:14   we talked about photo ingest apps.

01:07:18   Apps that would be better than Apple Photos

01:07:20   at picking through pictures from a camera card

01:07:23   or from a shoot, like picking through and quickly

01:07:26   deleting the ones that were blurry,

01:07:28   or you have a multi-shot burst,

01:07:29   delete the one or two that aren't as good

01:07:31   and keep the other one,

01:07:32   be able to quickly review photos like that

01:07:34   and pick and choose without first importing them all

01:07:37   into Apple Photos and having them all

01:07:39   cluttering up your library and everything else.

01:07:41   I remember back when we did that,

01:07:42   I was not super thrilled with things I had tried,

01:07:46   and then right afterwards, people all wrote in to say,

01:07:49   try Photo Mechanic.

01:07:50   Well, it took me a year or two, but here we are,

01:07:52   this was the next time.

01:07:54   So I tried Photo Mechanic.

01:07:57   It was indeed very fast to load all the thumbnails.

01:08:00   It was not at all for me.

01:08:03   It's like this is an app designed

01:08:07   for very specific workflows that are way more specific

01:08:12   and needy than what I needed,

01:08:14   which was I just want to quickly look through these photos

01:08:17   and pick the ones that are good

01:08:19   and then import them into something

01:08:21   that can edit them in raw form to look nice.

01:08:25   I haven't used Adobe Lightroom in a very long time.

01:08:27   It was my preferred app to do that in the past.

01:08:30   If I did this on a regular basis now,

01:08:32   I'd probably go back to it,

01:08:33   but I didn't even have it installed.

01:08:35   I didn't wanna bother installing it,

01:08:36   so I'm like, all right, let me just,

01:08:37   I'll pick through things with Photo Mechanic,

01:08:39   which I eventually figured out how to do,

01:08:41   and then I imported them all into Apple Photos on the Mac

01:08:46   to edit the raw, and I had very little time to do this,

01:08:50   So I wanted to basically hit the auto light button

01:08:53   on all of them, do a couple of minor,

01:08:56   mostly pull the shadows up on the ones that needed it,

01:08:59   a couple of slight white balance tweaks,

01:09:01   but I'm not doing heavy editing.

01:09:03   Just some very quick basics so I can get these photos

01:09:07   all to them and then tell them,

01:09:08   "Hey, if there's any of these that you really love,

01:09:10   "let me know and I'll really do a nice edit on them."

01:09:14   This process reminded me of just how painful

01:09:18   so much of this is.

01:09:20   Figuring out how photo mechanic works

01:09:22   and then getting these photos into Apple Photos.

01:09:24   And then Apple Photos, the editing interface,

01:09:27   it has gotten a little bit less hostile

01:09:30   over the last couple of years.

01:09:32   But it would do things like occasionally

01:09:34   lose the base file for the photo.

01:09:39   I edited about 150 photos is what I ended up with.

01:09:42   And then I would go back to drag them all out as JPEGs

01:09:45   to send somewhere and it would only have like 140.

01:09:50   What happened to the other ones?

01:09:52   Or I drag them out and it would give me an error message

01:09:54   saying these nine files or whatever had errors.

01:09:58   Too bad.

01:09:59   What error?

01:10:00   Who knows, too bad.

01:10:01   And then when I eventually figured out

01:10:04   they were missing their originals, what happened to them?

01:10:07   I'm doing this all on one Mac, locally.

01:10:10   What happened to the files?

01:10:13   Eventually, I finally fight it and I do all my edits

01:10:18   and I get to the point where, okay,

01:10:22   I'm ready to add these to the shared album

01:10:25   that we're all putting all these photos in.

01:10:28   I try to do it and I get a random error message

01:10:32   with like an error code number.

01:10:34   I eventually find that it is apparently

01:10:38   an undocumented limitation that you can't add raw photos

01:10:43   to shared albums within Apple Photos.

01:10:46   - Whoopsies.

01:10:47   - Even though Apple Photos can operate on RAW,

01:10:50   it even badges it with a little RAW icon so you know.

01:10:53   There also seems to be no option to convert RAW to JPEG

01:10:58   inside of Apple Photos.

01:11:00   If I wanted to add these to the shared album,

01:11:03   apparently I can't do that.

01:11:04   Well, that sucks.

01:11:06   Okay, then give me an option to convert them to JPEGs.

01:11:08   Nope.

01:11:08   So here's these photos that I put in here.

01:11:13   They sync everywhere, they're viewable everywhere,

01:11:15   they can be edited everywhere,

01:11:17   but I can't add them to a shared album.

01:11:19   Okay.

01:11:20   - So did you like, did you retro batch them all

01:11:22   or something like that and then re-ingest?

01:11:24   - I exported them all out of the app

01:11:26   by dragging into a folder which created JPEGs

01:11:29   for all of them.

01:11:31   I deleted them all out of my photo library in raw form.

01:11:34   I still had the original raw files of course.

01:11:36   But deleted them out of Apple Photos in raw,

01:11:39   went to the like, you know, trash can

01:11:41   or whatever it's called in Apple Photos,

01:11:43   delete deleted them out of there,

01:11:45   so they're really gone,

01:11:46   'cause otherwise it would consider them duplicates,

01:11:47   'cause it considers duplicates

01:11:49   even if they're in your trash, thanks.

01:11:51   And then finally re-imported them as JPEGs,

01:11:55   and then finally it all was shareable and worked.

01:11:59   So that's how to do that in case anybody wants to.

01:12:02   And this whole thing just reminded me,

01:12:04   the weird limitations, the loss of files, which was scary,

01:12:10   the nondescript error messages

01:12:11   that didn't give any information.

01:12:13   Apple Photos is just horrible

01:12:15   for anything that was not shot on an iPhone.

01:12:18   It is actively hostile towards any other camera's photos.

01:12:21   It is especially hostile towards RAW handling,

01:12:24   which is a shame because Apple has the software capability

01:12:27   to do that, they had it with Aperture long ago.

01:12:29   Photos has RAW editing built in.

01:12:32   Frankly, if I really wanted to do a good job of it,

01:12:35   I think Lightroom is a better RAW editor,

01:12:37   but regardless, you know, a separate day.

01:12:39   This is just so hostile and I'm glad I don't do this

01:12:43   on a regular basis because it's very frustrating.

01:12:47   And that being said, when I looked at the pictures

01:12:50   of that day, when I compare the iPhone pictures

01:12:53   versus the Sony pictures, the Sony pictures kick

01:12:58   the iPhone pictures' asses so hard in so many ways.

01:13:03   Not always, mind you.

01:13:04   Like where the iPhone still shines and will probably

01:13:07   always be better than any other camera,

01:13:10   is areas where computational photography really can benefit.

01:13:15   So that's things like HDR,

01:13:17   where there is massive exposure range in the shot.

01:13:20   And yes, you can expose to the highlights

01:13:24   and then try to bring up the shadows and all that.

01:13:26   You can do that with raw editing, but you have to do that.

01:13:29   It's a lot of work and it's still tricky

01:13:31   and it's still hard to achieve certain dynamic range

01:13:35   with regular cameras, whereas the iPhone can do

01:13:39   like super fast multi shot bursts that are merged

01:13:43   instantly and perfectly into one shot.

01:13:46   It can do things that standalone cameras

01:13:47   really can't do still.

01:13:49   So there were certain areas where the iPhone camera

01:13:53   did win, especially as light got lower

01:13:57   and I cranked the ISO up as far as I knew that I could

01:14:01   on the Sony, did as much as I could with high ISO,

01:14:05   wide open shooting, image stabilization,

01:14:08   but in low light the iPhone with its computational chops

01:14:13   was still able to do a much better job.

01:14:15   Obviously video, the iPhone is a much better job,

01:14:18   but the well lit photos I could get

01:14:23   with that 90 millimeter lens,

01:14:25   oh my God, they looked so good,

01:14:28   and so much more detail, and such more pleasing optics,

01:14:32   and even to some degree more natural colors compared

01:14:36   to what the iPhone could give.

01:14:38   It was a very good but frustrating experience.

01:14:42   It was good in the sense like, I'm

01:14:44   really glad I brought this big camera to this important event

01:14:46   for the family.

01:14:47   And I'm really glad they have these nice pictures now.

01:14:51   On the other hand, I kind of can't

01:14:53   believe how crappy of an experience this still is.

01:14:56   All these years later, I think it was actually

01:14:59   a better experience before iCloud Photo Library,

01:15:02   when we just had Lightroom versus Aperture versus iPhoto,

01:15:06   I think things were better back then.

01:15:07   Not in like a rose-colored glasses,

01:15:09   like I'm forgetting how crappy other things were.

01:15:12   No, I think in this particular area, they were just better.

01:15:14   - They were definitely slower, that's for sure.

01:15:16   I mean, I think-- - Yes, that's true.

01:15:18   - I'm gonna blame photomechanic

01:15:19   for your missing photo things,

01:15:21   'cause I've literally never seen that,

01:15:22   and I exercise photos a lot a lot,

01:15:24   and the exact workflow you're describing

01:15:26   when I'm on my long-hound vacations,

01:15:28   where I come back from the beach,

01:15:29   and then I process photos so we can see them

01:15:31   on the process, 1,500, 2,000 photos in time for us

01:15:36   to be able to see a slideshow after dinner.

01:15:38   So I'm familiar with that workflow.

01:15:40   And Photos is not a great application.

01:15:42   I complain about it all the time.

01:15:44   But it's never lost the base files.

01:15:46   So I think that was a photo mechanic thing.

01:15:48   Photos sucks at RAW.

01:15:49   I totally agree with that.

01:15:50   That's why I have the external editing support, where

01:15:53   I can use that RAW power program or Pixelmator or all sorts

01:15:58   of other external editors.

01:15:59   I don't bother trying to do anything with RAWs in photos.

01:16:02   I have them in photos,

01:16:04   but when I want to do anything with them,

01:16:06   I take them out to another program

01:16:07   that gives me way more control over that.

01:16:10   That's where we really feel like the loss of aperture.

01:16:13   You mentioned they have this tech or whatever.

01:16:15   Photos is still like, they don't expose that type of stuff.

01:16:19   I'm sure it's doing stuff with the RAWs

01:16:21   that's smart under the covers

01:16:22   and it understands that they're RAW,

01:16:23   but it's not a very detailed photo editor.

01:16:27   But for the actual edits that it's doing to the photos,

01:16:31   I think the very limited set of editing controls

01:16:33   they have there, bugs aside and slowness aside,

01:16:37   do a pretty good job of being okay.

01:16:40   And my only suggestion that would have made things

01:16:43   go smoother for you would have been

01:16:44   to just avoid photo mechanic,

01:16:45   which obviously you were trying out or whatever,

01:16:46   but like import directly into photos.

01:16:48   And then anytime you need to do stuff

01:16:50   to work around the dumb limitations

01:16:52   in the shared photo library thing or whatever,

01:16:54   Rather than dragging things out to get JPEGs,

01:16:57   select them all and do export.

01:16:59   Because when you do export,

01:17:00   A, I have more faith in that process,

01:17:02   like that it's not trying to do some big, you know,

01:17:04   drag destination API, blah, blah, blah,

01:17:06   but it's just like a batch process.

01:17:08   And B, then you get to pick the details

01:17:10   of what you're exporting.

01:17:11   So you can pick the JPEG compression level,

01:17:12   you can pick the size,

01:17:13   you can pick what metadata you wanna include.

01:17:16   It's just one dialogue.

01:17:17   It's not a big deal, but I feel like,

01:17:19   I mean, maybe in your case it doesn't matter

01:17:20   'cause you just want a JPEGs and who cares,

01:17:21   so just take the default.

01:17:22   but it gives you way more control

01:17:24   and then you could pull those JPEGs back in.

01:17:27   I think I was aware of the RAW sharing thing,

01:17:30   but shared photo libraries down-res everything

01:17:33   you dump into them anyway,

01:17:34   so it just always feels like

01:17:36   it kind of like you're sharing thumbnails with people.

01:17:39   But yeah, that's another example of how photos,

01:17:41   it's willing to acknowledge the existence of RAWs,

01:17:44   but it does not prefer them.

01:17:45   (laughing)

01:17:46   And that's why, by the way, with my photo workflow

01:17:48   is I kind of do, like you said,

01:17:50   "Hey, if you see any of these pictures

01:17:52   that you like, let me know and I'll give you a good edit.

01:17:54   The way I deal with my photos is I do all of my, everything with them with JPEGs and

01:18:01   then after I've done all of my things and I've favorited them or whatever, anything

01:18:05   that I favorited, I go pull the RAWs for those and dump them into the library.

01:18:09   So I have the JPEG plus the RAW and the RAW is not edited but the JPEG is.

01:18:14   So I have like, basically like this, and this is only with the advent of your fancy camera

01:18:18   that you sent me where I shoot in JPEG plus RAW on two separate cards at the same time.

01:18:22   I pull the RAWs in as the, you know, this photo is a favorite, it was good enough for

01:18:27   me to invest all this time in editing, and also I have the RAW, which I would need to

01:18:32   re-edit to match the JPEG if I wanted to, but it's my backstop against like, I have

01:18:36   the best quality version of this as I can.

01:18:39   And in practice, most of the time, if you have your JPEG settings cranked on the camera,

01:18:43   the JPEG is fine.

01:18:44   But every once in a while, I'll have a favorite and be like, "Oh, this would be better if

01:18:47   If only I could pull those up a little bit.

01:18:49   And then I chuck the JPEG and go right to the raw.

01:18:50   I'm like, but I can.

01:18:51   And you know, so, but most of the time

01:18:53   the JPEGs are good enough.

01:18:54   But yeah, I really wish, I really wish photos was better,

01:18:58   better in a lot of ways, but better about understanding raw.

01:19:00   This is definitely a big one.

01:19:02   - You said Marco, that you were really pleased

01:19:05   with the output of the big camera.

01:19:07   Did you enjoy shooting on the big camera?

01:19:08   Because when I do get out, my big camera

01:19:11   was just considerably less fancy

01:19:13   than what you're talking about.

01:19:14   I find that not only do I actually kind of enjoy shooting on it and kind of not in several different ways,

01:19:20   but certainly especially like you were saying in a well-lit day

01:19:24   because I find that for my camera, and I think it would be much much better with the Sony, but for my camera

01:19:30   which is an Olympus Micro Four Thirds,

01:19:32   it falls on its face when the light gets low and the iPhone is just so much better when in low light. But in daytime

01:19:39   Man, even my micro four-thirds really can capture a phenomenal picture and in a lot of ways

01:19:46   I enjoy having something big and heavy that I have dials and knobs and things to to focus on what I'm doing

01:19:52   Do you enjoy that at all? Do you enjoy the tea ceremony dare I say of having a big camera or

01:19:57   Ceremonies actually those knobs actually do something

01:20:00   Anyway, I'm just trying to make a joke John Jesus. But anyway, the point is did you enjoy using the big camera?

01:20:07   Do you think this would cause you to bring it out more often

01:20:09   or was this kind of like a burden that you felt was worth it

01:20:12   in order to get the output on the other end?

01:20:14   - I enjoyed parts of it.

01:20:15   I mean, in certain ways I did feel like

01:20:18   I was fighting with it and part of that was just like,

01:20:20   you know, certain choices or certain advancements

01:20:23   that this is now a somewhat old camera body

01:20:26   that is missing on some of the newer stuff.

01:20:28   Autofocus was definitely one area

01:20:30   where this was not a great combo.

01:20:33   I don't know if that's because the lens has,

01:20:36   is like, you know, it's a macro lens,

01:20:37   so it has a very different kind of focusing system

01:20:39   than like a high performance sports lens would have.

01:20:42   So it's, you know, it was a little slow,

01:20:44   it often just, like the camera often just chose wrong,

01:20:46   like what to focus on.

01:20:48   So that was not great, it was not great at tracking motion,

01:20:51   like if I was, you know, taking a subject,

01:20:54   taking a picture of a subject like walking down the aisle

01:20:57   while they're moving diagonally towards me or away from me,

01:21:00   and so, you know, it has to like track the focus

01:21:04   between shutter shots or whatever as they're moving

01:21:08   since I half pushed the button to focus it.

01:21:10   So in areas like that, the actual,

01:21:13   like the focus performance was hard

01:21:15   and there's a lot of shots where I had the light,

01:21:19   I had the speed, and I just missed the focus

01:21:22   because usually because of subject motion.

01:21:24   - Did you do a firmware update before you went?

01:21:26   - Of course not, why would I do that?

01:21:28   - Because the software has changed significantly

01:21:31   since you got that camera.

01:21:32   Although it sounds like the limitation might have been the lens.

01:21:35   That's kind of why, like, you know, when I got my fancy lens, like I was excited to get it

01:21:39   because it's the latest and greatest and they're they're focusing motors get better and better.

01:21:43   And it sounds like yours is just not even even when it was new is not really built for this purpose.

01:21:47   But yeah, it's not.

01:21:48   That said, the software for, you know, object tracking and continuous autofocus or whatever has only improved over the years.

01:21:56   And you should have probably done a firmware.

01:21:57   Remember I talked about how I thought this camera didn't have pet eye detection, but then I did the firmware update and it

01:22:02   - It did, yeah, software marches on, you should,

01:22:05   it's too late now, but check how far behind

01:22:07   your firmware is in that camera.

01:22:09   - I'm probably better off not knowing.

01:22:12   (laughing)

01:22:14   - Before the next wedding, update the firmware.

01:22:16   (laughing)

01:22:18   - I love the experience of using it,

01:22:21   at certain times where the lighting situation

01:22:24   in certain times was fairly challenging,

01:22:26   because there was a lot of, in the reception

01:22:29   there was a lot of backlighting,

01:22:30   'cause there was a big open door,

01:22:32   There was situations like that where I knew I wanted

01:22:35   to manually adjust the exposure,

01:22:37   and I knew that by my thumb is a hardware knob,

01:22:41   and I can just turn it and get a plus one

01:22:44   or a minus one exposure really easily

01:22:46   by turning this knob three clicks,

01:22:48   and I know I'm gonna get that,

01:22:49   and it's displayed in the viewfinder,

01:22:50   and I don't have to put it down or check

01:22:52   or go into a menu or anything like that.

01:22:53   So having that kind of, the muscle memory

01:22:56   and physical controls is extremely pleasing

01:22:59   when you're doing something like this,

01:23:00   and you can just do stuff faster.

01:23:03   I knew that I wouldn't have to worry about things

01:23:05   like storage or battery life because I knew

01:23:07   the capacity of the camera were massive

01:23:10   and I knew I'd be fine all day.

01:23:12   I didn't have to monitor everything and baby it.

01:23:15   So all that was great.

01:23:17   I loved having quick review where I could just,

01:23:19   if I took a shot and I wasn't sure,

01:23:21   like am I going fast enough to get this sharp?

01:23:24   I could just hit the little play button

01:23:26   and zoom right in and in two button presses

01:23:28   I could tell instantly, did I get this?

01:23:30   is this sharp or not.

01:23:31   Ultimately though, I did miss a lot

01:23:34   of the computational advantages.

01:23:36   Again, the exposure, HDR,

01:23:38   that's what I really, really missed overall.

01:23:41   But I did enjoy the process to some degree.

01:23:46   I don't, first of all, I'm not artistic enough

01:23:50   or a good enough photographer to want to do photography

01:23:54   as a general hobby.

01:23:55   And that's why for almost all of my day-to-day use,

01:23:59   The iPhone is way more than I actually need,

01:24:01   and I appreciate it and I use only it almost all the time.

01:24:05   But when there's like a really important family event

01:24:08   like this, I did really enjoy having this, you know,

01:24:13   much more specialized tool for the job.

01:24:15   Even though, as Jon said, my lens was definitely

01:24:17   not meant for this job.

01:24:19   But I really did enjoy having this there

01:24:22   and playing this role, in part because it meant

01:24:25   I didn't have to dance because I had something else to do.

01:24:28   - Amen brother.

01:24:30   - And in part because I knew that,

01:24:33   I knew that somebody in the family would appreciate

01:24:35   what I was doing, that like, you know,

01:24:36   that people, like I was trying to make this event better

01:24:40   for people and make people happy,

01:24:42   and I knew this would do a really good job of it.

01:24:44   And when I compare the iPhone pictures of the same event,

01:24:48   they're fine, but they're not great.

01:24:51   These, they aren't all great, they aren't even mostly great,

01:24:55   but some of them are really great.

01:24:57   and the iPhone couldn't have gotten the pictures from here

01:25:00   that were really great.

01:25:01   - And by the way, both of you were saying like,

01:25:02   oh, the iPhone does better in low light

01:25:04   due to computational stuff.

01:25:05   Yeah, as long as you never look at those pixels,

01:25:08   'cause it's a mess down there, let me tell you.

01:25:09   That computational stuff does not come for free

01:25:12   and it just makes a hash out of people's faces

01:25:14   if you zoom in even a little bit.

01:25:16   Not that you're pixel peeping even, but just like,

01:25:18   if you really, like, you know, when we say like,

01:25:21   oh, the iPhone did a good job in low light,

01:25:23   it's doing its darndest to try to make it

01:25:25   So the people's faces are visible and then you can see them or whatever, but they are

01:25:29   basically oil paintings.

01:25:30   Like, it's not, you get farther and farther away from the photons that might hit your

01:25:38   eye and it now becomes more like this abstract representation of what might have been there

01:25:43   on the day.

01:25:44   Which is what you want, like when you're looking at it on your phone, at phone sizes, that's

01:25:47   exactly what you want.

01:25:48   Hey, here's all our friends and we're at this concert and you can see everyone's faces and

01:25:52   recognize them and you can see the concert in the background and it's all lit well enough,

01:25:57   but if you were to actually look at that photo on a big computer screen and see what the

01:26:02   pixels that actually make up your friend's face, they are a monster.

01:26:05   Yeah, exactly. So that's where it starts to fall apart once you actually need a lot of

01:26:11   resolution and detail and phone cameras just cannot provide that. They can simulate it

01:26:15   in a way that looks really good on phone screens, which is how most of us care about stuff these

01:26:19   But when you have a situation like this

01:26:22   where you want something more than that,

01:26:24   the big cameras still win.

01:26:25   And I'm still, I'm very pleased with my big camera

01:26:30   once every three years when I actually need it.

01:26:34   - Like I said, I enjoy getting my camera out

01:26:37   from time to time, but I find myself,

01:26:39   with each passing day, reaching for it less and less often.

01:26:43   'Cause it's just, for my needs,

01:26:45   I find that it's just often not the best choice.

01:26:48   especially like I said, if the light is anything

01:26:50   but perfect.

01:26:51   - I will say too, David Schaub_Mac in the chat

01:26:55   brings up the obvious question here,

01:26:57   that whether the raw, the pro raw 48 megapixel images

01:27:01   on the iPhone 14 Pro might be more competitive.

01:27:05   And to be honest, I haven't tried them yet,

01:27:08   but reviewers have said that the shot to shot time

01:27:12   with pro raw 48 megapixels is like multiple seconds.

01:27:16   And that's just too slow for this kind of context.

01:27:20   Like you can't, it seems like if you're setting up

01:27:23   like an artistic shot, maybe a landscape

01:27:25   or some kind of like, you know, still scene at night,

01:27:27   like sure, that sounds like a great idea.

01:27:30   But for like event photography where you're trying

01:27:33   to shoot a moving event where timing matters

01:27:35   and you can't have somebody just do something again,

01:27:37   it's just too slow.

01:27:39   And you know, the Sony can fire off, you know,

01:27:41   multiple shots a second.

01:27:42   - Yeah, I think it does, I think, what is it,

01:27:44   like 41 megapixels at your camera?

01:27:46   And you could do like 10, at least 10 frames a second in raw, I think something like that,

01:27:50   as opposed to three seconds per frame.

01:27:52   Yeah.

01:27:53   The reviews I saw of the 48 megapixel raw, and I have taken a bunch of them myself.

01:27:57   It did a good comparison as they compare it with the 13 pro and they like, when I remember

01:28:01   seeing was like a picture of sailboats, uh, like in a harbor or whatever.

01:28:04   And they showed the 48 megapixel next to the iPhone 13 pro 12 megapixel.

01:28:08   And you could see so much more detail on the sailboats.

01:28:11   Like you really saw the sort of mosaic oil painting pattern of the actual 12 megapixel

01:28:15   sensor in the 13 Pro and the 14 Pro, yeah it was noisy but you could actually make out

01:28:20   the various railings and lines and stuff that you could not see at all in the 13 Pro.

01:28:25   So those 48 megapixels are doing work for you to give you more detail to make the pictures

01:28:32   more resilient to let's say a crop or zooming in a little bit to see the details.

01:28:39   And I've just taken some very sunny landscape photos with it in there.

01:28:42   The photos probably aren't good enough for me

01:28:44   to waste 80 megabytes on them,

01:28:47   but they do look pretty good.

01:28:48   We are sponsored this week by Memberful.

01:28:52   Monetize your passion with membership.

01:28:55   Memberful has everything you need as a content creator

01:28:59   to run a membership program.

01:29:01   And it fully integrates into all the tools

01:29:04   you're already using,

01:29:05   and they have all the different features

01:29:06   that you might think your membership program should have.

01:29:09   Things like Apple Pay support.

01:29:10   Of course, listeners to our show

01:29:12   probably want Apple Pay support,

01:29:13   gift subscriptions, free trial support,

01:29:16   hosting of things like private podcasts

01:29:18   and other premium content, and so much more.

01:29:21   And what I love about Memberful is that

01:29:24   not only does it take all these kind of hairy,

01:29:26   difficult, tedious problems off of your plate,

01:29:29   but they care about keeping you independent.

01:29:32   You retain control and ownership

01:29:35   of all the branding everywhere,

01:29:37   your audience, and your membership.

01:29:39   Payments even go directly to your own Stripe account.

01:29:42   So they don't wanna like lock people into just them.

01:29:45   And frankly, I wouldn't consider anybody else

01:29:48   to run our membership program.

01:29:49   I would only go either self-hosted,

01:29:51   which is probably something I should stop doing,

01:29:53   or I go to memberful because they just make everything

01:29:56   so easy and they really align their incentives with yours.

01:30:00   They have a world-class support team

01:30:02   ready to help you simplify your memberships

01:30:03   and improve your conversions and grow your revenue.

01:30:06   They are passionate about your success.

01:30:08   you always have access to a real human at Memberful.

01:30:11   See for yourself why so many content creators

01:30:14   have chosen to use Memberful for their membership programs.

01:30:17   And this gives them sustainable, recurring, diverse revenue.

01:30:21   So get started for free with no credit card required

01:30:24   at memberful.com/ATP.

01:30:28   Once again, memberful.com/ATP.

01:30:31   Get started today for free with no credit card required.

01:30:35   Memberful.com/ATP.

01:30:37   Thank you so much to Memberful for sponsoring our show.

01:30:40   - Okay, let's do some Ask ATP.

01:30:44   We haven't had the chance to do some in quite a while,

01:30:47   so let's start clear on the decks.

01:30:49   Steve Holroyd asks, "With the new always-on lock screen

01:30:52   "on the iPhone 14 Pro, do you think there's any increased

01:30:55   "risk of burn-in developing on the screens,

01:30:57   "or is burn-in no longer a potential problem

01:30:59   "for modern iPhone screens?"

01:31:00   That's a great question, and I think of the three of us,

01:31:02   Jon, you're probably most equipped, best equipped to answer.

01:31:06   So the always on lock screen does try to be dimmer

01:31:09   than the regular screen

01:31:10   and Apple touted their color adjustment.

01:31:13   So if you have like a person's face on the lock screen,

01:31:17   it will try to make the colors look lifelike

01:31:19   even though it's dimming, whatever it's doing there.

01:31:21   But the key part is that they're dimming

01:31:23   and burn-in happens much more at higher brightness levels.

01:31:26   So the fact that they're dimming it down

01:31:29   is helping to protect against burn-in.

01:31:31   Is there an increased risk of burn-in

01:31:32   versus a screen that's off?

01:31:34   - Yes, having the screen on increases your risk of burn-in

01:31:37   versus having a screen that's off,

01:31:39   especially a screen where the background isn't changing.

01:31:42   And your lock screen,

01:31:44   I think maybe some of them do rotate over time,

01:31:45   but like there's not a lot moving or changing

01:31:48   on your always on lock screen.

01:31:49   And the time does change digits,

01:31:52   but like if you have,

01:31:53   and because the user can pick whatever picture they want,

01:31:56   if they pick a picture that has a big, bright circle

01:32:00   on a black background or something,

01:32:02   I think there is an increased risk of burn-in.

01:32:04   But that said, we've had OLED screens on phones for a while now, and if there was, because

01:32:08   it's the iPhone and because it's Apple, if there was any epidemic of burn-in from people

01:32:13   just like having their status bar burn-in or playing a game constantly or having Facebook

01:32:17   burn-in, I think we would have heard about it by now.

01:32:19   So I think Apple's selection of the panels for their screen and their management of the

01:32:23   brightness levels, particularly managing them, this is what televisions do as well, managing

01:32:28   the OLED panel within the limits that will keep burning away.

01:32:34   Like because lots of these panels can go way brighter than they're driven, but if you drive

01:32:38   them to their absolute maximum brightness, you're going to get burn in, right?

01:32:42   And so manufacturers have to choose how far do we want to push this part?

01:32:45   And I think Apple is very conservative in this regard, even with the always on screen.

01:32:50   So we'll see, you know, the always on screens are brand new.

01:32:54   The risk is increased, but my read on the way Apple deals with OLED screens is that

01:32:58   They are always very conscious not to push the limits of what the panel is capable of

01:33:04   and to avoid burning it all across.

01:33:05   Because as you can imagine, that would be a big story and it would be a disaster when

01:33:08   you sell several hundred million, billion, I don't know how many iPhones Apple sells,

01:33:12   but it's a lot, so they're going to be real careful with it.

01:33:15   Thomas Ferraro writes, "I am at best a hobbyist developer.

01:33:18   My only public-facing application is the Roku TV app for the radio station that I volunteer

01:33:22   for, the great WFMU.

01:33:24   I am trying to do the right thing and use version control.

01:33:26   I sometimes get lost in trying out different ways

01:33:27   to do something and think,

01:33:28   "Darn, the way I did it two days ago was better."

01:33:31   But it seems crazy.

01:33:32   I should branch for every line of code I write

01:33:33   and commit every time I get something that compiles and runs.

01:33:36   So what's your best practice?

01:33:38   Oof, man, how many hours do we have available?

01:33:41   Does this good go all day?

01:33:43   I think, put very simply and kind of oversimplifying a bit,

01:33:47   what I tend to do is whenever I'm doing almost anything,

01:33:52   I like to create a branch.

01:33:54   Typically I try to associate that branch with an issue in GitHub. That's how I do issue tracking.

01:33:59   And then I'll do my work in that branch. I'll check in whenever I feel like I'm at a decent

01:34:04   stopping point or I've made a particular, pardon the pun, but development, you know, or I'm at a

01:34:09   point that I may want to fall back to later. I'll check into that branch. And then I'm probably a

01:34:14   little bit bananas, but I actually quite like issuing a pull request from me to me to get that

01:34:20   branch merged back into main. And I will go through that pull request, similar to how I would do it at

01:34:27   my last jobby job, and look at the diffs and look at what's going on. And I find that for me, that

01:34:31   context switch of looking at the code within, you know, the GitHub pull request, whatever, that

01:34:37   actually really does help me find issues and bugs and problems and so on and so forth. And so I

01:34:43   really like that flow. I think there is a name for this and it's one of the flows that GitHub

01:34:49   recommends but basically like I said branch when you're doing things and issue a pull request to

01:34:55   get things back into the main branch and and I really like that and that really works well for me

01:35:00   obviously everyone's different Marco what do you like to do my main branch I try to keep always

01:35:07   shippable whenever I'm doing something that is like a quick bug fix I'll just work on the main

01:35:13   branch and I'll commit it when it's done so I might be you know putting a commit in you know

01:35:17   after a day of work maybe, or maybe a little bit more,

01:35:20   maybe a little bit less, depends.

01:35:21   But generally speaking, what is in the main branch

01:35:24   is shippable.

01:35:25   At any moment, I can take what's in the main branch

01:35:28   and send it to the app store.

01:35:29   Anything that I'm working on that may not be shippable yet,

01:35:32   so for whatever reason.

01:35:33   So for instance, every June when we get the new betas,

01:35:36   I make a, I had an iOS 16 branch.

01:35:39   And so I branch in June and I,

01:35:42   that branch is built with the new SDK,

01:35:46   It's built with the assumption that I'm requiring

01:35:48   some new version of iOS, maybe 15, maybe 16.

01:35:52   And then I can start like phishing deprecations

01:35:54   and adopting some of the new APIs and stuff like that,

01:35:57   you know, using some of the new Xcode features

01:35:58   for the project file in that branch and everything.

01:36:01   But then that branch is not gonna get merged in

01:36:03   until the GM or RC SDK is released

01:36:07   right before the OS is released,

01:36:09   and then I, you know, then I merge it in

01:36:10   and then I release it.

01:36:11   Branches for me are either things

01:36:14   that aren't gonna be ready for some time,

01:36:16   like a future OS update, or experiments

01:36:20   that I'm not sure I'm going to keep.

01:36:22   So for instance, if I'm doing a redesign of a screen,

01:36:25   I'll make a branch for that.

01:36:26   Or if I'm doing a revamping of the sync protocol,

01:36:29   that's again, that's clearly a branch

01:36:31   because that's something that,

01:36:33   I'm not gonna get into a shippable,

01:36:35   definitely doing this kind of state for a little while.

01:36:39   And I'm gonna want some commits in the meantime

01:36:41   to just save my work or to be able to send it

01:36:44   to other people in test flight or something like that,

01:36:46   that is how I use branches.

01:36:48   I don't branch very aggressively,

01:36:50   nor do I commit very aggressively.

01:36:52   You know, I commit when something is done,

01:36:55   whether it's a step along a road,

01:36:57   like an OS thing, like a branch would be for,

01:37:01   or whether it's a really simple thing,

01:37:02   like hey, I just fixed this stupid little bug

01:37:03   that was two lines of code.

01:37:04   That's a commit.

01:37:05   But I don't use them as aggressively as most people do,

01:37:10   from what I hear.

01:37:12   So having worked at big companies with hundreds, maybe

01:37:15   thousands of developers and literal millions of lines

01:37:18   of code, often in giant mono repos,

01:37:23   I've been subjected to, let's say,

01:37:26   lots and lots of different ways of dealing with version control

01:37:30   in terms of branching models, how it integrates with issue

01:37:32   tracking, how it integrates with projects and features,

01:37:35   and just so many different ways, many of them motivated

01:37:39   by whatever the exciting ideas or fads or trends

01:37:44   in the industry are.

01:37:44   Sometimes it's just someone has an idea.

01:37:46   Sometimes it's just this was the founder of the company

01:37:48   and it's the way they wanted to do it.

01:37:49   And when I heard Casey describing his thing,

01:37:51   I always felt like you have Stockholm syndrome.

01:37:55   You'd worked in a corporate environment

01:37:56   for so long that you were reproducing that

01:37:58   and a project that you're just working on by yourself.

01:38:00   But there are some benefits to it.

01:38:02   But from my personal perspective is having gone through

01:38:05   all of those different systems and branching models

01:38:08   and different versions, pieces of version control software

01:38:10   and everything, one of the luxuries of working

01:38:13   on a hobby level project by yourself

01:38:16   is you do not have to subject yourself

01:38:18   to all of the bookkeeping that was involved

01:38:21   with all the various branching and feature models

01:38:24   and issue tracking that you had to do

01:38:25   in a corporate environment or that you'd have to do

01:38:27   in a project where you work with other people.

01:38:28   So it's a pleasant thing to realize

01:38:33   that you're the only person working on it

01:38:35   and the only thing you have to worry about

01:38:36   what makes you feel comfortable.

01:38:38   And to that end, most of my use of version control

01:38:41   in my little-- my dinky apps where I am the sole developer

01:38:45   is motivated by, surprise, my desire

01:38:48   not to lose data, which you might not think

01:38:51   would be a thing.

01:38:52   But especially with programming, when

01:38:54   you're banging your head against some problem

01:38:56   and you're working on it for a long time,

01:38:58   I get that feeling, which is like,

01:38:59   if my computer went up in flames now,

01:39:02   I would not want to have to redo or refigure out

01:39:05   what I just figured out, right?

01:39:07   Would I remember all the details?

01:39:08   'Cause this has happened to me a few times in the past

01:39:10   is why I have this motivation like--

01:39:12   - Your computer catches fire?

01:39:13   - No, but just like, you lose some work

01:39:16   'cause usually through to like a carelessness

01:39:18   back in the early days of, you know,

01:39:20   didn't hit save and didn't go to the floppy disk

01:39:22   or something, you know, like all sorts of, you know,

01:39:25   foibles where you're like,

01:39:26   I have to redo a probing task.

01:39:28   And you'd be surprised to, or maybe not,

01:39:31   to see yourself go all through all the same things.

01:39:33   You'd go into the same three dead ends you went

01:39:35   the first time you did it.

01:39:36   It's like, couldn't I have just skipped to the end there

01:39:37   where I went, I re-implemented the solution

01:39:39   and I eventually figured out, no, apparently not.

01:39:40   Apparently your brain has to make

01:39:41   the same stupid mistakes again.

01:39:42   So I always wanted to avoid that.

01:39:43   So my strategy around version control

01:39:47   has a lot to do with the thought that,

01:39:49   like, where are these bits?

01:39:50   Are these bits only on this SSD on my Mac?

01:39:53   In that situation, you know, if you're using Git,

01:39:57   Git commit is not doing anything for you.

01:39:59   Oh, I made a bunch of commits, so I know the data's safe.

01:40:01   No, it's on your Mac's SSD.

01:40:04   and if that thing goes up in flames,

01:40:06   oh, there goes all your commit.

01:40:08   You gotta push, right?

01:40:10   And now once you're pushing,

01:40:10   oh, but if I gotta push,

01:40:12   'cause that gets the bits off your machine

01:40:13   if your origin is GitHub or whatever,

01:40:16   gets the bits off your machine

01:40:18   and onto another machine that is far away

01:40:20   and hopefully not gonna go up in flames at the same time.

01:40:22   But once you do that, you're like,

01:40:23   yeah, do I wanna push things to the origin repo

01:40:27   when I'm in the middle of stuff

01:40:28   and I made a big mess of things, right?

01:40:30   And that gets you into the situation where you're like,

01:40:32   ah, but then if I had made a branch for it,

01:40:34   If it's a mess, it's fine.

01:40:35   All those disciplines that are so much more important

01:40:37   when you're in a multi-billion dollar company

01:40:40   with this really important giant code base

01:40:41   with hundreds of developers,

01:40:42   always keeping branches shippable,

01:40:44   doing patches on maintenance branches, feature branches,

01:40:48   all that stuff, kind of becomes important

01:40:51   as you and individual developers to give you the freedom.

01:40:53   You should never feel afraid to push

01:40:55   to get the bits off your machine

01:40:56   as an individual hobbyist developer.

01:40:58   So if to give yourself that freedom,

01:41:00   you need to do all your work in branches,

01:41:02   do all your work in branches.

01:41:03   They're lightweight, it's not a big deal.

01:41:04   Your repos aren't gonna be bazillions of lines of code.

01:41:07   Just make a branch for everything that you wanna do.

01:41:09   And that way, you can make a big mess in that branch.

01:41:12   Have totally non-compiling app, have it be a giant mess.

01:41:15   That's the whole point of that branch

01:41:16   is that you should never feel like,

01:41:18   oh, I'm stashing things or I'm just doing local commits.

01:41:21   No, push, push, push, push.

01:41:23   Check that check mark in Xcode that says,

01:41:25   do you wanna also push to the remote repo?

01:41:27   Yes, you always wanna push to the remote repo.

01:41:29   Why?

01:41:30   So if your Mac goes up in flames or crashes

01:41:32   or you don't lose any data, right?

01:41:35   And so that's my strategy is,

01:41:37   I never want to be afraid to push.

01:41:38   I do my major work in branches.

01:41:41   I don't have the discipline that I used to have

01:41:43   in terms of branch management.

01:41:44   To give an example, I'm working on a,

01:41:46   I made a branch for a feature

01:41:47   that I wanted to add to Switch Glass, right?

01:41:49   And I named the branch after the feature

01:41:51   that I wanted to add,

01:41:51   and that branch became my 2.0 branch.

01:41:54   Like, that's not a thing--

01:41:55   - Oh, been there, been there.

01:41:56   - That's not a thing that would ever happen

01:41:58   in the disciplined world of corporate software,

01:42:00   'cause that's just not, you don't accidentally find it.

01:42:02   But if you're a single person working on an app, whatever.

01:42:05   Like I had already, to implement the feature,

01:42:07   I'd already destroyed the app and made it totally broken

01:42:09   and non-functional and everything about it, right?

01:42:11   So at that point, you know,

01:42:14   and once I got the feature working, I'm like,

01:42:15   ah, this is just gonna be the 2.0 branch.

01:42:17   That is a luxury you have as a lone hobbyist developer.

01:42:20   No one's gonna tell you, oh, you shouldn't do that.

01:42:22   You should make a separate branch for that.

01:42:23   And no, tough luck, I'm just doing it

01:42:25   in the one branch that I have here.

01:42:27   And you know, as I get closer,

01:42:28   I will push this up to the main line.

01:42:30   I will probably pull off a 1.x branch.

01:42:34   Unfortunately, the Mac App Store policies

01:42:36   don't allow me to do same things

01:42:37   like continuing to maintain and patch 1.x.

01:42:39   Can you imagine?

01:42:40   Can you imagine if the Mac App Store

01:42:42   understood the type of model?

01:42:44   Especially since one of the reasons I'm not releasing 2.0

01:42:46   is because I have to bump the minimum system version.

01:42:48   So I would love to keep 1.0 alive and well

01:42:51   and patched for people with older OSes,

01:42:53   but the Mac App Store does not have anything to do with it.

01:42:56   Anyway, enough writing about Apple's stupid policies.

01:42:59   My advice is take advantage of the things

01:43:02   that you can do as a hobbyist developer

01:43:04   that you couldn't working in large teams,

01:43:06   but also try to make sure your bit series

01:43:09   at least in more than one place.

01:43:11   - Yeah, and I think you hit the nail on the head earlier.

01:43:13   Like, yes, I can totally understand how my process

01:43:17   and procedures that I've set for myself

01:43:19   could feel overblown to, sounds like both of you.

01:43:22   And maybe it is, but I've found that what I like to do

01:43:26   is the bare minimum that makes me feel confident

01:43:29   that I can always undo in oops.

01:43:31   And I'm not saying that I'm right for you or anyone else,

01:43:34   but for me, I found that if I have, you know,

01:43:38   several different features that I'm juggling at once,

01:43:39   I have definitely done the thing where,

01:43:41   oh, oops, this branch is now the branch,

01:43:43   like you were describing, Jon.

01:43:44   But generally speaking,

01:43:45   I like to be able to go back and forth in different branches

01:43:47   to different features to work on different things and so on.

01:43:49   And I like having GitHub issues to kind of keep track

01:43:53   of what I need to do and the rough order

01:43:56   in which I need to do it.

01:43:57   So all of these are to give me just an array of parachutes

01:44:00   that I can rely upon so that no matter how bad I am

01:44:04   at my job, which sometimes is very bad,

01:44:06   or how dumb I am, which sometimes is very dumb,

01:44:08   I always have some parachute I can latch onto

01:44:11   and save myself from myself.

01:44:13   And that's all this is for me.

01:44:16   And you were kind of saying that, John,

01:44:17   you know, whatever your particular threshold is,

01:44:20   that's what you should do.

01:44:21   And then that's where I ended up.

01:44:23   And I found that when I cheat

01:44:25   And when I don't kind of follow my own rules,

01:44:28   I almost always end up regretting it.

01:44:30   And I think that whatever your rules may be,

01:44:32   you should stick with them and do what you think is best.

01:44:35   And really quick real-time follow-up,

01:44:36   I only glanced at it because I'm trying to record

01:44:38   a podcast right now, but I believe that GitHub Flow

01:44:41   is what GitHub calls the kind of process I use.

01:44:44   And I'll put a link in the show notes,

01:44:45   assuming it's not garbage when I read it later,

01:44:48   that kind of describes the basic gist of what I'm doing.

01:44:51   - And part of the, when you do like progress

01:44:53   or part of that is just sort of making an excuse/mechanism

01:44:57   to use reviewing tools that you prefer.

01:44:58   Because technically, you could review in the little Xcode

01:45:01   window, and you push, right?

01:45:03   But maybe that interface sucks.

01:45:04   Maybe you can't annotate, blah, blah, blah.

01:45:06   And then you're like, I would prefer--

01:45:07   it's so much easier to review and annotate

01:45:10   in GitHub with a pull request.

01:45:11   So make yourself a pull request.

01:45:14   If the only reason you're doing this to use the tool,

01:45:16   that's a perfectly good reason.

01:45:17   Because if that's how you prefer to use it,

01:45:19   and in terms of being able to get back to a point in time,

01:45:22   I wish I knew Git as well as I know

01:45:23   other version control systems,

01:45:25   but I do have confidence that if there is something

01:45:27   I wanna do with Git, as long as I actually did commits

01:45:31   and pushes and so on and so forth,

01:45:33   I can get to any point in time.

01:45:35   I mean, I'll have to Google first,

01:45:37   'cause I never remember how to do anything in Git,

01:45:39   but I know the data is safe.

01:45:41   I know because I committed and I know

01:45:43   because I always push that all that stuff

01:45:44   is in the repo, in a branch, in desperation,

01:45:48   I can get back to any point in time.

01:45:50   And that's, I guess that's the other advice is,

01:45:53   you have to actually use version control.

01:45:54   Even if you don't have my paranoia about losing data,

01:45:58   if you just work all day on a file

01:46:01   and just rewrite it and rewrite it, rewrite it,

01:46:02   rewrite it in Xcode,

01:46:03   and then do a commit at the end of the day,

01:46:05   the 15th rewrite in the middle of the day

01:46:08   is actually gone, right?

01:46:09   Like you don't have that anymore.

01:46:11   So do actually commit at any point where you think

01:46:15   I may ever want to get back to this data.

01:46:17   Whether or not you push,

01:46:18   you can base on your paranoia or whatever,

01:46:19   You have to commit that's one of the reasons why when I use bbedit

01:46:22   I have a feature enabled in bbedit that if you know use since its introduction which is

01:46:26   Literally every time I hit save in bbedit

01:46:29   It saves a copy of the file as it existed

01:46:33   I think as existed before I hit save I forget which one it is

01:46:35   I was confused, but anyway it saves a copy of a file and do another folder on my hard drive

01:46:40   It's called the bbedit backups folder, and it's organized by date and that folder has a lot of files in it. Oh

01:46:46   That's one that's one literally every time I'd say that's one of the ways when I did like my ebooks for my Mac OS 10

01:46:51   Reviews I could tell you like how many times I hit save on a document

01:46:56   Or how many times I did a thing?

01:46:58   Because I would just count the baby out of backup files for a thing and that has saved my butt so many times that is

01:47:03   Not version control. That's what people did before version control. I'm not recommending. This is a form of version control

01:47:08   I'm just saying like for you know you're not gonna use version control for a random text file. You're gonna make but

01:47:13   having the ability, always knowing that you can go back

01:47:16   to something, you have to actually hit that save.

01:47:17   And in Git, hitting that save is stash or commit.

01:47:21   So do that.

01:47:22   - All right, finally, Nick Clinch writes,

01:47:26   as a developer, do you use the production version

01:47:28   or the latest beta version of your own apps for daily use?

01:47:31   If you use the production versions,

01:47:33   do you subscribe to your own in-app purchases

01:47:34   to get all the features?

01:47:36   Yes, of course, if one uses your own app,

01:47:40   you subscribe to your own stuff.

01:47:41   But generally speaking, I'll use betas

01:47:42   on my phone just because I want to test the latest and greatest.

01:47:46   What are you doing?

01:47:47   Well, Jon, it's not your phone, but what

01:47:48   are you doing on your Mac?

01:47:49   I do run--

01:47:50   I try to run whatever my dev version is,

01:47:53   like I'm working on.

01:47:54   And it helps with my programs that they literally

01:47:56   run all the time, like they're always resident.

01:47:58   I run them 24 hours a day, and I'm always running

01:48:01   whatever is the latest thing.

01:48:03   So luckily, with the advent of TestFlight for the Mac,

01:48:06   I'm running the TestFlight versions of all my apps.

01:48:09   But sometimes that's not the latest.

01:48:10   When I'm actually doing active development,

01:48:12   I'm working on the app for days or weeks

01:48:14   without submitting a test flight build

01:48:16   'cause I'm making a mess of it,

01:48:17   and I force myself to run.

01:48:19   Like, I'm dog fooding whatever crap I'm doing,

01:48:22   which means that I have to make it so it like,

01:48:24   it doesn't crash or you know, whatever,

01:48:26   but I wanna be running that all the time,

01:48:28   just because if there's some weird problem

01:48:30   that only happens after like, you know,

01:48:31   running it for 72 hours straight, I need to find it.

01:48:34   - What are you doing, Marco, with Overcast?

01:48:35   - Pretty much the same thing.

01:48:36   You know, I don't run beta builds, I run dev builds,

01:48:40   which means like-- - Yeah, too shay, too shay.

01:48:42   Whatever the last version was that I hit build and run

01:48:45   from Xcode onto my phone, that's what I'm running.

01:48:49   Oftentimes, it's hilariously broken

01:48:51   and I consider that a motivator to fix it.

01:48:54   It's a critical part of my QA, such as it is, process.

01:48:59   Anything that I change, I know is going to affect me

01:49:04   directly for days or weeks or months afterwards.

01:49:07   I want to make sure that whatever I'm working on,

01:49:11   I am using to give me the highest chance of catching

01:49:15   any bugs or problems or shortcomings

01:49:17   before I ship it even to beta users,

01:49:18   let alone to all of my customers.

01:49:20   I am my first beta tester and I'm always running

01:49:23   the absolute latest version I can run,

01:49:26   which is the last thing I wrote, it's on my phone.

01:49:29   Thanks to our sponsors this week,

01:49:30   Green Chef, Memberful, and TailScale,

01:49:34   and thank you to our members who support us directly.

01:49:36   You can join at atp.fm/join,

01:49:39   and here the current last version of the ATV Movie Club

01:49:44   and who knows what else we'll think of in the future.

01:49:46   And not to mention you get the bootleg feed,

01:49:48   ad-free episodes, all sorts of fun stuff.

01:49:49   So thank you very much to all of you

01:49:51   and we will talk to you next week.

01:49:53   (upbeat music)

01:49:56   ♪ Now that the show is over ♪

01:49:59   ♪ It's time to give to St. Jude's ♪

01:50:01   ♪ They're funding research ♪

01:50:03   ♪ Funding research ♪

01:50:04   ♪ Curing diseases ♪

01:50:06   ♪ Curing diseases ♪

01:50:07   Every year you get a new iPhone Now think about the good you'll do

01:50:12   When you're funding research (funding research)

01:50:15   Childhood diseases (childhood diseases)

01:50:18   Our friends at Relay organize this annually

01:50:22   It's time to do your part

01:50:25   And give directly to

01:50:28   S-T-J-U-D-E-C-H-I-L-D

01:50:33   R-E-N-S-R-E-S-E-A-R-H-C-H-O-S-P-I-T-A-L-B

01:50:42   Generous, they fund the research.

01:50:45   If they're curing diseases, fund the research.

01:50:51   The link is in the show notes now.

01:50:56   So I mentioned-- I don't even know

01:50:58   if this made it on the released version of the show,

01:51:00   but I mentioned several weeks ago,

01:51:02   I think it was right before we did our Apple event show,

01:51:07   so like the Monday before,

01:51:09   I decided that that was the most appropriate time

01:51:12   to flip the switch and move from Heroku to Linode.

01:51:15   So for some context,

01:51:16   my website ran on Heroku since my website existed,

01:51:19   so that was like 2013, 2014.

01:51:21   And I chose Heroku because I wanted something

01:51:25   that nerds that I knew seemed to like,

01:51:27   and Heroku at the time at least was very much that.

01:51:30   And I wanted something that seemed like it was fairly straightforward for me to use,

01:51:34   which here again, Heroku definitely checked that box.

01:51:36   And I wasn't really interested in doing any of what I would call the lower level

01:51:40   maintenance of owning a server.

01:51:42   So I don't have to worry about software updates.

01:51:45   I don't want to have to worry about any of the kind of administrvia.

01:51:48   I don't have to worry about hardening the server or anything like that.

01:51:52   I just want to have what basically amounts to two node apps that I could throw over

01:51:57   the wall and would run.

01:51:59   And Heroku did that for me for, you know, almost, what is it,

01:52:02   eight years, something like that?

01:52:04   But then, much like my AT&T to Verizon story,

01:52:07   Heroku justifiably decided that they were no longer

01:52:10   going to allow any sort of free,

01:52:12   they call their processes dynos, D-Y-N-O.

01:52:15   So they weren't going to allow free dynos,

01:52:17   which was fine for my website

01:52:19   because I was paying $7 a month for that

01:52:22   because I needed -- at the time,

01:52:24   and maybe this isn't true anymore,

01:52:25   but at the time I started paying for it,

01:52:27   It was because I really wanted to support SSL,

01:52:29   and in order to do that, you needed to have

01:52:31   a level of dyno that was not free.

01:52:34   I think what mine was called was Hobby, if I'm not mistaken,

01:52:36   so it's not particularly powerful,

01:52:38   not particularly robust, but it's enough

01:52:40   that they'll let you do a Let's Encrypt certificate

01:52:43   or perhaps a certificate of your own

01:52:46   that you bring to them.

01:52:48   So I was paying $7 a month from my website,

01:52:50   and then the Showbot that gathers titles from IRC

01:52:55   were recording, that was on a separate dyno that was running on their free plan.

01:53:00   And they said, you know, a month or two ago, "Hey, FYI, in the next several months, we're

01:53:03   going to start charging for free dynos.

01:53:05   It's not going to be free anymore."

01:53:07   And it occurred to me, "Okay, I'm already paying more than the either five or six dollars

01:53:12   a month that Linode charges for their most basic VPS.

01:53:19   And so why don't I just see if I can move all of this to Linode?

01:53:24   Because it seems like that should be something that I'm capable of.

01:53:27   And I don't plan to go through the in and out of everything that's involved in that,

01:53:32   but I thought I'd call just a couple of things out as things that I thought were interesting

01:53:37   or unique.

01:53:39   First of all, I haven't really done anything with a raw Linux server in like a decade plus.

01:53:47   So this whole process, and I don't know if you gentlemen remember this, but this whole

01:53:49   process started with me asking the two of you,

01:53:52   what are people using for Linux servers now?

01:53:55   Like, are we still on Ubuntu?

01:53:57   Is that still a thing?

01:53:58   'Cause last time I was paying attention,

01:53:59   that's what I was using.

01:54:00   - And by the way, and this is totally fair,

01:54:02   like when you are setting up a new server

01:54:04   that you haven't done in a long time,

01:54:06   that's the first question everyone asks,

01:54:08   what distro do I get?

01:54:09   Like that's, of course, that's a reasonable thing

01:54:11   to not know if you haven't been in it, you know?

01:54:15   - Yeah, exactly, and I actually should say that

01:54:18   Even though the two of you are dear, dear, dear,

01:54:20   some of my best friends in the world,

01:54:22   nevertheless, I felt like such dunce coming to you,

01:54:24   like hat in hand, you know, puss in boots style,

01:54:26   like, guys, what do I do?

01:54:29   Like, it's been so long, I need help.

01:54:32   And we're gonna talk a little more about that in a minute,

01:54:34   but you were both very gracious,

01:54:35   and I very much appreciate that you did make fun of me.

01:54:37   Like, I probably would have done to you too

01:54:39   if the roles were reversed,

01:54:40   so I appreciate you not poking fun at a time of need.

01:54:44   But I had several different balls in the air,

01:54:49   plates spinning all at the same time.

01:54:51   One of the things I realized is that my website

01:54:55   is this custom software that I wrote for myself

01:54:57   as the three of us and many others are wont to do.

01:55:00   Honestly, I don't have any particular love

01:55:02   for this engine that I wrote in 2014.

01:55:04   And if I wasn't so lazy,

01:55:06   I would probably start using something different,

01:55:08   either like a package.

01:55:10   I would probably start by really at least looking

01:55:12   at John Sundell's engine, I forget what it's called now,

01:55:16   let's top my head.

01:55:17   But right now it's a Node app,

01:55:19   and at the time in which I started

01:55:21   to want to go down this road,

01:55:23   I was still using Node version four.

01:55:25   And of the three of us, John would probably know

01:55:28   even better than I that Node version four is quite old now.

01:55:30   Like very, very old.

01:55:33   I don't know exactly when, but it is quite old.

01:55:35   John, you don't have any idea when that was from, do you?

01:55:38   - That's old even to my ears.

01:55:39   I don't even know if we used that version of Node

01:55:43   ever at work.

01:55:43   I think by the time my old job--

01:55:45   - You were getting into it?

01:55:46   - When we started using Node, we were past that.

01:55:48   What are they on now, like 20 something, 30 something?

01:55:51   - I thought it was 12, but maybe I'm wrong about that.

01:55:54   I don't even know anymore.

01:55:55   - No, I'm farther along than that.

01:55:56   LTS is 16, current is 18.

01:55:58   - Okay, so there you go.

01:56:00   So anyway, so I knew I needed to upgrade from Node 4.x

01:56:04   to whatever is current, it sounds like 16 or 18.

01:56:07   Another thing that I needed to worry about

01:56:09   certificates because I was using Let's Encrypt at Heroku but I needed to do something else because

01:56:17   unless I'm missing something and perhaps if I was using like a load balancer or something fancy like

01:56:21   that maybe it would be a little more magic but I was going to have to like figure out how to use

01:56:27   certificates and the way that Heroku worked is you basically had them figure things out with

01:56:31   Let's Encrypt and I forget the terminology Marco jump in when you're ready but they would terminate

01:56:36   the SSL connection at their stuff and then just roll unencrypted internally in their own network

01:56:44   and ask my server for my process for things. And so now I need to handle this myself. Like I need

01:56:51   my node instance to deal with certificates. And then finally I have a server that is on the

01:56:57   internet and granted I will try to do the obvious things to lock it down, but there's a lot of

01:57:02   of non-obvious things I probably need to do to harden this.

01:57:05   And Marco really saved my bacon on that in particular.

01:57:08   - Well no, Linux saved your bacon on that one

01:57:10   because the reality is all modern Linuxes are pretty good

01:57:15   with pretty minimal setup in terms of internet-ready

01:57:19   security, you have to basically, yeah you know what,

01:57:22   make SSH not take passwords and that's about all

01:57:25   you have to do.

01:57:26   Everything is pretty secure by default these days.

01:57:30   - And that's fair, but you gave me a lot of good tips

01:57:32   and I don't remember the specifics,

01:57:34   but I took copious notes for future Casey

01:57:35   'cause current Casey has already forgotten.

01:57:38   But you gave me a lot of great notes

01:57:40   of things that you do for your servers,

01:57:41   which were genuinely extremely, extremely helpful

01:57:43   and I really appreciate it.

01:57:45   The upgrade from Node 4.x to whatever I'm on now

01:57:48   was actually surprisingly straightforward.

01:57:50   I had to change very, very little code,

01:57:53   which was stunning to me.

01:57:54   I assumed I was gonna have to rewrite half this damn engine

01:57:57   and I had to change almost nothing, which was great.

01:57:59   Getting the certificates squared away,

01:58:01   What is it, Certbot is the command line tool that it seems--

01:58:05   - Acme.sh is like the Certbot client or the others, yeah.

01:58:08   - You were saying the same thing.

01:58:09   - When you did the big node upgrade though,

01:58:11   did you happen to run NPM audit?

01:58:14   - I did, yes, I did, and it was a mess.

01:58:16   - What did that say?

01:58:17   - Oh, it said that everything was broken

01:58:18   and it was a miracle that my server was not on fire.

01:58:21   - It's just a giant security hole.

01:58:22   - Basically, yeah.

01:58:23   But here again, upgrading everything,

01:58:25   which took several incantations

01:58:27   and it took me several tries,

01:58:28   but upgrading everything, for the most part,

01:58:31   I had to change so very little code.

01:58:33   I'm still stunned by that.

01:58:35   And I am, last I looked anyway, I'm auditing cleanly.

01:58:38   I'm on node either 16 or 18.

01:58:39   I forget which one offs out my head.

01:58:41   And I hardened the server.

01:58:42   I turned off passworded vlog.

01:58:44   - You're auditing cleanly.

01:58:46   You didn't have to do any major version

01:58:48   breaking change updates to packages?

01:58:50   - No, I absolutely did, but it didn't break my code.

01:58:53   Like I'm stunned by it.

01:58:54   I'm telling you.

01:58:55   I know, I'm very impressed.

01:58:57   Either that or I'm totally wrong.

01:58:59   Either is possible.

01:59:00   I'm pretty sure I'm on latest and greatest of basically everything, and it was fine.

01:59:06   But anyway, yeah, so now I'm doing certificates with a combination of certbot or acme.sh or

01:59:11   whatever it is, and, you know, piping and pumping those certificates into Node, and

01:59:16   you know, Node is looking for these certificates on the file system so it can use them appropriately.

01:59:21   And all in all, it seems good.

01:59:23   Let me be clear, wonderful listeners who we love so much and value incredibly, this is

01:59:29   not an invitation to hack me. I am not looking for that. I am not asking you. I am not asking

01:59:34   you to do like we did when the show about was new and try to break it in every way imaginable.

01:59:39   No thank you. Now you do not get a sticker for breaking me. No, you do not. You might

01:59:43   get a thank you if you break me in a very gentle way and explain how to fix it. Maybe

01:59:46   you'll get a thank you. But even still, please just now, not a challenge. Challenge not accepted.

01:59:51   Challenge not offered. Challenge not accepted. But I had to do all these things and granted

01:59:56   Linode is a past and I'm sure future sponsor. I gotta tell you, it is really nice. And for

02:00:03   another project, I inherited something that was on DigitalOcean, and it is not as nice

02:00:08   if you ask me on DigitalOcean. Like I really like the way Linode works. They think the

02:00:13   way my brain thinks. Their tools are very robust and reasonably straightforward. This

02:00:18   isn't an ad for Linode, but hand to God. Like I really did enjoy it quite a bit. I wanted

02:00:24   to talk very briefly about the sponsor of this episode. This is purely coincidental

02:00:28   because this has been in the show notes for literally a month. But I am using Tailscale

02:00:32   on this server, which is super cool. And as I briefly talked about in the sponsor read,

02:00:36   which you may or may not have heard, Tailscale is basically like, let's put all of your devices

02:00:41   on the same virtual network. And so any of these devices can talk to any of the other

02:00:45   devices despite the fact that my servers at Linode and my home computer is at home on

02:00:50   Verizon Fios. Like, we can talk to each other and it's transparent. It's as though we're

02:00:54   on the same network, which is super duper cool and I really, really like.

02:00:57   Is it necessary?

02:00:58   Well, no, maybe not in this particular context, but in other contexts, I think it would be

02:01:03   kind of necessary.

02:01:04   And either way, it's still just very, very convenient and I really, really dig it.

02:01:09   But one of the perks of doing all this is that, and the chat room may or may not have

02:01:13   noticed this recently, but now the Showbot can roll on SSL.

02:01:19   It can be HTTPS.

02:01:21   For those who don't listen to the chat, we have this robot that lives in IRC, and you

02:01:24   can go to, it used to be, "http://www.caselews.com/showbot," and you would see the titles that people suggested

02:01:33   in semi-real time.

02:01:35   And I could never put that behind SSL, or behind, it was never secure, because I was

02:01:40   running on a free dyno at Heroku.

02:01:42   And maybe I could have done something to make this work, but I never really cared enough.

02:01:45   But now, I'm on my own server, baby, in virtual or not.

02:01:49   I can do this all myself.

02:01:50   And so that's what I'm doing.

02:01:51   So for the last few weeks, even the Showbot is now HTTPS colon slash slash et cetera, et

02:01:56   cetera, et cetera.

02:01:57   So that's really cool, and I dig that.

02:01:59   But finally, the thing that I think blew my mind the most about this was I remember hearing

02:02:05   some vague smattering about how Visual Studio Code, which is my preferred editor for doing

02:02:10   web-related things, can do some sort of like you attach to something and then magic happens

02:02:17   and you're like editing stuff on the server,

02:02:20   even though you're running it locally or something like that.

02:02:23   - Have you never used this feature of Visual Studio Code?

02:02:26   I thought this is why you loved it so much.

02:02:27   - No, no, no, no.

02:02:28   So what I would do in the past

02:02:30   is I would run an instance of Node locally,

02:02:33   like not even in Docker or anything like that.

02:02:34   It would just straight up be a local instance of Node

02:02:37   running my website locally.

02:02:38   And I would edit the local file system, you know,

02:02:41   using Visual Studio Code.

02:02:42   It was all local.

02:02:43   Everything about it was local.

02:02:45   So I went digging into how to make this work.

02:02:47   And it seems to me that there are several different ways of this happening.

02:02:51   Maybe, Jon, you know better than me.

02:02:52   But there's several different ways to do this.

02:02:54   But what I landed on, and oh my gosh, it is so cool, is you can --

02:02:59   because Visual Studio Code is an Electron app, which 99% of the time stinks.

02:03:04   It's really not -- like the fact that it's Electron --

02:03:07   well, you don't notice it with code, but Electron apps tend to be pretty bad.

02:03:11   I'm not going to say anything nasty about 1Password

02:03:14   because I donated a lot of money to St. Jude recently.

02:03:16   but let's just say that I'm not in love with some of the things that have gone to Electron recently,

02:03:20   but no, or excuse me, code has always been Electron, and I almost never noticed. I can from

02:03:25   time to time, but it's very rare that I notice. Well hey, guess what? What is an Electron app

02:03:30   really running in behind the scenes? A browser. So what if you hosted this Electron app in a browser?

02:03:38   So there's a way that you can run Visual Studio Code from the, there's our Visual Studio Code

02:03:44   server on the command line. So I can SSH into my Linode box, run a command that starts up

02:03:50   a Visual Studio Code server, and then I just load a bespoke URL that it spits out on the

02:03:57   command line. And suddenly I'm running a full bore instance of code. I'm running it in a

02:04:03   browser that the browser is running locally, but Visual Studio Code is running on the Linode

02:04:07   box. And I'm making my edits, I'm debugging, I'm doing everything on the Linode box. And

02:04:14   and I wanted to upload a picture, an image.

02:04:16   I thought, oh man, now we're gonna have to SCP it,

02:04:18   and blah, blah, blah.

02:04:19   Well, I wonder what happens if I try to do this in code.

02:04:22   Sure enough, I can upload stuff via Visual Studio Code,

02:04:25   running in the browser, running against my Linode box.

02:04:29   This is the coolest freaking thing I've ever seen.

02:04:32   And as much as I love to slag on Electron,

02:04:35   and oh boy, do I love to slag on Electron,

02:04:37   this is Electron at its finest.

02:04:39   It is so freaking cool.

02:04:42   And yes, I know there are other ways to do this.

02:04:44   I know that you can mimic your file system via SSH

02:04:47   and you can do all these other sorts of things.

02:04:50   But having a full bore IDE

02:04:52   that is for all intents and purposes running remotely

02:04:55   but you're interacting with it

02:04:56   with a mouse and a keyboard and whatnot

02:04:58   and copy and paste locally, it is so freaking cool.

02:05:02   And if you're not familiar with this,

02:05:03   you gotta look into it because it is amazing.

02:05:06   Again, not for everyone.

02:05:07   Maybe, I have a feeling that neither of you guys

02:05:09   are interested in that.

02:05:10   And I don't mean that dismissively.

02:05:11   Like you're older school, you've been doing this longer,

02:05:13   You've done more web stuff than me.

02:05:15   - Oh, there's, well, yeah, I did this already

02:05:16   when it was called X-Windows.

02:05:18   - Fair, fair.

02:05:19   I take your point.

02:05:21   But, and I don't mean that dismissively.

02:05:23   Like, I'm not saying this is the best approach for everyone,

02:05:25   but holy cow, it was super freaking cool,

02:05:28   and I love using it.

02:05:30   - I would suggest, though, because the downside of this

02:05:32   is you gotta run it in a browser or whatever.

02:05:33   There are lots of, I mean, I don't know what they have for,

02:05:36   they might have them for Linux or whatever,

02:05:37   but like Visual Studio Code's plugin system

02:05:39   is such that there are these beefy plugins

02:05:42   that essentially shove a bunch of node code

02:05:45   onto your Linux machine or whatever

02:05:49   that runs all sorts of stuff on the Linux machine

02:05:52   but still communicates with your local instance

02:05:54   of VS code. - Yes, yeah.

02:05:56   That's what I had initially set out to do,

02:05:58   but I must have screwed it up somewhere

02:05:59   'cause that's not where I ended up.

02:06:00   - I mean, for what you're doing,

02:06:01   you maybe don't need something that heavyweight,

02:06:03   but it really depends on like,

02:06:04   it's especially handy

02:06:05   if you're running more complicated things.

02:06:08   So obviously Visual Studio Code is still running locally,

02:06:10   but tons of node code that is part of the plugin.

02:06:13   Like if you go look at what like it shoved,

02:06:14   because you know, it's just good thing about node

02:06:16   is it's just text files on the file system.

02:06:18   It shoves them in there and you can look at what it,

02:06:21   what it threw onto your remote server.

02:06:23   And then it's got a language server going,

02:06:25   it's got the debugger server going

02:06:26   and they're talking over the network

02:06:28   and it's like you're doing everything locally,

02:06:29   except you get to run Visual Studio code

02:06:32   on your M1 processor while the debugging stuff

02:06:35   and everything happens over on the machine

02:06:37   where you're debugging.

02:06:37   And the experience is similar to using

02:06:39   what you're doing in the browser,

02:06:41   except that you, in theory, get the advantage

02:06:43   of running some stuff on your local machine,

02:06:46   which is way faster than the CPU cycles

02:06:48   you're getting on a shared server instance.

02:06:50   - Oh, totally, totally.

02:06:51   Yeah, so here again, the names for all these

02:06:53   are so terrible.

02:06:54   So like Visual Studio Code, that's fine.

02:06:55   That's the general IDE/editor or whatever.

02:06:59   I think I have this right.

02:07:01   So what I stumbled upon and ended up running

02:07:03   and what I've been talking about

02:07:04   is Visual Studio Code Server.

02:07:07   What I think you're talking about

02:07:08   is Visual Studio Code remote development,

02:07:11   which is what I had set out to use

02:07:13   and then ended up just kind of accidentally, ding,

02:07:16   accidentally ending up on a Visual Studio Code server.

02:07:20   And it's been working pretty darn well for me.

02:07:21   It's not perfect by any means, but it works pretty well.

02:07:24   So maybe I should try this VS Code remote development thing.

02:07:27   I'll put links for both of these in the show notes.

02:07:29   Again, I'm not trying to say it's for everyone.

02:07:30   I'm not trying to say it's for either of you two,

02:07:32   but I just thought it was super freaking cool.

02:07:35   And oh man, the way that things have progressed

02:07:38   over the last 10 years since I've really, 15 maybe,

02:07:41   since I've been running a Linux server.

02:07:43   Like it's just all so cool and so slick

02:07:45   and I'm so glad that these tools exist.

02:07:47   Like, you know, Tailscale, which admittedly is a sponsor

02:07:50   but I was using them before they sponsored.

02:07:53   Linode, obviously I wasn't aware of them until John,

02:07:56   excuse me, Marco had talked about it.

02:07:59   But I chose to use Linode.

02:08:01   I'm paying Linode my own money.

02:08:02   Like this is not a sponsorship for them.

02:08:04   I'm choosing to do that.

02:08:05   So yeah, I mean, this stuff is also cool.

02:08:07   And again, I really do appreciate both of your help,

02:08:09   especially Marco, sent me a lot of really good tips

02:08:12   and tricks and whatnot that really, really saved me

02:08:14   a whole ton of time and hopefully a whole lot of

02:08:17   burdensome learning from learning the hard way.

02:08:19   So, I don't know, I just thought it was super cool.

02:08:22   - Tune in five years when Casey goes serverless.

02:08:25   - Yeah, yeah, you never know, could happen.

02:08:26   - See now my job, now that you've moved into servers,

02:08:29   my style, I need to leave them now.

02:08:30   Now I need to go serverless.

02:08:31   (laughing)

02:08:33   - Next thing you know, Marco's gonna be running

02:08:35   like Docker Kubernetes or something like that.

02:08:37   - The weirder things have happened.

02:08:39   - I'm trying to get myself out of the server business,

02:08:42   not weirdly more into it.

02:08:43   - Yeah, you should go serverless.

02:08:45   - Yeah, but what does that mean?

02:08:47   I feel like that doesn't mean what I think it means.

02:08:49   Like what I think it means is I'm no longer running services

02:08:52   but that's not what that means.

02:08:53   - Yeah, well, you're using managed services,

02:08:56   most of which do not involve your software

02:08:58   running on a persistent server, virtual or otherwise.

02:09:00   - Right, which means that they're going to manage their way

02:09:03   into taking all of my money.

02:09:05   (laughing)

02:09:07   - Part of it is it actually can be cheaper

02:09:09   because you're only paying for what you're using,

02:09:11   but anyway, you gotta get your data.

02:09:11   - Spoiler, at my scale, it's very, very, very much not cheaper.

02:09:15   - You gotta get all, you've talked about this before,

02:09:17   you gotta get all your data out of your database

02:09:18   before you can do stuff like this.

02:09:20   - Yeah, I'm currently looking into that.

02:09:22   Like I'm really, I'm so close to just saying

02:09:25   F it, I'm gonna use CloudKit,

02:09:27   but I've just heard so many--

02:09:29   - I'm not sure that's the solution.

02:09:31   - I know, that's the thing,

02:09:31   like I've heard a lot of mixed things about that,

02:09:33   and so I'm not--

02:09:35   But DynamoDB may be looking to that.

02:09:37   Put that in a Google search.

02:09:38   - I need to really do some soul searching here

02:09:44   and figure out like do I really want to be

02:09:46   running what I'm running now?

02:09:48   Like the other day, normally my servers are very stable

02:09:51   and they normally need very little babysitting.

02:09:54   Like I just went--

02:09:54   - This sounds like a Casey setup if I've ever heard one.

02:09:57   Oh my goodness.

02:09:58   - Like you know I just went on this wedding weekend.

02:09:59   I was traveling for almost a week

02:10:03   between various family events surrounding it

02:10:05   and at no time did my servers need any attention whatsoever

02:10:10   except when I first arrived upstate.

02:10:14   When I'm like, I'm upstate, in the middle of nowhere,

02:10:17   no cell reception and everything,

02:10:18   I start unpacking my stuff, my laptop gets on wifi

02:10:20   and it starts exploding with alerts.

02:10:23   I'm like, what is going on?

02:10:24   And for some reason, out of the blue,

02:10:27   on a random weekday, my primary database server

02:10:30   is having extreme high load

02:10:32   and everything, it's maxing out its connection limit

02:10:34   and connections are dropping and things are failing

02:10:36   and it's, what is going on?

02:10:39   I spend the next 15, 20 minutes trying to figure out

02:10:42   what's going on, trying to alleviate it,

02:10:44   it's shutting down non-essential services and stuff

02:10:47   so I can let it recover a little bit.

02:10:49   And eventually, I shut some stuff down for a little while,

02:10:52   like non-essential stuff.

02:10:55   The load eventually, it started to come down,

02:10:57   I'm like, you know what, just in case, let me reboot it.

02:10:59   It's already barely working, I might as well reboot it,

02:11:01   take the downtime and maybe it'll come back up

02:11:03   in a better state.

02:11:04   So I rebooted it, it comes back up,

02:11:06   still under a very heavy load for the first 10 minutes,

02:11:09   way past cache warmup kind of time.

02:11:13   And then the load just falls back down.

02:11:15   And it fixes itself.

02:11:18   And I re-enable all the non-essential services

02:11:19   and everything just goes back to normal.

02:11:22   I'm like, what the hell was that?

02:11:24   I still have no idea what it was.

02:11:28   - You have insufficient monitoring.

02:11:30   I looked at all the monitoring and I'm like,

02:11:32   there was not an increase in traffic,

02:11:33   there was not an increase in reported even memory usage.

02:11:37   It's like, I have no clue what that was.

02:11:40   That never happens, except, oh, it just happened

02:11:43   like in the beginning of this vacation,

02:11:45   I'm trying to take like, and again, normally,

02:11:48   but this is the kind of stuff,

02:11:49   the amount of stress that brought me

02:11:52   and intrusion into my life that brought me,

02:11:55   I'm like, you know what, what can I do

02:11:57   to reduce my reliance on this kind of stuff?

02:12:00   Like how can I design my service in such a way

02:12:02   that I'm lightening the load on the servers?

02:12:06   - Yeah, but if it was CloudKit,

02:12:07   you wouldn't even be able to do the things that you did.

02:12:09   - That's true. - Yeah, see,

02:12:10   that's the problem. - Yeah, that's true.

02:12:12   And I've heard so many things about, like,

02:12:14   what happens with random Apple ID signouts.

02:12:18   I still, I actually do use CloudKit in the app.

02:12:21   It's just for a very insignificant part of the app.

02:12:23   It's the part where when you first log in

02:12:26   to a brand new installation of Overcast,

02:12:28   it checks for a list of your accounts

02:12:30   that you've used in the past.

02:12:32   That list, which is basically a list of login tokens,

02:12:36   is stored in CloudKit.

02:12:37   So it says, whatever your Apple ID is,

02:12:40   here's the accounts I know about you.

02:12:42   Because I'm trying to not use email and password

02:12:44   for most accounts, so they're mostly just anonymous tokens,

02:12:47   and they're stored in CloudKit,

02:12:49   so they're associated with your Apple ID.

02:12:51   I get so many weird crash reports from that screen,

02:12:56   from random Cloud Kit record deep into the stack trace

02:13:00   where my app is nowhere to be found, random crash reports.

02:13:04   This is the simplest possible use of this thing.

02:13:07   - The data volume is not high.

02:13:09   - Right, right.

02:13:11   So that's why I think I don't necessarily know

02:13:13   if I wanna do that, but there's a lot of things

02:13:16   in between Cloud Kit and what I'm currently doing,

02:13:19   which is a fairly heavy database setup.

02:13:22   - I'm gonna pitch you to move away from relational

02:13:25   for most of your stuff.

02:13:26   I think a lot of your data, especially--

02:13:28   the vast majority of your data, I would imagine,

02:13:31   is not actually relational.

02:13:32   So you could get away with a scalable document store,

02:13:35   with a managed service and a scalable document store that

02:13:37   will let you sleep much better at night

02:13:39   and keep the relational stuff into a basically fixed size,

02:13:43   smaller relational thing with a good cache in front of it.

02:13:46   And that will really alleviate your problems

02:13:49   at the price of making you learn AWS.

02:13:53   That's a big price.

02:13:54   It's a big price.

02:13:54   Well, and not to mention the big price of actually paying for it.

02:13:58   Oh, I think you could absolutely run your service

02:14:00   for like one eighth of the money.

02:14:01   But finding that solution-- again, it's an RPG.

02:14:03   It's going to be a quest.

02:14:05   But absolutely, you could maybe cut it down

02:14:08   by an order of magnitude.

02:14:11   It's just a question of finding the right arrangement.

02:14:14   And then, by the way, rewriting your whole app to work with that.

02:14:16   Ha ha.

02:14:19   Right, but there's a lot of options between that.

02:14:21   Because this is inherently--

02:14:23   I mean, what used to be called shardable or partitionable.

02:14:27   You don't need a lot of cross user data access.

02:14:30   So because of that, there are better things

02:14:32   that could be doing.

02:14:33   Right, but you don't need that to be relational at all.

02:14:36   And once you give that up, there are these easy managed scalable

02:14:39   data stores that cost pennies on the dollar of what you're

02:14:41   paying for this monster MySQL instance,

02:14:43   even if you sharded it.

02:14:44   Yeah, that's fair.

02:14:45   But when I look at them, a lot of them,

02:14:47   they'll charge per read or write.

02:14:50   Or there's some other gotcha in the pricing that would kill me.

02:14:52   They're cheaper than you think.

02:14:54   But anyway, well, it's a big project.

02:14:57   I'm not making this-- it's not easy,

02:14:59   but there is a solution out there.

02:15:00   I'm pretty confident.

02:15:02   It's just a question of how much effort

02:15:04   do you want to put into that and how much money you're

02:15:06   going to save on it.

02:15:07   Yeah, but honestly, anything that I

02:15:10   do to massively re-architect how I'm storing stuff to reduce

02:15:13   my server dependence, Cloud Kit really

02:15:16   is something to seriously consider,

02:15:19   because I'm already tied to Apple IDs

02:15:21   with my anonymous logins.

02:15:23   I'm already using it, and so if I can figure out

02:15:26   how to deal with its monsters,

02:15:30   I would much rather go that direction and have my,

02:15:33   I still have servers for things like feed crawling,

02:15:36   but my ideal outcome would be that my servers

02:15:40   contain no user data, that the user data is all in CloudKit,

02:15:44   and that my servers are only doing public data

02:15:47   like the feed index.

02:15:48   - CloudKit is the obvious solution if it wasn't

02:15:51   for all the horror stories I hear about it.

02:15:53   (laughs)

02:15:54   And the complete powerlessness that you have.

02:15:56   - Well, and to be fair, I wouldn't do their magical,

02:16:00   we're gonna sync your database for you,

02:16:03   connect core data to CloudKit, like that--

02:16:04   - Oh, that I've heard horrible things about, yeah, yeah.

02:16:07   - But the problem is always, hey, it's not working,

02:16:11   and we have no visibility into why,

02:16:12   and we can't do anything about it to fix, right?

02:16:14   And in some ways, that's refreshing.

02:16:15   It's like, well, it's not my problem,

02:16:16   but it kinda is your problem,

02:16:18   because now your users can't use your app,

02:16:19   And all you can say is, it's not working,

02:16:22   and there's nothing I can do about it.

02:16:24   No user wants to hear that from the developer of their app.

02:16:26   Yeah.

02:16:27   Although, to be fair, if I design it right

02:16:30   and the failure case is like, I can't get your data

02:16:33   to sync back to Cloud Kit, well, most of my users

02:16:37   only use it on one device.

02:16:39   So if the sync is not working well for them

02:16:42   in some edge case context, that actually might not

02:16:45   matter to most of my users.

02:16:46   That's not going to be the failure of the failure.

02:16:48   everyone's gonna be like you said,

02:16:49   some crash deep inside some CloudKit API,

02:16:51   you're like, how could that ever crash?

02:16:52   It's like, well, it is.

02:16:53   And every time I launch my app and try to play,

02:16:55   it instantly crashes.

02:16:57   There's only so much you can do with defensive programming

02:17:00   to not make that happen, 'cause it's like, look,

02:17:01   if I have to call this API to check for a thing

02:17:04   and that crashes, it takes down my whole app.

02:17:07   - Or it's like some background thread throwing an exception,

02:17:09   like, well, I can't do anything with that.

02:17:10   - Right, it's not your code.

02:17:11   It's not your code at all.

02:17:12   You don't have the source code to it.

02:17:13   You can't fix it.

02:17:14   You don't know why it's crashing.

02:17:16   that's the worst situation to be in for something

02:17:19   that's critical to your app.

02:17:20   And that's why people get fresh.

02:17:21   Not because it's unreliable or bad.

02:17:22   It's very reliable and very good.

02:17:24   But when it does have a problem, you feel completely powerless.

02:17:27   Because you are.

02:17:28   You don't have the source.

02:17:29   It's not your stuff.

02:17:30   You don't control the server side.

02:17:31   You don't control the client side.

02:17:33   You don't control anything about it.

02:17:34   But can't you say a lot of that same stuff

02:17:37   about managed services?

02:17:38   Kind of.

02:17:39   But managed services is something you can do about it.

02:17:42   Even though they are managed-- first of all,

02:17:45   there is managed and unmanaged versions of everything.

02:17:47   And so worst case scenario,

02:17:48   if the managed service is not working for you,

02:17:49   you can just take it and go to the unmanaged version of it.

02:17:52   And second, they're not as opaque as Apple.

02:17:56   Like even if it's just as simple as like,

02:17:57   hey, it's an open source product.

02:17:58   So like you actually do have the source code

02:18:00   and can run a local instance of it

02:18:02   and can try to reproduce the crash or whatever.

02:18:04   Like that's, you can't do that with CloudKit.

02:18:07   It's not open source.

02:18:08   They're not using, you know,

02:18:09   they probably are using open source things behind the scenes,

02:18:11   but like you don't have access to it in the same way

02:18:14   as even the quote unquote proprietary things

02:18:16   that are running in public clouds.

02:18:17   - See, right now, look, I just checked my status page.

02:18:20   Nothing's been going on, everything's been fine.

02:18:23   And for some reason, my replica databases

02:18:28   in my main cluster are behind by like eight minutes.

02:18:32   Like they're normally zero seconds behind.

02:18:34   Sometimes they fall behind by eight minutes.

02:18:36   Or who knows why.

02:18:39   - You're running on the ragged edge

02:18:41   of what this hardware can handle for you

02:18:42   and what could it be?

02:18:43   - Who knows? - But I'm not.

02:18:45   The replicas are doing almost nothing.

02:18:47   They're only replicating the writes.

02:18:49   - Somebody's doing something.

02:18:50   They could be contending for a latch

02:18:51   inside the MySQL replication code or some crap.

02:18:54   - This is like, this is like, this is--

02:18:56   - So annoying to deal with stuff.

02:18:57   - MySQL 8, this is what's driving me.

02:18:59   MySQL 8's gonna make me leave servers.

02:19:01   Like that's, that's gonna make me quit the business.

02:19:05   This stuff never happened with MySQL 5, ever,

02:19:08   and this never happened.

02:19:09   - That could be worse.

02:19:10   Could be Oracle.

02:19:11   - That's true.

02:19:13   So many things that can go wrong inside these databases.

02:19:15   - Oh my God, I need to get out of this business.

02:19:17   Like this is the kind of problem, this is infuriating.

02:19:19   Like what can I do about this?

02:19:20   Nothing.

02:19:21   I wonder, what'll happen first?

02:19:23   Will I switch to Postgres or stop running servers?

02:19:26   (laughing)

02:19:27   - I'm not entirely sure that Postgres

02:19:29   is gonna solve your problem here.

02:19:32   - Yeah, I have no experience with it whatsoever.

02:19:35   And everyone always tells me how,

02:19:37   like the Postgres people say it's amazing.

02:19:39   - Oh it is, I love it, it's my favorite database.

02:19:41   Oh, Node contest I've used.

02:19:42   I think I've used all the major current relational databases.

02:19:45   Postgres is by far my favorite.

02:19:47   But when you push any database, you

02:19:51   start to need to either become or have a database

02:19:54   guru who can figure out how to get your thing to scale

02:19:56   the way you want it.

02:19:57   But at least Postgres--

02:19:58   I feel like Postgres is consistent and understandable,

02:20:03   unlike, let's say, Oracle, which is understandable to some

02:20:07   people, definitely not consistent.

02:20:09   And there's not so many dark corners.

02:20:11   But Postgres, in my experience because of that,

02:20:13   it's like, it's straightforward,

02:20:16   but yeah, and you'll get the straightforward scaling

02:20:18   you expect, you'll be like,

02:20:20   yeah, but what if I want it to be better?

02:20:21   And it's like, nope, this is the way it goes.

02:20:23   It's not gonna explain to you why it's this way,

02:20:25   and it'll be consistently this way.

02:20:27   It's like, yeah, but I wish it was better or faster

02:20:29   in some way.

02:20:30   It's like, hmm, get a bigger server?

02:20:32   And that's, and MySQL is like,

02:20:35   we can be super fast, and most of the time,

02:20:38   until something goes wrong,

02:20:39   and then who knows what's going on.

02:20:41   So I feel like Postgres would give you

02:20:43   worse performance in a more consistent way.

02:20:47   - This is like, you know what,

02:20:50   my favorite database engine by far, frickin' SQLite.

02:20:54   It never gives me problems.

02:20:55   The only thing is it can't do this.

02:20:57   Like it-- - Yeah, it cannot scale.

02:20:59   Did I tell you this time when I was messing with SQLite,

02:21:01   it uses my toy-to-base-age thing for stuff at work,

02:21:04   and I was trying to do like a scale test on it.

02:21:07   Let me tell you, once you get a few million rows

02:21:08   into SQLite, it falls over.

02:21:11   I mean, it's not what it's for, but it falls over hard.

02:21:14   - I mean, it's incredible at a lot of things,

02:21:17   and it can do high traffic on smaller stuff, for sure,

02:21:20   but it's not made for like a--

02:21:22   - It can't do concurrency.

02:21:23   - Right, it's not made for like a client server thing

02:21:25   where you have a whole bunch of server processes.

02:21:27   It can't do that.

02:21:28   - Yeah, it can't do concurrency,

02:21:29   but even with just a single user,

02:21:31   you get millions of rows into SQLite, it says no.

02:21:34   It just falls over, performance goes off a cliff,

02:21:36   And that's not what it's for.

02:21:39   Yeah, but man, I love it because it never gives me problems.

02:21:43   Because really, when you look at what I'm running,

02:21:45   I'm running a very large server-side MySQL

02:21:50   installation, a few of them, actually,

02:21:52   a few different clusters doing different things.

02:21:54   And then on all of my client-side app installations,

02:21:58   that's all against SQLite.

02:22:00   And the servers are basically just syncing changes

02:22:03   between your different instances of SQLite

02:22:05   between your different devices.

02:22:06   And so I would say Overcast is, in a way,

02:22:10   more dependent on SQLite than on anything else.

02:22:14   - Just in a distributed way.

02:22:15   Imagine if you had to run one SQLite database

02:22:17   that was equivalent to all your distributed ones.

02:22:20   That would be bad.

02:22:21   That's what you're doing with MySQL.

02:22:23   - Yeah, but yeah, exactly.

02:22:24   And that's why I'm, I have some changes in brainstorming

02:22:28   of like how do I dig myself out of this hole.

02:22:31   But it involves getting rid of the table

02:22:33   that associates users' progress of individual episodes

02:22:37   as individual rows of the table.

02:22:39   - Yeah, yeah.

02:22:40   - Turns out that's a really big table.

02:22:41   - It should not be, that's what I'm saying.

02:22:43   Like that's why I'm looking at document stores,

02:22:45   because there's like some data that is just not relational.

02:22:48   It's just a bucket of data for users,

02:22:51   and putting that in one table is just making like,

02:22:53   this monster table is gonna eat you.

02:22:55   - So here, so, I captured these numbers the other day

02:22:59   when I was trying to figure out what to do.

02:23:01   the table that maps what you've subscribed to,

02:23:04   so it's basically users to feeds.

02:23:06   So it's, every row's like user ID, feed ID,

02:23:10   and some options, whatever your options are

02:23:11   for that subscription.

02:23:13   That table is three gigs.

02:23:15   The table that maps users to episodes, 450 gigs.

02:23:20   - Oh my word, Martin.

02:23:24   - And most of that is indexes.

02:23:26   - 271 gigs of the 450 is index.

02:23:30   - There you go.

02:23:31   (laughing)

02:23:32   - And so I'm like, all right, so my current,

02:23:34   one option I'm thinking of is a new table

02:23:37   that would replace the feed subscription table

02:23:41   and would have basically a binary column on the end of it

02:23:44   that would be a packed binary form of your--

02:23:48   - Oh no, no, what are you-- - Why, no!

02:23:51   - Take all this data and throw it into a document star

02:23:53   in AWS and see how fast it is to query

02:23:56   one user's worth of data.

02:23:57   It's so fast, you never have to worry about scaling,

02:24:00   is just, oh God.

02:24:01   - Yeah, I'm not trying to be funny.

02:24:03   You've never really messed with like a MongoDB

02:24:06   or something like that, have you?

02:24:07   - No, that's not what I would suggest, but.

02:24:09   - Well, okay, so I don't know enough about it either then,

02:24:11   but what would you suggest?

02:24:13   - I mean, I'm just saying, look at Dynamo,

02:24:14   look at Cassandra, like there's lots of options,

02:24:16   but I'm just saying like,

02:24:17   it's just like you don't need,

02:24:19   this is a, it's the same reason you get away

02:24:21   with having the local SQLite.

02:24:22   This is not like, it's relational within itself,

02:24:25   but within all your users,

02:24:26   there is no relation between them.

02:24:28   So these are tiny little islands of data.

02:24:29   So you want something that divides these up

02:24:31   and sharding by users?

02:24:32   Well, there is some relation in the sense

02:24:35   that I do have to do some cross-user queries that

02:24:38   I would have to restructure.

02:24:39   So for instance, there's a few things in Overcast

02:24:42   that are based on the number of recent recommendations or stars

02:24:47   that you've gotten.

02:24:48   Yeah, yeah.

02:24:49   But that's like batch job stuff.

02:24:51   Yeah, but I would have to branch that out

02:24:52   and maybe have a separate table that

02:24:54   is relational for recently starred episodes

02:24:57   among everybody.

02:24:58   and then I could query that really quickly

02:24:59   or something like that.

02:25:00   Like, you know, I would still have to branch out

02:25:02   some of those things, mostly stars,

02:25:05   but for the most part, I don't need to do

02:25:07   a lot of aggregate queries against everyone's data

02:25:09   on this certain thing.

02:25:10   I gotta just friggin' figure out how to make CloudKit work

02:25:14   and get myself out of this business.

02:25:17   - Yeah, what's gonna happen though is you're gonna do that

02:25:19   and then it's gonna break catastrophically one time,

02:25:22   even if for but 10 minutes,

02:25:24   and then you're gonna throw all that out the window

02:25:26   and then next thing you know you're gonna be using--

02:25:27   - He'll have rewritten the entire client app

02:25:30   and the whole server side by then,

02:25:31   so he's not gonna be able to throw it out.

02:25:33   - No, no, no, then what he'll do is,

02:25:34   because have you met Marco?

02:25:35   He really likes to control everything.

02:25:37   And so what you'll end up doing is doing

02:25:39   like a Cassandra DynamoDB or something.

02:25:41   Maybe it's not AWS, maybe it's something else,

02:25:43   but you'll end up doing something else

02:25:45   that is at least reducing your reliance on MySQL.

02:25:49   Maybe it's Postgres, who knows?

02:25:51   - I still think my binary episodes data thing

02:25:53   has some like, oh, it's,

02:25:55   When you're-- there should be like a--

02:25:57   an alarm should sound when you're

02:26:00   thinking of using binary columns to pack data

02:26:02   into a relational database.

02:26:03   Someone should come to your house and say, stop!

02:26:05   What are you doing?

02:26:07   So what decade do you think this is?

02:26:10   [BEEPING]