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