Going Retina Again

Episode 502 • Released September 29, 2022 • Speakers detected

Episode 502 artwork
00:00:00 Marco: My desk is covered in glasses and iPhone cases.
00:00:05 John: It's that time of year, apparently.
00:00:07 John: I saw a picture of you in one of those pairs of glasses.
00:00:09 John: I have notes.
00:00:11 Casey: Oh, okay.
00:00:12 Casey: For the record, I thought they looked pretty good, but apparently I'm wrong.
00:00:15 Casey: So what should I have said, John?
00:00:17 John: I mean, it's hard.
00:00:18 John: I'm not one of those people who can look at a picture and know what focal length the lens was that took it.
00:00:25 John: So maybe it was kind of a wide angle thing, but it looked a little bit too big for your face.
00:00:29 John: I mean, it's just the iPhone front camera, whatever that is.
00:00:33 John: I mean, that is kind of wide angle, so I could have been fooled by the angle.
00:00:37 John: Although, I have to say, disclaimer, we've been going to the eye doctor frequently because we're swapping glasses for the kids, and every time I'm there, I try on every single pair of frames in the entire store.
00:00:49 John: Not that I'm there to get them, but I'm like, here I am.
00:00:50 John: I'm going to try them all on, and every single one of them I think is too big for my face.
00:00:53 John: So it could just be that the current trend in glasses disagrees with the way I think glasses should look on someone's face.
00:00:59 Marco: Well, I'll tell you here.
00:00:59 Marco: I'll send you this other one.
00:01:00 Marco: This is the really big ones.
00:01:02 Casey: Oh, my.
00:01:03 Casey: Oh, my.
00:01:04 Casey: That's obviously too big.
00:01:05 Marco: Yeah, that's one of the pairs I got today.
00:01:07 Marco: And then these are the ones.
00:01:09 John: I mean, you, like me, have a narrow face.
00:01:12 John: So it's almost like you might be better off shopping in the kids' glasses section or the women's glasses section where I frequently have to go to find glasses that I think look reasonable on my skinny face.
00:01:21 Casey: Oh, that second one.
00:01:22 Casey: I'm sorry.
00:01:22 Casey: This is not good podcasting content.
00:01:23 Casey: But the second one is a very big Steve Jobs energy.
00:01:26 Casey: Just huge Steve Jobs energy right there.
00:01:28 John: And also, all these glasses, unfortunately, make you look older, which is not the look you're going for.
00:01:33 John: Yeah, thanks.
00:01:36 Marco: Anyway, and so, well, I mean, here I have right here the Steve Jobs glasses.
00:01:39 John: I mean, yeah, of those three, you made the right choice, for sure.
00:01:42 Marco: Here, I'll take a picture of the ones that are actually the Steve Jobs glasses.
00:01:45 John: frames hold on these will have to have podcasting headphones in them i do like that you found some frames that are like one of my pair of glasses have don't have the frame around the bottom and just have the little string i love those but they're very rare these days because they're not in style apparently wait what do you mean by the little string so they're not if you took the lenses out of those glasses they wouldn't be like a metal hoop where you where you expect the lens to be it would just it would be just like a u shape
00:02:08 Casey: Right.
00:02:08 Casey: Oh, is there like a string that goes along the bottom?
00:02:11 John: Yeah, there's like a fishing line, basically.
00:02:14 Casey: Oh, I don't think I need that.
00:02:14 John: So the lenses don't fall out.
00:02:16 Casey: Gotcha.
00:02:16 Casey: Well, I just assumed they were like glued in or something like that.
00:02:18 John: No, it's fishing line kind of stuff.
00:02:20 Marco: All right.
00:02:21 Marco: These are the actual Steve Jobs glasses.
00:02:23 Casey: Okay.
00:02:23 Casey: Well, that's fair.
00:02:24 John: Yeah.
00:02:25 John: I mean, those are good for a costume.
00:02:27 Marco: Yeah.
00:02:28 Marco: I mean, they don't have real glass in them.
00:02:29 Marco: This is like the plastic things that came with them.
00:02:31 Marco: Anyway.
00:02:32 Casey: We're going to have to edit all that out.
00:02:33 Casey: This is terrible podcasting content.
00:02:35 Marco: I know.
00:02:35 Marco: So I've learned a few things so far.
00:02:38 Marco: So we had so many people write in and tell me what to get with glasses.
00:02:41 Marco: So thank you very much to all of you.
00:02:42 Marco: Now I actually have had a chance to try some of them.
00:02:45 Marco: And keep in mind, my quote prescription is merely a 0.75 reading glasses.
00:02:51 Marco: That's it.
00:02:52 Marco: There's no like, you know, distance or, you know, other like there's no other prescription.
00:02:56 Marco: So like all the other squares in the prescription are empty.
00:02:58 Marco: Just a little add column says plus 0.75.
00:03:01 Marco: Um, so these are just readers and I don't need anything else.
00:03:04 Marco: So that, that obviously, you know, changes certain things about, you know, what's good and what's not.
00:03:08 Marco: Um, the frustrating thing I'm finding is that like if I could just wear a pair of glasses that would just fix my range of vision in all ways, um,
00:03:18 Marco: that's not that's not a thing for old people sorry yes i'm i've learned that thank you um but like so that's the frustration is like i there is no there is no way seemingly to fix this all the way and so i have to either see things far or see things close but not
00:03:37 Marco: at the same time.
00:03:37 John: If you could get some of those like what do they do where they take like the blood of very young people and inject them into old people to restore their youthful vigor and to make your eyeballs more flexible.
00:03:47 John: Sounds like a Silicon Valley joke.
00:03:49 John: Yeah, no, it's a thing that rich people do because they think it works but
00:03:53 John: No one has corrected me so far in my theory about the stiffening eyeball thing, so I'm just going to assume it's correct.
00:03:58 John: But anyway, yeah, getting old sucks.
00:04:00 Marco: Yeah.
00:04:00 Marco: Well, anyway, what I have found is that for actual reading glasses, I have the nice pair from the eye doctor and I have some cheapos from Amazon and they're not that different.
00:04:15 Marco: actually using reading glasses to read things close up is amazing oh oh my god it's like like i love like browsing my phone with the reading glasses on is incredible it looks like having hd again oh my god it's no it's like going retina again like it's incredible like i guess hey maybe that's where they got got it from um so oh i got it
00:04:38 Marco: But yeah, so anyway, the downside is, of course, that then you can't see anything far away because then it blurs.
00:04:44 Marco: And so I did get from one of the cheapo online places, on someone's recommendation, I got two different things.
00:04:51 Marco: I got an intermediate set, which is kind of like reading glasses, but the focal range is a little bit further out.
00:04:58 Marco: And so it's meant to be like for computers.
00:05:01 Marco: Now...
00:05:01 Marco: I found this was pretty good for using a laptop, like in your lap.
00:05:06 Marco: But at my desktop setup, my monitor is too far from my face.
00:05:11 Marco: It's out of the focal range of the intermediates.
00:05:14 Marco: So actually, if anybody out there has any idea, does anybody make a pair of intermediate readers where the focal distance is customizable or a little bit further out?
00:05:24 John: than the regular ones?
00:05:24 John: I mean, you could just ask your eye doctor for that.
00:05:26 John: Like, what I'm wearing now are my computer glasses, and I told my eye doctor, I want a pair of glasses.
00:05:32 John: Here's where I'm going to use them.
00:05:33 John: I'm going to use them at my computer.
00:05:35 John: Here's how far away my monitor is.
00:05:36 John: Get me glasses that let me see my monitor perfectly.
00:05:38 John: That's what I'm wearing right now, right?
00:05:40 John: I can't drive in them, but, like, you can just tell them that, and you will get a prescription for whatever...
00:05:44 John: That is for your eyeballs, but in terms of finding off-the-shelf ones that work with that lots of people wrote in to suggest that they basically sell computer glasses But they all probably have some assumptions about how far screens are from people and I think when people think computer nowadays They probably mean laptop.
00:05:59 John: I mean who has a desktop?
00:06:00 John: What kind of weird people?
00:06:01 Marco: that's exactly like like and that's why like these intermediates are perfect for laptop distance but i'm almost never working that way so and for my actual desktop monitor it's just too far out um the other the good news is that one of the ones i got is a progressive that goes from nothing to reading that is actually more interesting i because that's like the one thing that like okay if i had to wear one pair of glasses all the time to correct everything that's what i would do
00:06:29 John: If you want the whole world to look like Jell-O all the time, progressives may be for you.
00:06:33 Marco: Well, but, you know, like right now, only needing the .75, like it's just not worth it.
00:06:39 John: Yeah, it's not big.
00:06:40 Marco: But, you know, so what I can see myself doing is like in the future, as this gets worse, as I get older, then I will probably start wearing progressives for that reason, like more, you know, closer to full time.
00:06:50 Marco: Whereas right now, I don't really need to wear them full time.
00:06:55 Marco: And when that does happen, I can definitely see myself maybe making some changes to my monitor situation.
00:07:01 Marco: Because the problem with the progressives is... You've got to point your nose in the air when you...
00:07:07 Marco: No, it's the opposite.
00:07:09 Marco: I have to look down a little bit over the blurred range because the bottom range is for stuff that's closer than my monitor.
00:07:16 John: Oh, that's too close.
00:07:18 Marco: So I have to look through only the top, which means the bottom fifth of my monitor is blurry if I'm looking straight at it.
00:07:25 John: Again, if you get prescription progressives, you can tell the doctor what ranges you want to see through what part of your glasses and they can do that for you.
00:07:33 Marco: yeah well anyway so that's uh it is it was really nice like when i have the progressives on it's really nice to be able to like you know bring like a soda can close to me and read the ingredient label like you know really close like it's it's nice to have that you know and that's when you like tilt your head up and you're you know you're peering down through the bottom half or whatever but um but yeah so it it's okay but i uh i'm glad i'm learning more about this world with with very inexpensive you
00:08:01 Marco: Or glasses, rather, and kind of getting a feel for what I actually will work with when my needs get more severe, where I actually have to address this all the time.
00:08:11 Marco: But right now, I don't have to address it all the time, and so I'm probably going to only use these occasionally.
00:08:16 Marco: I'm keeping the pair that I got from the doctor.
00:08:17 Marco: I'm keeping them next to the bed.
00:08:19 Marco: and that way like when i'm reading my phone at night in bed i can put them on and man that's awesome like it's so it's so great but then you know when i'm at my computer i'm i'm still not right now i'm not having any trouble seeing my monitor so you know right now it's fine but you know over time so damn big how could you
00:08:36 Marco: Right.
00:08:37 Marco: The pixels are small.
00:08:39 Casey: Yeah.
00:08:39 Casey: Fair.
00:08:40 Casey: So I'm genuinely wondering why why not pull like a Jeffrey Wright and look over the top of like half.
00:08:46 Casey: Well, he has regular sized glasses, but like get one of those like half frame, like 70 or 70 year old man reading glasses and just look over the top for everything except reading, reading.
00:08:55 Casey: Like, is that not something that would work for you?
00:08:57 John: Talk about making you look old, though.
00:08:59 Marco: Yeah, that's true.
00:09:01 Marco: I mean, I have some self-respect.
00:09:04 Marco: I'm not going to do any option that I can't say that looks good.
00:09:07 Marco: And fortunately, my face is compatible with glasses.
00:09:10 Marco: I can put glasses on and they look fine.
00:09:13 Marco: And I can even probably find some that look great.
00:09:15 Marco: I don't know.
00:09:16 Marco: But I have to stay within modern fashion to some degree.
00:09:21 John: Those little half glasses are modern fashion for senior citizens.
00:09:23 John: You just got to get one of those strings that go on them around your neck, you know?
00:09:28 Marco: Well, if I didn't care at all about fashion, I would get those ones that clip together with a magnet in the middle.
00:09:32 Marco: Yeah, those are awesome.
00:09:33 Marco: And you, like, drop them down, like, wear them as a necklace, and then you pop them up, you know?
00:09:36 Marco: Because that's the most functional.
00:09:38 John: Yeah, when they're, like, safety glasses, too.
00:09:40 John: They protect you from, you know, things coming up from the saw.
00:09:42 Marco: Yeah, exactly.
00:09:42 John: You could be worse.
00:09:43 John: I mean, what I do, because my vision is the opposite of yours, I'm constantly looking under my glasses, which looks ridiculous.
00:09:49 John: I'm like,
00:09:49 John: Instead of looking over your glasses where they slide down your nose, imagine you have glasses, you're sweaty, they're sliding down your nose, and you're craning your neck to look under them so you can see close-up things, because that's what I have to do half the time with my glasses.
00:10:00 John: It's actually not that bad with my little skinny driving glasses, because they're super distant, and if I need to look at my phone, I cannot look through the lenses at all to see my phone, so I look underneath
00:10:10 John: my lenses at the phone that works out pretty well if you go into the supermarket or whatever and you need to look down at your phone it's probably down low anyway so i can stay looking straight ahead and look down below my lenses at my phone which i can see anyway yeah i'm not looking forward to the day when i have to get either bifocals or progressives because my wife just got progressives and i look through hers and her prescription is like not as bad as mine and boy i obviously it's a thing you get used to right but you can get used to anything i just asked you know but like
00:10:36 John: I don't know if I can hit up progressives at my prescription.
00:10:40 John: Bifocals almost seem like they'd be better because I just feel like I was wearing two pairs of glasses on my face.
00:10:44 John: But I'll cross that bridge when I come to it.
00:10:47 John: For now, I'm just eternally swapping glasses.
00:10:49 John: Driving, not driving, driving, not driving.
00:10:51 John: It's fine.
00:10:54 Casey: Do you want to talk about iPhone cases, or do we want to save that for another time?
00:10:58 Marco: Yeah, let's do it.
00:10:59 Marco: I just have a quick update.
00:11:00 Marco: I finally got in the two cases that people all recommended to me for the last year, and I just didn't get them for the iPhone 13 for whatever reason.
00:11:09 Marco: The Pitaka.
00:11:10 Marco: And the Peak Design.
00:11:13 Marco: These are two extremely well-regarded case options.
00:11:17 Marco: This is the Pataka MagEasy Case 3.
00:11:22 Marco: So it's their newest, thinnest MagSafe-compatible case for the 14 Pro.
00:11:27 Marco: And
00:11:28 Marco: The Peak Design, they have this system where they have this little square mount in the back.
00:11:35 Marco: So it is MagSafe compatible, but then also they have their own line of mounts and custom chargers and things that can latch into this square, ridgy kind of mount hole in the back.
00:11:48 Marco: And so...
00:11:49 Marco: You can actually have really strong mounting options like for if you're putting it on a bike or a motorcycle or something like where MagSafe is not really strong enough for that kind of use.
00:11:59 Marco: So Peak Design sells this whole lot of stuff.
00:12:01 Casey: Wait, hold on.
00:12:02 Casey: I'm sorry.
00:12:02 Casey: The Pitaka MagEasy case, does it look like what I'm seeing on the website?
00:12:07 Marco: Like carbon fiber?
00:12:08 Casey: Yeah, like, you know what's the... Everyone got upset about the Mac Pro because of that thing where you don't like holes or whatever.
00:12:14 Casey: I'm getting this, like... And I don't care about the Mac Pro in every regard, but, like, the look of it never bothered me.
00:12:18 Casey: In fact, I think it looks kind of cool.
00:12:20 Casey: But this case, I'm getting, like, major angst over this.
00:12:24 Casey: I don't like this at all.
00:12:25 Casey: Like, it is a fake carbon fiber.
00:12:27 Marco: This is, like... Well, no, it's actually... I think it's actually real carbon fiber.
00:12:30 Marco: Is it?
00:12:30 Casey: Okay.
00:12:31 Marco: Well, that's what Aramid is, right?
00:12:32 Casey: I have no idea.
00:12:33 Marco: I think it is.
00:12:33 Marco: Anyway, so, yeah, we'll go with Pataka first.
00:12:36 Marco: So, the Pataka case...
00:12:38 Marco: I've only had it on for a few days so far.
00:12:40 Marco: It works the best and looks the worst.
00:12:45 Casey: I could buy that.
00:12:46 Marco: I could totally buy that.
00:12:48 Marco: It looks like it is, as far as I think it's actually real carbon fiber, but because fake carbon fiber is so often used as a decoration element in lots of things, it just looks like fake carbon fiber.
00:13:03 Marco: It looks cheap as a result of that.
00:13:04 Casey: This does not look good.
00:13:06 Marco: They have these alternating colors.
00:13:08 Marco: I have the black and blue one.
00:13:10 Marco: I wish they would just do a solid color option because if what you want is a solid color, they don't offer that.
00:13:18 Marco: So the gray one is close, but it's not.
00:13:21 Marco: So anyway, it doesn't look great.
00:13:24 Marco: It is a very, very minimal protection kind of case.
00:13:28 Marco: It is a very thin and lightweight case.
00:13:30 Marco: And rather than having its own button covers or having holes for the buttons, it has these huge cutouts of the case where the entire button area on each side, the case just kind of cuts around it.
00:13:44 Marco: So you are directly pressing the phone's buttons, which in some ways is nice, in some ways is not, because you still have the ridge to contend with with your finger.
00:13:53 Marco: It does have a mostly open bottom.
00:13:56 Marco: So John could mostly be okay with it.
00:14:00 Marco: Overall, though, the major upsides of this are it's very thin and light.
00:14:04 Marco: It feels not that different from having a bare phone in terms of size and bulk.
00:14:10 Marco: And it has a very good amount of grip for the tackiness of the surface.
00:14:17 Marco: The downsides are it does not look good.
00:14:20 Marco: It does not provide much protection.
00:14:22 Marco: And the camera, there's like a plastic ridge to protect the camera area on the back.
00:14:30 Marco: And it feels really cheap and sharp.
00:14:32 Marco: That's the biggest downside, I think, is that camera area just feels crappy.
00:14:36 Marco: I like this case.
00:14:38 Marco: I don't know if I'm going to keep it on the phone long term.
00:14:42 Marco: I'm going to live with it for a while and see what I think.
00:14:45 Marco: The Peak Design case definitely looks the nicest of all the ones I have.
00:14:52 Marco: I would say the Peak Design case probably looks... It's probably one of the best-looking, if not the best-looking, non-leather case that I have seen.
00:15:01 Casey: This is the everyday case for iPhone, and it looks like it's almost like a cloth on the back or like a fabric?
00:15:07 Marco: Yeah, it's like a gray kind of heathered fabric on the back with what I believe is a TPU outer band going around the whole outside of the case, like around the ridge.
00:15:16 Marco: It totally covers the buttons.
00:15:19 Marco: It has a closed bottom.
00:15:20 Marco: Sorry, John.
00:15:21 Marco: The button covers that and pushing them feels very nice.
00:15:25 Marco: It's a very high quality case.
00:15:27 Marco: The ridge around the camera plateau protector is smooth and it just feels really nice.
00:15:35 Marco: It looks really nice.
00:15:36 Marco: The big square mounting hole on the back
00:15:39 Marco: does not look crappy or bad it looks tasteful there is no like you know big in your face branding so the peak design looks the best by far of all the non-leather cases i've ever tried the downside is that that back fabric material does not provide significantly more grip than the bare phone would the sides are a little grippy like without it's like a little bit of a rubbery tpu material
00:16:03 Marco: Not like a silicone and not like the clear squishy cases that I like.
00:16:08 Marco: So it's not that much grip is my main problem with it.
00:16:12 Marco: But it does look and feel good in other ways.
00:16:16 Marco: Just not a lot of grip.
00:16:17 Marco: And it's also a fairly thick protection band around the phone.
00:16:21 Marco: This is obviously like, you know, if you actually drop your phone, this is I'd much rather have this on my phone than any of the other ones I've tried so far.
00:16:28 Marco: But it is a little bit thick for for what I'm going for.
00:16:32 Marco: So I'm not sure I'm going to stick with this either.
00:16:35 Marco: But if I had a need and I didn't yet buy any of their mounts or anything, but if I had a need for one of their custom mounts to use this cool square mounting hole in the back, no question, I would go right to this case because those mounts all look awesome.
00:16:48 Marco: unfortunately i don't ride a motorcycle um and i don't need to mount my phone on my bike when i'm driving to the grocery store so you don't want to mount it in the defender adjacent to the tide watch i don't need to safe would be okay inside a car yeah it is it's totally fine so uh anyway so the uh yeah peak design i don't know if i'm gonna have much use for but i'm gonna keep it around anyway in case you need that mount for something uh and the pitaka does work very well i'm gonna keep it on for a while but i really don't care for the look
00:17:18 Marco: The Apple Clear case I used for most of the last week, and I still don't like how little grip it provides on surfaces.
00:17:27 Marco: So, like, if you lay the Apple Clear... I'm hearing you click yours.
00:17:32 Casey: Wow, my word.
00:17:33 Casey: I can hear that, too.
00:17:34 John: Still going.
00:17:34 John: Still going strong over here.
00:17:36 John: Just FYI.
00:17:37 Marco: but yeah anyway i i don't love the the lack of like tackiness on surfaces like if you put it on about the carbon fiber case because that can't possibly be grippy can it's got to be slick it has some kind of surface treatment on it i think because it feels it feels like the squishy clear case kind of finish like that kind of like you know slightly rubbery kind of tacky feel so i don't know i mean i don't know i don't know what it's made of some kind of like resin aramid something or other i don't know
00:18:04 Marco: but that that for some reason grip surfaces but i actually i devised a little test earlier um to kind of to try to like quantify how how much like surface tackiness it had where i laid them on a long plank of and what i when i say plank what i mean is an apple watch strap box because that's what i had nearby and
00:18:25 Marco: And I put it on like the far end and I slowly kept keeping one side of it down.
00:18:31 Marco: I slowly lifted the box up like a big seesaw or like a big lever.
00:18:35 John: I feel like the camera lump is really going to screw with this test because what you want to test is the friction of the flat part of it, don't you?
00:18:41 Marco: Well, I want to test the friction of the whole thing because the whole thing is on surfaces.
00:18:45 Marco: So I held a tape measure up and I slowly raised up the Apple Watch box as the seesaw and saw, okay, when does the phone slide down?
00:18:54 Marco: Like how high can I raise it before the phone slides down?
00:18:58 Marco: And so just, again, these numbers mean nothing except relative to each other.
00:19:02 John: You could have done some trigonometry and give us an angle here.
00:19:04 John: Come on.
00:19:05 Marco: Well, yeah.
00:19:06 Marco: I don't have a protractor here.
00:19:07 Marco: Anyway, so having no case at all...
00:19:09 Marco: don't need a protractor oh yeah right i could just do the yeah anyway trigonometry yep all right so no case at all four inches the peak design four and a half apple clear case five and a half pitaka six apple silicone six and a half so that kind of gives you some idea of like the the relative grippiness of all these apple silicone is the most grippy unfortunately it means you can't put into a pocket easily and the pitaka was the second place and then apple clear was third peak design fourth and no case was last place
00:19:39 John: having used the apple silicone one and and a non-apple leather one uh despite the obvious difficulty of pocket like this is where it highlights how silicone interacts differently with different surfaces because the inside of your pockets are lined with like whatever cotton fabric and that's the worst and they're tight and that's the worst case scenario for the silicone case but i find in one of my scenarios or two of my scenarios where i care about grip one being picked up with my hand and two being arrested on the
00:20:06 John: arm or back of a piece of furniture or specifically my couches i find the leather does better in both of those situations i always found the apple silicone one ever so slightly more slick and less secure in my hand than the leather one just i don't know just because of like the you know the sweatiness and the break inness of leather where it just kind of starts to be more grippy or whatever whereas i think the leather would do worse on your incline test than the silicone because i think silicone grips better on that very flat surface of cardboard than it
00:20:34 John: feels in my hand but they're both pretty good in terms of grip and the clear one which i've been using since i got my phone it's pretty good in terms of grip like i don't i i don't feel like it's super slick definitely way more slick than a silicone case or a leather case but it's not so bad that i feel like the phone is slipping out of my hand the only weird thing is sometimes when i reach into my pocket i think for a second you know maybe because you mentioned in the last show did i accidentally face the screen out no that's just the back of the case it feels it feels kind of like a screen
00:21:02 Marco: I will say also, I really came to appreciate the look of the clear case with the white phone.
00:21:08 Marco: I think the darker phone colors, you probably have the MagSafe ring probably stands out a bit too much against them to look very good on that clear case.
00:21:18 Marco: But on the white phone, it's not that bad.
00:21:21 Marco: And
00:21:22 Marco: I really did appreciate... I was at a wedding this past weekend, which we'll get to in a little bit.
00:21:29 Marco: I was all dressed up.
00:21:32 Marco: I wanted my phone to not look too crappy.
00:21:35 Marco: I had the clear case, and that's what I used.
00:21:36 Marco: It looked fine.
00:21:39 Marco: It looked like a nice piece of equipment.
00:21:42 Marco: The combined look of the clear case with the white phone, it looked nice.
00:21:46 Marco: It did not look ridiculously out of place with formal wear.
00:21:50 Marco: It was nice.
00:21:51 Marco: And I don't think I definitely wouldn't say that about the Pataka.
00:21:55 Marco: I think the peak design would be the nicest looking option I have, but I didn't have it then.
00:21:59 John: I was saying the clear case to the the wall that surrounds the giant camera thing on the 14 Pro.
00:22:04 John: It is a wall and it's you know, if you don't want a big wall, don't get this one.
00:22:09 John: But it is it doesn't feel cheap.
00:22:11 John: The wall around it is nicely rounded over.
00:22:14 John: It's not it's not sharp.
00:22:16 John: It's not flimsy.
00:22:18 John: You know, it is what it is.
00:22:19 John: It's a wall.
00:22:19 John: But I think they did a good job of making it.
00:22:21 John: As inoffensive as they could.
00:22:24 Casey: Yeah.
00:22:24 Casey: Yeah, this peak one really does look pretty good, but gosh, I do not like the look of the Pataka at all.
00:22:29 Marco: It is very nice feeling in certain ways, but yeah, it's hard to get over that look.
00:22:35 Marco: We are sponsored this week.
00:22:36 Marco: We'll be right back.
00:23:06 Marco: Green Chef has all these high-quality ingredients to make these meals.
00:23:11 Marco: Ingredients like USDA-certified organic ground beef, USDA-certified organic chicken, wild-caught sockeye salmon, and all these exciting new ingredients, recipes, and delicious meals can support your healthy lifestyle.
00:23:22 Marco: You can eat well without sacrificing taste.
00:23:25 Marco: They have their new fall collection.
00:23:27 Marco: They call it the Fall's Finest.
00:23:28 Marco: This is a curated selection of farmstead favorites, fresh seasonal ingredients, and premium proteins.
00:23:34 Marco: And they just have so many options for you.
00:23:37 Marco: So one of the options they have, besides, you know, keto, paleo, vegan, vegetarian, they have these things called fast and fit meals.
00:23:43 Marco: These are under 700 calories and ready in 25 minutes or less.
00:23:48 Marco: So many different options that you might want with Green Chef.
00:23:51 Marco: All this comes with pre-made, pre-measured ingredients, spices, sauces, dressings, whatever you need so that you can get more chef-curated flavor in less time.
00:24:02 Marco: So go to greenchef.com slash ATP135 to get $135 off across five boxes, and your first box ships free.
00:24:13 Marco: Once again, greenchef.com slash ATP135.
00:24:18 Marco: And promo code ATP135.
00:24:20 Marco: Take it $135 off across your first five boxes.
00:24:24 Marco: And your first box even ships for free.
00:24:27 Marco: Thank you so much to Green Chef, the number one meal kit for eating well, for sponsoring our show.
00:24:36 Casey: We have a little bit of housekeeping to do.
00:24:38 Casey: First of all, for the very last time this year, we're going to ask, nay, beg you to go to stjude.org slash ATP, stjude.org slash ATP, and throw a few bucks in the direction of kids with cancer and the doctors that are trying to help them.
00:24:56 Casey: Hey, so here's the thing.
00:24:57 Casey: If you listen to this show, you are likely to have at least a dollar or two to scrape together and send in the direction of Memphis, Tennessee to St.
00:25:05 Casey: Jude Children's Research Hospital.
00:25:06 Casey: Why would you do that, you ask?
00:25:07 Casey: Well, because they do everything that they can to try to cure childhood cancer.
00:25:13 Casey: And September is National Childhood Cancer Awareness Month.
00:25:15 Casey: And we and Relay, especially Relay, get behind St.
00:25:19 Casey: Jude in order to try to raise money on their behalf.
00:25:23 Casey: We do that because Relay co-founder Stephen Hackett, a dear friend of all three of us, his eldest son was stricken with childhood cancer at six months old.
00:25:30 Casey: Stephen and his son and his family received literally millions of dollars of treatment from St.
00:25:36 Casey: Jude and have paid literally nothing for it.
00:25:38 Casey: If you live in a sane and in a good country, that might be a little bit unremarkable.
00:25:44 Casey: But for those of us here in the very broken America, that is extremely cool.
00:25:48 Casey: And you might say to me, well, hey, Casey, I don't care because I don't live in a broken country like America.
00:25:53 Casey: Well, you should care because St.
00:25:54 Casey: Jude does a lot of research and they share, I don't know if donate's the right word for it, but they share a lot of that research with hospitals and doctors and whatnot around the world.
00:26:03 Casey: So...
00:26:04 Casey: You've probably spent a bunch of money on stuff you don't need, and I'm parroting Marco here.
00:26:08 Casey: I'm taking all of Marco's thunder, and I'm sorry, but I'm not sorry.
00:26:11 Casey: Fair enough.
00:26:12 Casey: You've probably bought a bunch of stuff you don't need.
00:26:14 Casey: I certainly have, and we're going to talk about that soon.
00:26:16 Casey: So you should, in order to kind of offset that, it's not a carbon offset.
00:26:21 Casey: It's a frivolous expenditure offset.
00:26:24 Casey: You should go to stjude.org and donate.
00:26:29 Casey: The donations are accepted until the end of the month at that address, but certainly feel free to donate anytime you want to St.
00:26:35 Casey: Jude.
00:26:36 Casey: We're not going to stop you.
00:26:37 Casey: And also with related housekeeping, we have a new leader on the leaderboard taking over from the entire company of 1Password.
00:26:47 Casey: One individual, the famous James Neal, who donated something like seven or eight grand last year.
00:26:52 Casey: I forget exactly what the total was, but it was nuts.
00:26:55 Casey: This year, James Neal, a single human by himself donated $32,000.
00:27:02 Casey: He bought a Civic and donated it to St.
00:27:06 Casey: Jude.
00:27:07 Casey: $32,000.
00:27:08 Casey: Actually, that's a really nice Civic.
00:27:09 Casey: That's probably almost an accord, isn't it, John?
00:27:11 Casey: $32,000.
00:27:12 John: Civic has gotten pretty expensive.
00:27:14 John: It's probably close to the top of the line Civic.
00:27:17 Casey: Yeah, it's not quite a tight bar, but it's a really nice Civic.
00:27:19 Casey: So anyway, $32,000.
00:27:22 Marco: Yeah, regardless, the three of us each individually donated a used Camry, and this blows us out of the water.
00:27:28 Marco: I mean, my God, James Neal is incredible.
00:27:31 Casey: He is my hero.
00:27:32 Marco: This is incredible.
00:27:33 Marco: Get out the sticker cannon.
00:27:34 Casey: Yeah, get out the sticker cannon.
00:27:36 Casey: I actually offered.
00:27:37 Casey: He never said anything to me.
00:27:38 Casey: I offered to shoot the sticker cannon in his general direction one more time.
00:27:42 Casey: And he very politely and very kindly said, I've got plenty from last year.
00:27:45 John: He's got enough of your stupid stickers.
00:27:47 Casey: Exactly.
00:27:49 Casey: So don't worry about that.
00:27:50 Marco: We'll get you to order a new production mode and have them sent directly to his house.
00:27:53 Casey: I should.
00:27:54 Casey: I really should.
00:27:55 Casey: But here's the thing.
00:27:55 Casey: I might have this wrong, but I think last year Relay raised something like $700,000.
00:28:01 Casey: If I'm lying to you, it's not on purpose, I promise.
00:28:03 Casey: But sitting here now, we're at $550,000.
00:28:06 Casey: Let's get to $700,000, baby.
00:28:08 Casey: Let's get to $700,000.
00:28:09 Casey: Do what you can to donate $150,000 in just a couple days.
00:28:12 Casey: It's a tall order.
00:28:13 Casey: I don't know if we're going to make it, but let's try.
00:28:14 Casey: What's it going to hurt to try?
00:28:16 Casey: Stjude.org slash ATP.
00:28:18 Casey: And that is the last time we're going to talk about that for now.
00:28:21 Casey: Similarly, last time we're going to talk about something else.
00:28:23 Casey: ATP Movie Club is back, baby.
00:28:25 Casey: And we've got one final episode for you, at least for now.
00:28:28 Casey: And this episode is John's episode.
00:28:30 Casey: John, would you like to tell us anything about what we have done?
00:28:33 John: Edge of Tomorrow
00:28:57 John: If you've seen that movie or you've heard me talk about it on other podcasts, maybe that's not surprising to you, but no one guessed it.
00:29:03 John: Everyone was guessing other big name movies.
00:29:06 John: And if you listen to the show, I will explain why I ended up picking what I picked.
00:29:09 John: And then we talk about it.
00:29:10 Casey: Yep.
00:29:11 Casey: So this is just for members as a thank you for sticking around with us all the way through episode 500.
00:29:16 Casey: And you can become a member at ATP.FM slash join.
00:29:20 Casey: Certainly you could and should stay a member forever.
00:29:23 Casey: 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.
00:29:29 Casey: Please.
00:29:29 Casey: ATP dot FM slash join, um, all snark and jokes and whatnot, leaving the room for a moment sitting here.
00:29:35 Casey: 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.
00:29:41 Casey: We'll maybe do it like once a year or something sitting here.
00:29:44 Casey: Now we genuinely have no, even vaguely concrete plans.
00:29:48 Casey: We have basically no plans at all.
00:29:49 Casey: We have a bunch of ideas, but no actual plans.
00:29:52 Casey: And so it's,
00:29:52 Casey: If you're not in a position where you can sign up for a membership, we totally understand.
00:29:56 Casey: That's totally fine.
00:29:57 Casey: And I don't want you to feel like you're missing out on something forevermore.
00:30:01 Casey: We'll do this from time to time, but for now, we're going to put it to bed and let these three episodes live in infamy or something like that.
00:30:09 John: And at any time in the future, if you become a member, of course, you'll have access to these episodes.
00:30:13 Casey: That's an excellent point.
00:30:14 Casey: Thank you, John.
00:30:14 Casey: That is very, very true.
00:30:16 Casey: All right.
00:30:17 Casey: Let's do some follow up.
00:30:19 Casey: John, can you tell me about shared photo library limitations?
00:30:23 Casey: This is still in beta, isn't it?
00:30:25 Casey: I don't think this is in the release version, right?
00:30:27 John: Right.
00:30:27 John: Yeah.
00:30:27 John: And occasionally I update the beta as I updated my Ventura boot disk a little while ago.
00:30:32 John: And I think I talked about this in the past show, but one of the things that have been tripping me up and trying to test the Apple shared photo library thing was my complete inability to create a new Apple ID.
00:30:43 John: I had gone through this Apple ID purge a while back that I also talked about on the show, getting rid of a bunch of my testing Apple IDs.
00:30:49 John: I still had one testing Apple ID, which is the one I'm using in Ventura.
00:30:52 John: I'm not using my real Apple ID.
00:30:54 John: But I needed another one to be part of my family.
00:30:56 John: They don't need to be part of my family.
00:30:59 John: You can share it with anybody.
00:30:59 John: But anyway, I needed another Apple ID that was not a real person.
00:31:03 John: that I could share my shared photo library with.
00:31:05 John: I didn't want to share it with any actual people in my family for fear of inducing any bugs.
00:31:10 John: I didn't want anything to touch my real Apple ID until Ventura is done.
00:31:14 John: And I just cannot create an Apple ID.
00:31:15 John: So anyway, we're on Beta 6, Beta 8, whatever we're on in Ventura, finally I was able to create an Apple ID.
00:31:21 John: And by the way, I tried creating Apple IDs outside of Ventura.
00:31:24 John: Tried it on the web, tried it from all sorts of places, and it was just never working for me.
00:31:27 John: Just, I don't know, bad internet weather on the days when I tried it.
00:31:31 John: Apple was having server problems.
00:31:33 John: Whatever the problem was, I'd get halfway through the process, and I'd be close to the end, and it'd be like, sorry, this failed.
00:31:39 John: And it was no explanation.
00:31:40 John: Anyway, I created a second app, ladies.
00:31:42 John: Now I'm sharing a photo library.
00:31:44 John: And I didn't need to do this test to figure this out.
00:31:48 John: It should have been obvious from our past discussions and the description of the feature.
00:31:52 John: But I just didn't think about it, and it really hit home once I actually did the sharing.
00:31:55 John: Because when I was just doing it by myself, I was like, oh, look, you can toggle any photo if you want it to be in the shared library and your private library, and you can view both of them merged together, and it's real convenient.
00:32:04 John: That's when I'm just looking at, you know, it's a shared library with one person.
00:32:07 John: Once I had a second person...
00:32:09 John: I really see the limits, and I immediately filed a feedback request to say, hey, please improve this.
00:32:15 John: And it was a, you know, it's not a bug report.
00:32:16 John: It's a suggestion, they call it.
00:32:18 John: They don't call it a feature request, but it's a suggestion.
00:32:19 John: And, you know, if this is a 1.0, fine, good 1.0, but there needs to be a 1.1, a 1.2, a 1.5, and maybe a 2.0, right?
00:32:28 John: Here's what it's missing.
00:32:29 John: Shared photo library makes it sound like you're sharing an entire photo library, but you're not, because what is part of a photo library?
00:32:37 John: Obviously, the photos are part of a photo library, but there's way more than just photos in a photo library.
00:32:43 John: There are albums.
00:32:44 John: There are smart albums.
00:32:45 John: There are slideshows.
00:32:46 John: There are book projects.
00:32:48 John: That's all part of the library.
00:32:50 John: There's ratings.
00:32:50 John: There's keywords.
00:32:51 John: There's favorites.
00:32:52 John: That's all part of the library.
00:32:53 John: Like, that's a photo library, right?
00:32:56 John: When you share it, none of those things are shared, nor can they be shared.
00:33:00 John: And when I look at my actual family photo library that is owned by my wife's Apple ID currently, we have tons of albums.
00:33:07 John: We have folders full of smart albums.
00:33:09 John: We have all the old book projects that I did.
00:33:11 John: We have slideshows.
00:33:13 John: We have all the metadata, all of the keywords, all the favoriting, all of the ratings, just tons of metadata.
00:33:21 John: None of that is shared.
00:33:23 John: So what that means is, although the main selling point of this future, which I think is great and I'm going to be excited to have, I'll finally be able to see all of my family's photos on my phone and on my Mac.
00:33:36 John: When I have to go in and basically work with the photo library, I'm still going to be logging into my wife's Apple ID.
00:33:41 John: Because what am I doing when I'm working in the photo library?
00:33:45 John: I am not just modifying pictures, which those would be shared, but I'm marking things as favorites.
00:33:51 John: I'm adding location metadata.
00:33:52 John: I'm putting things into folders.
00:33:54 John: I'm labeling things with keywords.
00:33:55 John: I'm, you know, setting person information.
00:33:58 John: None of that is shared, right?
00:34:00 John: The edits to the photos, I believe, are shared, but the other stuff is not.
00:34:04 John: So, you know, good job for a 1.0.
00:34:07 John: Like, you're not going to get everything in the very first version.
00:34:09 John: And the 1.0 looks like it does a really good job of exposing the features that it has.
00:34:12 John: But I really hope that feedback request lands in someone's inbox and they say, oh, yeah, we're totally already working on that for the next version two years from now.
00:34:20 John: Please do work on it because...
00:34:22 John: until that comes to fruition i'm still going to be logging into my wife's account to work on our photo library which is kind of a bummer yeah i can understand how they ended up there with not sharing albums and whatnot but that is kind of crummy yeah i mean it's in the name it says shared photo library it doesn't say shared photos because yes you are sharing photos but the library has tons of stuff in it and when i'm working with it it's mostly what i'm doing is working with the metadata i'm rearranging things i'm tagging things i'm organizing things and stuff like that so
00:34:49 John: I would like to be able to do that from my account, but that is not going to be possible.
00:34:54 Casey: Speaking of disappointments, do you want to tell me about creaky clear cases?
00:34:58 John: Yeah, people were discussing this in the chat room when I made the creaky noise with my case.
00:35:01 John: Lots of people are experiencing this.
00:35:03 John: Lots of people think it's like, your case must be defective.
00:35:06 John: Return it or whatever.
00:35:06 John: It's not defective.
00:35:08 John: If you look at it, it looks like it fits perfectly.
00:35:10 John: There are no obvious gaps.
00:35:12 John: It is all even around all the sides.
00:35:14 John: This is a question of micrometers.
00:35:17 John: It is not...
00:35:18 John: Bulging, deformed, warped.
00:35:20 John: Some people said, hey, did you get the wrong case?
00:35:22 John: Maybe what you got us for the 14 instead of the 14 Pro.
00:35:24 John: It's not the wrong case.
00:35:26 John: Everything is right.
00:35:27 John: And lots of people were sending feedback, tweeting, emailing, saying, hey, I have the clear case.
00:35:32 John: And it also creaks, right?
00:35:34 John: I think, and some people are saying, I have it, and it doesn't creak at all.
00:35:38 John: It may just be a matter of maybe people don't squeeze their case as much.
00:35:42 John: Maybe it creaks and they don't notice.
00:35:44 John: I don't think there is this big bifurcation in the production run where half of the cases creak and half the cases don't.
00:35:52 John: I think it's just sensitivity to minor differences in... It's not even differences in fit.
00:35:58 John: Because I think...
00:36:00 John: I think it's material, really, because I don't think any case I've ever had from my phone fit any better than this.
00:36:04 John: It's just a question of when it doesn't fit, how does that manifest in the case?
00:36:07 John: And it's this particular kind of clear plastic material that's like tacky and sticky that kind of like clings to the sides of the phone and then releases, making that little...
00:36:18 John: little noise like that that's i think it's the material i think every case does that but if it's not made of this material it doesn't make that noise and doesn't feel as insecure i don't know i'll let you know when what one or both of my leather cases come in how they do some people all said a theory is because i have the black uh pro and maybe the black finish on the stainless steel is prone to this and it's going to happen with every case i get i don't know but anyway just wanted to let people know that i am not the only person
00:36:42 John: who got the clear case on their iPhone 14 Pro and hears it creaking and doesn't like it.
00:36:49 Casey: All right, breaking news from earlier today.
00:36:52 Casey: Stage Manager will support older iPads, which is very selfishly exciting because I have an older iPad.
00:36:59 Casey: I have a 2018-era original iPad Pro with Face ID, and allegedly the stage manager will support even my creaky four-year-old iPad, which actually isn't that creaky and still surprisingly peppy, as long as I don't use it with an external display, which I think is a perfectly fair trade, to be honest with you, and I'm pretty excited about this.
00:37:19 John: Not alleged.
00:37:20 John: There's an actual quote from Apple in there, too.
00:37:22 John: And to be specific, it'll be available on the 2018 and 2020 models that use the A12X and the A12Z chips.
00:37:30 John: So if you wanted to know, that's that specifically.
00:37:32 John: But with the limitation that those iPads cannot use external displays with Stage Manager.
00:37:40 John: And then on top of that, in the latest beta of iPadOS 16, they just remove external display support for everybody, even the M1 iPads.
00:37:47 John: That's a temporary condition that will be coming back later.
00:37:51 John: But yeah, the whole stage manager situation seems to be not going great over there at Apple.
00:37:59 John: In the press release, they're like, we worked hard to make sure this works on older iPads.
00:38:02 John: We heard your feedback.
00:38:02 John: Well, that's all good and everything.
00:38:04 John: But the feedback from the folks who are messing with every one of the new iPad OS 16 betas on their M1 iPads is that stage manager is still...
00:38:13 John: a mess not only last time we heard this we said like oh it's it's a mess because apple can't figure out how it should work or like the way they made it work is not pleasing to the users right but now on top of that people saying oh and by the way also it crashes all the time so those are two things that are also not good it when it's working we don't like it but most of the time it doesn't work and it crashes so i really hope they figure out this stage manager thing and on some reasonable timeline
00:38:37 Marco: Yeah, it's been a mess all summer long.
00:38:40 Marco: I don't know anybody all summer long who has been using Stage Manager and says, this is ready to ship.
00:38:47 Marco: On one hand, A, it's fantastic that they have added the support for the older iPad Pros.
00:38:52 Marco: That's great.
00:38:54 Marco: That could have saved me $1,000 earlier this summer.
00:38:56 Marco: Thanks for the timing on that one.
00:38:58 Marco: But hey, that's great for everybody else.
00:39:00 Marco: You can have this win over me, everybody.
00:39:03 Marco: It's better...
00:39:05 Marco: that they're disabling the external display support now than shipping it in as broken of a state as it was in so that's i'm glad they're at least like willing to pull something before shipping if it's not working out i'm surprised stage manager is making it into the release at all based on the feedback from people again people who have actually been using it all summer long it's not a positive overall sentiment out there about stage manager
00:39:29 Marco: It seems like everyone pretty much says that it needs some significant design and functionality changes and reliability changes before it can actually be shippable.
00:39:40 Marco: And so many of us were thinking they were going to pull Stage Manager entirely before release.
00:39:45 Marco: I mean, they might still.
00:39:46 Marco: They might still, you're right.
00:39:48 Marco: But it seems like this is what they're doing instead of that.
00:39:52 Marco: And so...
00:39:52 Marco: you know okay we'll see maybe you know they know better than we do maybe things are better than we think they are i hope um because we know again what we've heard is is not great um but you know maybe maybe things are getting better in the last few betas we'll see i have to say i'm running the latest ipod s beta on my ipad it's an m1 ipad uh and if you never use stage manager so far it doesn't bother you
00:40:21 John: Just to be clear, this is not a feature that you have to use if you don't want to.
00:40:25 John: Obviously, I mean, it's a headlining feature.
00:40:27 John: You would hope it would work and it would be useful and you want to use it.
00:40:29 John: But after my initial experimentation with Stage Manager, I don't mess with it at all and it does not affect my life.
00:40:35 John: So it has that going for it, but that's not...
00:40:37 John: a great thing to say about it what's supposed to be a headlining feature of uh of your new uh os also do we have a date for i know they delayed ipad os 16 but did they give a date or did they just say fall did they say october i forget what they said for ipad os 16 i don't i don't believe we have a date except fall i don't think so either yeah so here's the here's the problem with the whole thing like so they took external display they they said flat out external displays aren't going to work on the older ipads maybe that's a ram limit or whatever right
00:41:03 John: But they took it away from all of them.
00:41:05 John: And this is a direct quote from Apple that they sent to... I forget where they sent.
00:41:09 John: This is from MacRumors.
00:41:10 John: But this is from Apple.
00:41:12 John: External display support for Stage Manager and M1 iPads will be available in a software update later this year.
00:41:17 John: There's not that much of this year left.
00:41:20 John: And fall, like, later this year, like...
00:41:23 John: If iPadOS 16 comes out on December 1st and it ships with external display support, it doesn't say that, hey, first we're going to release iPadOS 16, and then after iPadOS 16 is out and released to the public, at some point after that we'll roll out external display support for M1 iPads.
00:41:45 John: This doesn't say that at all.
00:41:46 John: It just says we'll be released in a software update later this year.
00:41:50 John: So I don't know.
00:41:51 John: There's lots of outs in this plan where they could comply with the letter of this law and do all sorts of weird things in terms of external display support, including potentially missing this deadline of update later this year.
00:42:03 John: Actually, it'll be updated later this spring.
00:42:07 John: Although, it doesn't seem weird to you that they would pull external display support for the M1 at this point?
00:42:13 John: Because...
00:42:16 John: is it crashing because it's running out of ram like the the limitation of the the older machines not be able to do external displays for it makes some sense in terms of resource limits right because you can have more apps running and more windows displayed and stuff like that but the m1 doesn't suffer from those limits so why is that part of the feature being pulled at this point it's mysterious and i don't understand the motivation behind the changes but it all just leads to
00:42:41 John: continuing uncertainty about what is this going to look like when it ships to users and it in the current situation even if they fix all the crashing bugs and they shipped it the way it works today i think people would be like me and just be happy that they can turn it off and be sad that like it didn't turn out better than it did
00:43:01 Marco: Well, I think when you're talking about a second screen, that changes a lot.
00:43:07 Marco: And yeah, I mean, iOS has supported secondary screens in the API levels for a while now.
00:43:13 Marco: But this is, I think, the first case where things can be pretty different in ways that regular people will run into a lot if you happen to have a second screen.
00:43:21 Marco: And that a lot of apps would get away with making a lot of assumptions about like,
00:43:24 Marco: UIScreen, .main.
00:43:26 Marco: You just can't do that anymore.
00:43:29 Marco: I believe .main is actually deprecated in iOS 16 now.
00:43:33 Marco: All throughout iOS history of software development, both in Apple and in the App Store, devs like us...
00:43:41 Marco: We've been able to assume that UIScreen.main would give us whatever aspect of the screen we were looking for, whether it was the scale to know what kind of retina level we're talking about, things like the different attributes of what's going on with the screen, the screen size.
00:43:57 Marco: We've been able to count on that for all this time being the singleton that we could just refer to and just know things.
00:44:03 Marco: This external display support with Stage Manager is the first time that assumption is really broken for lots of apps.
00:44:09 Marco: And
00:44:09 Marco: So I think by saying they're going to disable this part right now, regardless of the hardware, that suggests to me this is not about resources, like hardware resources.
00:44:19 Marco: This is about bugs.
00:44:21 Marco: And so many bugs will and have crop up
00:44:25 Marco: because of that assumption being broken now for the first time ever in iOS, I think it's going to be a while and a lot more work before that is going to be really reliable.
00:44:34 Marco: And that's going to be made worse by the simple reality that almost no one, relatively speaking, is going to be doing this.
00:44:42 Marco: Like almost no users of your app, whatever your app might be, like the percentage of your app's users who are actually going to have an external display with their iPad using Stage Manager,
00:44:53 Marco: is so low that it's not really worth a lot of developers' time to make that work.
00:44:59 Marco: I mean, look at how many developers even make basic iPad resizing and multitasking work.
00:45:04 Marco: Not a large number.
00:45:05 Marco: And, you know, when you look at something like this, I mean, odds are low.
00:45:09 Marco: Anyway, so all this is to say I have a feeling this is about software bugginess and not hardware resources.
00:45:16 John: It's a little trivia from, you know, you got all those UIKit folks have all these APIs with UI something in the name.
00:45:22 John: Well, back here on the Mac slash next, all our stuff begins with NS.
00:45:26 John: So you got UIScreen.main.
00:45:28 John: Any guess what NSScreen.main is on the Mac slash next?
00:45:32 Marco: Is it like the doc or something weird?
00:45:34 John: no i mean it's it's the same thing they're they're displays the monitor that contains the dock all right so nsscreen.main might seem well what's your guess what is the main screen on your mac well on a laptop it's the built-in one right but just assume you have a desktop like think about next because this is an api from like the next day so you have a next computer it's got it's got monitors there's no built-in monitors there's no next laptop so those that would be awesome uh nanoraptor please make me a next laptop um yeah what's what's the nsscreen.main
00:46:03 John: hmm i guess you have to be a mac user for the the obvious thing that would come to mind for me is nsscreen.main is the screen with the menu bar right right of course modern versions of mac os screwed that up by putting the menu bar on all the screens remember they made that change a while back it used to be that the menu bar was only one screen and in the little displays arrangement you could drag the little menu bar to two different screens to to bless one of them you can still do that i think to set the primary display if i'm not mistaken right wouldn't you think that would be nsscreen.main
00:46:28 John: i would assume yeah but it is not it is absolutely not right so no to apple's credit in the documentation it says the main screen is not necessarily the same screen that contains the menu bar uh and by the way the main screen you know the one with the menu bar has its origin at zero zero with the coordinate system and all that stuff the coordinate system on screens on the mac is super weird yeah no that's not nsscreen.main can you guess how you find that the screen with the menu bar on it if it's not nsscreen.main
00:46:55 Marco: I don't know.
00:46:57 Marco: I mean, I assume you have to do some NS workspace hack or something.
00:47:01 Marco: I don't know.
00:47:01 Marco: What is it?
00:47:02 John: No, NSScreen has a screens plural method that returns a list of all the screens, and the one with the menu bar is the first one.
00:47:10 John: Oh, God.
00:47:11 John: It's the worst.
00:47:12 John: It's the worst.
00:47:13 John: It's so bad.
00:47:14 John: It's not what anyone will ever guess.
00:47:16 John: nsscreen.screens.first is the menu bar screen.
00:47:20 John: nsscreen.main refers to the screen containing the window that is currently receiving keyboard events.
00:47:25 Marco: Oh, so it changes constantly?
00:47:28 Marco: Oh, yeah.
00:47:29 John: Oh, yeah.
00:47:29 John: Which makes some kind of sense.
00:47:30 John: Oh, my gosh.
00:47:31 John: Oh, my gosh.
00:47:32 John: I mean, you can do everything you need to do with these APIs, but boy, so it makes me wonder, what does UIScreen.main refer to in a multi-screen iPad scenario?
00:47:41 John: Is it the screen that is receiving keyboard input?
00:47:45 Casey: Well, it's deprecated, like Marco said.
00:47:47 Casey: There is no UIScreen.main anymore for all intents and purposes.
00:47:51 John: I wonder what the replacement API for that's going to be.
00:47:54 Marco: It's terrible.
00:47:55 Marco: You have to basically go through the scene manager and all this stuff.
00:47:59 Marco: There's no singleton way to refer to it.
00:48:02 John: You can't arrange screens on the iPad, right?
00:48:06 John: It shows I've never used an external screen with an iPad.
00:48:08 John: You can't do like you can on the Mac where you arrange them.
00:48:11 John: One is half overlapping with the other on the right-hand side and stuff like that.
00:48:14 Casey: I would assume you can, but I darned if I know how.
00:48:17 Marco: I honestly have no idea.
00:48:18 Marco: This is something I like.
00:48:19 Marco: I have screens.
00:48:21 Marco: I guess I could plug in, but I have never even attempted this.
00:48:25 Casey: All right.
00:48:25 Casey: Speaking of screens, you want to tell me about when the always on iPhone screen goes dark?
00:48:30 John: We talked about this last show.
00:48:31 John: Two things having to do with us not liking the always on screen.
00:48:36 John: One of them was I put on my nightstand and it's lit up.
00:48:39 John: And we talked about different ways to deal with that in terms of sleep focus and things like that.
00:48:43 John: We'll get to that in a second.
00:48:44 John: But Apple has a document on this that we got a link to last time.
00:48:46 John: I think we even talked about it on the show, but I just wanted to read off the items.
00:48:49 John: If you just turn on the always-on screen and don't do anything special to it, there are scenarios where even though you have always-on screen on, the screen will turn off.
00:48:59 John: And what the Apple document says, always-on display goes dark when you don't need it.
00:49:02 John: To save battery life, the display is completely dark when...
00:49:06 John: Your phone is lying face down.
00:49:08 John: Your phone is in your pocket or bag.
00:49:09 John: Sleep focus is on.
00:49:10 John: Low power mode is on.
00:49:11 John: Your phone is connected to CarPlay.
00:49:12 John: You're using continuity camera.
00:49:14 John: You haven't used your phone in a while, parentheses.
00:49:17 John: Your phone learns your activity patterns and turns the display off and on accordingly, including if you set up an alarm or sleep schedule.
00:49:23 John: And finally, your phone detects that you moved away from it with a paired Apple Watch.
00:49:27 John: Always on display will turn on when your Apple Watch is close to your phone again.
00:49:30 John: So the phone is trying hard not to bother having it's always on screen on when it's pretty sure.
00:49:36 John: You're not using it or you're not going to possibly look at it.
00:49:40 John: So kudos for Apple figuring out all that stuff.
00:49:42 John: But then the scenario I was describing doesn't fit any of those except for the sleep focus thing, which if you don't want to use smoke foes, that won't work.
00:49:48 John: And the whole learns your activity patterns.
00:49:52 John: Obviously, I don't have the patience for that.
00:49:53 John: If I eventually learn my activity patterns, oh well.
00:49:56 John: Um...
00:49:57 John: But yeah, but the other way to deal with that is black and white, always on lock screen.
00:50:02 John: So if you go to settings, focus, select one of your focus modes options, there is an enabled dim lock screen option.
00:50:09 John: And when you're in that focus mode, your lock screen will basically be all black, but just with like the time and other stuff.
00:50:15 John: And I'm not sure if it works with widgets, but this is selectable on a per focus mode basis.
00:50:19 John: It doesn't have to be your sleep focus.
00:50:21 John: You can do this for any focus mode.
00:50:22 John: If you're interested in having a darker,
00:50:25 John: lock screen in the always on feature.
00:50:28 John: Try that out.
00:50:29 John: Otherwise, you can rely on apparently Apple smarts to eventually figure out when you're probably not using the phone.
00:50:36 Casey: So I went to the Apple Store twice today.
00:50:39 Casey: First of all, Apple Stores, even not remarkable ones like mine, apparently have the Apple Watch Ultra in stock to look at.
00:50:46 Casey: I shouldn't say in stock.
00:50:47 Casey: They have it available to look at.
00:50:49 Casey: They have display models.
00:50:50 Casey: And I briefly, very briefly put one on my wrist, and it is amazing.
00:50:55 Casey: It's freaking mammoth.
00:50:57 Casey: It is a monster of a watch.
00:50:59 Casey: I should have taken a picture, but I was trying to accomplish other things, which we'll talk about momentarily.
00:51:03 Casey: But it was huge.
00:51:04 Casey: I will say I liked the orange band.
00:51:07 Casey: I forget what it's called, like the adventure band or something like that.
00:51:10 Casey: But I thought that was pretty cool with like the titanium clip in it.
00:51:13 Casey: I did like that.
00:51:14 Casey: I didn't really play with the software on the Ultra, but holy cow, it's huge.
00:51:19 Casey: And I happened to be there with Aaron, and I think I heard this from Marco on one of the recent episodes of this very program, but maybe I heard it from somewhere else.
00:51:28 Casey: But I said, oh my gosh, this thing is enormous.
00:51:30 Casey: And Aaron said, I actually don't think it looks that bad.
00:51:32 Casey: And Marco, I think, had said a couple episodes ago, whatever you think when you look down at your wrist...
00:51:38 Casey: That's not necessarily what everyone else thinks, but oh my gosh, when I looked down, I was like, this thing is eight sizes too big.
00:51:44 Casey: It's just ridiculous.
00:51:46 Casey: Was that you, Marco, or am I making this up?
00:51:48 Marco: Yeah, watch fashion is very personal, and it varies a lot between who you ask.
00:51:54 Marco: If you ask the watch world how big of a watch is too big...
00:52:00 Marco: generally the only thing people can agree on is if the lugs which on a regular watch are like those little metal things that come up and down from the top and bottom that hold the strap on so if those extend over your wrist like on top and bottom that's generally considered too big um but the apple watch doesn't have lugs it has the you know the strap slots so it's kind of a different way to look at it but generally speaking like
00:52:25 Marco: whatever watch that you can rock with confidence will look good on you.
00:52:29 Marco: And so it's basically whatever you think looks good on you because if you think it looks good, you'll rock it with confidence.
00:52:35 Marco: So that's how actual watch fashion works is like if you think you're pulling it off, you're probably pulling it off.
00:52:42 Marco: And so you can kind of wear whatever makes you feel good and it'll be fine.
00:52:47 John: Fair enough.
00:52:47 John: I've seen a lot of people, you know, all the videos of people wearing the ultra and everything.
00:52:51 John: And I feel like the design of the watch,
00:52:55 John: not excuses but like explains or makes sensible its size because when i see people wearing it i don't know if i like i feel like they're using the what is it the pip boy or whatever from uh from the fallout games like it's like it's utilitarian and in the same way i would if i saw someone wearing like a you know a really old garmin gps watch you know ages ago or whatever it's like
00:53:17 John: oh yeah it's big and clunky but like that's what it has to be to do what it does and not that the ultra is big and clunky or anything but it's just like it looks tool enough you know what i mean like it looks like a it looks utilitarian it looks
00:53:34 John: i don't know it looks more like a practical thing that you're wearing for a purpose now granted i know it's just the same as any other apple watch with a bunch of extra features like it's not actually that different but when i see that and even like the flat screen when that helps with that when i see that i say oh i'm not i'm no longer judging it as a fashion accessory i'm now judging it like the same way if you saw someone running and they have one of those like uh straps to go across their chest for heart rate or whatever right but
00:54:01 John: You wouldn't like judge that as a fashion accessory and go, oh, I feel like that heart rate sensor is a little bit bulky.
00:54:05 John: Like, you know, it doesn't match their outfit.
00:54:07 John: It's like, no, it's a utilitarian thing.
00:54:09 John: And that's what I think when I see the watch.
00:54:10 John: And so I, not that I care what watches look like on people or whatever, but like, I think the Apple Watch Ultra looks really good in that role.
00:54:20 John: And, you know, again, maybe it's the flat screen that helps it.
00:54:22 John: I see it as a little computer on the wrist and I go, hey, that's a cool little computer you got on your wrist.
00:54:25 John: I don't think, hey, that's a giant watch.
00:54:27 Casey: But why did I go to the Apple store, you wonder?
00:54:29 Casey: Well, I had ordered myself and Aaron solo loops with our new Apple Watch Series 8s.
00:54:36 Casey: So these are the things that they're made of similar material to the sport band.
00:54:40 Casey: Not exactly the same, but similar material to the sport band that is like the quintessential Apple Watch band.
00:54:45 Casey: But they're a little bit stretchier and there's no like clasp or anything like that.
00:54:50 Casey: It's just one single piece of this fluoroelastomer rubber, whatever it is.
00:54:54 Casey: And I actually think they look really good and feel really nice because instead of having all the lumpiness where you have the band folded over on itself on the sport loop or whatever it's called, it's just a single piece of rubber, for lack of a better way of describing it.
00:55:07 Casey: And I really do like it.
00:55:08 Casey: And I had one for my Series 6, and I liked that until it eventually got a crack and then one day split in two, which was a little undesirable, but, you know, what are you going to do?
00:55:17 Casey: Um, so anyway, so when I ordered my Apple watch and Aaron's Apple watch, I, I did the thing where you print out a sheet of paper and you cut out like a faux Apple watch, like sizing tool.
00:55:29 Casey: And I tried this and I tried it with Aaron and tried it with me and I got it all wrong.
00:55:32 Casey: I just got it completely wrong.
00:55:33 Casey: And I had ordered a size seven for myself and it turns out that I actually prefer a size five.
00:55:38 Casey: So I was not even close for Aaron.
00:55:40 Casey: I
00:55:43 Casey: So we, Aaron and I went to the Apple store because we wanted to just exchange these bands for the exact same thing, but different sizes.
00:55:51 Casey: I had a vague recollection that this was a nightmare two years ago when I had last gotten an Apple watch and these solo loops were brand new.
00:55:59 Casey: I had thought that Apple had said, oh, no, no, no, we'll fix this.
00:56:03 Casey: It's going to be better.
00:56:04 Casey: It's going to be better.
00:56:04 Casey: Because again, two years ago, it was not better.
00:56:08 Casey: It was quite bad.
00:56:09 Casey: So I go to the Apple store and I talk to a very nice person and I said, oh, I'd like to exchange this.
00:56:13 Casey: And they said, okay, I'm going to need the watch too.
00:56:17 Casey: I said, sorry, what?
00:56:19 Casey: Yeah, because you bought it with a watch, I'm going to need to return the watch.
00:56:23 Casey: I'm sorry, what now?
00:56:24 Casey: That's still a thing?
00:56:25 Casey: Yeah, yeah, yeah, yeah.
00:56:26 Casey: It's because it's in the system, blah, blah, blah, blah, blah, blah.
00:56:29 Casey: Okay.
00:56:30 Casey: So I go home and I do what any privileged person does.
00:56:35 Casey: I write a moany tweet about it.
00:56:38 Casey: And a bunch of people, including Marco, replied to it.
00:56:41 Casey: And Marco confirmed what I had thought, which was, wait a second, didn't they say this got better?
00:56:46 Casey: And then a bunch of people replied to the two of us saying, yes, they did.
00:56:50 Casey: In fact, almost exactly two years ago, on the 24th of September in 2020,
00:56:55 Casey: There is a post on TechCrunch where Apple is quoted as having... It says, Apple has since clarified and addressed some of the issues.
00:57:02 Casey: For starters, users can now just replace the band rather than the entire watch, either in-store or by mail.
00:57:07 Casey: That's exactly what I want to do.
00:57:09 Casey: Like, that's what I want.
00:57:11 Casey: So, okay, fine.
00:57:12 Casey: So we drive the, like, 15 minutes back home, which isn't, like...
00:57:16 Casey: As I said to some friends of ours, like if this is the biggest of my problems today, I'm doing pretty frigging well.
00:57:21 Casey: But in the heat of the moment, it's really damn frustrating.
00:57:24 Casey: So nevertheless, we drive home.
00:57:26 Casey: I collect her.
00:57:27 Casey: I take Aaron's watch off of her wrist.
00:57:29 Casey: I leave mine on my wrist because I figured what's the worst thing.
00:57:33 Casey: I'll just take it off and hand it to him.
00:57:34 Casey: I collect the Apple Watch boxes.
00:57:36 Casey: I put them all back in the foldy thing.
00:57:37 Casey: So for context here.
00:57:39 Casey: As of a couple of years ago, when you get an Apple Watch and band, what they do is they take a Apple Watch box that has the watch and the charging cable and nothing else.
00:57:49 Casey: And then they put that below or above or whatever next to a band box, the same band box you would buy if you just went and bought that band straight out of nowhere.
00:57:58 Casey: You know, you didn't buy a watch.
00:58:00 Casey: You just bought the band.
00:58:01 Casey: It's the same thing.
00:58:02 Casey: They put both of these together in like this kind of origami papery thing, and then they fold that all up, and that becomes your purchased Apple Watch.
00:58:10 Casey: It's very clever.
00:58:11 Casey: But the thing is, that makes me think, why can't I just take the band box and bring it in and return that?
00:58:17 Casey: Well, oh no, my friend, oh no.
00:58:19 Casey: So fine.
00:58:20 Casey: Aaron needed to go pick up Michaela from preschool.
00:58:22 Casey: So she went off her way.
00:58:23 Casey: I went back to the Apple store and I talked to someone who I think was a little more senior.
00:58:27 Casey: I said, okay, I'd like to return or exchange these two.
00:58:31 Casey: And oh yeah, I remember you from before.
00:58:32 Casey: Yeah, yeah, yeah.
00:58:33 Casey: So what ended up happening was they didn't
00:58:36 Casey: need the watches because the impression they had given me actually the same fellow had given me earlier in the day was i needed to literally return the watch and potentially maybe even get a new one in order to just exchange these bands i don't return the bands i don't want to do a totally different band i just want a different size 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 with my watch my wrist
00:59:00 Casey: And I say, OK, I'd like to do these exchanges, please.
00:59:02 Casey: Oh, well, we don't have a I forget the technical term for it.
00:59:05 Casey: We don't have a starlight blue band.
00:59:06 Casey: We have a midnight blue band.
00:59:09 Casey: OK, fine.
00:59:10 Casey: Can I can I see that one, please?
00:59:11 Casey: I bet it looks the same.
00:59:13 Casey: Sure enough, it looks exactly the same.
00:59:16 Casey: But so they bring me the two bands that I want.
00:59:19 Casey: And he ended up scanning a barcode on the back of the Apple Watch boxes and
00:59:24 Casey: but could not have cared less whether or not there was anything but air in those boxes.
00:59:29 Casey: It was the weirdest thing.
00:59:32 Casey: And I feel like Apple has a record of my purchase and the serial numbers associated with my purchase.
00:59:37 Casey: Like, why are we still doing this two years on?
00:59:40 Casey: Am I the first person to have bought the wrong solo loop?
00:59:44 Casey: I can't imagine I am.
00:59:46 Casey: Like, again, in the grand scheme of things, it's fine.
00:59:48 Casey: But it was just so startling because...
00:59:50 Casey: you know, Aaron's been a little perturbed with some of the things that, that have been going on with her phone and her watch and whatnot, like her series six, the battery life has just become atrocious over the span of two years.
01:00:02 Casey: Um, the battery life on her 14 pro has actually been very disappointing to the point that she turned off the always on display and still is complaining about her battery life as compared to the 13 pro.
01:00:12 Casey: So Aaron's already fired up about everything.
01:00:15 Casey: And
01:00:15 Casey: she keeps saying to me and she's kind of right.
01:00:18 Casey: Like what happened to the, it just works.
01:00:20 Casey: It just, we make it easier for the customer.
01:00:22 Casey: Like, Oh, it's just, everything is roses and daffodils.
01:00:25 Casey: Like that's, that's just not the apple today.
01:00:28 Casey: And that sucks, dude.
01:00:30 Casey: Like that's just not cool.
01:00:32 Casey: And it makes me sad.
01:00:33 Casey: And again, this in the grand scheme of things, not a big deal.
01:00:36 Casey: Like it really could be so many way worse in so many inches, infinite ways.
01:00:41 Casey: And
01:00:41 Casey: But I just, I miss the time when, and maybe I'm making this up, maybe it's rose-colored glasses, but I feel like I could go to the Apple store years and years and years ago and know I was going to have a decent experience.
01:00:51 Casey: Another silly example, when I picked up my phones, or, you know, her phone and my phone, when they were brand new,
01:00:57 Casey: i got like the real not a runaround not like marco had to do at staples back in the day but like oh do you want a screen protector no i'm good are you sure you don't want a screen protector yes i'm fine well if you get a screen protector and we put it on ourselves then there's like this super fancy guarantee from belkin or whoever makes no really i promise i'm can i offer you the gold plated screen protector which will protect your screen even faster right exactly what about do you want apple care are you sure you don't want apple care no we're
01:01:23 Casey: Really, really, really?
01:01:25 Casey: Are you really sure you don't want to application?
01:01:27 Casey: And it's like, on the one side, the complimentary way of looking at this is they're just trying to help me out.
01:01:33 Casey: And I can make a solid argument that that's legitimately what they were trying to do.
01:01:37 Casey: But I don't know, man.
01:01:39 Casey: It just felt kind of slimy.
01:01:42 Casey: Leaving aside the fact that Californians don't believe in lines slash queues, leaving aside the fact that you walk in and just look like a frigging dummy until somebody takes pity on you and asks what you need, leaving all that aside, it's just not great in an Apple store these days.
01:01:57 Casey: And it stinks.
01:01:58 Casey: And I just I feel so bad.
01:02:00 Casey: I kept thinking to myself, you know, the last place I lived before here is Charlottesville, Virginia, which has a bad reputation because of the gross people that came in and did terrible things in 2016.
01:02:08 Casey: But it's actually a very, very wonderful place to be.
01:02:11 Casey: It's super progressive.
01:02:12 Casey: I really miss it.
01:02:13 Casey: And Charlottesville is about an hour west of where I am.
01:02:16 Casey: And the nearest Apple store to Charlottesville is my store.
01:02:20 Casey: So imagine I had driven to Richmond for an hour, gone to the Apple store, wanted to exchange for my band, and they say, okay, screw right off.
01:02:28 Casey: You have to go home and get your box for your Apple Watch.
01:02:31 Casey: How annoyed would I be?
01:02:33 Casey: And there's places in Virginia, which is not a small state, and granted, a lot of Virginia is relatively rural, if not very rural, but there are places that have people.
01:02:40 Casey: I promise, they exist.
01:02:42 Casey: Despite what John thinks, people exist below the Mason-Dixon.
01:02:45 Casey: And so, like Roanoke, Virginia, Blacksburg, where I went to school, the nearest Apple stores to these places are either mine, which is like two, two and a half, three, three and a half hours away, or somewhere in North Carolina.
01:02:56 Casey: Like, it's just, I can't fathom how upset I would be
01:03:01 Casey: if I had made one of these drives and been turned away because he just needed to scan a barcode.
01:03:07 Casey: It's so off-putting, and it just, I don't know, bums me out.
01:03:11 Casey: This week's episode is brought to you by Tailscale.
01:03:13 Casey: Tailscale is, to use their own line, a secure network that just works, which honestly is true.
01:03:19 Casey: I've been a Tailscale user for the past several months, since before they said they were going to sponsor the show, and I can tell you it honestly is really, really good, and they can't pay us to say that.
01:03:28 Casey: So what is Tailscale?
01:03:29 Casey: Tailscale.
01:03:29 Casey: Well, it's a secure network across other networks.
01:03:33 Casey: So what does that mean?
01:03:33 Casey: Well, let's say you have a server.
01:03:35 Casey: Maybe it's at school or some cloud instance somewhere.
01:03:38 Casey: Maybe you have your own devices.
01:03:39 Casey: Maybe you have a Raspberry Pi or 6.
01:03:42 Casey: Maybe you have a Synology or something.
01:03:44 Casey: One way or another, if all of these devices are on your same tailscale network, you can communicate between them as though you're on the same network.
01:03:53 Casey: That means if you're sitting on a park bench slash picnic table in the middle of nowhere, as long as you're connected to your tailscale network, you can reach all of these other devices and servers and whatnot as though you're on the same network.
01:04:04 Casey: It is amazing and for all intents and purposes, completely transparent.
01:04:09 Casey: And what I really love about Tailscale is that it is completely free for personal use if you have 20 devices or less.
01:04:15 Casey: So what you can 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:23 Casey: And they also wanted me to tell you that it makes a lot of other things really simple, too.
01:04:27 Casey: For example, if you want to do the whole SSH key exchange dance, Tailscale can manage that for you and make it extremely easy and extremely transparent.
01:04:35 Casey: So a lot of people like me thought of Tailscale as just a VPN.
01:04:39 Casey: It kind of sort of is a VPN, but really what it's about is linking all your devices irrespective of what network they're on.
01:04:47 Casey: And that makes it super duper cool.
01:04:49 Casey: So please visit tailscale.com, T-A-I-L-S-C-A-L-E.com and check it out.
01:04:55 Casey: Like I said, it is free if you are using it for yourself and you have 20 devices or less.
01:05:00 Casey: Thanks to Tailscale for sponsoring this week's episode.
01:05:06 Marco: This past weekend, we had a wedding in our family.
01:05:10 Marco: And people who have been listening for a very long time might remember that a long time ago, my wife was a wedding photographer.
01:05:17 Marco: And during this time, I would be her second shooter.
01:05:20 Marco: So she was the main photographer, but I'd be like, you know, standing off to the side with a long lens, like sniping pictures of people when they were smiling and not looking at me.
01:05:28 Marco: And so we were at a family wedding and we were not the photographers.
01:05:35 Marco: They had other professional photographers there doing it.
01:05:39 Marco: But I was like, well, I might as well stick the 90 millimeter lens on my Sony and try to get some good pictures.
01:05:45 Marco: And I also use the iPhone, the 14 Pro.
01:05:48 Marco: And so this is the first time
01:05:51 Marco: I had actually used a big camera in a while.
01:05:56 Marco: So this was my Sony a7R III, I think.
01:05:59 Marco: I think it's a III, yeah.
01:06:03 Marco: Yeah, because I don't think I've got the IV.
01:06:04 Marco: Anyway, a7R III...
01:06:07 Marco: with the 90 millimeter sony prime macro lens which is an awesome lens extremely sharp handles pretty well a little slow to focus but otherwise you know pretty good it's the longest sony prime i had and so i mounted that and i was going to be you know from audience distance to everything so i couldn't like because there was like a real photographer there my goal was to never be in the real photographer's way
01:06:30 Marco: Because I know from having shot weddings, that's really annoying when someone who's not the photographer, who's just an attendee of the wedding, is walking in front of you, stealing your shot, or constantly being in your shot with their big cameras sticking up.
01:06:44 Marco: So I knew to stay out of their way and stay out of their shots and everything.
01:06:47 Marco: Um, so shot a bunch of pictures with the Sony and I quickly wanted to pick through and, you know, edit them in some basic way and give them to them like, like, you know, the next day.
01:06:58 Marco: Um, so I had kind of a quick turnaround, so happy that I had the laptop.
01:07:03 Marco: I had my 16 inch with the SD card slot.
01:07:06 Marco: oh what so nice so pop the card out do that all that i first tried you know we talked a while maybe a year or two ago we talked about like photo ingest apps uh you know apps that would be better than apple photos at picking through pictures from a camera card like or from a shoot like picking through and quickly like deleting the ones that were blurry or you know you have a multi-shot burst and delete the the one or two that aren't as good and keep the other one like being able to quickly review photos like that and and like you know pick and choose and
01:07:35 Marco: without first importing them all into Apple Photos and having them all cluttering up your library and everything else.
01:07:41 Marco: I remember back when we did that, I was not super thrilled with things I had tried.
01:07:46 Marco: And then right afterwards, people all wrote in to say, try Photo Mechanic.
01:07:50 Marco: Well, it took me a year or two, but here we are.
01:07:53 Marco: This was the next time.
01:07:55 Marco: So I tried Photo Mechanic.
01:07:57 Marco: It was indeed very fast to load all the thumbnails.
01:08:01 Marco: It was not at all for me.
01:08:03 Marco: It was perfect.
01:08:05 Marco: It's like this is an app designed for very specific workflows that are way more specific and needy than what I needed, which was I just want to quickly look through these photos and pick the ones that are that are good and then import them into something that can edit them in raw form to look nice.
01:08:25 Marco: I haven't used Adobe Lightroom in a very long time.
01:08:28 Marco: It was my preferred app to do that in the past.
01:08:30 Marco: If I did this on a regular basis now, I'd probably go back to it, but I didn't even have it installed.
01:08:35 Marco: I didn't want to bother installing it.
01:08:36 Marco: So I'm like, all right, let me just, I'll pick through things with Photo Mechanic, which I eventually figured out how to do.
01:08:41 Marco: And then I imported them all into Apple Photos on the Mac.
01:08:46 Marco: to edit the raw and I had very little time to do this so I wanted to basically like hit the auto light button on all of them do a couple of minor like you know mostly like pull the shadows up on the ones that needed it you know a couple of slight white balance tweaks but I'm not doing heavy editing you know just some very quick basics so I can get these photos all to them and then tell them like hey if there's any any of these that you really love let me know and I'll like really do a nice edit on them
01:09:14 Marco: This process reminded me of just how painful so much of this is.
01:09:20 Marco: Figuring out how Photo Mechanic works and then getting these photos into Apple Photos.
01:09:24 Marco: And then Apple Photos, the editing interface, it has gotten a little bit less hostile over the last couple of years.
01:09:32 Marco: But it would do things like occasionally lose the base file for the photo.
01:09:39 Marco: I edited about 150 photos is what I ended up with.
01:09:42 Marco: and then i i would go back to like drag them all out as jpegs to send somewhere and it would it would only have like 140 where what happened to the other ones or i drag them out it would give me an error message saying you know these nine files or whatever you know had errors too bad what what error who knows too bad um and so and where and then when i eventually figured out like they were missing their originals what happened to them like
01:10:07 Marco: i'm doing this all like on one mac like locally like what happened to the files eventually i finally fight it and i do all my edits and i get i get to the point where okay i'm ready to add these to the shared album you know that we all that we're all putting all these photos in
01:10:28 Marco: I try to do it, and I get a random error message with an error code number.
01:10:34 Marco: I eventually find that it is apparently an undocumented limitation that you can't add RAW photos to shared albums within Apple Photos.
01:10:46 Marco: Whoopsies.
01:10:47 Marco: Even though Apple Photos can operate on RAW, it even badges it with a little RAW icon so you know.
01:10:53 Marco: There also seems to be no option to convert RAW to JPEG inside of Apple Photos.
01:11:00 Marco: If I wanted to add these to the shared album, apparently I can't do that.
01:11:04 Marco: Well, that sucks.
01:11:06 Marco: Okay, then give me an option to convert them to JPEGs.
01:11:08 Marco: Nope.
01:11:09 Marco: So here's these photos that I put in here.
01:11:12 Marco: They sync everywhere.
01:11:14 Marco: They're viewable everywhere.
01:11:15 Marco: They can be edited everywhere.
01:11:17 Marco: But I can't add them to a shared album.
01:11:19 Marco: Okay.
01:11:19 Casey: So did you retro-batch them all or something like that and then re-ingest?
01:11:24 Marco: I exported them all.
01:11:25 Marco: out of the app by dragging into a folder which created jpegs for all of them i deleted them all out of my photo library in raw form i still had the original raw files of course but you know deleted them out of the out of apple photos in raw went to the like you know trash can or whatever it's called in apple photos
01:11:43 Marco: delete deleted them out of there so they're really gone because otherwise it would consider the duplicates because it considers duplicates even if they're in your trash thanks um and then finally re-imported them as jpegs and then finally it all was shareable and worked
01:11:59 Marco: So that's how to do that in case anybody wants to.
01:12:02 Marco: And this whole thing just reminded me like, you know, the weird limitations, the loss of files, which was scary, the nondescript error messages that didn't give any information.
01:12:13 Marco: Apple Photos is just horrible for anything that was not shot on an iPhone.
01:12:17 Marco: It is actively hostile towards any other camera's photos.
01:12:21 Marco: It is especially hostile towards raw handling, which is a shame because Apple has the software capability to do that.
01:12:28 Marco: They had it with Aperture long ago.
01:12:29 Marco: Photos has raw editing built in.
01:12:32 Marco: Frankly, if I really wanted to do a good job of it, I think Lightroom is a better raw editor.
01:12:37 Marco: But regardless, you know, a separate day.
01:12:40 Marco: This is just so hostile.
01:12:41 Marco: And I'm glad I don't do this on a regular basis because it's very frustrating because
01:12:47 Marco: And that being said, when I looked at the pictures of that day, when I compare the iPhone pictures versus the Sony pictures, the Sony pictures kick the iPhone pictures asses so hard in so many ways.
01:13:03 Marco: Not always, mind you.
01:13:04 Marco: Like, where the iPhone still shines and will probably always be better than any other camera...
01:13:10 Marco: is areas where computational photography really can benefit so that's things like um hdr where there is massive exposure range in the shot and yes you can like you know expose to the highlights and then try to bring up the shadows and all that you know you can do that with raw editing but you have to do that it's it's a lot of work and it's still tricky and you still it's still hard to achieve certain dynamic range um with like regular cameras um
01:13:38 Marco: Whereas the iPhone can do super fast multi-shot bursts that are merged instantly and perfectly into one shot.
01:13:46 Marco: It can do things that standalone cameras really can't do still.
01:13:49 Marco: So there were certain areas where the iPhone camera did win, especially as light got lower.
01:13:57 Marco: And I cranked the ISO up as far as I knew that I could on the Sony.
01:14:02 Marco: Did as much as I could with high ISO, wide open shooting, image stabilization.
01:14:08 Marco: But in low light, the iPhone, with its computational chops, was still able to do a much better job.
01:14:15 Marco: Obviously, video, the iPhone, is a much better job.
01:14:18 Marco: But the well-lit photos I could get with that 90mm lens, oh my god, they looked so good.
01:14:28 Marco: And so much more detail, and such more pleasing optics, and even to some degree more natural colors compared to what the iPhone could give.
01:14:38 Marco: It was a very good but frustrating experience.
01:14:42 Marco: It was good in the sense like I'm really glad I brought this big camera to this important event for the family and I'm really glad they have these nice pictures now.
01:14:51 Marco: On the other hand, I kind of can't believe how crappy of an experience this still is all these years later.
01:14:57 Marco: And like, I think it was actually a better experience before iCloud photo libraries when we just had Lightroom versus Aperture versus iPhoto.
01:15:06 Marco: I think things were better back then.
01:15:07 Marco: Not in like a rose colored glasses, like I'm forgetting how crappy other things were.
01:15:12 Marco: No, I think in this particular area, they were just better.
01:15:14 John: They were definitely slower.
01:15:15 John: That's for sure.
01:15:16 John: I mean, I think.
01:15:17 John: Yes, that's true.
01:15:18 John: I'm going to I'm going to blame photo mechanic for your missing photo things.
01:15:21 John: I've literally never seen that.
01:15:22 John: And I exercise photos a lot, a lot.
01:15:24 John: And the exact workflow you're describing when I'm on my Long Island vacations where I come back from the beach and then I process photos so we can see them on the.
01:15:31 John: you know, process 1,500, 2,000 photos in time for us to be able to see a slideshow after dinner.
01:15:38 John: So I'm familiar with that workflow.
01:15:40 John: And Photos is not a great application.
01:15:43 John: I complain about it all the time, but it's never lost the base files.
01:15:46 John: So I think that was a photo mechanic thing.
01:15:48 John: Photos sucks at RAW.
01:15:49 John: I totally agree with that.
01:15:50 John: That's why I have the external editing support where I can use like that RAW power program or, you know, Pixelmator or all sorts of other external editors.
01:15:59 John: I don't
01:16:00 John: bother trying to do anything with raws in photos i have them in photos but when i want to do anything with them i take them out to another program that gives me way more control over that um you know and that's where we really feel like the the loss of aperture you mentioned they have this tech or whatever it's photos is still like they don't expose that type of stuff i'm sure it's doing stuff with the raws that's smart under the covers and it understands that they're raw but it's not a very detailed uh photo editor but i
01:16:28 John: for the actual edits that it's doing to the photos i think the the very limited set of editing controls they have there bugs aside and slowness aside do a pretty good job of being okay and my the only suggestion that would have made things go smoother for you would have been to just avoid photo mechanic which obviously you were trying out or whatever but like import directly into photos and then anytime you need to do stuff to work around the dumb limitations in the shared photo library thing or whatever
01:16:54 John: rather than dragging things out to get jpegs select them all into export because when you do export a i have more faith in that process like that it's not trying to do some big you know drag destination api blah blah blah but it's just like a batch process and b then you get to pick the details of what you're exporting so you can pick the jpeg compression level you can pick the size you can pick what metadata you want to include and
01:17:15 John: um it's just one dialogue it's not a big deal but i feel like i mean maybe your case doesn't matter because you just wanted jpegs and who cares to just take the defaults but it gives you way more control and then you could you know pull those jpegs back in um i think i was aware of the raw sharing thing but shared photo libraries down res everything you dump into them anyway so it just always feels like kind of like you're sharing thumbnails with people um
01:17:39 John: But yeah, that's another example of how photos – it's willing to acknowledge the existence of RAWs, but it does not prefer them.
01:17:46 John: And that's why, by the way, with my photo workflow is I kind of do – like when you said, hey, if you see any of these pictures that you like, let me know and I'll give you a good edit.
01:17:54 John: The way I deal with my photos is I do all of my – everything with them with JPEGs.
01:18:01 John: And then after I've done all of my things and I favorited them or whatever –
01:18:05 John: anything that i favorited i go pull the raws for those and dump them into the library so i have the jpeg plus the raw and the raw is not edited but the jpeg is so i have like basically like this and this is only with the advent of your fancy camera that you sent me where i shoot in jpeg plus raw on two separate cards at the same time
01:18:22 John: i pull the raws in as the uh you know this photo is a favorite it was good enough for me to invest all this time in editing and also i have the raw which i would need to re-edit to match the jpeg if i wanted to but it's my backstop against like i have the best quality version of this as i can um and in practice most of the time if you have your jpeg settings cranked on the camera the jpeg is fine but every once in a while i'll have a favorite and be like oh
01:18:46 John: this would be better if only i could pull those shadows up a little bit and then i chuck the jpeg and go right to the raw i'm like but i can and you know so but most of the time the jpegs are good enough but yeah i really wish i really wish uh photos was better better in a lot of ways but better about understanding raws is definitely a big one
01:19:02 Casey: You said, Marco, that you were really pleased with the output of the big camera.
01:19:07 Casey: Did you enjoy shooting on the big camera?
01:19:08 Casey: Because when I do get out my big camera, which is considerably less fancy than what you're talking about, I find that not only do I actually kind of enjoy shooting on it and kind of not in several different ways, but certainly, especially like you were saying, in a well-lit day,
01:19:25 Casey: Because I find that for my camera, and I think it would be much, much better with the Sony, but for my camera, which is an Olympus Micro Four Thirds, it falls on its face when the light gets low, and the iPhone is just so much better in low light.
01:19:38 Casey: But in daytime, man, even my Micro Four Thirds really can capture a phenomenal picture.
01:19:44 Casey: And in a lot of ways, I enjoy having something big and heavy that I have dials and knobs and things to focus on what I'm doing.
01:19:53 Casey: Do you enjoy that at all?
01:19:54 Casey: Do you enjoy the tea ceremony, dare I say, of having a big camera?
01:19:57 John: It's not a tea ceremony.
01:19:59 John: Those knobs actually do something.
01:20:02 Casey: Anyway, I'm just trying to make a joke, John Jesus.
01:20:04 Casey: But anyway, the point is, did you enjoy using the big camera?
01:20:07 Casey: Do you think this would cause you to bring it out more often?
01:20:09 Casey: Or was this kind of like a burden that you felt was worth it in order to get the output on the other end?
01:20:14 Marco: I enjoyed parts of it.
01:20:15 Marco: I mean, in certain ways, I did feel like I was fighting with it.
01:20:19 Marco: And part of that was just like, you know, certain choices or certain advancements that, you know, this is now a somewhat old camera body that is missing on some of the newer stuff.
01:20:28 Marco: Autofocus was definitely one area where this was not a great combo.
01:20:33 Marco: I don't know if that's because the lens has like, you know, it's a macro lens.
01:20:37 Marco: So it has a very different kind of focusing system than like a high performance sports lens would have.
01:20:41 Marco: Um, so it's, you know, it was a little slow.
01:20:44 Marco: It often just like the camera often just chose wrong, like what to focus on.
01:20:47 Marco: Um, so that was not great.
01:20:49 Marco: It was not great at tracking motion.
01:20:51 Marco: Like if, if I was taking a subject, taking a picture of a subject, like walking down the aisle while they're moving diagonally towards me or away from me.
01:21:00 Marco: Um, and so it has to like track the focus between, you know, shutter shots or whatever, as they're moving, you know, since I half pushed the button to focus it.
01:21:10 Marco: So,
01:21:11 Marco: In areas like that, the focus performance was hard, and there's a lot of shots where I had the light, I had the speed, and I just missed the focus, usually because of subject motion.
01:21:24 John: Did you do a firmware update before you went?
01:21:26 Marco: Of course not.
01:21:27 Marco: Why would I do that?
01:21:28 John: Because the software has changed significantly since you got that camera.
01:21:32 John: Although it sounds like your limitation might have been the lens.
01:21:35 John: That's kind of why when I got my fancy lens, I was excited to get it because it was the latest and greatest and their focusing motors get better and better.
01:21:43 John: And it sounds like yours is just not even when it was new, it was not really built for this purpose.
01:21:47 John: But yeah, it's not.
01:21:48 John: That said, the software for, you know, object tracking and continuous autofocus or whatever has only improved over the years.
01:21:56 John: And yeah, you should have probably done a firmware.
01:21:58 John: Remember I talked about how I thought this camera didn't have pet eye detection, but then I did the firmware update and it did.
01:22:03 John: Yeah, software marches on.
01:22:05 John: It's too late now, but check how far behind your firmware is on that camera.
01:22:09 Marco: I'm probably better off not knowing.
01:22:14 Marco: Before the next wedding.
01:22:15 Marco: Update it for me.
01:22:19 Marco: I love the experience of using it.
01:22:21 Marco: At certain times where the lighting situation in certain times was fairly challenging because there was a lot of
01:22:27 Marco: like in and in the reception there was a lot of backlighting because there was like a big open door uh you know there was situations like that where like i i knew i wanted to like you know manually adjust the exposure and i knew that you know by my thumb is a hardware knob and i can just turn it and get like you know a plus one or a minus one exposure like really easily by you know turning this knob three clicks and i know i'm gonna get that and it's displayed in the viewfinder and i don't have to like put it down or check or go into a menu or anything like that
01:22:53 Marco: So having that kind of – the muscle memory and physical controls is extremely pleasing when you're doing something like this, and you can just do stuff faster.
01:23:03 Marco: I knew that I wouldn't have to worry about things like storage or battery life because I knew the capacity of the camera were massive, and I knew I'd be fine all day.
01:23:12 Marco: I didn't have to monitor everything and baby it.
01:23:14 Marco: Um, so all that was great.
01:23:17 Marco: Um, I loved having, having quick review where I could just, you know, if I, if I took a shot and I wasn't sure, like, am I, am I going fast enough to get this sharp?
01:23:25 Marco: I could just hit the little play button and zoom right in and, and, you know, two button presses.
01:23:28 Marco: I could tell instantly, did I get this?
01:23:30 Marco: You know, is this sharp or not?
01:23:31 Marco: Ultimately though, I, I did miss a lot of the computational advantages.
01:23:35 Marco: Like again, like the, the exposure HDR, that's what I really, really missed, um, overall.
01:23:41 Marco: But, um,
01:23:42 Marco: I did enjoy the process to some degree.
01:23:49 Marco: First of all, I'm not artistic enough or a good enough photographer to want to do photography as a general hobby.
01:23:56 Marco: And that's why for almost all of my day-to-day use, the iPhone is way more than I actually need.
01:24:02 Marco: And I appreciate it and I use only it almost all the time.
01:24:05 Marco: But when there's a really important family event like this, I did really enjoy having this much more specialized tool for the job.
01:24:15 Marco: Even though, as John said, my lens was definitely not meant for this job.
01:24:19 Marco: But I really did enjoy having this there and playing this role, in part because it meant I didn't have to dance, because I had something else to do.
01:24:28 Marco: Amen, brother.
01:24:31 Marco: And in part because I knew that
01:24:33 Marco: I knew that somebody in the family would appreciate what I was doing.
01:24:36 Marco: I was trying to make this event better for people and make people happy, and I knew this would do a really good job of it.
01:24:44 Marco: And when I compare the iPhone pictures of the same event, they're fine, but they're not great.
01:24:51 Marco: These, they aren't all great.
01:24:53 Marco: They aren't even mostly great, but some of them are really great.
01:24:57 Marco: And the iPhone couldn't have gotten the pictures from here that were really great.
01:25:01 John: And by the way, both of you were saying like, oh, the iPhone does better in low light due to computational stuff.
01:25:06 John: Yeah, as long as you never look at those pixels because it's a mess down there.
01:25:09 John: Let me tell you, that computational stuff does not come for free and it just makes a hash out of people's faces.
01:25:14 John: If you zoom in even a little bit, not that you're pixel peeping even, but just like if you really like, you know, when we say like, oh, the iPhone did a good job in low light, it's doing its darndest to try to make it so the people's faces are visible and then you can see them or whatever, but they are basically oil paintings.
01:25:30 John: like they're not that it's not uh you get farther and farther away from uh the you know the photons that might hit your eye and it now becomes more like this uh abstract representation of what might have been there on the day which is what you want like when you're looking at on your phone at phone sizes that's exactly what you want hey here's all our friends and we're at this concert and you know you can see everyone's faces and recognize them and you can see the concert in the background and it's all lit well enough
01:25:57 John: But if you were to actually look at that photo on a big computer screen and see what the pixels that actually make up your friend's face, they're a monster.
01:26:05 Marco: Yeah, exactly.
01:26:06 Marco: So that's where it starts to fall apart once you actually need a lot of resolution and detail.
01:26:13 Marco: And phone cameras just cannot provide that.
01:26:15 Marco: They can simulate it in a way that looks really good on phone screens, which is how most of us care about stuff these days.
01:26:20 Marco: But...
01:26:20 Marco: When you have a situation like this where you want something more than that, the big cameras still win.
01:26:26 Marco: And I'm still – I'm very pleased with my big camera like once every three years when I actually need it.
01:26:35 Casey: Like I said, I enjoy getting my camera out from time to time.
01:26:38 Casey: But I find myself with each passing day reaching for it less and less often because it's just –
01:26:43 Casey: my needs, I find that it's just often not the best choice, especially, like I said, if the light is anything but perfect.
01:26:51 Marco: I will say, too, David Schaub underscore Mac in the chat brings up the obvious question here, that, you know, whether the raw, the pro-raw 48 megapixel images on the iPhone 14 Pro might be, you know, more competitive.
01:27:05 Marco: And
01:27:05 Marco: To be honest, I haven't tried them yet, but reviewers have said that the shot-to-shot time with ProRAW 48 megapixels is multiple seconds, and that's just too slow for this kind of context.
01:27:20 Marco: It seems like if you're setting up an artistic shot, maybe a landscape or some kind of still scene at night...
01:27:28 Marco: sure that sounds like a great idea um but for for like event photography where you're trying to shoot a moving event where timing matters and you can't have somebody just do something again it's just too slow and and you know the sony can fire off you know multiple shots a second and yeah i think i think what is it like 41 megapixels your camera and you could do like 10 at least 10 frames a second in raw i think something like that
01:27:50 John: as opposed to three seconds per frame yeah the reviews i saw of the 48 megapixel raw and i have taken a bunch of them myself it did a good comparison because they compared with the 13 pro and they like what i remember seeing was like a picture of sailboats uh like in a harbor or whatever and they showed the 48 megapixel next to the the iphone 13 pro 12 megapixel
01:28:08 John: and you could see so much more detail on the sailboats like you really saw the sort of mosaic oil painting pattern of the actual 12 megapixel sensor on the 13 pro and the 14 pro yeah it was noisy but like you could actually make out the various railings and lines and stuff that you could not see at all in the in the 13 pro so it you know those 48 megapixels are doing work for you to give you more detail to make the the pictures more resilient to let's say a crop or you know zooming in a little bit to see the details right
01:28:38 John: And I'm just taking some very sunny landscape photos with it in there.
01:28:42 John: The photos probably aren't good enough for me to waste 80 megabytes on them, but they do look pretty good.
01:28:49 Marco: We are sponsored this week by Memberful.
01:28:52 Marco: Monetize your passion with membership.
01:28:56 Marco: Memberful has everything you need as a content creator to run a membership program.
01:29:01 Marco: And it fully integrates into all the tools you're already using.
01:29:05 Marco: And they have all the different features that you might think your membership program should have.
01:29:09 Marco: Things like Apple Pay support.
01:29:10 Marco: Of course, listeners to our show probably want Apple Pay support.
01:29:13 Marco: Gift subscriptions, free trial support, hosting of things like private podcasts and other premium content, and so much more.
01:29:22 Marco: And what I love about Memberful is that not only does it take all these like kind of hairy, difficult, tedious problems off of your plate.
01:29:29 Marco: But they care about keeping you independent.
01:29:32 Marco: You retain control and ownership of all the branding everywhere, your audience, and your membership.
01:29:39 Marco: Payments even go directly to your own Stripe account.
01:29:42 Marco: So they don't want to lock people into just them.
01:29:45 Marco: And frankly, I wouldn't consider anybody else to run our membership program.
01:29:49 Marco: I would only go either self-hosted, which is probably something I should stop doing,
01:29:53 Marco: Or I go to Memberful because they just make everything so easy and they really align their incentives with yours.
01:30:00 Marco: They have a world-class support team ready to help you simplify your memberships and improve your conversions and grow your revenue.
01:30:06 Marco: They are passionate about your success.
01:30:08 Marco: You always have access to a real human at Memberful.
01:30:10 Marco: See for yourself why so many content creators have chosen to use Memberful for their membership programs.
01:30:17 Marco: And this gives them sustainable, recurring, diverse revenue.
01:30:21 Marco: So get started for free with no credit card required at Memberful.com slash ATP.
01:30:28 Marco: Once again, Memberful.com slash ATP.
01:30:31 Marco: Get started today for free with no credit card required.
01:30:35 Marco: Memberful.com slash ATP.
01:30:37 Marco: Thank you so much to Memberful for sponsoring our show.
01:30:40 Thank you.
01:30:43 Casey: Okay, let's do some Ask ATP.
01:30:44 Casey: We haven't had the chance to do some in quite a while, so let's start clearing the decks.
01:30:49 Casey: Steve Hallroyd asks, with the new always-on lock screen on the iPhone 14 Pro, do you think there's any increased risk of burn-in developing on the screens, or is burn-in no longer a potential problem for modern iPhone screens?
01:31:01 Casey: That's a great question, and I think of the three of us, John, you're probably most equipped, best equipped to answer.
01:31:06 John: So the always unlock screen does try to be dimmer than the regular screen and Apple touted their color adjustments.
01:31:13 John: So if you have like a person's face on the lock screen, it will try to make the colors look lifelike, even though it's dimming, whatever it's doing there.
01:31:21 John: But the key part is that they're dimming and burn in, uh, happens much more at higher brightness levels.
01:31:27 John: So the fact that they're dimming it down is helping to protect against burn in.
01:31:31 John: Is there an increased risk of burn in versus a screen that's off?
01:31:34 John: Yes.
01:31:35 John: Having the screen on increases your risk of burn in versus having a screen that's off, especially a screen where the background isn't changing and your lock screen, I think maybe some of them do rotate over time, but like there's not a lot moving or changing on your always on lock screen.
01:31:50 John: Um,
01:31:50 John: and the time does change digits but like if you have and because the user can pick whatever picture they want if they pick a picture that has a big bright circle on a black background or something i think there is an increased risk of burning uh that said we've had oled screens on phones for a while now and if there was because it's the iphone and because it's apple if there was any any epidemic of burn in from people just like having their status bar burn in or playing a game constantly or having facebook burn in i think we would have heard about it by now so
01:32:20 John: I think Apple's selection of the panels for their screen and their management of the brightness levels, particularly managing them, this is what televisions do as well, managing the OLED panel within the limits that will keep burning away.
01:32:34 John: Because lots of these panels can go way brighter than they're driven, but if you drive them to their absolute maximum brightness, you're going to get...
01:32:41 John: Right.
01:32:42 John: And so manufacturers have to choose how far do we want to push this part?
01:32:46 John: And I think Apple is very conservative in this regard, even with the always on screen.
01:32:50 John: So we'll see, you know, that they're always on screens are brand new.
01:32:53 John: The risk is increased.
01:32:55 John: But my read on the way Apple deals with OLED screens is that they are.
01:32:59 John: are always very conscious not to push the limits of what the panel is capable of and to avoid burning at all costs.
01:33:05 John: Because as you can imagine, that would be a big story and it would be a disaster when you sell several hundred million, billion.
01:33:11 John: I don't know how many iPhones Apple sells, but it's a lot.
01:33:13 John: So they're going to be real careful with it.
01:33:15 Casey: Thomas Ferraro writes,
01:33:38 Casey: Oh, man.
01:33:39 Casey: How many hours do we have available?
01:33:41 Casey: Is this good go all day?
01:33:42 Casey: I think, put very simply and kind of oversimplifying a bit, what I tend to do is whenever I'm doing almost anything, I like to create a branch.
01:33:54 Casey: Typically, I try to associate that branch with an issue in GitHub.
01:33:58 Casey: That's how I do issue tracking.
01:33:59 Casey: And then I'll do my work in that branch.
01:34:01 Casey: I'll check in whenever I feel like I'm at a decent stopping point or I've made a particular, pardon the pun, but development, you know, or I'm at a point that I may want to fall back to later.
01:34:11 Casey: I'll check into that branch.
01:34:12 Casey: And then I'm probably a little bit bananas, but I actually quite like issuing a pull request from me to me.
01:34:20 Casey: to get that branch merged back into main.
01:34:23 Casey: And I will go through that pull request similar to how I would do it at my last jobby job and look at the diffs and look at what's going on.
01:34:30 Casey: And I find that for me, that context switch of looking at the code within, you know, get the GitHub pull request, whatever, that actually really does help me find issues and bugs and problems and so on and so forth.
01:34:42 Casey: And so I really like that flow.
01:34:45 Casey: I think there is a name for this and it's one of the, like the flows that GitHub recommends that,
01:34:49 Casey: But basically, like I said, branch when you're doing things and issue a pull request to get things back into the main branch.
01:34:57 Casey: And I really like that.
01:34:59 Casey: And that really works well for me.
01:35:01 Casey: Obviously, everyone's different.
01:35:02 Casey: Marco, what do you like to do?
01:35:04 Marco: My main branch, I try to keep always shippable.
01:35:08 Marco: Whenever I'm doing something that is like a quick bug fix, I'll just work on the main branch and I'll commit it when it's done.
01:35:15 Marco: So I might be putting a commit in after a day of work, maybe, or maybe a little bit more, maybe a little bit less, depends.
01:35:21 Marco: But generally speaking, what is in the main branch
01:35:24 Marco: is shippable at any moment.
01:35:26 Marco: I can take what's in the main branch and send it to the app store.
01:35:29 Marco: Anything that I'm working on that may not be shippable yet.
01:35:33 Marco: So for whatever reason, so for instance, every, every June, when we get to do betas, I make a, you know, I had an iOS 16 branch and all my, and so I, I branched in June and I, you know, I, that branch is built with the new SDK.
01:35:46 Marco: It's built with the assumption that I'm requiring some new version of iOS, maybe 15, maybe 16.
01:35:51 Marco: And then I can start phishing deprecations and adopting some of the new APIs and stuff like that, using some of the new Xcode features for the project file in that branch and everything.
01:36:01 Marco: But then that branch is not going to get merged in until the GM or RC SDK is released right before the OS is released.
01:36:09 Marco: And then I merge it in and then I release it.
01:36:11 Marco: Branches for me are either things that aren't going to be ready for some time, like a future OS update.
01:36:18 Marco: or experiments that I'm not sure I'm going to keep.
01:36:22 Marco: So for instance, if I'm doing like a redesign of a screen, I'll make a branch for that.
01:36:26 Marco: Or if I'm doing like, you know, a revamping of the sync protocol, that's again, that's clearly a branch, because that's something that, you know, I'm not going to get into a shippable, definitely doing this kind of state for a little while.
01:36:39 Marco: And I'm going to want some commits in the
01:36:43 Marco: be able to send it to other people in test flight or something like that.
01:36:46 Marco: That is how I use branches.
01:36:48 Marco: I don't branch very aggressively, nor do I commit very aggressively.
01:36:52 Marco: I commit when something is done, whether it's a step along a road, like an OS thing, like a branch would be for, or whether it's a really simple thing, like, hey, I just fixed a stupid little bug that was too into code.
01:37:05 Marco: That's a commit.
01:37:05 Marco: But I don't use them as aggressively as most people do, from what I hear.
01:37:12 John: So having worked at big companies with hundreds, maybe thousands of developers and literal millions of lines of code, often in giant mono repos, I've been subjected to, let's say, lots and lots of different ways of dealing with version control in terms of branching models, how it integrates with issue tracking, how it integrates with projects and features, and just...
01:37:36 John: So many different ways, many of them motivated by whatever the exciting ideas or, you know, fads or trends in the industry are.
01:37:45 John: Sometimes it's just someone has an idea.
01:37:46 John: Sometimes it's just this was the founder of the company is the way they wanted to do it.
01:37:49 John: And when I heard Casey describing his thing, I always felt like you have like stories.
01:37:53 John: Stockholm syndrome for like you'd worked in a corporate environment so long that you were reproducing that in a project that you're just working on by yourself.
01:38:00 John: But, you know, there are some benefits to it.
01:38:02 John: But from my personal perspective is having gone through all of those different systems and branching models and different version pieces of version control software and everything.
01:38:11 John: One of the luxuries of working on a hobby level project by yourself is you do not have to subject yourself to all of the bookkeeping that was involved with all the various, you know, branching and feature models and issue tracking that you had to do in a corporate environment that you'd have to do in a project where you work with other people.
01:38:28 John: So it's it's a, you know.
01:38:31 John: pleasant thing to to realize that you're the only person working on it and the only thing you have to worry about is what makes you feel comfortable and to that end most of my use of version control in my little you know my dinky apps where i am the sole developer is motivated by surprise my desire not to lose data uh which you might not think would be a thing but
01:38:53 John: especially with programming when you're banging your head against some problem and you're working on it for a long time i get that feeling which is like if my computer went up in flames now i would not want to have to redo or refigure out what i just figured out right would i remember all the details because this has happened to me a few times in the past is why i have this motivation like your computer catches fire
01:39:13 John: no but just like you lose some work because usually just through to like a carelessness back in the early days of you know didn't hit save on the and didn't go to the floppy disk or something you know like all sorts of you know foibles where you're like i have to redo a probating task and you'd be surprised to or maybe not to see yourself go all through all the same things you'd go into the same three dead ends you went the first time you did it it's like couldn't i have just skipped to the end there or i went i re-implemented the solution i eventually figured out no apparently not apparently your brain has to make the same stupid mistakes again
01:39:42 John: So I always want to avoid that.
01:39:43 John: So my strategy around version control has a lot to do with the thought that, like, where are these bits?
01:39:50 John: Are these bits only on this SSD on my Mac?
01:39:54 John: In that situation, you know, if you're using Git, Git commit is not doing anything for you.
01:39:59 John: Oh, I made a bunch of commits, so I know the data is safe.
01:40:01 John: No, it's on your Mac's SSD.
01:40:04 John: And if that thing goes up in flames, oh, there goes all your Git commits.
01:40:08 John: You got to push, right?
01:40:09 John: Yeah.
01:40:09 John: And now once you're pushing, I'm like, oh, but if I got to push, that gets the bits off your machine if your origin is, you know, GitHub or whatever.
01:40:16 John: Gets the bits off your machine and onto another machine that is far away and hopefully not going to go up in flames at the same time.
01:40:22 John: But once you do that, you're like, yeah, do I want to push things to the...
01:40:25 John: The origin repo when I'm in the middle of stuff and I made a big mess of things.
01:40:29 John: Right.
01:40:30 John: And that gets you into the situation where you're like, oh, but then if I had made a branch for it, if it's a mess, it's fine.
01:40:35 John: Like all those disciplines that are so much more important when you're in a, you know, a multibillion dollar company with this really important giant code base with hundreds of developers, always keeping branches shippable, doing patches and, you know, on maintenance branches, feature branches, you know, all that stuff.
01:40:49 John: kind of becomes important as you an individual developer to give you the freedom you should never feel afraid to push to get the bits off your machine as an individual hobbies developer so if to give yourself that freedom you need to do all your work in branches do all your work in branches they're lightweight it's not a big deal your repos aren't going to be bazillions of lines of code
01:41:07 John: just to make a branch for everything that you want to do and that way you can make a big mess in that branch have totally non-compiling app have it be a giant mess that's the whole point of that branch is that you should never feel like oh you know i'm i'm stashing things or i'm just doing local commits no push push push push check that check mark in xcode that says do you want to also push to the remote repo yes you always want to push to the remote repo why so if your mac goes up in flames or crashes or you you know you don't lose any data right and so that's my strategy is
01:41:37 John: I never want to be afraid to push.
01:41:39 John: I do my major work in branches.
01:41:41 John: I don't have the discipline that I used to have in terms of branch management.
01:41:44 John: To give an example, I'm working on a, I made a branch for a feature that I wanted to add to switch glass, right?
01:41:49 John: And I called, I named the branch after the feature that I wanted to add.
01:41:52 John: And that branch became my 2.0 branch.
01:41:54 John: Like that's not a thing.
01:41:56 John: That's not a thing that would ever happen in the disciplined world of, you know, corporate software.
01:42:00 John: Cause that's just not, you don't accidentally find it.
01:42:02 John: But if you're a single person working on an app, pfft.
01:42:05 John: whatever like i'd already to implement the feature i'd already destroyed the app and made it totally broken and non-functional and everything about right so at that point uh you know and once i got the feature working i'm like ah this is just going to be the 2.0 branch that is a luxury you have as a lone hobbyist developer no one's going to tell you oh you shouldn't do that you should make a separate branch for that and nope tough luck i'm just doing it in the one branch that i have here uh and you know as i get closer i will you know push this up to the main line i will probably pull off a 1.x branch
01:42:34 John: uh unfortunately the mac app store policies don't allow me to do same things like continuing to maintain and patch 1.x can you imagine can you imagine if a mac app store understood the type of model especially since one of the reasons i'm not releasing 2.0 is because i have to bump the minimum system version so i would love to keep 1.0
01:42:50 John: alive and well and patched for people with older os's but the mac app store does not have anything to do with it anyway enough writing about apple stupid policies um my advice is take advantage of the things that you can do as a hobbyist developer that you couldn't working in large teams uh but also try to make sure your bit series uh at least in more than one place
01:43:11 Casey: And I think you hit the nail on the head earlier.
01:43:13 Casey: Like, yes, I can totally understand how my process and procedures that I've set for myself could feel overblown to sounds like both of you.
01:43:22 Casey: And maybe it is.
01:43:23 Casey: But I've found that what what I like to do is the bare minimum that makes me feel confident that I can always undo an oops.
01:43:31 Casey: And I'm not saying that I'm right for you or anyone else.
01:43:34 Casey: But for me, I found that if I have several different features that I'm juggling at once, I have definitely done the thing where, oops, this branch is now the branch, like you were describing, John.
01:43:44 Casey: But generally speaking, I like to be able to go back and forth in different branches to different features to work on different things and so on.
01:43:50 Casey: And I like having GitHub issues to kind of keep track of what I need to do and the rough order in which I need to do it.
01:43:57 Casey: So all of these are to give me just an array of parachutes that I can rely upon so that no matter how bad I am at my job, which sometimes is very bad, or how dumb I am, which sometimes is very dumb, I always have some parachute I can latch onto and save myself from myself.
01:44:13 Casey: And that's all this is for me.
01:44:16 Casey: And you were kind of saying that, John, that whatever your particular threshold is, that's what you should do.
01:44:21 Casey: And then that's where I ended up.
01:44:23 Casey: And I found that when I cheat and when I don't kind of follow my own rules, I almost always end up regretting it.
01:44:30 Casey: And I think that whatever your rules may be, you should stick with them and do what you think is best.
01:44:35 Casey: And really quick at real-time follow-up, I only glanced at it because I'm trying to record a podcast right now, but I believe that GitHub flow is what GitHub calls the kind of process I use.
01:44:44 Casey: And I'll put a link in the show notes, assuming it's not garbage when I read it later, that kind of describes the basic gist of what I'm doing.
01:44:51 John: And part of the, when you do like pull requests yourself, part of that is just sort of making an excuse slash mechanism to use reviewing tools that you prefer.
01:44:58 John: Because, you know, technically you could review in the little Xcode window when you push, right?
01:45:03 John: But maybe that interface sucks.
01:45:05 John: Maybe you can't annotate, blah, blah, blah.
01:45:06 John: And then you're like, I would prefer, you know, it's so much easier to review and annotate in GitHub with a pull request.
01:45:12 John: So make yourself a pull request.
01:45:13 John: Like, it's just, you don't, you know...
01:45:14 John: If the only reason you're doing this to use the tool, that's a perfectly good reason, because if that's how you prefer to use it, and in terms of being able to get back to a point in time, I wish I knew Git as well as I know other version control systems, but I do have confidence that if there is something I want to do with Git, as long as I...
01:45:30 John: actually did commits and pushes and so on and so forth i can get to any point in time i mean i'll have to google first because i never remember how to do anything again but i know the data is safe i know because i committed and i know because i always push that all this stuff is in the repo in a branch in desperation i can get back to any point in time and that's i guess that's the other advice is you have to actually use version control even if you don't have my paranoia about you know losing data
01:45:59 John: If you just like work all day on a file and just rewrite it, rewrite it, rewrite it, rewrite it in Xcode and then do a commit at the end of the day, the 15th rewrite in the middle of the day is actually gone, right?
01:46:09 John: Like you don't have that anymore.
01:46:12 John: So do actually commit at any point where you think I may ever want to get back to this data, whether or not you push it based on your paranoia or whatever, but you have to commit.
01:46:21 John: That's one of the reasons why when I use BBEdit, I have a feature enabled in BBEdit that I've used since its introduction, which is,
01:46:27 John: literally every time I hit save and BB edit, it saves a copy of the file as it existed.
01:46:33 John: I think as existed before I hit save, I forget which one it is.
01:46:35 John: I always get confused, but anyway, it saves a copy of a file and do another folder on my hard drive.
01:46:40 John: It's called the BB edit backups folder and it's organized by date.
01:46:44 John: And that folder has a lot of files in it.
01:46:45 Casey: Oh, wow.
01:46:47 John: That's one.
01:46:47 John: That's one.
01:46:48 John: Literally every time I had saved, that's one of the ways when I did like my eBooks for my Mac OS 10 reviews, I could tell you like how many times I hit save on a document and
01:46:57 John: or how many times i did a thing because i would just count the bb edit backup files for a thing and that has saved my butt so many times that is not version control that's what people did before version control i'm not recommending this as a form of version control 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 having the ability always knowing that you can go back to something you have to actually hit that save and then get hitting that save is stash or commit so do that yeah
01:47:23 Casey: All right, finally, Nick Clinch writes, as a developer, do you use the production version or the latest beta version of your own apps for daily use?
01:47:31 Casey: If you use the production versions, do you subscribe to your own in-app purchases to get all the features?
01:47:36 Casey: Yes, of course, if one uses your own app, you subscribe to your own stuff.
01:47:41 Casey: But generally speaking, I'll use betas on my phone just because I want to test the latest and greatest.
01:47:46 Casey: What are you doing?
01:47:47 Casey: Well, John, it's not your phone, but what are you doing on your Mac?
01:47:49 John: I do run I try to run whatever my dev version is like I'm working on and it helps with my programs that they literally run all the time like they're always resident I run them 24 hours a day and I'm always running whatever is the the latest thing so luckily with the advent of test flight for the Mac I'm running the test flight versions of all my apps but sometimes that's not the latest when I'm actually doing active development I'm working on the app for days or weeks without submitting a test flight build because I'm making a mess of it and I force myself to run
01:48:19 John: like i'm dogfooding whatever crap i'm doing which means that i have to make it so it like it doesn't crash or you know whatever but i want to be running that all the time just because if there's some weird problem that only happens after like you know running it for 72 hours straight i need to find it what are you doing marco with overcast
01:48:35 Marco: Pretty much the same thing.
01:48:36 Marco: I don't run beta builds.
01:48:38 Marco: I run dev builds, which means whatever the last version was that I hit build and run from Xcode onto my phone, that's what I'm running.
01:48:49 Marco: Oftentimes, it's hilariously broken, and I consider that a motivator to fix it.
01:48:54 Marco: It's a critical part of my QA, such as it is, process.
01:49:00 Marco: Anything that I change, I know is going to affect me directly for days or weeks or months afterwards.
01:49:08 Marco: I want to make sure that whatever I'm working on, I am using to give me the highest chance of catching any bugs or problems or shortcomings before I ship it even to beta users, let alone to all of my customers.
01:49:20 Marco: I am my first beta tester and I'm always running the absolute latest version I can run, which is the last thing I wrote.
01:49:28 Marco: It's on my phone.
01:49:29 Marco: Thanks to our sponsors this week, Green Chef, Memberful, and Tailscale.
01:49:34 Marco: And thank you to our members who support us directly.
01:49:36 Marco: You can join at atp.fm slash join and hear the current last version of the ATP Movie Club and who knows what else we'll think of in the future.
01:49:45 Marco: Not to mention, you get the bootleg feed, ad-free episodes, all sorts of fun stuff.
01:49:50 Marco: So thank you very much to all of you, and we will talk to you next week.
01:49:56 John: Now that the show is over, it's time to give to St.
01:50:00 Marco: Jude's.
01:50:01 Marco: They're funding research, curing diseases.
01:50:07 Marco: Every year you get a new iPhone.
01:50:09 Marco: Now think about the good you'll do when you're funding research, childhood diseases.
01:50:18 John: Our friends at Relay organize this annually.
01:50:23 Casey: It's time to do your part and give down
01:50:26 Casey: They fund the research They're curing diseases Fund the research The link is in the show notes now
01:50:56 Casey: So I mentioned, I don't even know if this made it on the release version of the show, but I mentioned several weeks ago, I think it was right before we did our Apple event show.
01:51:07 Casey: So like the Monday before, I decided that that was the most appropriate time to flip the switch and move from Heroku to Linode.
01:51:15 Casey: So for some context, my website ran on Heroku since my website existed.
01:51:19 Casey: So that was like 2013, 2014.
01:51:22 Casey: And I chose Heroku because I wanted something that nerds that I knew seemed to like.
01:51:28 Casey: And Heroku, at the time at least, was very much that.
01:51:30 Casey: And I wanted something that seemed like it was fairly straightforward for me to use, which here again, Heroku, definitely check that box.
01:51:37 Casey: And I wasn't really interested in doing any of what I would call the lower level maintenance of owning a server.
01:51:42 Casey: So I don't have to worry about software updates.
01:51:45 Casey: I don't want to have to worry about, you know, any of the kind of administrivia.
01:51:48 Casey: I don't have to worry about hardening the server or anything like that.
01:51:52 Casey: I just want to have what basically amounts to two node apps that I could throw over the wall and would run.
01:51:59 Casey: And Heroku did that for me for almost eight years, something like that.
01:52:04 Casey: But then, much like my AT&T to Verizon story, Heroku justifiably decided that they were no longer going to allow any sort of free, they call their processes dynos, D-Y-N-O.
01:52:15 Casey: So they weren't going to allow free dynos, which was fine for my website because I was paying $7 a month for that because I needed, at the time, and maybe this isn't true anymore, but at the time I started paying for it, it was because I really wanted to support SSL.
01:52:30 Casey: And in order to do that, you needed to have a level of dino that was not free.
01:52:34 Casey: I think what mine was called was hobby, if I'm not mistaken.
01:52:36 Casey: So it's not particularly powerful.
01:52:38 Casey: Not particularly robust, but it's enough that they'll let you do a Let's Encrypt certificate or perhaps a certificate of your own that you bring to them.
01:52:48 Casey: So I was paying $7 a month for my website.
01:52:50 Casey: And then the show bot that gathers titles from IRC as we're recording
01:52:57 Casey: That was on a separate dyno that was running on their free plan.
01:53:00 Casey: And they said a month or two ago, hey, FYI, in the next several months, we're going to start charging for free dynos.
01:53:05 Casey: It's not going to be free anymore.
01:53:07 Casey: And it occurred to me, okay, I'm already paying more than the either $5 or $6 a month that Linode charges for their most basic VPS.
01:53:18 Casey: And so why don't I just see if I can move all of this to Linode?
01:53:23 Casey: Because it seems like that should be something that I'm capable of.
01:53:27 Casey: And I don't plan to go through the in and out of everything that's involved in that.
01:53:32 Casey: But I thought I'd call just a couple of things out as things that I thought were interesting or unique.
01:53:38 Casey: First of all, I haven't really done anything with a raw Linux server in like a decade plus.
01:53:47 Casey: So this whole process, I don't know if you gentlemen remember this, but this whole process started with me asking the two of you, what are people using for Linux servers now?
01:53:56 Casey: Like, are we still on Ubuntu?
01:53:57 Casey: Is that still a thing?
01:53:58 Casey: Because last time I was paying attention, that's what I was using.
01:54:00 Marco: And by the way, and this is totally fair.
01:54:02 Marco: When you are setting up a new server that you haven't done in a long time, that's the first question everyone asks.
01:54:08 Marco: What distro do I get?
01:54:10 Marco: Of course, that's a reasonable thing to not know if you haven't been in it, you know?
01:54:15 Casey: Yeah, exactly.
01:54:16 Casey: And I actually should say that even though the two of you are dear, dear, dear, some of my best friends in the world, nevertheless, I felt like such a dunce coming to you, like hat in hand, you know, puss in boot style, like...
01:54:27 Casey: Guys, what do I do?
01:54:30 Casey: It's been so long.
01:54:31 Casey: I need help.
01:54:32 Casey: And we're going to talk a little more about that in a minute.
01:54:34 Casey: But you were both very gracious, and I very much appreciate that you didn't make fun of me.
01:54:37 Casey: I probably would have done to you, too, if the roles were reversed.
01:54:40 Casey: So I appreciate you not poking fun at a time of need.
01:54:44 Casey: But I had several different balls in the air, plates spinning all at the same time.
01:54:51 Casey: One of the things I realized is that my website is this custom software that I wrote for myself, as the three of us and many others I want to do.
01:55:00 Casey: Honestly, I don't have any particular love for this engine that I wrote in 2014.
01:55:04 Casey: And if I wasn't so lazy, I would probably start using something different, either like a package.
01:55:10 Casey: I would probably start by really at least looking at John Sundell's engine.
01:55:15 Casey: I forget what it's called now.
01:55:16 Casey: It's hot in my head.
01:55:17 Casey: But right now it's a node app.
01:55:20 Casey: And at the time in which I started to want to go down this road, I was still using node version four.
01:55:25 Casey: And of the three of us, John would probably know even better than I that node version four is quite old now, like very, very old.
01:55:33 Casey: I don't know exactly when, but it is quite old.
01:55:35 Casey: John, you don't have any idea when that was from, do you?
01:55:38 John: That's old even to my ears.
01:55:39 John: I don't even know if we used that version of Node ever at work.
01:55:43 John: I think by the time my old job, when we started using Node, we were past that.
01:55:48 John: What are they on now?
01:55:49 John: Like 20-something?
01:55:50 John: 30-something?
01:55:51 Casey: I thought it was 12, but maybe I'm wrong about that.
01:55:54 Casey: I don't even know.
01:55:54 John: No, they're farther along that.
01:55:56 John: LTS is 16.
01:55:57 John: Current is 18.
01:55:58 Casey: Okay, so there you go.
01:56:00 Casey: So anyway, so I knew I needed to upgrade from node 4.x to whatever is current.
01:56:06 Casey: It sounds like, you know, 16 or 18.
01:56:08 Casey: Another thing that I needed to worry about is certificates because I was using Let's Encrypt at Heroku, but I needed to do something else because unless I'm missing something, and perhaps if I was using like a load balancer or something fancy like that, maybe it would be a little more
01:56:23 Casey: uh magic but i was gonna have to like figure out how to use certificates and the way that heroku worked is you basically had them figure things out with let's encrypt and i forget the terminology marco jump in when you're ready but they would terminate the ssl connection at the at their stuff and then just roll unencrypted internally in their own network and ask my server for their my process for things
01:56:47 Casey: And, and so now I needed to like, I need to handle this myself.
01:56:50 Casey: Like I need my node instance to, to deal with certificates.
01:56:54 Casey: And then finally I have a server that is on the internet and granted I will try to, I will try to do the obvious things to lock it down, but there's a lot of non-obvious things I probably need to do to harden this.
01:57:05 Casey: And Marco really saved my bacon on that in particular.
01:57:08 Marco: But no Linux saved your bacon on that one, because the reality is like all modern Linux is are pretty good with pretty minimal setup in terms of like Internet ready security.
01:57:20 Marco: Like you have to basically like, yeah, you know what?
01:57:22 Marco: Make SSH not take passwords.
01:57:24 Marco: And that's about all you have to do.
01:57:26 Marco: There's not like everything is pretty secure by default these days.
01:57:30 Casey: And that's fair, but you gave me a lot of good tips, and I don't remember the specifics, but I took copious notes for future Casey because current Casey has already forgotten.
01:57:38 Casey: But you gave me a lot of great notes of things that you do for your servers, which were genuinely extremely, extremely helpful, and I really appreciate it.
01:57:45 Casey: The upgrade from Node 4.x to whatever I'm on now was actually surprisingly straightforward.
01:57:50 Casey: I had to change...
01:57:51 Casey: Very, very little code, which was stunning to me.
01:57:54 Casey: I assumed I was going to have to rewrite half this damn engine.
01:57:57 Casey: And I had to change almost nothing, which was great.
01:57:59 Casey: Getting the certificate squared away.
01:58:01 Casey: What is it?
01:58:02 Casey: Certbot is the command line tool that it seems.
01:58:05 Marco: Acme.sh is like the Certbot client.
01:58:08 Casey: You were saying the same thing.
01:58:09 John: When you did the big Node upgrade, though, did you happen to run NPM audit?
01:58:13 Casey: I did.
01:58:15 Casey: Yes, I did.
01:58:15 Casey: And it was a mess.
01:58:16 John: What did that say?
01:58:17 Casey: Oh, it said that everything was broken and it was a miracle that my server was not on fire.
01:58:21 John: It's just a giant security hole.
01:58:23 Casey: Basically, yeah.
01:58:24 Casey: But here again, like upgrading everything, which took several incantations and it took me several tries, but upgrading everything...
01:58:30 Casey: For the most part, I had to change so very little code.
01:58:33 Casey: I'm still stunned by that.
01:58:35 Casey: And I am, last I looked anyway, I'm auditing cleanly.
01:58:38 Casey: I'm on node either 16 or 18.
01:58:39 Casey: I forget which one off the top of my head.
01:58:41 Casey: And I hardened the server.
01:58:42 Casey: I turned off, you know, passworded logger.
01:58:44 John: You're auditing cleanly.
01:58:45 John: Did you, you didn't have to do any major version breaking change updates to packages?
01:58:50 Casey: No, I absolutely did, but it didn't break my code.
01:58:53 Casey: Like, I'm stunned by it.
01:58:54 Casey: I'm telling you.
01:58:55 Casey: I know.
01:58:56 Casey: I'm very impressed.
01:58:57 Casey: Either that or I'm totally wrong.
01:58:59 Casey: Either is possible.
01:59:01 Casey: But I'm pretty sure I'm on latest and greatest of basically everything, and it was fine.
01:59:05 Casey: But anyway, yeah, so now I'm doing certificates with a combination of CertBot or Acme.ash or whatever it is.
01:59:12 Casey: And, you know, piping and pumping those certificates into Node.
01:59:16 Casey: And, you know, Node is looking for these certificates on the file system so it can use them appropriately.
01:59:20 Casey: And all in all, it seems good.
01:59:23 Casey: Let me be clear, wonderful listeners who we love so much and value incredibly.
01:59:29 Casey: This is not an invitation to hack me.
01:59:31 Casey: I am not looking for that.
01:59:32 Casey: I am not asking you.
01:59:33 Casey: I am not asking you to do like we did when the showbot was new and try to break it in every way imaginable.
01:59:39 Casey: No, thank you.
01:59:39 Casey: No, you do not get a sticker for breaking me.
01:59:41 Casey: No, you do not.
01:59:42 Casey: You might get a thank you if you break me in a very gentle way and explain how to fix it.
01:59:46 Casey: Maybe you'll get a thank you.
01:59:47 Casey: But even still, please, just no, not a challenge.
01:59:50 Casey: Challenge not accepted.
01:59:51 Casey: Challenge not offered.
01:59:51 Casey: Challenge not accepted.
01:59:53 Casey: But I had to do all these things.
01:59:55 Casey: And granted, Linode is a past and I'm sure future sponsor.
02:00:00 Casey: I got to tell you, it is really nice.
02:00:02 Casey: And for another project, I inherited something that was on DigitalOcean.
02:00:07 Casey: And it is not as nice if you ask me on DigitalOcean.
02:00:10 Casey: I really like the way Linode works.
02:00:13 Casey: They think the way my brain thinks.
02:00:14 Casey: Their tools are very robust and reasonably straightforward.
02:00:18 Casey: This isn't an ad for Linode, but hand to God, I really did enjoy it quite a bit.
02:00:23 Casey: I wanted to talk very briefly about the sponsor of this episode.
02:00:27 Casey: This is purely coincidental because this has been in the show notes for literally a month.
02:00:31 Casey: But I am using Tailscale on this server, which is super cool.
02:00:34 Casey: And as I briefly talked about in the sponsor read, which you may or may not have heard, Tailscale is basically like, let's put all of your devices on the same virtual network.
02:00:42 Casey: And so any of these devices can talk to any of the other devices, despite the fact that my server's at Linode and my home computer is at home on Verizon Fios.
02:00:50 Casey: Like we can talk to each other and it's transparent.
02:00:53 Casey: It's as though we're on the same network, which is super duper cool.
02:00:56 Casey: And I really, really like it.
02:00:57 Casey: Is it necessary?
02:00:58 Casey: Well, no, maybe not in this particular context.
02:01:01 Casey: But in other contexts, I think it would be kind of necessary.
02:01:04 Casey: And either way, it's still just very, very convenient, and I really, really dig it.
02:01:08 Casey: But one of the perks of doing all this is that, and the chat room may or may not have noticed this recently, but now the show bot...
02:01:17 Casey: can roll on SSL.
02:01:19 Casey: It can be HTTPS.
02:01:21 Casey: For those who don't listen to the chat, you know, we have this robot that lives in IRC, and you can go to, it used to be HTTP colon slash slash www.caseless.com slash showbot, and you would see the titles that people suggested in semi-real time.
02:01:34 Casey: And I could never put that behind SSL or it was never secure because I was running on a free dyno at Heroku.
02:01:42 Casey: And maybe I could have done something to make this work, but I never really cared enough.
02:01:45 Casey: But now I'm on my own server, baby.
02:01:48 Casey: And virtual or not, I can do this all myself.
02:01:50 Casey: And so that's what I'm doing.
02:01:51 Casey: So for the last few weeks, even the show bot is now HTTPS colon slash slash, et cetera, et cetera, et cetera.
02:01:57 Casey: So that's really cool.
02:01:58 Casey: And I dig that.
02:01:59 Casey: But finally, the thing that I think blew my mind the most about this was I remember hearing some vague smattering about how Visual Studio Code, which is my preferred editor for doing web-related things, can do some sort of like you attach to something and then magic happens and you're like editing stuff on the server even though you're running it locally or something like that.
02:02:23 John: Have you never used this feature of Visual Studio Code?
02:02:26 John: I thought this is why you loved it so much.
02:02:27 Casey: No, no, no, no.
02:02:28 Casey: So what I would do in the past is I would run an instance of Node locally, like not even in Docker or anything like that.
02:02:34 Casey: It would just straight up be a local instance of Node running my website locally.
02:02:38 Casey: And I would edit the local file system, you know, using Visual Studio Code.
02:02:43 Casey: It was all local.
02:02:43 Casey: Everything about it was local.
02:02:45 Casey: So I went digging into how to make this work.
02:02:47 Casey: And it seems to me that there are several different ways of this happening.
02:02:51 Casey: Maybe, John, you know better than me.
02:02:52 Casey: But there's several different ways to do this.
02:02:54 Casey: But what I landed on, and oh my gosh, it is so cool, is because Visual Studio Code is an Electron app, which 99% of the time...
02:03:04 Casey: Stinks.
02:03:05 Casey: It's really not, like, the fact that it's Electron, well, you don't notice it with code, but Electron apps tend to be pretty bad.
02:03:12 Casey: I'm not going to say anything nasty about 1Password because I donated a lot of money to St.
02:03:15 Casey: Jude recently, 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 Casey: But no, or excuse me, code has always been Electron, and I almost never notice.
02:03:25 Casey: I can from time to time, but it's very rare that I notice.
02:03:28 Casey: Well, hey, guess what?
02:03:29 Casey: What is an Electron app really running in behind the scenes?
02:03:33 Casey: a browser.
02:03:34 Casey: So what if you hosted this Electron app in a browser?
02:03:40 Casey: So there's a way that you can run Visual Studio Code from our Visual Studio Code server on the command line.
02:03:46 Casey: So I can SSH into my Linode box, run a command that starts up a Visual Studio Code server, and then I just load a bespoke URL that it spits out on the command line.
02:03:58 Casey: And suddenly I'm running a full bore instance of code on
02:04:02 Casey: I'm running it in a browser that the browser's running locally, but Visual Studio Code is running on the Linode box.
02:04:08 Casey: And I'm making my edits.
02:04:09 Casey: I'm debugging.
02:04:10 Casey: I'm doing everything on the Linode box.
02:04:14 Casey: And then I wanted to upload a picture, an image.
02:04:16 Casey: I thought, oh, man, now I'm going to have to SCP it and blah, blah, blah.
02:04:19 Casey: Well...
02:04:20 Casey: I wonder what happens if I try to do this in code.
02:04:22 Casey: Sure enough, I can upload stuff via Visual Studio Code, running in the browser, running against my Linode box.
02:04:29 Casey: This is the coolest freaking thing I've ever seen.
02:04:32 Casey: And as much as I love to slag on Electron, and oh boy, do I love to slag on Electron...
02:04:37 Casey: This is Electron at its finest.
02:04:39 Casey: It is so freaking cool.
02:04:42 Casey: And yes, I know there are other ways to do this.
02:04:44 Casey: I know that you can mimic your file system via SHH, and you can do all these other sorts of things.
02:04:50 Casey: But having a full-bore IDE that is, for all intents and purposes, running remotely, but you're interacting with it with a mouse and a keyboard and whatnot and copy and paste locally, it is so freaking cool.
02:05:02 Casey: And if you're not familiar with this, you've got to look into it because it is amazing.
02:05:06 Casey: Again, not for everyone.
02:05:08 Casey: I have a feeling that neither of you guys are interested in that.
02:05:10 Casey: And I don't mean that dismissively.
02:05:11 Casey: Like, you're older school.
02:05:12 Casey: You've been doing this longer.
02:05:13 Casey: You've done more web stuff than me.
02:05:15 John: Older school, yeah, I did this already when it was called X Windows.
02:05:18 Casey: Fair, fair.
02:05:20 Casey: I take your point.
02:05:22 Casey: And I don't mean that dismissively.
02:05:23 Casey: Like, I'm not saying this is the best approach for everyone.
02:05:25 Casey: But holy cow, it was super freaking cool, and I love using it.
02:05:29 John: I would suggest though, because the downside of this is you got to run it in a browser or whatever.
02:05:33 John: There are lots of there.
02:05:34 John: I mean, I don't know what they have for it.
02:05:36 John: They might have them for Leno or whatever, but like visual studio codes, plug-in system is such that there are these beefy plugins that essentially shove a bunch of node code onto your server, onto your Linux machine or whatever.
02:05:48 John: Um,
02:05:49 John: that runs all sorts of stuff on the Linux machine, but still communicates with your local instance of VS code?
02:05:56 Casey: Yeah, that's what I had initially set out to do, but I must have screwed it up somewhere, because that's not where I ended up.
02:06:00 John: I mean, for what you're doing, you maybe don't need something that heavy-weighted, but it really depends on like...
02:06:04 John: it's especially handy if you're running more complicated things.
02:06:08 John: So obviously visual studio code is still running locally, but tons of node code that is part of the plugin.
02:06:13 John: Like if you go look at what like it shoved, because you know, it's just good thing about node is it's just text files on the file system.
02:06:18 John: It shoves them in there and you can look at what it, what it threw onto your remote server.
02:06:23 John: And then it's got a language server going and it's got the debugger server going and they're talking over the network and it's like you're doing everything locally, except you get to run visual studio code on your M1 processor.
02:06:34 John: while the debugging stuff and everything happens over on the machine where you're debugging.
02:06:37 John: And the experience is similar to using what you're doing in the browser, except that you, in theory, get the advantage of running some stuff on your local machine, which is way faster than the CPU cycles you're getting on a, you know,
02:06:49 John: shared servers.
02:06:50 Casey: Oh, totally, totally.
02:06:51 Casey: So here again, the names for all these are so terrible.
02:06:54 Casey: So like Visual Studio Code, that's fine.
02:06:55 Casey: That's the general IDE slash editor or whatever.
02:06:59 Casey: I think I have this right.
02:07:01 Casey: So what I stumbled upon and ended up running and what I've been talking about is Visual Studio Code Server.
02:07:07 Casey: What I think you're talking about is Visual Studio Code remote development, which is what I had set out to use and then ended up just kind of accidentally ending up on Visual Studio Code server.
02:07:20 Casey: And it's been working pretty darn well for me.
02:07:22 Casey: It's not perfect by any means, but it works pretty well.
02:07:24 Casey: So maybe I should try this VS Code remote development thing.
02:07:27 Casey: I'll put links for both of these in the show notes.
02:07:29 Casey: Again, I'm not trying to say it's for everyone.
02:07:31 Casey: I'm not trying to say it's for either of you two, but I just thought it was super freaking cool.
02:07:35 Casey: And
02:07:35 Casey: Oh, man, the way that things have progressed over the last 10 years, since I've really, 15 maybe, since I've been running a Linux server.
02:07:43 Casey: Like, it's just all so cool and so slick, and I'm so glad that these tools exist.
02:07:47 Casey: Like, you know, TailScale, which admittedly is a sponsor, but I was using them before they sponsored.
02:07:53 Casey: Linode, obviously, I wasn't aware of them until Marco had talked about it.
02:07:58 Casey: Um, but I, I chose to use Linode.
02:08:01 Casey: I'm paying Linode my own money.
02:08:02 Casey: Like this is not a sponsorship for them.
02:08:04 Casey: I'm choosing to do that.
02:08:05 Casey: So yeah, I mean, this stuff is also cool.
02:08:07 Casey: And again, I really do appreciate both of your help, especially Marco sent me a lot of really good tips and tricks and whatnot.
02:08:13 Casey: Um, that really, really saved me a whole ton of time and hopefully a whole lot of, you know, burdensome learning from learning the hard way.
02:08:19 Casey: So I don't know.
02:08:20 Casey: I just thought it was super cool.
02:08:22 John: Tune in five years when Casey goes serverless.
02:08:25 Casey: Yeah, yeah, you never know.
02:08:26 Casey: Could happen.
02:08:26 Marco: See, now my job, now that you've moved into servers my style, I need to leave them now.
02:08:30 Marco: Now I need to go serverless.
02:08:33 Casey: Next thing you know, Marco's going to be running like Docker Kubernetes or something like that.
02:08:37 Casey: Weirder things have happened.
02:08:38 Marco: I'm trying to get myself out of the server business, not weirdly more into it.
02:08:43 Marco: Yeah, you should go serverless.
02:08:45 Marco: Yeah, but what does that mean?
02:08:45 Marco: I feel like that doesn't mean what I think it means.
02:08:49 Marco: Like, what I think it means is I'm no longer running services, but that's not what that means.
02:08:54 John: Yeah, well, you're using managed services, most of which should not involve your software running on a persistent server, virtual or otherwise.
02:09:00 Marco: Right, which means that they're going to manage their way into taking all of my money.
02:09:07 John: I mean, part of it is it actually can be cheaper because you're only paying for what you're using.
02:09:11 John: But anyway, you got to get your data.
02:09:12 Marco: At my scale, it's very, very, very much not cheaper.
02:09:15 John: You've talked about this before.
02:09:17 John: You got to get all your data out of your database before you can do stuff like this.
02:09:20 Marco: Yeah, I'm currently looking into that.
02:09:22 Marco: I'm so close to just saying F it, I'm going to use CloudKit, but I've just heard so many.
02:09:29 John: I'm not sure that's the solution.
02:09:31 Marco: I know.
02:09:31 Marco: I've heard a lot of mixed things about that, and so I'm not.
02:09:35 John: But DynamoDB, maybe look into that.
02:09:37 John: Put that in a Google search.
02:09:38 Marco: I need to really do some soul searching here and figure out, do I really want to be running what I'm running now?
02:09:48 Marco: The other day, normally my servers are very stable and they normally need very little babysitting.
02:09:54 Casey: This sounds like a Casey setup if I've ever heard one.
02:09:58 Marco: I just went on this wedding weekend.
02:09:59 Marco: I was traveling for almost a week between various family events surrounding it and
02:10:06 Marco: And at no time did my servers need any attention whatsoever, except when I first arrived upstate.
02:10:14 Marco: When I'm upstate in the middle of nowhere, no cell reception and everything, I start unpacking my stuff, my laptop gets on Wi-Fi, and it starts exploding.
02:10:22 Marco: with alerts i'm like what is going on and for some reason out of the blue on a random weekday my primary database server is having extreme high load and everything it's you know maxing out its connection limit and connections are dropping and things are failing and it's what is going on
02:10:39 Marco: I spend the next, you know, 15, 20 minutes trying to figure out what's going on, trying to alleviate it, you know, it's shutting down non-essential, you know, services and stuff so I can, you know, let it recover a little bit.
02:10:49 Marco: And eventually, you know, I shut some stuff down for a little while, like, you know, again, non-essential stuff.
02:10:54 Marco: uh the load eventually you know it started to come down like you know what just in case let me let me reboot it it's already barely working i might as well reboot it take the downtime and you know maybe it'll come back up in a better state so i rebooted it comes back up still under a very heavy load for the first you know 10 minutes way past like you know cash warm-up kind of kind of kind of time and then the load just falls back down and it fixes itself and i re-enable all the non-essential services and everything just goes back to normal
02:11:22 Marco: what the hell was that like i i still have no idea what it was you have insufficient monitoring i looked at all the monitoring and i'm like there's there was not an increase in traffic there was not an increase in like reported even memory usage like it's like there was i have no clue what that was that never happens except oh it just happened like in the middle of or in the beginning of this vacation i'm trying to take like
02:11:46 Marco: And again, normally, this is the kind of stuff, the amount of stress that brought me and intrusion into my life that brought me, I'm like, you know what?
02:11:57 Marco: What can I do to reduce my reliance on this kind of stuff?
02:12:00 Marco: How can I design my service in such a way that I'm lightening the load on the servers?
02:12:05 John: But if it was CloudKit, you wouldn't even be able to do the things that you did.
02:12:09 Marco: That's true.
02:12:11 Marco: That's true.
02:12:12 Marco: And I've heard so many things about what happens with random Apple ID signouts.
02:12:18 Marco: I actually do use CloudKit in the app.
02:12:21 Marco: It's just for a very insignificant part of the app.
02:12:23 Marco: It's the part where when you first log into a brand new installation of Overcast, it checks for a list of your accounts that you've used in the past.
02:12:32 Marco: That list, which is basically a list of login tokens, is stored in CloudKit.
02:12:37 Marco: So it says, whatever your Apple ID is, here's the accounts I know about you.
02:12:42 Marco: Because I'm trying to not use email and password for most accounts.
02:12:45 Marco: So they're mostly just anonymous tokens.
02:12:47 Marco: And they're stored in CloudKit, so they're associated with your Apple ID.
02:12:51 Marco: I get so many weird crash reports from that screen from like random cloud kit, you know, record, you know, deep into the stack trace where my app is nowhere to be found.
02:13:02 Marco: Random crash reports like this is the simplest possible use of this thing.
02:13:07 John: The data volume is not high.
02:13:09 Marco: Right, right.
02:13:11 Marco: So that's why I think I don't necessarily know if I want to do that.
02:13:14 Marco: But there's a lot of things in between CloudKit and what I'm currently doing, which is a fairly heavy database setup.
02:13:22 John: I'm going to pitch you to move away from relational for most of your stuff.
02:13:26 John: I think a lot of your data, especially the vast majority of your data, I would imagine is not actually relational.
02:13:32 John: So you could get away with a scalable document store with a managed service and a scalable document store that will let you sleep
02:13:38 John: Much better at night and keep the relational stuff into a basically fixed size, smaller relational thing with a good cash in front of it.
02:13:46 John: And that will really alleviate your problems at the price of making you learn AWS.
02:13:53 Marco: That's a big price.
02:13:53 Marco: It's a big price.
02:13:54 Marco: Well, and not to mention the big price of actually paying for it.
02:13:58 John: Oh, I think you could absolutely run your service for like one-eighth of the money.
02:14:01 John: But finding that solution, again, it's an RPG.
02:14:04 John: It's going to be a quest.
02:14:05 John: But absolutely, you could maybe cut it down by, you know, an order of magnitude.
02:14:11 John: It's just a question of finding the right arrangement.
02:14:14 John: And then, by the way, rewriting your whole app to work with that.
02:14:16 John: Ha ha.
02:14:18 Ha ha.
02:14:18 Marco: Right, but there's a lot of options between that.
02:14:21 Marco: Because this is inherently what used to be called shardable or partitionable, you don't need a lot of cross-user data access.
02:14:30 Marco: So because of that, there are better things I could be doing.
02:14:33 John: Right, but you don't need that to be relational at all.
02:14:35 John: And once you give that up, there are these easy, managed, scalable data stores that cost pennies on the dollar of what you're paying for this monster MySQL instance, even if you sharded it.
02:14:44 Marco: That's yeah, that's fair.
02:14:45 Marco: But but when I look at them, a lot of them, they'll charge like per read or write or, you know, there's some other gotcha in the pricing that would kill me.
02:14:53 John: They're cheaper than you think.
02:14:54 John: But anyway, well, this is it's a big project.
02:14:57 John: I'm not making this.
02:14:58 John: It's not easy, but it is there is a solution out there.
02:15:00 John: I'm pretty confident it would just it's just a question of how much effort do you want to put into that and how much money you save on it?
02:15:07 Marco: But honestly, anything that I do to massively re-architect how I'm storing stuff to reduce my server dependence, CloudKit really is something to seriously consider because I'm already tied to Apple IDs with my anonymous logins.
02:15:23 Marco: I'm already using it.
02:15:25 Marco: And so if I can figure out how to deal with its monsters, I would much rather go that direction and have my... I still have servers for things like feed crawling, but...
02:15:36 Marco: My ideal outcome would be that my servers contain no user data, that the user data is all in CloudKit and that my servers are only doing public data like the feed index.
02:15:48 John: CloudKit is the obvious solution if it wasn't for all the horror stories I hear about it and the complete powerlessness that you have.
02:15:56 Marco: Well, and to be fair, like, I wouldn't do their, like, magical, like, we're going to sync your database for you.
02:16:02 Marco: Like, connect core data to CloudKit like that.
02:16:05 Casey: Oh, that I've heard horrible things about.
02:16:06 Casey: Yeah, yeah.
02:16:07 John: But, I mean, the problem is always, like, hey, it's not working, and we have no visibility into why, and we can't do anything about it to fix.
02:16:14 John: Right.
02:16:14 John: And in some ways, that's refreshing.
02:16:15 John: It's like, well, it's not my problem, but it kind of is your problem because now your users can't use your app.
02:16:19 John: And all you can say is, uh, it's not working and there's nothing I can do about it.
02:16:24 John: No user wants to hear that from the developer of their app.
02:16:26 Marco: Yeah.
02:16:27 Marco: Although, to be fair, if I design it right and the failure case is like, I can't get your data to sync back to CloudKit.
02:16:35 Marco: Well, most of my users only use it on one device.
02:16:39 Marco: So if the sync is not working well for them in some edge case context, that actually might not matter to most of my users.
02:16:46 John: That's not going to be the failure.
02:16:47 John: The failure is going to be, like you said, some crash deep inside some CloudKit API.
02:16:51 John: You're like, how could that ever crash?
02:16:52 John: It's like, well, it is.
02:16:53 John: And every time I launch my app and try to play, it instantly crashes.
02:16:56 John: Yeah.
02:16:56 John: there's only so much you can do with you know defensive programming to not make that happen because it's like look if i have to call this api to check for a thing and that crashes it takes down my whole app or it's like some background thread throwing an exception like well i can't do anything about that right it's not your code it's not your code at all you don't have the source code to it you can't fix it you don't know why it's crashing
02:17:16 John: That's the worst situation to be in for something as critical to your app.
02:17:20 John: And that's why people get fresh, not because it's unreliable or bad.
02:17:22 John: It's very reliable and very good.
02:17:24 John: But when it does have a problem, you feel completely powerless because you are.
02:17:28 John: You don't have the source.
02:17:29 John: It's not your stuff.
02:17:30 John: You don't control the server side.
02:17:31 John: You don't control the client side.
02:17:33 John: You don't control anything about it.
02:17:34 John: But can't you say a lot of that same stuff about managed services?
02:17:38 John: Kind of, but managed services is something you can do about it.
02:17:42 John: Even though they are managed, first of all, there is managed and unmanaged versions of everything.
02:17:47 John: And so worst case scenario, if the managed service is not working for you, you can just take it and go to the unmanaged version of it.
02:17:52 John: And second, they're not as opaque as Apple, like even if it's just as simple as like, hey, it's an open source product.
02:17:59 John: So like you actually do have the source code and can run a local instance of it and can try to reproduce the crash or whatever.
02:18:04 John: Like that's you can't do that with CloudKit.
02:18:07 John: It's not open source.
02:18:08 John: They're not using, you know, they probably are using open source things behind the scenes.
02:18:11 John: But like you don't have access to it in the same way as even the quote unquote proprietary things that are running in public clouds.
02:18:17 Marco: See, right now, look, I just checked my status page.
02:18:20 Marco: Nothing's been going on.
02:18:21 Marco: Everything's been fine.
02:18:23 Marco: And for some reason, my replica databases in my main cluster are behind by like eight minutes.
02:18:32 Marco: They're normally zero seconds behind.
02:18:34 Marco: Sometimes they fall behind by eight minutes.
02:18:37 Marco: Who knows why?
02:18:38 John: You're running on the ragged edge of what this hardware can handle for you, and what could it be?
02:18:43 John: God.
02:18:43 Marco: who knows but i'm not like the replicas are doing almost nothing they're only replicating the rights doing something they could be contending for a latch inside the mysql replication code or some crap this is like this is like this is this is annoying to deal with mysql 8 this is i'm this is what's driving mysql 8 is going to make me leave servers like that's like it's that's going to make me quit the business it's this stuff never happened with mysql 5 ever and this never happened that could be worse could be oracle
02:19:11 Marco: that's true there's so many things that can go wrong inside these databases oh my god i need i need to get out of this business like this is this is the kind of problem this is infuriating like what can i do about this nothing i wonder what will happen first will i switch to postgres or stop running servers i'm not entirely sure postgres is going to solve your problem here yeah i have no application no uh experience with it
02:19:39 John: Oh, it is.
02:19:39 John: I love it.
02:19:40 John: It's my favorite database.
02:19:41 John: No contest I've used.
02:19:42 John: I think I've used all the major current relational databases.
02:19:45 John: Postgres is by far my favorite.
02:19:47 John: But when you push any database, you start to need to either become or have a database guru who can figure out how to get your thing to scale the way you want it.
02:19:57 John: But at least Postgres, I feel like Postgres is...
02:20:00 John: consistent and understandable uh unlike let's say oracle just maybe understandable to some people definitely not consistent and there's not so many dark corners but postgres in my experience because of that it's like it's straightforward but
02:20:17 John: And you'll get the straightforward scaling you expect.
02:20:19 John: You'll be like, yeah, but what if I want it to be better?
02:20:21 John: And it's like, nope, this is the way it goes.
02:20:24 John: I can explain to you why it's this way, and it'll be consistently this way.
02:20:27 John: It's like, yeah, but I wish it was better or faster in some way.
02:20:30 John: It's like, hmm, get a bigger server?
02:20:33 John: And MySQL is like...
02:20:35 John: we can be super fast and most of the time until something goes wrong and then who knows what's going on so i feel like postgres would would give you uh worse performance in a more consistent way this is like you know my favorite database engine by far freaking sqlite it never gives me problems the only thing is i can't do this like it's you cannot it cannot scale
02:20:59 John: did I tell you this time when I was doing messing with SQLite, it uses my toy database thing for stuff at work.
02:21:04 John: And I was trying to do like a scale test on it.
02:21:06 John: And let me tell you, once you get a few million rows into SQLite, it falls over.
02:21:11 John: I mean, it's not what it's for, but it falls over hard.
02:21:14 Marco: I mean, it's, it's incredible at a lot of things and it can do high traffic on smaller stuff for sure.
02:21:20 Marco: But it's, it's, you know, it's not, it's not made for like a, right.
02:21:24 Marco: It's not made for like a client server thing where you have a whole bunch of, you know, server processes.
02:21:27 Marco: It can't do that.
02:21:28 Marco: yeah i can't do concurrency but even with just a single user you get millions of rows into sqlite it says no it just falls over performance goes off a cliff and it's you know that's that's not what it's for yeah but man it's i love it because it never gives me problems like because really you know when you look at like what i'm running like i'm running you know a a very large server side my sql installation a few of them actually a few different clusters doing different things
02:21:54 Marco: And then on all of my client side app installations, that's all against SQLite.
02:22:00 Marco: And the servers are basically just syncing changes between your different instances of SQLite between your different devices.
02:22:06 Marco: And so I would say Overcast is in a way more dependent on SQLite than on anything else.
02:22:14 John: Yeah, just in a distributed way.
02:22:15 John: Imagine if you had around one SQLite database that was equivalent to all your distributed ones.
02:22:20 John: Yeah.
02:22:20 Marco: that would be bad that's what you're doing with my sequel yeah but yeah exactly and that's why i'm i have some changes i'm brainstorming of like how i how do i dig myself out of this hole but it involves getting rid of the table that associates um users progress of individual episodes as individual rows of the table yeah yeah it turns out that's a really big table it
02:22:42 John: should not be that's what i'm saying like that's why i'm looking at document stores because there's like some data that is just not relational it's just a bucket of uh of data for users and putting that in one table is just making like this monster table is going to eat you so here so this i i captured these numbers the other day when i was trying to figure out what to do um the table that maps what you've subscribed to so it's you know basically users to feeds
02:23:06 Marco: So it's, you know, every row is like user ID, feed ID, and some options, you know, whatever your options are for that subscription.
02:23:12 Marco: That table is three gigs.
02:23:16 Marco: The table that maps users to episodes, 450 gigs.
02:23:23 Marco: Oh my word, Mark.
02:23:24 John: And most of that is indexes.
02:23:26 Marco: 271 gigs of the 450 is index.
02:23:30 There you go.
02:23:32 Marco: and so i'm like all right so so my current one one option i'm thinking of is a new table that would replace the feed subscription table and would have basically a binary column on the end of it that would be a a packed binary form of your of your island no take all this data and throw it into a document star in aws and see how fast it is to query yes one user's worth of data it's so fast you never have to worry about scaling it's just oh god
02:24:01 Casey: I'm not trying to be funny.
02:24:03 Casey: You've never really messed with a MongoDB or something like that, have you?
02:24:07 John: No, that's not what I would suggest.
02:24:10 Casey: I don't know enough about it either then, but what would you suggest?
02:24:13 John: Look at Dynamo, look at Cassandra.
02:24:15 John: There's lots of options, but I'm just saying you don't need... It's the same reason you get away with having a local SQLite.
02:24:23 John: It's relational within itself, but within all your users, there's no relation between them.
02:24:28 John: These are tiny little islands of data, so you want something that
02:24:30 Marco: divide these up and you know sharding by you well there is some there's some relation in the sense that i do have to do some cross user queries that would have to i would have to restructure so for instance there's a few things in overcast that are based on the number of recent um recommendations or stars that you've gotten so yeah you got but that's like batch job stuff yeah
02:24:51 Marco: Yeah, but I would have to like branch that out and like, you know, maybe have a separate table that is relational for like recently starred episodes among everybody.
02:24:58 Marco: And then I could query that really quickly or something like that.
02:25:00 Marco: Like, you know, I would still have to branch out some of those things, mostly stars.
02:25:05 Marco: But for the most part, I don't need to do a lot of aggregate queries against everyone's data on this certain thing.
02:25:12 Marco: I got to just freaking figure out how to make CloudKit work and get myself out of this business.
02:25:16 Casey: Yeah.
02:25:17 Casey: What's going to happen, though, is you're going to do that and then it's going to break catastrophically one time, even if for but 10 minutes.
02:25:24 Casey: And then you're going to throw all that out the window.
02:25:26 Casey: And then next thing you know, you're going to be using.
02:25:28 John: He'll rewritten the entire client app and the whole server side by then.
02:25:31 John: So he's not going to be able to throw it out.
02:25:32 Casey: No, no, no.
02:25:33 Casey: Then what he'll do is, because have you met Marco?
02:25:35 Casey: He really likes to control everything.
02:25:37 Casey: And so what you'll end up doing is doing like a Cassandra DynamoDB or something.
02:25:41 Casey: Maybe it's not AWS.
02:25:42 Casey: Maybe it's something else.
02:25:43 Casey: But you'll end up doing something else that is at least reducing your reliance on MySQL.
02:25:49 Casey: Maybe it's Postgres.
02:25:50 Casey: Who knows?
02:25:51 Marco: I still think my binary episodes data thing has some legs.
02:25:55 John: There should be like an alarm sound when you're thinking of using binary columns to pack data into a relational database.
02:26:03 John: Someone should come to your house and say, stop, what are you doing?
02:26:07 John: What decade do you think this is?

Going Retina Again

00:00:00 / --:--:--