251: Uninstall Your Water Reminder App!
00:00:00
◼
►
Just as a warning, um, A, I need one more stand hour before I go to bed, which means we need to end before midnight.
00:00:06
◼
►
You can stand while we podcast. You gotta get yourself a standing podcast desk.
00:00:10
◼
►
Have you gotten the nine o'clock hour yet?
00:00:14
◼
►
Stand up now. Stand up.
00:00:16
◼
►
That's true. That's fair point. Oh, God.
00:00:19
◼
►
How long--you need like what, like one or two minutes of activity of standing?
00:00:22
◼
►
One minute. But I gotta like wiggle around and make the watch think that I'm standing.
00:00:27
◼
►
It should run in place. You can get if you're under your calorie count for the day you run. That's true
00:00:31
◼
►
What am I doing? How am I doing? Let's look
00:00:33
◼
►
Are you finishing all three rings on some kind of streak or are you just doing stand?
00:00:36
◼
►
Are you still a blue ring stud stand is the only thing I?
00:00:40
◼
►
Really care about I did have a really good streak going for a long time, but I'm I'm ever so lightly sick
00:00:46
◼
►
So I've been skipping my morning runs
00:00:49
◼
►
And so basically I'm just a sloth as I I'm realizing my true form as a sloth a blue ring sloth
00:00:55
◼
►
- A blue ring sloth, that's right.
00:00:57
◼
►
That's exactly it.
00:00:58
◼
►
- How'd you get the exercise minutes
00:01:00
◼
►
and not get the orange ring?
00:01:02
◼
►
- Because I'm out of shape,
00:01:03
◼
►
even despite all the running up and down.
00:01:05
◼
►
So getting exercise minutes is easier than you think.
00:01:08
◼
►
Wait, wait, wait, okay, we're good.
00:01:09
◼
►
Okay, we can start the show.
00:01:10
◼
►
- You got it?
00:01:11
◼
►
You got like a badge or anything?
00:01:12
◼
►
- Everything is all right now.
00:01:13
◼
►
- Are you in the right time zone?
00:01:15
◼
►
- Who knows?
00:01:17
◼
►
Am I in the right country?
00:01:18
◼
►
Is this what people tune in for?
00:01:19
◼
►
- In your preferred date format,
00:01:23
◼
►
why don't you put the year first
00:01:25
◼
►
so that it like, lexicographically sorts properly?
00:01:28
◼
►
- This is a good question,
00:01:29
◼
►
which probably won't make the show,
00:01:31
◼
►
but if I were editing, would make the show,
00:01:33
◼
►
and this is why I don't edit, by the way.
00:01:37
◼
►
The reason you don't do ISO, what is it, 8601,
00:01:41
◼
►
is because if you're doing something
00:01:43
◼
►
wherein you're handling like,
00:01:46
◼
►
just an unbelievable amount of files,
00:01:48
◼
►
like let's say for the sake of argument,
00:01:50
◼
►
You had all of your pictures that you've ever taken
00:01:55
◼
►
in one folder because you're weird.
00:01:58
◼
►
So every single photograph you've ever taken
00:02:00
◼
►
is all in one folder or one directory, if you will.
00:02:03
◼
►
Were they ever called directories on the Mac, John,
00:02:05
◼
►
way back when, or is that just a DOS thing?
00:02:07
◼
►
- They were not.
00:02:08
◼
►
- Okay, so it's a DOS thing.
00:02:10
◼
►
- What did, Unix calls them directories, right?
00:02:12
◼
►
- Oh, that's true.
00:02:13
◼
►
- Unix calls them directories, yes.
00:02:15
◼
►
- Oh, fair enough.
00:02:16
◼
►
Anyway, I digress.
00:02:17
◼
►
So if you had any photo you've ever taken
00:02:19
◼
►
in one folder/directory, then absolutely, 8601 that bad boy.
00:02:23
◼
►
But in my day-to-day use of a computer, easily 90% of the
00:02:29
◼
►
time that I'm looking at any date, I know by context that
00:02:33
◼
►
it is the current year.
00:02:34
◼
►
So why would I put year first?
00:02:37
◼
►
That just gets annoying and redundant.
00:02:39
◼
►
There are certain circumstances where
00:02:41
◼
►
years should go first.
00:02:42
◼
►
But generally speaking, the one true way to store a date is
00:02:47
◼
►
Day day, month month, year year.
00:02:50
◼
►
Because a day is smaller than a month,
00:02:52
◼
►
and a month is smaller than a year.
00:02:54
◼
►
8601 is ridiculous, and anyone who says otherwise
00:02:58
◼
►
is preposterous, it is day, month, year.
00:03:02
◼
►
So unless you are doing machine sorting,
00:03:04
◼
►
in which case, yes, 8601 is fine.
00:03:06
◼
►
- So what I'm arguing for, which I guess is 8601,
00:03:09
◼
►
I forget, is year, month, day.
00:03:12
◼
►
- Correct, that's 8601.
00:03:13
◼
►
- The reason why this is better
00:03:16
◼
►
is that it is completely unambiguous
00:03:19
◼
►
because nowhere ever uses year, day, month.
00:03:24
◼
►
So if you see a four digit year up front,
00:03:26
◼
►
you know that the next number is going to be the month
00:03:29
◼
►
and the month that is going to be the day.
00:03:31
◼
►
In addition to the benefits of it being
00:03:34
◼
►
alphabetically sorted properly in lists,
00:03:37
◼
►
that's a side benefit.
00:03:39
◼
►
But the number one argument for it is that it's unambiguous,
00:03:42
◼
►
that you can use that format anywhere in the world
00:03:46
◼
►
and people will know how to read it.
00:03:48
◼
►
And the chance of error is very, very low.
00:03:50
◼
►
So that alone should win it.
00:03:52
◼
►
But also, you know, you're a programmer.
00:03:54
◼
►
The lexicographical sorting argument should work on you.
00:03:56
◼
►
And yes, you know right now this is the current year.
00:04:00
◼
►
Guess what, it won't be in a month.
00:04:01
◼
►
Like next month will be a different current year.
00:04:04
◼
►
And if you have a format that sorts correctly,
00:04:06
◼
►
no matter what year you are in
00:04:08
◼
►
or what year the stuff you're looking at is from,
00:04:11
◼
►
that seems like it would be a win.
00:04:12
◼
►
So the correct way to write a date in a file name
00:04:15
◼
►
or in an unambiguous context is year, month, day.
00:04:19
◼
►
- See, I can't disagree with you,
00:04:21
◼
►
because you're not wrong,
00:04:24
◼
►
but you're also not right,
00:04:27
◼
►
because I just don't like it, I don't like it.
00:04:29
◼
►
I'm the same person who doesn't put a zero
00:04:31
◼
►
in my URL slug, so I mean, who am I to talk?
00:04:34
◼
►
But to my eyes, I think we can all agree
00:04:37
◼
►
that Americans get it wrong,
00:04:38
◼
►
that month, day, year is just preposterous.
00:04:41
◼
►
It is truly and utterly stupid.
00:04:43
◼
►
You're trying to make us all agree on cheese here with this?
00:04:46
◼
►
Because I don't agree on cheese.
00:04:48
◼
►
Only you are agreeing on cheese.
00:04:50
◼
►
What does that even mean?
00:04:51
◼
►
American cheese is delicious.
00:04:53
◼
►
Month-day year is not preposterous.
00:04:55
◼
►
For file names, sure, it's preposterous.
00:04:56
◼
►
But for display purposes, which is what we were talking about last time, you're like,
00:05:00
◼
►
"Oh, I sent myself to Australia so my watch can display dates to me in that way."
00:05:04
◼
►
I don't want dates displayed to me in year, month, day.
00:05:07
◼
►
I want them in the U.S. system.
00:05:10
◼
►
The US system makes sense for display dates because –
00:05:12
◼
►
No, it doesn't.
00:05:13
◼
►
Yeah, it does.
00:05:14
◼
►
Month day is all you need to know almost all the time.
00:05:17
◼
►
And for disambiguation, hanging out on the right-hand side, because we read from right
00:05:20
◼
►
to left, if you need to look over there, yeah, there's year.
00:05:22
◼
►
We read from right to left?
00:05:23
◼
►
You know what I mean, left to right.
00:05:26
◼
►
No, you always go day month year.
00:05:28
◼
►
You always go day month year.
00:05:29
◼
►
No, no, not in this country, and you shouldn't do it that way because –
00:05:32
◼
►
Oh, not in this country, but we're wrong.
00:05:33
◼
►
We use Imperial.
00:05:35
◼
►
Month day makes sense.
00:05:37
◼
►
Month day makes sense for display purposes.
00:05:39
◼
►
that in your file name because that would be for the reasons Marco already outlined.
00:05:43
◼
►
No, this is preposterous, Jon. The reason you say month day is right is just because it's what
00:05:46
◼
►
you're used to. No, I'm saying, listen, there's an argument for it. It's not just like random or
00:05:51
◼
►
wrong. Like there, each one of these formats has its strengths and weaknesses and saying that we
00:05:55
◼
►
can all agree that month day is preposterous is saying that there are no advantages to it. There
00:05:59
◼
►
are. There is a sense, there is a mnemonic. There is a sensible system for why that date works,
00:06:05
◼
►
not just because we're used to it, which is obviously a big factor, but also there are things
00:06:08
◼
►
to recommend it, which is what I was just explaining. So it's not, you know, completely,
00:06:13
◼
►
it's not a completely write-off. It's only completely write-off in file names, because
00:06:17
◼
►
that would be dumb. I can get behind, I can get behind month-day when year is not a part of it. So
00:06:24
◼
►
March 17. Okay, fine. But that's the thing, like, you have that disambiguation, like, it's month-day,
00:06:29
◼
►
and then in cases where you feel like you need some disambiguation, like during the year
00:06:33
◼
►
changeover, or if you're doing distant future, distant past dates, you can throw on the year.
00:06:38
◼
►
See, but then if it's month, day, year, how does how are you a programmer? How are you a basically a robot?
00:06:43
◼
►
Say for human consumption for display purposes, not for naming your files, not
00:06:47
◼
►
it's still a month here. No, you're saying month, a year only because it's what you're used to.
00:06:51
◼
►
By doing what you're doing. It's like I do. I'm going to do all my temperatures in Celsius. I'm
00:06:55
◼
►
gonna have all my conversations in the United States and Celsius, right? No, Celsius is barbaric.
00:07:00
◼
►
No, but what I'm saying is like in this country, it's the way we do it. There's massive advantages
00:07:04
◼
►
to doing month day in this country because everyone else does it that way. And if you do
00:07:07
◼
►
it the reverse, you will confuse other people and potentially also confuse yourself, depending on
00:07:12
◼
►
whether you remember if you wrote it or not. No, I will concede that it is unusual in this country.
00:07:17
◼
►
However, don't you put that barbaric Celsius nonsense on me. Don't you even start, sir.
00:07:23
◼
►
Aside from the barbarism of Celsius for human temperatures, like, were you to use it, you'd be
00:07:30
◼
►
swimming against the tide in this country. Sure. And you'd have that same confusion. You should
00:07:35
◼
►
- We should just use kelvins,
00:07:36
◼
►
you don't have to have the degree symbol.
00:07:37
◼
►
There, problem solved.
00:07:38
◼
►
- All I'm saying is, all I'm saying is,
00:07:41
◼
►
I can see an argument for month, day, year.
00:07:44
◼
►
You're wrong, but I can see it.
00:07:46
◼
►
But let me make it plain that using Celsius
00:07:49
◼
►
for human felt temperatures, for ambient air temperatures,
00:07:54
◼
►
and only ambient air temperatures, is utterly ridiculous.
00:07:58
◼
►
And all of you heathens in Europe who say otherwise
00:08:01
◼
►
are unequivocally wrong.
00:08:02
◼
►
Look at the scale.
00:08:04
◼
►
Zero, it's cold-ish.
00:08:07
◼
►
100, you're dead.
00:08:09
◼
►
- Yeah, there's that famous GIF.
00:08:10
◼
►
- Right, it's not even a GIF, it's just an image.
00:08:12
◼
►
- Yeah, well. - In Fahrenheit.
00:08:14
◼
►
- Can be encoded as a GIF.
00:08:15
◼
►
- Zero, zero's really, really cold.
00:08:18
◼
►
100 is really, really hot.
00:08:20
◼
►
That's all you need to know.
00:08:21
◼
►
For ambient air temperatures.
00:08:22
◼
►
- You're such a millennial, it's not even animated.
00:08:28
◼
►
When GIF is synonymous with animation,
00:08:31
◼
►
I'd like to do triple take him out like, "What is he about?"
00:08:35
◼
►
Breaking my brain.
00:08:37
◼
►
- Sorry, Jon.
00:08:38
◼
►
I'm sorry we're kids.
00:08:40
◼
►
Anyway, suffice to say,
00:08:42
◼
►
I can allow an argument that,
00:08:45
◼
►
I can allow the 8601 argument, I think you're wrong.
00:08:47
◼
►
I can allow the monthly year argument, I think you're wrong.
00:08:50
◼
►
But we should all agree, the official ATP stance on Celsius
00:08:54
◼
►
is that it is utterly preposterous and wrong
00:08:56
◼
►
for ambient air temperature.
00:08:58
◼
►
You wanna talk science-y things?
00:08:59
◼
►
Well, you should be using Kelvin, but fine,
00:09:00
◼
►
and use Celsius, but for ambient air temperature,
00:09:04
◼
►
it is wrong and Europe should be ashamed.
00:09:07
◼
►
Let's move on and let's start with some followup.
00:09:10
◼
►
The root bug post in the dev forums,
00:09:13
◼
►
that was the dev forums, not the support forums.
00:09:16
◼
►
And one or all of us got that backwards last week.
00:09:19
◼
►
- Yeah, that was my bad.
00:09:19
◼
►
I think we all started off saying the right thing,
00:09:22
◼
►
but I very quickly shifted into talking
00:09:24
◼
►
about the support forums.
00:09:26
◼
►
So the developer forums,
00:09:27
◼
►
you have to be a registered Apple developer
00:09:29
◼
►
even see them like they're actually authenticates so they're not open to the public.
00:09:32
◼
►
They are still pretty noisy and it's also true that they are not a "hey Apple come
00:09:37
◼
►
help me with my problem" thing like it is other developers talking to other developers
00:09:40
◼
►
and you have you know DTS support incidents or whatever for actual you know you pay money
00:09:47
◼
►
and then Apple can help you with stuff.
00:09:48
◼
►
So some of what we said is true but it's important not to confuse the two types of forums.
00:09:54
◼
►
The completely wide open public support forums are high volume and very noisy and people
00:09:59
◼
►
People talk about all sorts of things, dev forums are less so.
00:10:01
◼
►
All right, and related, apparently Gregory Beatty emailed productsecurity@apple.com about
00:10:07
◼
►
this bug on November 12th.
00:10:09
◼
►
Do you want to tell us about this?
00:10:10
◼
►
Yeah, a lot of people are asking about, you know, should Apple be poring over their forums
00:10:16
◼
►
or having some one or more employees look at all the both the dev forums and the support
00:10:21
◼
►
forums so they can see these bugs ahead of time and a lot of people saying, "Oh, posting
00:10:25
◼
►
this on Twitter isn't the way you're supposed to disclose this, blah, blah, blah.
00:10:28
◼
►
What you're supposed to do is email productsecurity@apple.com.
00:10:31
◼
►
And turns out somebody did actually do exactly the right thing, which is email productsecurity@apple.com,
00:10:36
◼
►
about this exact bug on November 12th, which is a long time ago.
00:10:40
◼
►
And I don't know if they just have a big backlog or didn't get to it or knew about it, but
00:10:45
◼
►
we're hoping they could just sweep it under the rug until their fix came out in a later
00:10:51
◼
►
I don't know what the story is, but I thought it was interesting that for all the yelling
00:10:55
◼
►
about the right and wrong way to report bugs
00:10:58
◼
►
and the right and wrong way for Apple to know about them,
00:11:00
◼
►
this particular bug, long before it was widely publicized
00:11:04
◼
►
and long before it was fixed,
00:11:06
◼
►
was submitted to Apple in the correct way.
00:11:09
◼
►
- Excellent.
00:11:11
◼
►
- The quote unquote correct way,
00:11:12
◼
►
because there was some argument that like,
00:11:13
◼
►
oh, you have to, you know, like responsible disclosure
00:11:17
◼
►
or whatever, where you tell the source of the bug
00:11:20
◼
►
about it first secretly to give them a chance to fix it
00:11:23
◼
►
and only if they don't fix it after a long, long time do you go in the public versus "irresponsible
00:11:28
◼
►
disclosure" where you just tell it to the public before, you know, at the same time
00:11:31
◼
►
the vendor finds out the public does.
00:11:34
◼
►
And there was some debate about what actually is the best way to do that.
00:11:39
◼
►
Obviously, if you hear this, you're like, "Oh, well, of course, a responsible disclosure
00:11:41
◼
►
where you tell the vendor first, that's the way to do it because it protects the most
00:11:45
◼
►
You don't want the bad guys to have a blah, blah, blah."
00:11:46
◼
►
But the problem with that approach in the past has been that the vendors are like, "Oh,
00:11:50
◼
►
thank you for telling us.
00:11:52
◼
►
We'll fix it when we get to it."
00:11:53
◼
►
And then you're sitting there waiting, going like, "How long do I have to wait before…?"
00:11:57
◼
►
You know, like maybe the bad guys already know about this.
00:11:59
◼
►
Just because I didn't tell the bad guys doesn't mean they don't.
00:12:01
◼
►
Just because I discovered it, maybe they discovered it now too.
00:12:04
◼
►
And so you're waiting, "Come on, come on, fix the bug, fix the bug."
00:12:06
◼
►
And then you have to know, "How long do I wait before it's okay for me to say in
00:12:09
◼
►
public what this thing is?"
00:12:10
◼
►
You know, and there was an article about it a couple years ago, which was about the much
00:12:16
◼
►
more bureaucratic process of submitting things rather than the informal just email Apple
00:12:21
◼
►
And I'm not entirely sure that the -- in this world where information is, you know, so widely
00:12:30
◼
►
shared and it's so difficult to know what other people know, like how long have, you
00:12:37
◼
►
know, black hat hackers known about this bug?
00:12:39
◼
►
We don't know and they're not going to tell us.
00:12:42
◼
►
And the one thing we have learned from these type of incidents is that widespread publication
00:12:48
◼
►
of a bug gets it fixed really fast.
00:12:51
◼
►
submitting it through the proper channels does not always get it fixed really fast.
00:12:54
◼
►
So I'm not quite sure what the right thing to do here is.
00:12:56
◼
►
It's not clear cut.
00:12:58
◼
►
And do you want to tell us about what Sean writes about XProtect?
00:13:03
◼
►
XProtect I think is either the internal or external, both names of the malware system
00:13:08
◼
►
that Apple has on macOS where they have signatures of malware and they periodically update that
00:13:14
◼
►
behind the scenes without you knowing about it.
00:13:16
◼
►
And I think I mentioned on the show, like, you don't even know that it's happening.
00:13:19
◼
►
Like they're updating that malware whenever the heck they feel like it and you have no
00:13:23
◼
►
choice in the matter.
00:13:24
◼
►
Although I think you can actually disable it or whatever.
00:13:26
◼
►
But on a default system you are getting these updates whether you like it or not unless
00:13:29
◼
►
you go into the system preferences and turn off the little checkbox that says you get
00:13:33
◼
►
these updates.
00:13:34
◼
►
But if you're wondering when they happen people are actually keeping track of it and you can
00:13:38
◼
►
look at this website.
00:13:39
◼
►
We'll put a link in the show notes.
00:13:41
◼
►
That tells you when the updates are and what things they protect against.
00:13:47
◼
►
there's even a little shell script that will tell you the last time it updated on your
00:13:51
◼
►
computer that you can run.
00:13:55
◼
►
So Ian Williamson writes in and says, "As someone who's previously had to join all of
00:13:59
◼
►
our company Macs to Active Directory in order to enforce corporate security policies, I
00:14:04
◼
►
wanted to confirm that yes, it causes a multitude of issues resulting in the spinning beach
00:14:09
◼
►
Recently though, we're starting to disconnect them all and replace that with an Apple tool
00:14:12
◼
►
called Enterprise Connect, which communicates with AD in a much looser fashion."
00:14:16
◼
►
So in case you're not aware, because your name is Marco, or you don't really have a
00:14:20
◼
►
real job, Active Directory is the, I'm sure there's a term for it, is it LDAP?
00:14:26
◼
►
I don't even know.
00:14:27
◼
►
But it's the system by which many, many, many, many corporate environments manage users.
00:14:32
◼
►
And it's a Microsoft system.
00:14:34
◼
►
And it does not typically play terribly well with Macs, which I think is slightly on Microsoft's
00:14:40
◼
►
shoulders, but is largely on Apple's shoulders.
00:14:45
◼
►
And so I know that my IT guy at my work
00:14:48
◼
►
has been complaining and moaning about
00:14:51
◼
►
Apple's implementation of Active Directory,
00:14:53
◼
►
particularly recently because I think
00:14:55
◼
►
they might have redone it or something.
00:14:58
◼
►
It has caused him no endless amount of woes,
00:15:00
◼
►
and he is actively inquiring about this
00:15:03
◼
►
Enterprise Connect thing that apparently
00:15:05
◼
►
is only given to the coolest of clients of Apple's.
00:15:08
◼
►
So I don't know if you guys have anything to add on that.
00:15:10
◼
►
I'm sure Marco, you do, so let's start with you.
00:15:13
◼
►
- I really don't.
00:15:14
◼
►
This is an entire world that I know nothing about, and I'm very happy to continue knowing
00:15:20
◼
►
nothing about.
00:15:21
◼
►
I wish I could do that too, but alas, I cannot.
00:15:24
◼
►
This was a response to me guessing why my computer was, like, slow to wake, and I got
00:15:29
◼
►
beach balls all the time, and I was attributing to Active Directory mostly because I had previously
00:15:34
◼
►
had a Mac that was not on the Active Directory network, and it was just so—it was like
00:15:38
◼
►
a normal Mac.
00:15:39
◼
►
Like a normal—it was a desktop too, so that also helps.
00:15:41
◼
►
You'd wake it from sleep and it was immediately ready to go.
00:15:44
◼
►
Anyway, I was blaming activator who doesn't know.
00:15:48
◼
►
I think it was Margot who suggested turning off Power Nap and Hibernate and I did that.
00:15:53
◼
►
It did not really make any change as far as I can tell.
00:15:58
◼
►
So I think my computer was not hibernating and Power Nap was not an issue.
00:16:03
◼
►
I still – I left the lid.
00:16:05
◼
►
I closed the lid, walked to my next meeting, sit down, opened the lid and there's a fairly
00:16:09
◼
►
long period of time.
00:16:11
◼
►
a long period of time before I can even log in, either with Touch ID or otherwise.
00:16:15
◼
►
I usually give up on Touch ID after I've put my finger there for a while and nothing has
00:16:19
◼
►
And then I type my password, nothing also happens.
00:16:20
◼
►
Like I don't even see the little dots appear on the screen.
00:16:23
◼
►
But very often it has registered my typed password, and if I just wait, including the
00:16:28
◼
►
return key that I hit, and if I just wait and wait and eventually it will unlock, and
00:16:32
◼
►
then I'll try to do something and then I'll get a beach ball.
00:16:33
◼
►
So I blame this on Active Directory.
00:16:35
◼
►
And Ian was writing in to talk about this Enterprise Connect thing, which is trying
00:16:39
◼
►
to make a looser coupling between Active Directory.
00:16:43
◼
►
Here's the thing.
00:16:44
◼
►
I don't know almost anything about Active Directory other than the fact that I am subjected
00:16:50
◼
►
I don't know if my company, my company might already be using Enterprise Connect.
00:16:54
◼
►
I might be using the good version.
00:16:56
◼
►
Like for all I know, it is worse for people who are not using Enterprise Connect.
00:16:59
◼
►
So I really have honestly no way of knowing whether I'm currently using Enterprise Connect
00:17:04
◼
►
If I'm not, I would love for my company to use it.
00:17:06
◼
►
But somehow I don't think that's in the cards because in general, like this time,
00:17:12
◼
►
in the grand scheme of things, complaining that your computer takes a while before you
00:17:15
◼
►
can use it when you open the lid, and you know, it's not that long, it's like, you
00:17:18
◼
►
know, maybe 20 seconds.
00:17:20
◼
►
That is a complaint that is probably falling on deaf ears in the grand scheme of enterprise
00:17:25
◼
►
I just kind of wish I didn't have to deal with it.
00:17:29
◼
►
We are sponsored this week by Fracture, beautiful photo prints directly on glass.
00:17:33
◼
►
Visit fracture.me and save 15% off your first order
00:17:36
◼
►
with code ATP17.
00:17:39
◼
►
Fracture prints look amazing.
00:17:42
◼
►
You know, you should get your photos printed sometimes
00:17:43
◼
►
because if you just post them online like most of us do,
00:17:46
◼
►
after 12 hours they're off everyone's timelines,
00:17:48
◼
►
you'll never see them again.
00:17:50
◼
►
But if you get them printed, you have an actual artifact
00:17:52
◼
►
that you can hang up in your house or prop up on your desk
00:17:55
◼
►
or even better, give it as a gift to someone
00:17:58
◼
►
who will really enjoy it.
00:17:59
◼
►
And this could be something traditional
00:18:00
◼
►
like giving grandparents pictures of their grandchildren
00:18:03
◼
►
or their grand puppies, or it can be something fun
00:18:05
◼
►
that you do with your friends.
00:18:07
◼
►
Like maybe you send each other pictures
00:18:08
◼
►
that are inside jokes to you that you find funny,
00:18:11
◼
►
or just pictures of fun times you had together.
00:18:14
◼
►
Family, friends, coworkers, whoever it is,
00:18:16
◼
►
they make wonderful gifts.
00:18:17
◼
►
And Fracture knows this, so do a lot of other people.
00:18:20
◼
►
So if you wanna get it done in time for the holidays,
00:18:23
◼
►
please place your orders now.
00:18:25
◼
►
Because here's the thing, every Fracture,
00:18:26
◼
►
they care a lot about quality,
00:18:28
◼
►
so every Fracture is handmade by human beings
00:18:31
◼
►
in Gainesville, Florida, right here, right in the US.
00:18:34
◼
►
They are a green company operating a carbon neutral factory.
00:18:36
◼
►
They do things very, very well.
00:18:38
◼
►
But what this means, having all this human,
00:18:40
◼
►
you know, hand involvement here,
00:18:41
◼
►
is that the holidays, they get backed up sometimes.
00:18:44
◼
►
And so it's pretty close to the holidays now.
00:18:47
◼
►
They're already starting to get a large volume of orders in.
00:18:50
◼
►
If you want a gift in time for the holidays from Fracture,
00:18:52
◼
►
which I strongly recommend,
00:18:54
◼
►
'cause these prints look great.
00:18:55
◼
►
They go edge to edge, they're printed right on glass,
00:18:58
◼
►
you don't need to frame them,
00:18:59
◼
►
they fit well with any decor,
00:19:01
◼
►
They just look awesome, modern, clean, high quality,
00:19:04
◼
►
great colors, great contrast.
00:19:06
◼
►
So you want these things, but you gotta place
00:19:08
◼
►
those holiday orders now.
00:19:10
◼
►
Please don't wait.
00:19:11
◼
►
If you want 'em in a hundred holidays,
00:19:12
◼
►
place those orders now.
00:19:14
◼
►
They are wonderful.
00:19:15
◼
►
So check them out today at fracture.me
00:19:18
◼
►
and save 15% off your first order with code ATP17.
00:19:22
◼
►
If they ask you where you came from,
00:19:23
◼
►
make sure to tell them you came from ATP,
00:19:26
◼
►
our wonderful podcast here.
00:19:27
◼
►
So fracture.me and save 15% off your first order
00:19:30
◼
►
code ATP17. Thank you so much to Fracture for sponsoring our show.
00:19:37
◼
►
Last week I got just a little bit fired up with regard to the keyboard behavior on iOS.
00:19:46
◼
►
I have two pieces of follow-up about this. Number one, I had assumed it was all me and that I'm just inept.
00:19:52
◼
►
And I had a tremendous amount of people write in to say, "No, no, no, it's not just you. It's become hot garbage."
00:19:59
◼
►
garbage. Now, nobody could agree on when this happened. A lot of people said the same thing
00:20:05
◼
►
I did, which was right around iOS, or I'm sorry, it was iPhone 6-ish, whatever iOS was
00:20:11
◼
►
around that time. Some people have said, "No, no, no, it's actually with iOS 11," which
00:20:15
◼
►
I disagree with. But a lot of people said, "No, no, no, you are not alone. I cannot type
00:20:22
◼
►
on my phone anymore." That being said, I have been mildly browbeat by Mike Hurley to try
00:20:28
◼
►
Gboard, which is Google's third-party keyboard, which is pretty good, but I haven't tried
00:20:35
◼
►
that. And when I am typing rather than swiping, I feel like it's not any better, which makes
00:20:42
◼
►
me think this is a KC problem, not an iOS problem. And apparently it's also a tons and
00:20:47
◼
►
tons of listeners problem all at the same time, because if I can't type on the Google
00:20:53
◼
►
keyboard and I can't type on the Apple keyboard, then that makes me think I'm the problem.
00:21:00
◼
►
Or perhaps it was that Apple was uniquely good at figuring out what I meant and autocorrecting
00:21:08
◼
►
things, or perhaps the touch targets were uniquely good at being the way I expected
00:21:14
◼
►
them to be, and now they're not?
00:21:17
◼
►
Like somebody had suggested, I don't remember who it was, that maybe their touch targets
00:21:22
◼
►
got way bigger when they're predicting what you're gonna type. So like let's say I'm typing the word
00:21:27
◼
►
"their," t-h-e-r-e. Then so I type t-h-e and the touch target for the letter r because, you know,
00:21:35
◼
►
Apple thinks, "Oh, I bet he's gonna type in r." The touch target for r is just mammoth. And if
00:21:39
◼
►
I'm trying to type "they," then maybe I'll get t-h-e-r instead. Does that make any sense? It's
00:21:46
◼
►
a very, it's very hard to paint this word picture. But what I'm driving at is, you know, predictive
00:21:50
◼
►
touch target enlargement is a possible explanation, though that is completely supposition, and
00:21:57
◼
►
I have no facts to indicate that's true. But in any case, one way or another, I've been trying
00:22:03
◼
►
Gboard, and it's not really working for me so far, so it makes me think it's a Casey problem,
00:22:07
◼
►
but I don't know if you guys have any feedback on this one.
00:22:09
◼
►
I don't know if that means it's a Casey problem. It's like you said,
00:22:11
◼
►
that Gboard is a totally different keyboard, right? So that, we have no idea what,
00:22:17
◼
►
how you are at typing on Gboard.
00:22:19
◼
►
But you have the feeling, and many, many other people
00:22:22
◼
►
who wrote in also have the feeling
00:22:23
◼
►
that they were previously better at typing
00:22:25
◼
►
on the Apple keyboard.
00:22:27
◼
►
And the weird thing about the feedback,
00:22:28
◼
►
like I put it in here, it's like,
00:22:30
◼
►
basically that you're not alone,
00:22:31
◼
►
but incredible variance in the people.
00:22:33
◼
►
Some people saying it started two years ago,
00:22:35
◼
►
it started with iOS 10,
00:22:37
◼
►
it started when I changed to a bigger phone,
00:22:39
◼
►
it started when I changed to a smaller phone,
00:22:41
◼
►
and I don't know if you just tapped into some sort of
00:22:44
◼
►
like deterioration of mass deterioration of typing skills because it doesn't seem to be
00:22:50
◼
►
any common thread like not it's not like everyone agreed that ios 11 hosed it there was not that
00:22:55
◼
►
agreement but lots of people really feel like they are now worse at typing than these maybe
00:22:59
◼
►
they're just all getting older and it's like one of the first places that they're noticing
00:23:02
◼
►
that they're getting older um the only thing i saw that i think could be attributable to
00:23:09
◼
►
Software is people complaining about autocorrect going behind them and changing their last three
00:23:16
◼
►
words to something nonsensical. And I've noticed that as well. And I think that is a new software
00:23:21
◼
►
edition where it previously didn't used to like once you moved on from something, it would be
00:23:24
◼
►
like, oh, that's fine. But now it has like some kind of thing where it reconsiders the last five
00:23:28
◼
►
words you've written and says, oh, I see you were probably trying to write this sequence of
00:23:33
◼
►
nonsense five words and it goes back and corrects them. And that people find infuriating. And
00:23:38
◼
►
and infuriating, so do I.
00:23:39
◼
►
- Yep, I completely agree, and I'm glad you brought that up
00:23:41
◼
►
'cause I had forgotten about that,
00:23:42
◼
►
and yes, I've seen that behavior,
00:23:44
◼
►
and it is driving me bananas.
00:23:48
◼
►
Marco, any thoughts about this before I move on?
00:23:50
◼
►
- I mean, iOS changes autocorrect behavior
00:23:52
◼
►
in lots of versions.
00:23:54
◼
►
Like, you know, I'm sure iOS 10 changed it one way,
00:23:56
◼
►
iOS 11 changed it different ways.
00:23:58
◼
►
Now it does the machine learning,
00:23:59
◼
►
differential privacy corrections that are resulting
00:24:02
◼
►
in really embarrassing bugs like that, you know,
00:24:04
◼
►
turning into the A box thing and the IT from it thing.
00:24:09
◼
►
They're gonna work it out.
00:24:11
◼
►
I hope they do, but there's definitely changes here,
00:24:15
◼
►
but there's been changes before and they've worked it out.
00:24:17
◼
►
The only other thing I can think of
00:24:18
◼
►
that might be a factor for you
00:24:19
◼
►
is that you're also on an iPhone 10 now,
00:24:21
◼
►
which is a different physical size
00:24:23
◼
►
than what you were using for the last few years.
00:24:25
◼
►
So that's also probably contributing to just it's different
00:24:28
◼
►
and your body has to get used to it.
00:24:29
◼
►
- It could be, but I mean, this has been happening
00:24:32
◼
►
since before the Switch.
00:24:34
◼
►
That's what I mentioned last week, that are you sure it's not the size?
00:24:37
◼
►
And Casey said, well, it could be, but there are other factors as well.
00:24:40
◼
►
And everyone else who complained about it was very adamant that, no, it's not the size,
00:24:44
◼
►
except for the few people who said it was the size.
00:24:46
◼
►
But yeah, it's difficult in this type of thing because even if it's not machine learning,
00:24:52
◼
►
like yeah, machine learning is the type of thing where it's not like a human program
00:24:56
◼
►
with an exact set of rules for it to behave.
00:24:59
◼
►
It's supposed to learn on its own and improve.
00:25:00
◼
►
so it's very difficult to know exactly how it's behaving because it's very much data-driven.
00:25:04
◼
►
But even in the rules-based ones, if the rules are complicated enough and changed often enough,
00:25:08
◼
►
it still doesn't really help you nail down, "Is this a better system than the one that
00:25:13
◼
►
preceded it? Did our tweak to the set of static rules help or hurt?" It's kind of -- I mean,
00:25:19
◼
►
I'm not sure how you'd even measure that. It's like a typing satisfaction measurement.
00:25:25
◼
►
You just use face ID to look at the person's face and see if they're making a face like
00:25:29
◼
►
they just smelled something gross as I tried to type.
00:25:32
◼
►
Wow. Speaking of smelling something gross, tell me about your touch bar.
00:25:39
◼
►
Don't smell the touch bar. Do touch the glove. Don't smell the glove? Smell the glove.
00:25:44
◼
►
Sniff the glove? Come on, chat room, help me, I'm old and my brain doesn't work.
00:25:48
◼
►
I have no idea what you're talking about.
00:25:50
◼
►
Yeah, I noticed I didn't even bother asking you to. Yeah, well, that was wise. You know
00:25:54
◼
►
as well. Smell the glove. Okay, thank you. I feel a little bit better.
00:25:57
◼
►
- What was this about?
00:25:58
◼
►
- I converged on it eventually.
00:25:59
◼
►
- What is the history here?
00:26:00
◼
►
- I can-- - Oh, spinal tap?
00:26:01
◼
►
- Yeah, it's a good movie.
00:26:02
◼
►
You should watch it. - I've still never seen that.
00:26:04
◼
►
- You should watch it, it's funny.
00:26:05
◼
►
- I should turn it up to 11 when I do.
00:26:07
◼
►
- Yeah, there you go, you know something's from it.
00:26:09
◼
►
So I just wanted to mark this point in time
00:26:13
◼
►
where I got my 2017 Touch Bar MacBook Pro
00:26:15
◼
►
whenever it was a couple months ago,
00:26:17
◼
►
and I've been using it, and I do,
00:26:19
◼
►
despite the fact that it's mostly in clamshell on my desk
00:26:21
◼
►
when I go to meetings and travel around the office,
00:26:23
◼
►
I do use it as an actual laptop,
00:26:25
◼
►
And I really feel like I've given the touch bar a fair
00:26:30
◼
►
shake despite continuing to hit the escape button,
00:26:34
◼
►
or lack thereof.
00:26:36
◼
►
But I finally did something that I've
00:26:39
◼
►
wanted to do since day one, but I've been resisting,
00:26:41
◼
►
which is change that preference in the keyboard settings that
00:26:45
◼
►
tells it to-- the default setting is allow applications
00:26:49
◼
►
to change the touch bar so that when you're in Safari,
00:26:51
◼
►
you see Safari's thumbnails.
00:26:53
◼
►
And when you're in Mail, you see the Mail buttons and all
00:26:55
◼
►
that stuff, right? There's actually a setting in system preferences in the keyboard system
00:26:59
◼
►
preference that says don't do that. Just show me the system controls all the time. So the
00:27:07
◼
►
function keys and the media control and the sound things basically making it like a little
00:27:12
◼
►
static graphical version of the regular keys that are on the MacBook escape. And I resisted
00:27:17
◼
►
doing that because like look if you're going to give the touch bar a fair shake, use it
00:27:21
◼
►
how it's supposed to be used. Use it in the default settings, allow the applications to
00:27:24
◼
►
do all their stuff with it, but who knows, maybe there's some application that you use
00:27:27
◼
►
that you'll find the touch bar really useful.
00:27:30
◼
►
And that was not the case.
00:27:31
◼
►
And so, and I was finding it distracting as the touch bar changed from thing to thing
00:27:36
◼
►
as I command tabbed around, and so I just changed it to be static now.
00:27:39
◼
►
So now I'm effectively using little pictures of keys that never change, and I still wish
00:27:46
◼
►
they were regular keys.
00:27:47
◼
►
So I put me down in the category of, I can't say I'm anti-touch bar, because I just don't
00:27:52
◼
►
like laptops and so if I had to buy a laptop,
00:27:56
◼
►
it having a touch bar or not
00:27:57
◼
►
would probably be the least of my concerns.
00:27:59
◼
►
But I didn't find a place for the touch bar in my life.
00:28:03
◼
►
I just don't find myself looking at that part of the machine
00:28:07
◼
►
when I'm using it at all.
00:28:09
◼
►
And maybe it's just because I have old habits or whatever,
00:28:11
◼
►
but it didn't work out for me.
00:28:13
◼
►
- You were talking with some people
00:28:16
◼
►
in one of the slacks that were in together.
00:28:19
◼
►
And you were talking about,
00:28:22
◼
►
It wasn't window shade, but I can't think of what it was.
00:28:24
◼
►
So let's just call it window shade.
00:28:26
◼
►
And you were talking about, you know,
00:28:28
◼
►
how you still have window shade enabled again.
00:28:30
◼
►
It wasn't literally window shade,
00:28:32
◼
►
but you have window shade enabled even to this day
00:28:34
◼
►
because you can't live without it.
00:28:36
◼
►
- If you're using this example,
00:28:37
◼
►
people are gonna think I run window shade.
00:28:38
◼
►
Let's be clear, I do not.
00:28:39
◼
►
- Well, yeah, I know,
00:28:40
◼
►
but I can't remember what the hell it was.
00:28:42
◼
►
- You're talking about the classic Mac window layering.
00:28:45
◼
►
That's gotta be it, right?
00:28:46
◼
►
- Maybe, I don't know.
00:28:47
◼
►
It doesn't really matter.
00:28:48
◼
►
The point I'm driving at-
00:28:49
◼
►
- I think it's classic Mac window layering,
00:28:50
◼
►
if I remember the conversation correctly,
00:28:51
◼
►
which people don't know what that is, but anyway, I'm pretty sure that's what it was.
00:28:54
◼
►
So do you want to briefly describe what that is then?
00:28:56
◼
►
That's just when you click a window in classic Mac OS, any window on the screen, if the window
00:29:00
◼
►
belongs to a different application than the front-most one, like the window belongs to
00:29:06
◼
►
an application that's not currently the active one, it doesn't just bring that window to
00:29:10
◼
►
the front, it brings that window and all the other windows owned by that application to
00:29:15
◼
►
And that's how I used the Mac for 16 years before Mac OS X came along that way, and that's
00:29:21
◼
►
That's how I like to use it.
00:29:23
◼
►
And so during the entire life of Mac OS X and on its Mac OS there have been various
00:29:28
◼
►
utilities that would change the Windows server behavior to act that way.
00:29:33
◼
►
But in the Mac OS X timeline, not only do you get that feature, but you also, most of
00:29:42
◼
►
the utilities I've used have allowed you to get back the other behavior.
00:29:44
◼
►
Because if you show up behavior something like, "Oh, what if I just want one window
00:29:47
◼
►
to come to the front?
00:29:48
◼
►
It's not what I want at all, right?
00:29:51
◼
►
It's just a matter of what you prefer because with the tools that I use, you're just changing
00:29:56
◼
►
what the default is.
00:29:57
◼
►
So for me, shift click brings a single window to the front and just regular click brings
00:30:01
◼
►
all the windows that belong to that application to the front.
00:30:04
◼
►
And some people may like the reverse where regular click just brings that one window
00:30:07
◼
►
and then some modifier click brings all the windows.
00:30:10
◼
►
Or maybe you never want all the windows to come, but how I work based on my habits, I
00:30:14
◼
►
want the default to be all windows come to the front.
00:30:15
◼
►
So I still do that.
00:30:16
◼
►
- I didn't even know, yeah, shift click doesn't do it
00:30:20
◼
►
by default, it doesn't seem, but anyway.
00:30:22
◼
►
- No, no, the utility, I think I'm using drag thing
00:30:24
◼
►
to do it right now, but there's various utilities to it.
00:30:26
◼
►
I think native, like the regular Mac out of the box,
00:30:29
◼
►
doesn't have a way for you to bring all the windows
00:30:31
◼
►
to the front, other than clicking the dock icon or whatever.
00:30:33
◼
►
Like there's no modifier click on a window to do it, I think.
00:30:37
◼
►
- In any case, the reason I bring all this up
00:30:39
◼
►
is because it struck me hearing you talk about this,
00:30:44
◼
►
that you and many other like old school Mac people
00:30:49
◼
►
created these habits over the course of years
00:30:53
◼
►
that either because you're petulantly stubborn
00:30:56
◼
►
or just used to it, and probably both to be honest,
00:31:01
◼
►
you just can't break yourself of them.
00:31:03
◼
►
And I am glad that the list of things
00:31:08
◼
►
that I have that are like that,
00:31:09
◼
►
I feel like is pretty small.
00:31:11
◼
►
Now, to be fair--
00:31:12
◼
►
- Oh, young child, yeah.
00:31:13
◼
►
Do you think it's the most small because your world hasn't yet changed that much?
00:31:16
◼
►
Just wait until everyone's in VR and you're gonna be like, "I insist on using my fingers
00:31:20
◼
►
because I used my fingers for a really long time."
00:31:22
◼
►
And you know what?
00:31:23
◼
►
And to that end, actually, the obvious answer to this is no, Casey, you still prefer Mac.
00:31:27
◼
►
So you're old and you're relying on old technology.
00:31:29
◼
►
So your point is fair.
00:31:31
◼
►
But it's just it's striking to me how you don't really like new things, Jon.
00:31:37
◼
►
That's not what it is at all.
00:31:38
◼
►
I think you're taking the wrong lesson for this.
00:31:40
◼
►
The lesson for this is like, what is the advantage for me changing my habits?
00:31:43
◼
►
There has to be an advantage.
00:31:44
◼
►
There has to be a reason for me to train myself out of doing something.
00:31:47
◼
►
Now one reason could be that there is literally no way to do it the old way.
00:31:50
◼
►
So guess what?
00:31:51
◼
►
That's the stick version.
00:31:52
◼
►
You have no choice.
00:31:54
◼
►
There is no more of that thing, so forget about it and whatever.
00:31:57
◼
►
But if there is a way to do it, it's a trade-off.
00:32:01
◼
►
What is the cost of enabling this way?
00:32:03
◼
►
Is it some hack that destroys your system stability?
00:32:06
◼
►
Is it something that you have to maintain and carefully upgrade and compile from open
00:32:11
◼
►
source software or is it like jailbreaking where every time a new OS comes out you have
00:32:14
◼
►
to get a new jailbreak or whatever?
00:32:16
◼
►
That would be the cost.
00:32:17
◼
►
And the benefit is you just get to continue to use your old habits.
00:32:20
◼
►
And it's not just habits in the case of window layering.
00:32:22
◼
►
The way I use Windows, like my entire system of dealing with Windows, this is an important
00:32:30
◼
►
The fact that I can grab a corner of a window that belongs to an application and bring all
00:32:34
◼
►
the windows to that application to the front, I don't have an alternate way to manage windows
00:32:39
◼
►
in that way.
00:32:40
◼
►
I want to bring all the windows to the front.
00:32:41
◼
►
I've got to go down to the dock icon,
00:32:43
◼
►
but that breaks my whole system of arranging windows
00:32:46
◼
►
spatially to have to use them as sort of grab handles
00:32:49
◼
►
and to have locality of cursor
00:32:51
◼
►
and not to constantly have to go down
00:32:53
◼
►
to the bottom of the screen
00:32:53
◼
►
or to the right or the left or whatever.
00:32:56
◼
►
So there are benefits to that system.
00:32:59
◼
►
And for this particular feature,
00:33:02
◼
►
the drawbacks in terms of system stability
00:33:05
◼
►
or maintenance of a weird program or anything
00:33:08
◼
►
just haven't been there.
00:33:09
◼
►
Unlike for example window shade which I ran for a little while
00:33:12
◼
►
But eventually it was clear that
00:33:13
◼
►
Apple was never going to add it and you really had to add some really nasty hacks to your system to use it
00:33:18
◼
►
So I I abandoned window shade
00:33:20
◼
►
But this I didn't abandon because it is a very minor change very cleanly implemented by multiple products
00:33:26
◼
►
That don't require any hacks to my system whatsoever. And so I keep doing it
00:33:31
◼
►
So it's the lesson is not never learn new things or don't pick up new habits or whatever
00:33:35
◼
►
The lesson is you know, don't don't blindly
00:33:39
◼
►
Abandon the old for no benefit if they're you know if it continues to work for you
00:33:45
◼
►
But the benefit is not having to do any sort of tweaking right like
00:33:48
◼
►
Something that Dan Benjamin said years and years and years ago
00:33:51
◼
►
Which I I don't 100% agree with but I understand his point was that like
00:33:56
◼
►
One should embrace the operating system defaults because it's that much less tweaking and finagling and in
00:34:02
◼
►
Messing about you need to do when you get a new machine
00:34:06
◼
►
You know because you can just accept the defaults and move on and to be fair like I have a
00:34:10
◼
►
Not insignificant list of software that I considered completely required for me to use a computer for example
00:34:16
◼
►
Alfred for example one password for example Dropbox, but in terms of like
00:34:23
◼
►
Tweaking the system. I don't feel like I'm that
00:34:26
◼
►
Particularly needy I I say that because I'm probably more needy than I realized, but I don't think I'm that bad whereas
00:34:34
◼
►
It seems like, Jon, maybe this is just your advanced stage, maybe it's your advanced experience
00:34:40
◼
►
with the platform, but it seems like you're more needy in this department than I am.
00:34:45
◼
►
Jon Streeter I think I'm using less stuff than you, as
00:34:47
◼
►
evidenced by my nice clean menu bar.
00:34:49
◼
►
But like, but Dan's argument, like we've had this discussion before.
00:34:53
◼
►
Dan's argument only makes sense if you are forced to live in a hoteling environment where
00:34:56
◼
►
you have to sit down in front of a fresh computer every day and start your work.
00:34:58
◼
►
Like we have migration assistant, we have upgraded installs of operating systems.
00:35:02
◼
►
Like this is not an issue at all.
00:35:04
◼
►
Like I don't spend time setting up my new Macs.
00:35:07
◼
►
Like for the people who do that,
00:35:08
◼
►
maybe it's a fun thing they like to do.
00:35:09
◼
►
I just want to refresh system and reset it up.
00:35:11
◼
►
I never reset up a machine from scratch.
00:35:12
◼
►
I just do an upgrade install or use migration assistant.
00:35:15
◼
►
All my stuff is already there.
00:35:16
◼
►
And it's not that much stuff.
00:35:18
◼
►
And drag thing I'm running anyway,
00:35:20
◼
►
because I like to have a thing on the screen
00:35:22
◼
►
that I can click on that just has applications in it,
00:35:24
◼
►
doesn't have minimized windows or folders in it.
00:35:27
◼
►
So I use that as a separate application,
00:35:30
◼
►
separate from its functionality for the window layering,
00:35:33
◼
►
but it just happens to also do window layering.
00:35:34
◼
►
So I'm getting a two for one
00:35:35
◼
►
out of that particular application.
00:35:36
◼
►
But no, there's not that much stuff.
00:35:38
◼
►
I have my favorite applications.
00:35:39
◼
►
I run, I think I run zero system hacks of any kind anymore.
00:35:44
◼
►
Like literally zero, like nothing is a kernel extension
00:35:49
◼
►
or a symbol plugin or anything like that.
00:35:52
◼
►
I don't, I run very few things
00:35:53
◼
►
that even display in the menu bar.
00:35:55
◼
►
I run favorite applications.
00:35:57
◼
►
I like BB edit.
00:35:58
◼
►
I like drag thing, which is the plain old application
00:36:01
◼
►
with no weird hacks.
00:36:02
◼
►
You know, I run Slack like we all do,
00:36:05
◼
►
whether we like it or not.
00:36:06
◼
►
- I was gonna say, do any of us really run Slack
00:36:08
◼
►
or does Slack run us?
00:36:10
◼
►
- Yeah, it's a fairly clean setup,
00:36:12
◼
►
and as we all know, it's not like I get new Macs so often
00:36:15
◼
►
that I'm constantly setting them up,
00:36:16
◼
►
and even if I was, migration system handles everything
00:36:19
◼
►
for me, like honestly, I don't see any particular advantage
00:36:22
◼
►
in being able to sit down in front of anybody's
00:36:24
◼
►
random computer and be able to use it comfortably,
00:36:27
◼
►
because first of all, it's not true for almost anybody.
00:36:30
◼
►
Like if you sit down there and hit Command + Space
00:36:31
◼
►
and Spotlight comes up, what are you gonna do?
00:36:33
◼
►
Where's your Alfred now, right?
00:36:36
◼
►
I don't, the whole point is it accepts software.
00:36:39
◼
►
You can install things on it that make it nicer to use.
00:36:41
◼
►
That's why we like Macs.
00:36:42
◼
►
And so I have, I attach no benefit
00:36:45
◼
►
to being able to use a stock Mac comfortably.
00:36:48
◼
►
- So do you have your scroll direction as natural
00:36:51
◼
►
or the bogus old way?
00:36:52
◼
►
- I have it the old way.
00:36:54
◼
►
And again, it's a setting that I set once
00:36:57
◼
►
back when they changed that setting like seven years ago.
00:36:59
◼
►
I've never touched the setting again
00:37:00
◼
►
because it just migrates from computer to computer.
00:37:02
◼
►
Like it's, you know what I mean?
00:37:04
◼
►
- How long did you try natural scrolling, Jon?
00:37:06
◼
►
- Not at all, like what's the benefit?
00:37:07
◼
►
Apple added the option for that.
00:37:10
◼
►
Why would I try it?
00:37:11
◼
►
Like, you know, it's not, Apple added the option
00:37:14
◼
►
so I didn't feel like I had to run any hacks.
00:37:16
◼
►
If Apple takes away the option, guess what?
00:37:17
◼
►
I'm gonna switch scroll directions
00:37:18
◼
►
'cause what the hell choice do I have, right?
00:37:20
◼
►
But they haven't taken it away, it's still there
00:37:22
◼
►
and I clicked that checkbox once many, many years ago
00:37:25
◼
►
and I never think about it again.
00:37:27
◼
►
- So Marco, are you natural scrolling or no?
00:37:29
◼
►
- Didn't we talk about this recently?
00:37:31
◼
►
- I thought we did, I thought we did,
00:37:32
◼
►
but I couldn't remember the answer.
00:37:33
◼
►
- We did, but Casey tends to forget.
00:37:34
◼
►
- Yeah, I'm also old scrolling for the same reason,
00:37:37
◼
►
that basically, like, I tried natural scrolling
00:37:40
◼
►
when that option came out for like a half a day,
00:37:42
◼
►
and then I was like, nope, because--
00:37:44
◼
►
- God, you're both so old.
00:37:45
◼
►
- For the same reason, no, 'cause for the same reason,
00:37:47
◼
►
I was already used to it,
00:37:47
◼
►
and there was no pressure to actually change.
00:37:50
◼
►
So it's like, why should I go through the hassle
00:37:52
◼
►
of relearning this when I don't actually have to?
00:37:54
◼
►
and maybe down the road I will have to,
00:37:55
◼
►
but when that happens I'll learn it.
00:37:57
◼
►
Until then, I don't want to.
00:37:59
◼
►
- And do you spend time clicking that checkbox slot?
00:38:01
◼
►
No, you check it once and that's it.
00:38:04
◼
►
- Even at the frequency I buy new Macs,
00:38:06
◼
►
it isn't a big problem.
00:38:07
◼
►
We are sponsored this week by AfterSocks,
00:38:11
◼
►
bone conduction headphones.
00:38:12
◼
►
Go to ATP.AfterSocks.com to learn more.
00:38:15
◼
►
AfterSocks headphones work by bone conduction.
00:38:18
◼
►
This means small transducers rest in front of your ears,
00:38:21
◼
►
not inside or around them like most headphones,
00:38:23
◼
►
and they send tiny vibrations through your cheekbones
00:38:26
◼
►
directly to your inner ear,
00:38:27
◼
►
totally bypassing your ears themselves.
00:38:29
◼
►
So unlike every other kind of headphone,
00:38:31
◼
►
bone conduction leaves your ears completely open
00:38:34
◼
►
with nothing plugging them up or going around them.
00:38:36
◼
►
So this is great, first of all, for comfort.
00:38:38
◼
►
For me at least, I can't wear things that go in my ear,
00:38:41
◼
►
they just hurt.
00:38:42
◼
►
Aftershocks don't have that problem.
00:38:44
◼
►
They're also great for exercise and hot weather
00:38:46
◼
►
because they don't have some kind of giant ear cup
00:38:49
◼
►
making your ear all sweaty
00:38:50
◼
►
because there's nothing actually resting on your ear.
00:38:52
◼
►
It's just a little tiny thing that touches
00:38:54
◼
►
right in front of your ear.
00:38:55
◼
►
And they're also IP55 certified for water resistance
00:38:58
◼
►
in case you get really sweaty or it starts raining.
00:39:00
◼
►
And the biggest difference with Aftershocks,
00:39:01
◼
►
and this to me is what defines them.
00:39:03
◼
►
This is what defines whether they're right for you
00:39:05
◼
►
and this will either sound great or awful to you,
00:39:07
◼
►
is that nothing is blocking your ears at all
00:39:10
◼
►
so you hear all of the sound from the world around you
00:39:13
◼
►
in addition to what you're listening to.
00:39:15
◼
►
So this is actually not so great in like a very loud place
00:39:18
◼
►
like a subway station, but it's awesome
00:39:20
◼
►
if you're doing something like taking a walk outside
00:39:22
◼
►
or walking through a city where you need to be able to hear what's around you for practicality
00:39:27
◼
►
or safety reasons. They're also great while jogging or while cycling because you really
00:39:31
◼
►
don't want to be listening to anything that's going to block out sound when you're doing
00:39:34
◼
►
something where the environment around you matters. Also just around the house or around
00:39:38
◼
►
the office, you can do things like listen to a podcast or take a phone call while also
00:39:43
◼
►
hearing if say your kid upstairs wakes up from their nap or there's a knock on the door
00:39:47
◼
►
and it's the UPS person or something. So they're great for all sorts of situations where you
00:39:51
◼
►
You want to hear the world around you
00:39:53
◼
►
in addition to what you're listening to.
00:39:55
◼
►
The flagship model in the AfterSocks lineup
00:39:57
◼
►
is the Trex Titanium and the new Trex Air.
00:40:00
◼
►
These are both great options.
00:40:01
◼
►
I've had both now.
00:40:03
◼
►
I've had a few months with each one
00:40:05
◼
►
and you really can't go wrong with either one to be honest.
00:40:07
◼
►
The Trex Titanium is a little more pocketable.
00:40:09
◼
►
The Trex Air is a little bit lighter
00:40:11
◼
►
and a little more comfortable.
00:40:12
◼
►
So it's really up to you what your priorities are.
00:40:15
◼
►
They're both fantastic.
00:40:16
◼
►
You can't go wrong.
00:40:17
◼
►
Both of them have great battery life.
00:40:19
◼
►
They have a two year warranty
00:40:20
◼
►
And honestly, either one, you're pretty well off.
00:40:24
◼
►
So check it out today at ATP.aftershocks.com.
00:40:27
◼
►
Once again, ATP.aftershocks.com.
00:40:30
◼
►
And you can also use code ATP if you want to at checkout.
00:40:33
◼
►
Thank you very much to Aftershocks for sponsoring our show.
00:40:36
◼
►
(upbeat music)
00:40:38
◼
►
- All right, we should move on
00:40:40
◼
►
from these turf wars that I'm starting.
00:40:42
◼
►
And why doesn't somebody tell me about this link
00:40:44
◼
►
about Johnny Ive and him hearing our MacBook criticism?
00:40:48
◼
►
Yeah, there's been many Johnny Ive articles recently, most of them I've just insta-papered
00:40:52
◼
►
and haven't read, but this one had a quote that I wanted to pull.
00:40:55
◼
►
It was someone asking Johnny Ive about, you know, current Apple stuff and he was actually
00:41:00
◼
►
giving answers.
00:41:01
◼
►
And so here is a quote from this article, which we will link.
00:41:06
◼
►
This is Johnny Ive saying, "Absolutely, all of your feelings and feedback around the MacBook
00:41:10
◼
►
you use, we couldn't want to listen more.
00:41:13
◼
►
And we hear, boy do we hear."
00:41:15
◼
►
So this is not much of a statement, but it's merely confirmation that if you think Johnny
00:41:20
◼
►
Ive created the current line of MacBook and MacBook Pros and thinks they're perfect and
00:41:25
◼
►
has no idea that people have complaints about them, that is not the case.
00:41:30
◼
►
He pretty emphatically stated basically, "Yes, I have heard complaints about this computer
00:41:37
◼
►
and two things.
00:41:38
◼
►
One, we want to hear your feedback about it.
00:41:39
◼
►
It's not like we're saying we made a perfect thing and screw you if you don't like it.
00:41:43
◼
►
And two, they're definitely hearing it.
00:41:46
◼
►
So I think that was refreshing because there's so little communication inside Apple that
00:41:50
◼
►
you could have a bunch of podcasts where a bunch of people ramble on about how it seems
00:41:55
◼
►
like Apple's not listening to us or might live in a bubble and don't hear the things
00:41:59
◼
►
that we're saying, and that is not the case.
00:42:03
◼
►
The Mac Pro roundtable this past spring was one of the most straightforward, honest, and
00:42:09
◼
►
almost apologetic statements to the public
00:42:12
◼
►
Apple has ever really given.
00:42:14
◼
►
That was the only one of the only times
00:42:16
◼
►
they've ever kind of done a mea culpa on like,
00:42:18
◼
►
yeah, this product we kind of messed up
00:42:20
◼
►
and we're gonna fix it.
00:42:21
◼
►
I don't think we're gonna get one of those
00:42:24
◼
►
for the problems of the current generation of MacBook Pro,
00:42:28
◼
►
but this is about as close as you can get.
00:42:32
◼
►
This statement to me says,
00:42:33
◼
►
this was not some off the cuff accidental thing
00:42:37
◼
►
that he let slip out.
00:42:38
◼
►
I'm sure he thought about that before he said it
00:42:41
◼
►
and knew what he was saying.
00:42:42
◼
►
And I think this is as close as they're going to come to,
00:42:46
◼
►
there's been a lot of negative feedback
00:42:48
◼
►
about this generation of laptops and we hear you.
00:42:52
◼
►
- Yeah, and we don't know what they're gonna do about it.
00:42:54
◼
►
It could be that what they do still doesn't satisfy,
00:42:57
◼
►
satisfy some people, doesn't satisfy others,
00:42:58
◼
►
but you can't say at this point
00:43:00
◼
►
that they have their heads in the sand,
00:43:02
◼
►
which is a thing that you could have said
00:43:03
◼
►
because they're so bad about giving
00:43:05
◼
►
any sort of transparency to their thinking
00:43:07
◼
►
Because all you hear is the earnings call
00:43:09
◼
►
and about how many of these things they're selling
00:43:10
◼
►
and how their profits are great.
00:43:12
◼
►
And it's like you have this fear that like,
00:43:13
◼
►
maybe they think everything is awesome
00:43:14
◼
►
because they're selling more.
00:43:16
◼
►
And their customer sat is great
00:43:18
◼
►
and their average seller price is going up
00:43:21
◼
►
and they've sold more Macs than they ever sold before.
00:43:24
◼
►
Like everything looks good.
00:43:25
◼
►
And you worry that your concerns are irrelevant
00:43:30
◼
►
because who cares what you think about the keyboard?
00:43:31
◼
►
If tons of people are buying them, then you're wrong.
00:43:34
◼
►
And Apple should do what sells more Macs
00:43:36
◼
►
makes more customers happy, right?
00:43:37
◼
►
And that is the fear of being marginalized.
00:43:40
◼
►
But to hear this direct feedback that, boy, do we hear,
00:43:44
◼
►
like that not only do we, oh yeah, we hear some people have
00:43:47
◼
►
problems, but like that Johnny Ive in particular is probably
00:43:50
◼
►
getting an earful about like, you know, slim line keyboards
00:43:53
◼
►
that he insisted on or whatever, who knows what the
00:43:55
◼
►
particular details are.
00:43:56
◼
►
But I, you know, I like the idea of communicating to the
00:43:59
◼
►
public something that says, we acknowledge you.
00:44:04
◼
►
And merely acknowledging doesn't mean we agree with you, doesn't mean we're going to do what
00:44:12
◼
►
you want, but it does say we're not sticking our head in the sand and pretending you don't
00:44:18
◼
►
exist and also that we're not disregarding you.
00:44:21
◼
►
They could have said, like kind of what he said about Apple Park, which is another quote
00:44:25
◼
►
that I didn't pull from here, which is like, "I don't understand when people complain about
00:44:28
◼
►
Apple Park," because essentially like, we didn't build it for you.
00:44:30
◼
►
You don't work for Apple.
00:44:31
◼
►
people who work at Apple, and we know how people who work at Apple work, and you don't,
00:44:36
◼
►
so stop complaining about our building. Like, we're not building a house for you. That's
00:44:41
◼
►
a different kind of feedback, which is like, we hear you, but we think you are not, what
00:44:45
◼
►
is it, you don't have standing.
00:44:47
◼
►
We hear you, but we don't care.
00:44:49
◼
►
Yeah, you don't have standing. You're not a party in this conversation. Like, do you
00:44:52
◼
►
work at Apple? Then maybe we'll listen to you about how much you like the place where
00:44:55
◼
►
you have to work if you work at Apple. Or, you know, you don't have to, because they're
00:44:58
◼
►
on the old campus too. But anyway, but if you don't work at Apple, you can have your
00:45:02
◼
►
opinions but we're not going to listen to it because we're building the place where
00:45:07
◼
►
Apple employees were. And obviously, I feel like if someone was more of an Apple nerd,
00:45:12
◼
►
they could come back with Johnny and say, "Yeah, but Apple employees also have complaints
00:45:16
◼
►
about this spaceship." And so you could say, "These aren't my complaints. I'm really conveying
00:45:20
◼
►
to you the things that I've heard Apple employees tell me anonymously or otherwise about how
00:45:24
◼
►
how they want to have private offices and blah, blah,
00:45:26
◼
►
it's a separate thing.
00:45:27
◼
►
But clearly, Johnny was not ready
00:45:30
◼
►
to accept that feedback about Apple Park,
00:45:34
◼
►
but he seems ready to accept the feedback about the laptops.
00:45:38
◼
►
The question is, what happens next
00:45:41
◼
►
or what has already happened?
00:45:42
◼
►
Because as we talked about before,
00:45:43
◼
►
the timelines on hardware designs are long.
00:45:45
◼
►
And for all we know, eight months ago,
00:45:47
◼
►
they already made a radical right turn
00:45:49
◼
►
about their keyboard plans for the next line of laptops.
00:45:52
◼
►
And we'll find out when they're released.
00:45:54
◼
►
Here's hoping.
00:45:55
◼
►
- All right, Ask ATP, and we begin with Josh Keegan,
00:45:59
◼
►
who writes, "I grew up a huge book reader, my wife did too.
00:46:02
◼
►
Combined, we have three or four bookcases
00:46:04
◼
►
full of paperbacks and hardcovers.
00:46:05
◼
►
I recently decided that we should get rid of them.
00:46:07
◼
►
They seem archaic to me now in the age of e-books.
00:46:09
◼
►
My wife disagrees, and so they remain.
00:46:11
◼
►
Do you guys have a lot of books in the house?
00:46:13
◼
►
Does keeping paper books seem old-fashioned to you?"
00:46:15
◼
►
Let me start by saying having us adjudicate
00:46:17
◼
►
your marital deliberations is probably not a wise choice,
00:46:22
◼
►
but that being said,
00:46:23
◼
►
I, we, Aaron and I are both pretty big readers, Aaron more so than me. I feel like I just
00:46:30
◼
►
don't have time for it, probably because I'm spending too much time on Twitter because
00:46:33
◼
►
I'm an idiot. But nevertheless, I do enjoy reading novels. I do quite like reading a
00:46:40
◼
►
physical book. If I, if I can, I prefer a physical book over anything else, unless I'm
00:46:45
◼
►
traveling. But anyways, I don't see a problem with books. If you don't need the space for
00:46:49
◼
►
anything else. I don't know why you would get rid of them, but I am not one that is
00:46:53
◼
►
deeply bothered by, I'm gonna say clutter, although it doesn't sound like
00:46:58
◼
►
it's clutter since it's all contained in a book. Yeah, stuff, thank you. So I say my
00:47:03
◼
►
vote is keep them unless you have a reason for that space, but that's just me.
00:47:06
◼
►
Marco, what do you think? We have some books. They're in a bookshelf in the
00:47:10
◼
►
living room. It's a nice big built-in thing, and it would look weird if it was
00:47:13
◼
►
empty, and so we keep a whole lot of books there. We don't actually really add
00:47:19
◼
►
add or remove or use the books there very often.
00:47:23
◼
►
And so most of the books just sit there and look pretty,
00:47:26
◼
►
but that is a useful function.
00:47:27
◼
►
They look pretty on these giant shelves
00:47:29
◼
►
that are built into our house.
00:47:30
◼
►
And if they were gone, it would be weird.
00:47:32
◼
►
So, you know, like what you just said, Kees,
00:47:34
◼
►
like I don't really, I don't see any problem
00:47:36
◼
►
with having them there.
00:47:37
◼
►
They're not causing any harm.
00:47:38
◼
►
They don't have any needs really.
00:47:40
◼
►
And there's nothing else that we would put on those shelves
00:47:44
◼
►
at the moment.
00:47:45
◼
►
So if that ever changes, if we really need the space,
00:47:47
◼
►
or if for some reason we want to tear those shelves
00:47:49
◼
►
out of the walls, then sure, I will push
00:47:52
◼
►
to get rid of them then, but if they're not
00:47:55
◼
►
causing problems for you, I don't see why
00:47:59
◼
►
you'd get rid of them.
00:48:00
◼
►
- I like books.
00:48:02
◼
►
I have collected books since I was very young,
00:48:04
◼
►
not just for the words on the pages,
00:48:06
◼
►
but to the point where I would buy multiple copies
00:48:08
◼
►
of a book I liked because I like the books as objects,
00:48:12
◼
►
special editions of books, leather-bound versions of books,
00:48:15
◼
►
books with fancy illustrations or shiny covers
00:48:17
◼
►
really thick paper stock. I like books as objects in addition to liking the words in
00:48:23
◼
►
them. When I went to work for what was at the time the largest ebook seller in the world,
00:48:28
◼
►
back in the early days before Amazon even got into the game, I got converted to ebooks
00:48:34
◼
►
pretty much wholesale. So I prefer to actually read books in electronic form, but I still
00:48:40
◼
►
have a huge soft spot for the physical books. I would do the things where I would buy the
00:48:46
◼
►
book and read it in e-book form, but then buy the first edition hardcover just to put
00:48:50
◼
►
on the shelf that I literally never opened.
00:48:53
◼
►
So I'm obviously very pro-book.
00:48:57
◼
►
My problem is if you were like this and you really like books as physical objects and
00:49:02
◼
►
you're not fantastically wealthy, eventually you will run out of room to put books.
00:49:07
◼
►
Our house is essentially overflowing with books, with most bookshelves double and triple
00:49:10
◼
►
stacked with books in the attic, and so now I've mostly put a moratorium on buying more
00:49:15
◼
►
or paper books because I don't want to displace any books that I have.
00:49:20
◼
►
So right now I mostly only buy very large, beautiful coffee table books filled with illustrations
00:49:26
◼
►
or like those really gigantic, awesome Making of Star Wars books that have lots of words
00:49:33
◼
►
and illustrations in them that would be difficult to do in electronic form unless someone gives
00:49:38
◼
►
me my 27-inch iPad Pro.
00:49:39
◼
►
So I am all for physical books, but like so many physical objects, if you continue down
00:49:46
◼
►
that path, you will probably eventually run out of room for books.
00:49:50
◼
►
Craig writes, "Why does Apple refuse to make desktop backlit keyboards?
00:49:54
◼
►
Gaming keyboards go crazy with neon lights.
00:49:56
◼
►
Do you think Apple would ever make a desktop keyboard with just enough light to see your
00:50:00
◼
►
I have a hard time answering this question because I can touch type and I have been able
00:50:05
◼
►
to for a very long time.
00:50:07
◼
►
So having lights on my keyboard does not really help me.
00:50:12
◼
►
I presume that they don't really have any interest in this because it would cause the
00:50:17
◼
►
battery on your Magic Keyboard to drain even faster.
00:50:19
◼
►
And yes, I know it's easily rechargeable.
00:50:21
◼
►
You don't have to harpoon a turtle to do it.
00:50:24
◼
►
But nevertheless, it's nice not having to plug my keyboard in, but once every month
00:50:29
◼
►
And so I don't think they will, personally, but I don't know.
00:50:33
◼
►
That's my two cents.
00:50:34
◼
►
Mark, we went to you first last time.
00:50:35
◼
►
So Jon, what do you think?
00:50:38
◼
►
Even if you touch type, the reason they have the light-up keyboards on the laptop is they
00:50:41
◼
►
think people will be using them in dark places, and yeah, you can touch type, but can you
00:50:45
◼
►
touch type the media keys?
00:50:46
◼
►
Can you touch type the function keys?
00:50:48
◼
►
Most people can't.
00:50:49
◼
►
Like, it's just too far of a reach and they're just too weird and you occasionally have to
00:50:51
◼
►
glance and see, you know, where is, you know, F7 or where is the pause key or, you know,
00:50:59
◼
►
I mean, hell, with these new keyboards you can't even touch type the arrow keys.
00:51:01
◼
►
Yeah, well you can eventually if you feel for the little divider on the two havesy keys
00:51:06
◼
►
for top and bottom before you go to the left or right, but anyway it's annoying.
00:51:10
◼
►
So I think there is a place for backlighting on keyboards even for Touch Typus, but for
00:51:14
◼
►
desktop keyboards if you're using a desktop keyboard in a dark place that's kind of your
00:51:19
◼
►
choice probably.
00:51:21
◼
►
Like it's not like a laptop where you may find yourself on a plane where everybody's
00:51:23
◼
►
sleeping or you know in an environment where the lighting is not ideal and like I said
00:51:28
◼
►
you do have the charging difficulty.
00:51:30
◼
►
So I don't think Apple is opposed to backlit keyboards.
00:51:32
◼
►
I wouldn't expect any neon ones.
00:51:36
◼
►
I feel like it's a thing I can see Apple shipping if they could sort out the battery issues.
00:51:42
◼
►
They would probably ship it just because someone will get an idea that it's a useful thing
00:51:47
◼
►
to have and they can charge a little bit more money for the backlit version.
00:51:50
◼
►
They would do it.
00:51:51
◼
►
But honestly, unless someone inside Apple is really passionate about this, I just see
00:51:56
◼
►
them leaving it as a third-party opportunity as they say.
00:51:59
◼
►
Because if they haven't come out with one by now,
00:52:00
◼
►
they obviously don't think it's a big need.
00:52:02
◼
►
- You know, using PC gaming keyboards
00:52:05
◼
►
that are full of LEDs as an example
00:52:07
◼
►
is not a good example of why Apple should do this.
00:52:10
◼
►
'Cause those things are hideous.
00:52:12
◼
►
And I think if Apple knows those exist,
00:52:15
◼
►
which I kinda hope that no one there knows,
00:52:17
◼
►
but if they do know, they would use that as an argument
00:52:19
◼
►
why not to make these things.
00:52:21
◼
►
But yeah, also as you mentioned,
00:52:23
◼
►
it would have to be charged significantly more frequently.
00:52:26
◼
►
Also, I think that the need for it is less on desktops
00:52:29
◼
►
because desktop screens are so much bigger
00:52:33
◼
►
and you keep them so much brighter usually
00:52:34
◼
►
because there's no battery concern,
00:52:36
◼
►
but there's a pretty good chance
00:52:37
◼
►
just the light from the screen lights up the keys
00:52:40
◼
►
enough to show you where the keys are
00:52:41
◼
►
even in a pitch dark room.
00:52:43
◼
►
So I think the need for it is significantly lower.
00:52:46
◼
►
It does however just look cool.
00:52:47
◼
►
Like when it's done right, like the way apples are done
00:52:49
◼
►
with subtle white lighting as opposed to blue LEDs,
00:52:53
◼
►
When done tastefully like that, it can look really cool.
00:52:56
◼
►
It just looks like a nice luxury product,
00:52:57
◼
►
like on the laptops.
00:52:58
◼
►
This isn't to say that they should never do it,
00:53:01
◼
►
but I don't think they will just because, again,
00:53:02
◼
►
the charging needs, the less actual physical need for it,
00:53:06
◼
►
'cause you can see your keyboard usually more in desktops,
00:53:10
◼
►
and also that the desktop keyboards
00:53:13
◼
►
are just a pretty low priority for Apple.
00:53:15
◼
►
They don't really redesign them that often
00:53:16
◼
►
or put that much effort into them.
00:53:18
◼
►
So from that point of view, I think it would be very hard
00:53:22
◼
►
to argue that Apple should put in the effort
00:53:26
◼
►
to make that happen on a hardware line
00:53:29
◼
►
that they update, what, every 10 years?
00:53:32
◼
►
- All right, and finally, Pradhan Stathev writes,
00:53:35
◼
►
"How does dynamic ad targeting and podcasts work?
00:53:38
◼
►
"Ad companies say they can target listeners,
00:53:40
◼
►
"but Marco has said that you can only really know
00:53:42
◼
►
"how many downloads the MP3 podcast file gets,
00:53:45
◼
►
"and that's about it when it comes to data,
00:53:47
◼
►
"save for proprietary apps."
00:53:48
◼
►
And then he added, this one is for Casey.
00:53:52
◼
►
I'm not sure why because I feel like I am deeply
00:53:54
◼
►
in a ill-equipped answer to this question.
00:53:56
◼
►
But this sounds like it's two different things to me
00:54:01
◼
►
all rolled into one or maybe I just would like someone,
00:54:04
◼
►
Marco, I guess, to clarify.
00:54:06
◼
►
So when I hear dynamic in podcasts,
00:54:09
◼
►
what I think is there are podcasts,
00:54:14
◼
►
I don't know, servers, for lack of a better description,
00:54:16
◼
►
or networks where they know that an ad starts at 10 minutes
00:54:21
◼
►
and it is two minutes long.
00:54:23
◼
►
And they can run an ad in that spot for a week or two
00:54:28
◼
►
and then change that ad to be something else.
00:54:31
◼
►
And they'll re-encode, or I'm assuming re-encode the MP3,
00:54:34
◼
►
and for two weeks it'll be the next ad,
00:54:36
◼
►
and then so on and so forth.
00:54:37
◼
►
But what Prodan is talking about is different than that,
00:54:41
◼
►
if I'm not mistaken, which is,
00:54:42
◼
►
oh, Casey is a white male that is in his mid-30s,
00:54:47
◼
►
let's give him these ads as opposed to different ones.
00:54:50
◼
►
So Marco, can you kinda tell me what this is all about?
00:54:53
◼
►
- Yeah, the latter theory you have is the more correct one.
00:54:57
◼
►
So the reason this came up, and the reason I put it in here
00:55:01
◼
►
as a question I wanted to answer is that a lot of people
00:55:04
◼
►
are starting to hear what are pretty clearly
00:55:08
◼
►
dynamically on-demand inserted ads
00:55:11
◼
►
in usually popular podcasts.
00:55:13
◼
►
This past year, there have been a lot of major podcasts,
00:55:18
◼
►
like from major producers,
00:55:20
◼
►
like some of the public radio producers
00:55:22
◼
►
and some of the big networks,
00:55:23
◼
►
major producers are now frequently using
00:55:26
◼
►
dynamic ad insertion.
00:55:27
◼
►
And what this is is new ads can be inserted
00:55:31
◼
►
on every download, on every request that the file gets.
00:55:35
◼
►
Every download request from a client or a web browser
00:55:39
◼
►
can have different ads in it.
00:55:40
◼
►
They don't do every encoding, they do it by splicing,
00:55:43
◼
►
because the MP3 file format is very, very easy to splice,
00:55:46
◼
►
which might lead into a future topic
00:55:47
◼
►
I don't know if we ever get to it.
00:55:50
◼
►
So basically what they do is your download request
00:55:53
◼
►
from your podcast player or your web browser
00:55:56
◼
►
hits their basically ad-splicing server
00:55:59
◼
►
and based on your IP address and anything you can glean
00:56:03
◼
►
from your headers, which fortunately for a podcast app
00:56:06
◼
►
is pretty minimal, but it can at least tell usually
00:56:09
◼
►
which podcast app you're using, what kind of device
00:56:12
◼
►
and what OS version it has, and from your IP address
00:56:17
◼
►
your IP address, it can derive your approximate location.
00:56:20
◼
►
Now, if it's a big ad network, and if it's integrated
00:56:24
◼
►
with web ads, then they can also derive other things
00:56:28
◼
►
that a web browser can pick up, and they can correlate
00:56:32
◼
►
that data based on your IP address, and maybe some idea
00:56:37
◼
►
of what your phone model is, they can then correlate that
00:56:40
◼
►
with other data they have from other sources,
00:56:42
◼
►
like maybe Facebook or Twitter, or other big ad networks,
00:56:45
◼
►
and they can figure out more about you.
00:56:47
◼
►
But all the podcast app is providing is
00:56:50
◼
►
whatever they would get if you fetched, say,
00:56:53
◼
►
an image off their servers, which is your IP address
00:56:56
◼
►
and a user agent header, that's it.
00:56:59
◼
►
But that is enough that a lot of people report hearing
00:57:03
◼
►
an ad for a local car dealership in the middle of a podcast
00:57:08
◼
►
from a national provider, and that creeps people out,
00:57:11
◼
►
and they wonder what's going on.
00:57:12
◼
►
A lot of times they blame Overcast, or they ask me,
00:57:14
◼
►
"Hey, what's this? How did this work?"
00:57:16
◼
►
But yeah, this is just these big publishers
00:57:18
◼
►
are now very, very frequently using
00:57:20
◼
►
these dynamic ad insertion platforms.
00:57:22
◼
►
And the way it works is pretty simple.
00:57:24
◼
►
As I say, they derive whatever they can
00:57:26
◼
►
from your IP address and the user agent header,
00:57:28
◼
►
and then they throw in an ad.
00:57:31
◼
►
And MP3 is a very forgiving and simple format.
00:57:35
◼
►
It's very, very easy to take chunks out of and splice in.
00:57:38
◼
►
So in their CMSs, when they produce the shows,
00:57:41
◼
►
they just say, "You can put an ad at
00:57:43
◼
►
these two timestamps in the show.
00:57:46
◼
►
The main problem I have with it as a listener,
00:57:48
◼
►
first of all, is that it's kind of creepy
00:57:50
◼
►
and the ads are pretty, oftentimes pretty low value ads
00:57:53
◼
►
because they're things like car dealerships
00:57:55
◼
►
and it just turns into basically what radio ads were,
00:57:57
◼
►
which is not something any of us should ever aspire to
00:58:00
◼
►
because they're really, you know,
00:58:01
◼
►
bargain basement, low price, low value ads.
00:58:04
◼
►
So hopefully that's not the world
00:58:06
◼
►
we're heading towards here.
00:58:08
◼
►
But also, it causes other problems.
00:58:10
◼
►
So for instance, the MP3 file format specifies length
00:58:14
◼
►
in about three different ways,
00:58:17
◼
►
and a lot of times these splicing ad platforms
00:58:21
◼
►
don't update them all correctly.
00:58:23
◼
►
So it causes weird problems in players like mine
00:58:27
◼
►
where sometimes certain files will say,
00:58:30
◼
►
"End two minutes early,"
00:58:31
◼
►
because that's the amount of ad they injected
00:58:33
◼
►
and they forgot to update the duration
00:58:34
◼
►
or their platform didn't do it right or something like that,
00:58:37
◼
►
or seeking will be slightly broken or something like that.
00:58:40
◼
►
The other major problem is even if you get past
00:58:42
◼
►
the technical hurdles there, because the ads they insert
00:58:45
◼
►
are not consistent lengths, it starts to erode the value
00:58:50
◼
►
of timestamp links.
00:58:51
◼
►
So you can't, for instance, say, oh, you gotta hear
00:58:54
◼
►
this NPR podcast at 17 minutes.
00:58:59
◼
►
Because the 17 minutes when you download the file
00:59:02
◼
►
might be a different part of the file than what the person
00:59:05
◼
►
who's telling you that had in their copy of the file.
00:59:08
◼
►
Because if you had 10 minutes of ads in yours
00:59:10
◼
►
and they had seven minutes of ads in theirs,
00:59:11
◼
►
you're gonna be three minutes off.
00:59:13
◼
►
So it erodes the value of sharing timestamps
00:59:16
◼
►
and of referring to timestamps,
00:59:19
◼
►
which I think is very damaging to the spread of podcasts.
00:59:23
◼
►
But ultimately, I don't have any real say in this.
00:59:26
◼
►
They're gonna do what they're gonna do.
00:59:27
◼
►
They are doing it.
00:59:29
◼
►
I've tried to argue with some of these producers
00:59:30
◼
►
they shouldn't be doing this, but they are anyway.
00:59:32
◼
►
So oh well, this is the world we live in now.
00:59:34
◼
►
And that's how it works.
00:59:36
◼
►
It's pretty basic and I wish it didn't work that way,
00:59:40
◼
►
but it does.
00:59:41
◼
►
The good thing is that it can't ever get as bad
00:59:44
◼
►
as web tracking.
00:59:46
◼
►
You know, when you fetch a webpage,
00:59:48
◼
►
your browser executes code on that page's behalf
00:59:50
◼
►
that has any JavaScript embedded,
00:59:52
◼
►
which these days it always does.
00:59:53
◼
►
So the amount of data that a webpage can collect about you
00:59:57
◼
►
is way higher than the amount of data
01:00:00
◼
►
that a podcast publisher can collect about you
01:00:02
◼
►
because when your podcast has to download the file,
01:00:05
◼
►
it's just playing a media file.
01:00:07
◼
►
It is not executing arbitrary code supplied
01:00:10
◼
►
by the publisher.
01:00:11
◼
►
So they can't add any more tracking
01:00:14
◼
►
or collect any more data or observe your behavior
01:00:16
◼
►
any more than a person at this IP address
01:00:19
◼
►
and using this app downloaded this file.
01:00:22
◼
►
That's it, that's all the information they have.
01:00:24
◼
►
Again, they can correlate that if they know more
01:00:27
◼
►
about that IP address from other sources.
01:00:30
◼
►
But as far as the podcast player's concerned,
01:00:32
◼
►
that's all it's giving them.
01:00:34
◼
►
The scary thing though is, and the thing that people don't think about, is that they do
01:00:37
◼
►
have a source for correlation.
01:00:39
◼
►
They know so much about your IP address because chances are very good that in the recent past
01:00:43
◼
►
you have hit a web page somewhere that had some Facebook embedded widget that got your
01:00:48
◼
►
Facebook cookies that now knows who you are on Facebook that now knows your entire social
01:00:51
◼
►
graph and your first and last name and the last thing you bought from Amazon.
01:00:55
◼
►
Those ad networks, that's all they're doing is correlating a user activity across multiple
01:00:59
◼
►
platforms and just synthesizing it into this up-to-date knowledge about a particular person
01:01:04
◼
►
or IP address or combination of IP address and user agent and whatever else they can
01:01:09
◼
►
glean from your device.
01:01:10
◼
►
Like that's all these networks do.
01:01:12
◼
►
And so even though the podcast player is not revealing, is revealing the minimum it possibly
01:01:16
◼
►
can about you, once they go off to the side and look up all the other stuff, that's how
01:01:21
◼
►
they know like that you're shopping for toilets.
01:01:24
◼
►
And now it's time to show you a toilet.
01:01:25
◼
►
They know where you live.
01:01:26
◼
►
They know who your friends are.
01:01:28
◼
►
They know you've been shopping for toilets and they're going to insert a toilet ad and
01:01:31
◼
►
that seems terrifying, but it's because of all the rest of the internet, particularly
01:01:35
◼
►
the web, not because of the podcast player.
01:01:38
◼
►
That's why these things are creepy, the idea that they aggregate and centralize this knowledge
01:01:42
◼
►
so that there's almost nothing you can do on the internet where they can't figure out
01:01:46
◼
►
who you are through those kinds of correlations.
01:01:51
◼
►
So I don't know what the solution is, but the relative purity of podcasts doesn't actually
01:01:58
◼
►
save us from anything.
01:01:59
◼
►
And even for stuff like show notes, if you can put HTML in show notes, it's only a matter
01:02:04
◼
►
of time before one or more podcast applications pre-render the show notes and are not as scrupulous
01:02:10
◼
►
as Overcast about allowing what appears in an HTML and just sort of take the easy way
01:02:14
◼
►
out and just throw some content from a feed into a web view, and that executes and it
01:02:18
◼
►
a little tracking blip and embeds a Facebook widget and runs JavaScript and who knows what
01:02:23
◼
►
else. So the web has a way of seeping into many different corners of applications and
01:02:29
◼
►
if you're not constantly fighting against that tide, it's really easy for creepy stuff
01:02:34
◼
►
to sneak into your application.
01:02:37
◼
►
We are sponsored this week by Linode, my favorite web host. Go to Linode.com/ATP to learn more
01:02:43
◼
►
and use code accidentalpodcast10 to get a $10 credit.
01:02:47
◼
►
Linode is the best web host I have ever used.
01:02:51
◼
►
I have, trust me, a lot of experience
01:02:54
◼
►
with hosted web servers going all the way back
01:02:55
◼
►
to the year 2000, and I've hosted literally hundreds
01:03:00
◼
►
of servers and VPSs since then
01:03:03
◼
►
at probably 10 or 15 different web hosts,
01:03:06
◼
►
and Linode just kicks their butts.
01:03:08
◼
►
It's so much better on so many levels.
01:03:10
◼
►
That's why I move everything there now.
01:03:12
◼
►
It is just so much more pleasant to use.
01:03:14
◼
►
Their pricing is incredibly compelling.
01:03:17
◼
►
Plans start at just $10 a month.
01:03:19
◼
►
Linode now offers two gigs of RAM
01:03:21
◼
►
at that $10 a month level.
01:03:23
◼
►
This is pretty much unheard of in the web hosting industry.
01:03:26
◼
►
I mean, the resources you get for $10 a month at Linode,
01:03:28
◼
►
I used to pay hundreds of dollars a month
01:03:30
◼
►
for not that long ago.
01:03:32
◼
►
And they have all sorts of great features.
01:03:33
◼
►
They have managed backups,
01:03:35
◼
►
they have managed load balancers, which I use.
01:03:37
◼
►
They're wonderful.
01:03:38
◼
►
They have managed stats if you want that.
01:03:40
◼
►
They have both managed and unmanaged services
01:03:43
◼
►
for your actual Linodes themselves.
01:03:45
◼
►
So if you need help, it's available to you,
01:03:47
◼
►
but it's mostly made for unmanaged people
01:03:48
◼
►
who want to run it yourself,
01:03:49
◼
►
and they have all sorts of great documentation
01:03:52
◼
►
and tutorials just to learn how to run a Linux server
01:03:55
◼
►
if you have any questions.
01:03:56
◼
►
In fact, chances are, if you've ever Googled
01:03:59
◼
►
for some kind of answer on how to run a Linux server,
01:04:01
◼
►
you've probably come across their help documentation,
01:04:03
◼
►
even if you weren't using Linode,
01:04:04
◼
►
because that's how good it is,
01:04:05
◼
►
that it ranks highly in the search engines
01:04:06
◼
►
because people keep using it.
01:04:08
◼
►
Linode stuff is so great, it's so easy to use.
01:04:11
◼
►
$10 a month gets you two gigs of RAM in a virtual server,
01:04:13
◼
►
you have full root access,
01:04:14
◼
►
you can install whatever you want, it's wonderful.
01:04:17
◼
►
So check out Linode today, I highly recommend it.
01:04:20
◼
►
It is the only web host you should be looking at
01:04:22
◼
►
if what you're looking for is straight up web hosting.
01:04:24
◼
►
Go to linode.com/atp and use promo code
01:04:28
◼
►
accidentalpodcast10 to get a $10 credit.
01:04:31
◼
►
Thank you so much to Linode for hosting all of my stuff
01:04:34
◼
►
and supporting this show.
01:04:39
◼
►
Thursday night, I'm laying in bed and I'm looking at, you know, Twitter or what have you, and
01:04:45
◼
►
I'm starting to see that that people in the future are very perturbed. And they're perturbed because
01:04:54
◼
►
apparently some of their phones are endlessly rebooting. And I'm starting to see, like, text
01:05:00
◼
►
messages or slack messages from friends who live in the future and they're
01:05:04
◼
►
saying oh my god something is deeply wrong change your phone's clock what
01:05:11
◼
►
change your phone's clock because once you hit Friday the I'm sorry once you
01:05:17
◼
►
hit so I guess was Friday night doesn't matter for one of these days once you
01:05:20
◼
►
hit overnight at like 1215 suddenly your phone will go bananas I think it was
01:05:27
◼
►
Friday night into Saturday. That's my bad.
01:05:29
◼
►
- Yeah, it was into December 2nd.
01:05:30
◼
►
- Yep, so change your phone, Casey.
01:05:34
◼
►
Either turn off all notifications,
01:05:35
◼
►
which there is no big red abort switch for notifications,
01:05:39
◼
►
so you have to go into every single app and turn them off,
01:05:42
◼
►
or change your clock such that you will never roll over
01:05:47
◼
►
the very early morning of December 2nd,
01:05:49
◼
►
which is what I did.
01:05:50
◼
►
And that causes a whole new world of problems
01:05:52
◼
►
that are not terribly interesting,
01:05:53
◼
►
but it was a pain in the butt.
01:05:55
◼
►
- That was my first question I was gonna ask you
01:05:57
◼
►
when I was going, living backwards in time,
01:06:00
◼
►
going through your old Twitter past
01:06:01
◼
►
and seeing that you and lots of other people, not just you,
01:06:04
◼
►
went with that option.
01:06:06
◼
►
Like something's wrong, we're not quite sure what it is
01:06:08
◼
►
at this point in time, but one of the suggested solutions
01:06:11
◼
►
is to set your clock back.
01:06:12
◼
►
And a bunch of people who I felt like should know better
01:06:15
◼
►
said, I'll do that, I'll set my clock back.
01:06:17
◼
►
- Whoa, whoa, whoa, slow down.
01:06:18
◼
►
What are my options?
01:06:20
◼
►
So I have three options to my mind.
01:06:22
◼
►
I can wait and see and potentially end up with a phone
01:06:26
◼
►
that is not bricked but is damn near useless. I can pray that I don't get zapped by this
01:06:32
◼
►
bug, or I can set my clock back and just deal with some inconveniences.
01:06:37
◼
►
**Matt Stauffer:** Yep. And both of those two options are better
01:06:39
◼
►
than setting your clock back. In general, I would say, as a computer user rule of thumb,
01:06:46
◼
►
this didn't used to be true, but has been true for the past, I don't know, decade or
01:06:51
◼
►
**Brian Stauffer:** Since SSL?
01:06:52
◼
►
Yeah, probably, but actually maybe even before that, don't change the date on your computer
01:06:57
◼
►
because unbeknownst to you, tons of things on your computer and especially on your phone
01:07:03
◼
►
don't work if your date is not the real date.
01:07:09
◼
►
Things like iMessage, which you probably care about a lot, like texting is a very popular
01:07:13
◼
►
application on phones these days.
01:07:14
◼
►
Oh, it worked.
01:07:15
◼
►
It was very weird, but it worked.
01:07:16
◼
►
SSL, all those things.
01:07:18
◼
►
They're not saying they will instantly break, but they can break.
01:07:21
◼
►
Websites, popular websites that you use, applications that like many,
01:07:25
◼
►
many things depend on the date.
01:07:27
◼
►
So like the options you listed, like you could cross your fingers and hope,
01:07:31
◼
►
you could wait for a different thing.
01:07:34
◼
►
Another one is you could just shut down your phone and wait with your phone turned
01:07:37
◼
►
off. So at the very least, you know,
01:07:39
◼
►
like whatever data is on your phone is safe because the thing is off. Right.
01:07:42
◼
►
And then just find out what the dust is going to sell.
01:07:44
◼
►
But you know for a fact that changing the date
01:07:48
◼
►
is gonna mess some things up.
01:07:49
◼
►
Maybe a few things, maybe a lot of things.
01:07:51
◼
►
And the main reason I wouldn't change it in this case
01:07:54
◼
►
is in a sort of an unknown type scenario
01:07:56
◼
►
where you don't know what the deal is.
01:07:57
◼
►
Like, is this a big bug?
01:07:58
◼
►
Is it a little bug?
01:07:59
◼
►
What's the fix gonna be?
01:08:00
◼
►
Is Apple gonna have a thing?
01:08:01
◼
►
There's so many unknowns,
01:08:03
◼
►
I wouldn't wanna add to the noise with date stuff.
01:08:06
◼
►
And this happened with a lot of people
01:08:07
◼
►
who would set their date back
01:08:08
◼
►
where once the bug fix was out,
01:08:10
◼
►
they're like, oh, it fixed the bug,
01:08:12
◼
►
but now I can't FaceTime with people and it's because they had set the date back and now
01:08:16
◼
►
there's face ID whatever was yeah and now they're suffering from the fallout of their
01:08:20
◼
►
attempted fix so it's counterintuitive if you haven't dealt with any of the things but
01:08:25
◼
►
perhaps surprisingly changing the data on your computer or phone can and will cause
01:08:29
◼
►
all sorts of weird problems that are difficult to attribute or diagnose and won't give you
01:08:33
◼
►
nice error messages that say oh you changed your date so I would suggest that if that
01:08:38
◼
►
among all the options that you have, pick that one last.
01:08:42
◼
►
Pick that one after, you know,
01:08:44
◼
►
prefer the option of simply turning off your phone.
01:08:47
◼
►
- I disagree.
01:08:48
◼
►
- I'd also add to the list of problems that it causes,
01:08:51
◼
►
possible sync bugs and possible data loss
01:08:53
◼
►
with apps that sync.
01:08:55
◼
►
- Because a lot of sync engines are,
01:08:56
◼
►
a lot of sync engines try to resolve merges,
01:08:59
◼
►
changes, and conflicts using time.
01:09:02
◼
►
This isn't always the best approach,
01:09:03
◼
►
but this is basically how a lot of them do it anyway, so.
01:09:06
◼
►
- Sometimes it's all,
01:09:07
◼
►
and then that's all you've got,
01:09:08
◼
►
depending on how the sync service works.
01:09:09
◼
►
- Right, and there's all sorts of methods to sync,
01:09:11
◼
►
but using time to help resolve who changed what last
01:09:15
◼
►
and whose version of this should be the authoritative version
01:09:18
◼
►
is a very, very common way to do it.
01:09:20
◼
►
So if you change your date back,
01:09:22
◼
►
not only are you causing a whole bunch
01:09:24
◼
►
of other weird stuff to happen,
01:09:27
◼
►
for instance, you've now created two copies of December 1st
01:09:32
◼
►
in your computing environment,
01:09:34
◼
►
And so things can be written to the file system
01:09:37
◼
►
or things can be changed or things can be dated
01:09:39
◼
►
in a way that makes them seem like they were sequential
01:09:42
◼
►
in one direction but they were actually sequential
01:09:44
◼
►
in the other direction.
01:09:45
◼
►
Or there's so many weird things that can happen.
01:09:48
◼
►
This doesn't usually happen with daylight saving time bugs
01:09:50
◼
►
because A, that doesn't actually change
01:09:52
◼
►
the underlying Unix time value of the computer,
01:09:54
◼
►
and B, you're normally asleep between two and three
01:09:56
◼
►
in the morning so it doesn't usually affect you
01:09:58
◼
►
'cause you're not usually using your computer at that point.
01:10:01
◼
►
But changing your clock back by a whole day
01:10:04
◼
►
gives you a large opportunity to make a whole bunch
01:10:08
◼
►
of changes and create data and make edits to things
01:10:11
◼
►
and things like that in a way that will very much
01:10:14
◼
►
confuse software and cause weird bugs to happen
01:10:16
◼
►
that you might not immediately see.
01:10:18
◼
►
- See, and I understand that, but I think two different
01:10:22
◼
►
comments in the chat room kind of sum up my opinion.
01:10:24
◼
►
Psycho Machead said, "Tons of things not working
01:10:26
◼
►
"is better than everything not working,"
01:10:28
◼
►
and I agree with that, because you guys aren't wrong.
01:10:30
◼
►
You're absolutely right.
01:10:32
◼
►
But I didn't know at the time, and I knew I was about to go to sleep for the evening
01:10:37
◼
►
and cross into this no man's land, I didn't know at the time how bad the error was.
01:10:41
◼
►
I heard it was just a constant re-spring, but I didn't know if it was a constant re-spring
01:10:45
◼
►
every two seconds, every two minutes, every two hours.
01:10:50
◼
►
And I wanted to leave myself the ability to say, I don't know, do a software update without
01:10:56
◼
►
having to worry about the re-spring happening every two seconds.
01:10:59
◼
►
Now, as it turns out, it was not every two seconds.
01:11:02
◼
►
It was every like two or three minutes.
01:11:03
◼
►
But I didn't know at the time, and I knew I was about to go to sleep.
01:11:07
◼
►
But like Marco said, data loss, like turning your phone off is still the preferable one
01:11:11
◼
►
like until the dust settles.
01:11:13
◼
►
Because if you had a sink engine that now thinks the server side version is newer than
01:11:17
◼
►
your day old data, which is actually updated a second ago, and it overwrites your locally
01:11:22
◼
►
edited information with stuff from the server.
01:11:24
◼
►
Like you haven't actually done anything, but you merely change the date back.
01:11:26
◼
►
so it's confused about what the latest stuff is,
01:11:28
◼
►
and it brings that, like, you could have data loss,
01:11:31
◼
►
whereas, you know, the re-spring thing,
01:11:33
◼
►
or even just the restarting,
01:11:35
◼
►
there was not a mention of data loss in that,
01:11:37
◼
►
and either way, if you wanna avoid it entirely,
01:11:39
◼
►
turn your phone off, shut it down,
01:11:41
◼
►
and wait to find out what the deal is.
01:11:42
◼
►
That is the safest possible default.
01:11:45
◼
►
And I'm not saying, like, you know,
01:11:46
◼
►
saying it's not the end of the world,
01:11:48
◼
►
like, you made a call,
01:11:50
◼
►
you probably knew the risks better than most people.
01:11:52
◼
►
This is mostly for other people who think
01:11:53
◼
►
that changing the data has no risks associated with it,
01:11:56
◼
►
emphasize that it has lots of risks and the fallout from it can ripple through for a long
01:12:02
◼
►
time and can be hard to distinguish problems caused by you changing the date and problems
01:12:08
◼
►
caused by the bug and problems that still linger after the bug is fixed.
01:12:12
◼
►
And like I said, I think that happened.
01:12:13
◼
►
People who changed the date had problems when they tried to apply the software update because
01:12:17
◼
►
they had changed the date.
01:12:18
◼
►
See, but the thing is, though, we didn't know, or at least I didn't know at the time I made
01:12:24
◼
►
this decision what was going to happen. And I don't think just turning off my phone and
01:12:29
◼
►
waiting to the next day and trying on another device to see what the fix was, that to me
01:12:34
◼
►
is not a valid option. Because what if, for the sake of discussion, it was a re-spring
01:12:38
◼
►
every two seconds? How am I going to accomplish anything at that point? So my phone goes off
01:12:45
◼
►
and everything's working. By that I mean I turn it off Friday night, everything's working.
01:12:50
◼
►
Saturday morning I wake up and I turn it on
01:12:53
◼
►
Immediately re-springs re-springs re-springs now. What do I do?
01:12:57
◼
►
Well, you don't turn on that you don't turn on the phone until you know
01:13:00
◼
►
there's a fix like or do you know what the situation is because like
01:13:02
◼
►
Information came out like we don't know what we don't know now
01:13:05
◼
►
But presumably by the next day you wake up and you read here's what the deal is. Is there a fix?
01:13:10
◼
►
Is there not a fix? How bad is the bug?
01:13:11
◼
►
What are the possible workarounds was like, you know?
01:13:14
◼
►
Like waiting for more information to come out essentially because more information did come out in about a day
01:13:17
◼
►
you learn the shape of this bug, you learn what it actually caused, you learn multiple
01:13:22
◼
►
workarounds including the date thing, and by then people were learning about the problems
01:13:25
◼
►
about having the date bug.
01:13:27
◼
►
I'm just saying patience, right?
01:13:29
◼
►
And no, your phone's not going to fix itself when it's turned off, but it's also not going
01:13:32
◼
►
to get worse.
01:13:33
◼
►
So presumably, Apple will fix this.
01:13:35
◼
►
Apple's not going to allow this.
01:13:36
◼
►
If it's an important bug, it's not like Apple's going to be silent for six months about this
01:13:39
◼
►
bug and no one can turn on their phones.
01:13:41
◼
►
You're not going to be stuck with a turned off phone forever.
01:13:43
◼
►
There will be a fix.
01:13:45
◼
►
And the more serious it is, the sooner the fix will be.
01:13:47
◼
►
So I guess that is perhaps the most annoying option, but is also the most conservative
01:13:52
◼
►
and probably the safest.
01:13:53
◼
►
And that's why I would rank it above changing the date, because that's more of a risky option.
01:13:57
◼
►
It's a way like, can I do something that will expose me to a small amount of risk, but let
01:14:01
◼
►
me not have to, let me continue to use my phone, essentially.
01:14:04
◼
►
Yeah, that's exactly the math I did.
01:14:06
◼
►
And to me, being able to still use my phone was worth that risk.
01:14:10
◼
►
And I'm not saying that I'm right, but I'm just saying I stand by the decision I made
01:14:14
◼
►
the time. But anyway, as it turns out, it was not as dire as I thought. And to be honest, John's
01:14:20
◼
►
approach in retrospect was the best answer, which would have been to turn off your phone, just wait
01:14:26
◼
►
it out, see what happens. And as I think I said a moment ago, it turns out that I guess something
01:14:32
◼
►
with local notifications was causing an error within springboard. And springboard is, you know,
01:14:37
◼
►
the the home screen among other things. And so springboard would crash every two or three minutes.
01:14:41
◼
►
And this was only if you had an app that used a local notification.
01:14:45
◼
►
And if you're not an iOS developer, that may not mean a lot to you.
01:14:49
◼
►
And so a local notification to a user looks identical in almost every scenario, actually
01:14:55
◼
►
every scenario I can think of, to a push notification.
01:14:57
◼
►
But the difference is rather than coming from an external to your device server, it's coming
01:15:01
◼
►
from your phone itself.
01:15:03
◼
►
So your phone is either saying, maybe in a background process, "Oh, I would like to
01:15:08
◼
►
have a notification show up. Or perhaps in the case of like, "Do, D-U-E. Hey, this person
01:15:14
◼
►
has asked for a reminder about this thing they want to do at nine o'clock in the evening.
01:15:20
◼
►
The person has asked to be reminded that ATP is being recorded, and so they'll schedule
01:15:26
◼
►
a reminder locally on the device for nine o'clock on Wednesday evening." And those were
01:15:31
◼
►
the things that were causing the problem. And by the time I woke up, there was actually
01:15:36
◼
►
a fix available. And before we talk about what that fix was, do we have any other commentary
01:15:41
◼
►
about the bug itself?
01:15:42
◼
►
Yeah, I do. Before you get to Marco's commentary, the best solution obviously is always luck,
01:15:49
◼
►
which is what I have going for me today because I was way behind in Twitter. So like I said,
01:15:53
◼
►
I'm reading about the bug like hours and hours, like I'm reading hours and hours old tweets.
01:15:57
◼
►
So the whole rest of the world knows how it turns out already, but I don't know. I'm reading,
01:16:01
◼
►
you know, five hours ago tweets, right? And I'm like, huh, look at this bug and I'm rolling
01:16:04
◼
►
through and so I'm learning about it in real time on my phone.
01:16:07
◼
►
All the while I'm like, I can't wait to see how this turns out.
01:16:10
◼
►
Is it going to turn out that my phone is affected by it?
01:16:12
◼
►
I'm like, well, it's not rebooting to Springboard constantly, right?
01:16:15
◼
►
So I guess I'll…
01:16:16
◼
►
You won't believe what happens next.
01:16:17
◼
►
Yeah, right.
01:16:18
◼
►
So basically I lucked out because I guess I don't have any applications that do local
01:16:21
◼
►
notifications.
01:16:22
◼
►
So I got to read the story of my present backwards in time and that was fun.
01:16:29
◼
►
And so yeah, if you can rely on luck, I highly recommend it.
01:16:33
◼
►
- My solution was to be a member of multiple Slack groups
01:16:36
◼
►
where Casey was also a member.
01:16:38
◼
►
Because on the night of December 1st,
01:16:41
◼
►
when this was all coming out,
01:16:42
◼
►
like right before midnight
01:16:43
◼
►
that it was going to start happening,
01:16:45
◼
►
Casey posted in every Slack that he was in
01:16:48
◼
►
about this horrible thing.
01:16:49
◼
►
- I was very nervous.
01:16:50
◼
►
- I read his Slack things backwards in time too.
01:16:52
◼
►
I'm like, "Oh wow, Casey really went all out
01:16:54
◼
►
"warning the world about this bug."
01:16:56
◼
►
- Well because again, at the time,
01:16:58
◼
►
I didn't have a whole lot of facts.
01:16:59
◼
►
But what I did know was that people in the future,
01:17:03
◼
►
that I mean in like Australia and New Zealand were having serious problems with their phones.
01:17:07
◼
►
And so these are all, like, especially in the slacks, you know, I didn't really sound
01:17:11
◼
►
the alarm too heavily on Twitter, but for my friends in Slack, I want you guys to be
01:17:17
◼
►
able to react and do something about this. Be that turn off your phone, be it set your
01:17:20
◼
►
clocks, whatever the case may be. Because the initial reports, of course, because it
01:17:24
◼
►
was a game of telephone, was, "Oh my god, your phone is going to explode if you cross
01:17:28
◼
►
I think it was 1215 on Saturday morning.
01:17:31
◼
►
And so, yes, I was spamming everyone,
01:17:34
◼
►
but I stand by that as well,
01:17:35
◼
►
because I would much rather, you know, roles reversed,
01:17:38
◼
►
I would much rather see Marco or John spam me
01:17:41
◼
►
in two or three different slacks and say,
01:17:42
◼
►
"Oh God, set your clock back."
01:17:44
◼
►
And at least be, or make a decision, you know,
01:17:46
◼
►
what I wanna do, rather than have Marco or John be like,
01:17:50
◼
►
"Eh, I'm sure it's fine."
01:17:51
◼
►
- Well, and I appreciate it,
01:17:52
◼
►
'cause that's how I heard about it,
01:17:53
◼
►
because like, so I had like a night,
01:17:55
◼
►
like I think, I forgot I was doing that night,
01:17:57
◼
►
but I was like, you know, spending time with family,
01:17:58
◼
►
so I wasn't browsing the internet,
01:17:59
◼
►
I wasn't on Twitter that night,
01:18:01
◼
►
and as I mentioned in previous episodes,
01:18:02
◼
►
I don't have Twitter on my phone anymore,
01:18:04
◼
►
so I don't browse Twitter on my phone,
01:18:05
◼
►
so I was getting ready, I was brushing my teeth
01:18:07
◼
►
and reading my phone, because I'm a hopeless
01:18:09
◼
►
technology addict and I read my phone
01:18:10
◼
►
while I brush my teeth.
01:18:14
◼
►
You gotta hold the toothbrush like straight down
01:18:16
◼
►
so Face ID will recognize you.
01:18:18
◼
►
Then you first open it up.
01:18:19
◼
►
Anyway, how else are you gonna spend two minutes?
01:18:26
◼
►
So anyway, so I'm brushing my teeth
01:18:29
◼
►
and I started seeing all these messages from you
01:18:31
◼
►
and I started thinking, and by that time,
01:18:33
◼
►
we had known by that point,
01:18:36
◼
►
this was like four minutes before midnight,
01:18:39
◼
►
but we knew at that point that it had to do
01:18:42
◼
►
with recurring local notifications only.
01:18:45
◼
►
So as I'm sitting there brushing my teeth,
01:18:47
◼
►
I'm like, oh my God, wait, okay.
01:18:49
◼
►
Quick inventory of household devices,
01:18:51
◼
►
what's gonna be a problem?
01:18:52
◼
►
Like, all right, all my stuff's on the beta, so I'm fine.
01:18:55
◼
►
Tiff, oh no, her stuff is not in the beta.
01:18:58
◼
►
I'm thinking like, what's the fastest way
01:18:59
◼
►
I can solve this problem in the next four minutes?
01:19:02
◼
►
Well Tiff's trying to like read her phone in bed,
01:19:03
◼
►
like you know, read Instagram and like go to sleep.
01:19:06
◼
►
And I rush in, I run into the bedroom.
01:19:08
◼
►
- Grab it out of her hand.
01:19:10
◼
►
- I run into the bedroom with the toothbrush in my mouth.
01:19:12
◼
►
I'm like Tiff, uninstall your water reminder app
01:19:16
◼
►
sometime in the next four minutes.
01:19:19
◼
►
She's like what, why, like just do it.
01:19:21
◼
►
What, and she's like freaking like why?
01:19:23
◼
►
'Cause she could tell I was super freaked out about it.
01:19:25
◼
►
She had no idea what the hell I was talking about.
01:19:27
◼
►
Because I realized that like, I was thinking like,
01:19:28
◼
►
thinking through what she would have on her phone
01:19:31
◼
►
that would send recurring local notifications.
01:19:34
◼
►
She had some kind of like,
01:19:35
◼
►
drink more water reminding application.
01:19:37
◼
►
So I knew that was a thing.
01:19:39
◼
►
And I like, I finished my speech, ran back in,
01:19:42
◼
►
had like two minutes left.
01:19:43
◼
►
I was like, are there any other apps
01:19:45
◼
►
that you have on your phone that send you notifications
01:19:48
◼
►
that are not from a big company?
01:19:50
◼
►
Because the thing is like, every other app
01:19:52
◼
►
from a big company is going to send
01:19:55
◼
►
remote push notifications.
01:19:56
◼
►
They're never gonna use local.
01:19:57
◼
►
They're only gonna ever use remote.
01:20:00
◼
►
The only apps that really ever use local notifications
01:20:03
◼
►
at all are apps that really need to, for some reason,
01:20:06
◼
►
like reminding apps or alarm apps or to-do apps,
01:20:10
◼
►
or Overcast, that's an implementation detail.
01:20:12
◼
►
And so, and I knew because it was recurring
01:20:15
◼
►
local notifications, that cuts out a lot
01:20:18
◼
►
of potential app types.
01:20:21
◼
►
Very few apps use recurring local notifications.
01:20:25
◼
►
So that's why this was a huge problem.
01:20:29
◼
►
It was a huge problem only for people
01:20:31
◼
►
who use a relatively small subset of app types.
01:20:34
◼
►
So this was actually not nearly as bad
01:20:37
◼
►
as it could have been.
01:20:38
◼
►
I mean if this was a problem with anybody
01:20:39
◼
►
who had any kind of notifications,
01:20:41
◼
►
that would have been a much bigger problem than it was.
01:20:44
◼
►
And it was pretty big, but it could have been way worse.
01:20:48
◼
►
So anyway, so she got off okay after reinstalling
01:20:50
◼
►
the Water Reminder app, 'cause I was even thinking,
01:20:53
◼
►
like, can I install a beta in four minutes?
01:20:56
◼
►
Nope, that's not gonna be fast enough.
01:20:59
◼
►
Didn't have the profile installed, it's not gonna work.
01:21:02
◼
►
Yeah, so anyway.
01:21:03
◼
►
How did Apple solve this problem, Casey?
01:21:06
◼
►
- So as it turns out, and we've kind of put these pieces,
01:21:09
◼
►
not the three of us, just in general,
01:21:11
◼
►
the communities put these pieces together after the fact,
01:21:13
◼
►
as it turns out, iOS 11.2 is due to come out this week,
01:21:16
◼
►
and I've heard conflicting reports,
01:21:18
◼
►
what day of the week it was supposed to come out
01:21:20
◼
►
and it doesn't really matter to be honest, but--
01:21:22
◼
►
- It probably wasn't Friday night at midnight.
01:21:24
◼
►
- Yeah, exactly.
01:21:26
◼
►
So, 11.2 was in the hopper, so to speak,
01:21:30
◼
►
and it was imminently going to be released.
01:21:32
◼
►
And so, one would assume that it had been heavily QA'd,
01:21:37
◼
►
it was pretty much ready to go,
01:21:38
◼
►
and they were just waiting to make sure
01:21:40
◼
►
that their servers were up to snuff,
01:21:42
◼
►
that the emergency response team was there and ready to act
01:21:47
◼
►
when they hit the go button,
01:21:49
◼
►
or whatever it is that Apple does
01:21:50
◼
►
when they release new iOS point release.
01:21:53
◼
►
And so if you think about it,
01:21:56
◼
►
Apple had a couple of choices, right?
01:21:57
◼
►
They can-- - I'm kind of imagining
01:21:59
◼
►
like Johnny Ive in a totally white room
01:22:03
◼
►
with a big white button on a perfectly formed
01:22:06
◼
►
wooden Apple Store table. (laughing)
01:22:10
◼
►
It wouldn't even be labeled though.
01:22:11
◼
►
- No, he hates buttons.
01:22:13
◼
►
It would just be a spot on the table--
01:22:15
◼
►
- Yeah, exactly. - That he would have to just
01:22:16
◼
►
apply some pressure to,
01:22:18
◼
►
it would be a force click button.
01:22:19
◼
►
- He just gives it a meaningful look,
01:22:20
◼
►
he doesn't have to touch it.
01:22:24
◼
►
- But anyway, the point is that,
01:22:27
◼
►
Apple all kidding aside, had basically two choices.
01:22:29
◼
►
They could either put together a fix just for this issue
01:22:32
◼
►
and try to emergency QA test it
01:22:35
◼
►
and try to put together an emergency patch
01:22:37
◼
►
and start shipping this patch.
01:22:39
◼
►
Or it was very quickly obvious that people on the beta
01:22:42
◼
►
were not having this problem like Marco had said.
01:22:44
◼
►
And so they could alternatively just say,
01:22:47
◼
►
you know what the hell with it 11.2 wasn't supposed to go out like Marco said at midnight
01:22:52
◼
►
Eastern on a Friday evening and gosh knows that if you've ever done anything with software
01:22:58
◼
►
You never want to deploy on a Friday night because that means you're you're really on a Friday at all
01:23:02
◼
►
Because that means your weekend is all but assuredly screwed. But at this point they were screwed anyway, so we why not and
01:23:08
◼
►
What they ended up doing was releasing 11.2 early which I think was a smart choice
01:23:15
◼
►
I mean, it's easy for me to armchair a quarterback, but hey, that's what we do.
01:23:19
◼
►
To me, I think that was the best choice they could have made, but it certainly had its
01:23:23
◼
►
own set of penalties, in no small part because, say, the release notes, for example, if I'm
01:23:29
◼
►
not mistaken, mentioned Apple Pay Cash?
01:23:33
◼
►
Is that what it's called?
01:23:34
◼
►
Basically, Peer2Peer or Apple Pay.
01:23:36
◼
►
Apple Venmo.
01:23:38
◼
►
Apple Venmo/Apple Square Cash.
01:23:39
◼
►
Well, anyways, so that was mentioned in the release notes, and then all of us, including
01:23:43
◼
►
went to go find it and it wasn't there and we were like,
01:23:44
◼
►
"Well, what's going on here?"
01:23:46
◼
►
And as it turns out, there was a server-side switch
01:23:48
◼
►
they needed to flip, which I think they did Monday?
01:23:51
◼
►
Or it was early this week, regardless.
01:23:53
◼
►
But, you know, it was clear that this was not
01:23:55
◼
►
their intention, but given the hand they had
01:23:58
◼
►
in front of them, I think this was the best decision
01:24:00
◼
►
they could have made.
01:24:01
◼
►
I mean, Marco, would you say that you would do
01:24:03
◼
►
the same thing in their shoes?
01:24:05
◼
►
- I mean, I don't really have enough information
01:24:06
◼
►
to know what their options really were here,
01:24:07
◼
►
but probably, I mean, see, like I was using the 11.2 beta
01:24:11
◼
►
for a while and it seemed fine to me,
01:24:13
◼
►
but that's just one person.
01:24:14
◼
►
If it was truly just a couple of days from release,
01:24:19
◼
►
then yeah, that seems like a totally fine solution.
01:24:22
◼
►
The problem is embarrassing.
01:24:24
◼
►
The fact that they keep having problems with iPhones
01:24:27
◼
►
related to date and time is concerning.
01:24:32
◼
►
For things like alarms not going off in certain days
01:24:34
◼
►
for people and weird daylight savings bugs.
01:24:37
◼
►
I am definitely concerned
01:24:40
◼
►
the number of bugs that iOS specifically has
01:24:45
◼
►
about local date and time issues.
01:24:49
◼
►
I thought we were done with those a few years ago
01:24:50
◼
►
and apparently we're not, and that I think could use
01:24:53
◼
►
some investigation on Apple's part, maybe some auditing
01:24:58
◼
►
and some, you know, really making sure that code is solid
01:25:00
◼
►
because we shouldn't be having those kinds of bugs in 2017.
01:25:04
◼
►
You know, Apple's better than that.
01:25:06
◼
►
But as for the actual fix they did to fix this
01:25:09
◼
►
horribly embarrassing bug.
01:25:11
◼
►
Yeah, it seems fine.
01:25:12
◼
►
- You know, and I should also mention,
01:25:14
◼
►
there was something going on with Mac OS as well,
01:25:16
◼
►
and I never really got a clear read on what it was,
01:25:19
◼
►
but like-- - Have you guys heard
01:25:20
◼
►
that month 13 is out of bounds?
01:25:22
◼
►
- I have heard that.
01:25:23
◼
►
- Have you heard the good news about month 13?
01:25:26
◼
►
- Tell me again why I should update to High Sierra.
01:25:28
◼
►
- Month 13. (laughing)
01:25:30
◼
►
Is it in bounds, or is it out of bounds?
01:25:32
◼
►
I forget. (laughing)
01:25:33
◼
►
- You'll never know.
01:25:34
◼
►
No, but it wasn't even the month 13 thing.
01:25:36
◼
►
There's something to do with Spotlight, I think,
01:25:38
◼
►
or something like that.
01:25:38
◼
►
I forget exactly what it was, but there was a,
01:25:41
◼
►
not widespread, but medium spread,
01:25:44
◼
►
I don't even know if that's really a phrase,
01:25:46
◼
►
but a medium spread bug that was affecting,
01:25:48
◼
►
I believe High Sierra as well,
01:25:51
◼
►
and I can't remember what the hell it was,
01:25:52
◼
►
but it was something to do with like your menu bar
01:25:55
◼
►
or spotlight or something like that.
01:25:57
◼
►
- I haven't seen that one.
01:25:58
◼
►
And I'm afraid to look at my console
01:26:01
◼
►
for the month 13 messages, but.
01:26:02
◼
►
No, the month 13 one is still going on, isn't it?
01:26:05
◼
►
- Did 10 point whatever, point two fix it?
01:26:07
◼
►
I looked at the release notes for it briefly and I thought the very first item would be
01:26:11
◼
►
month 13 is now no longer out of bounds.
01:26:14
◼
►
We've added a new month 13 to the calendar to fix this bug.
01:26:17
◼
►
Yeah, people aren't so far as to find the code in core foundation that runs this assertion
01:26:22
◼
►
that is printing this message.
01:26:25
◼
►
I know in the grand scheme of all things we've talked about with the springboard crashing
01:26:31
◼
►
repeatedly and whatever the problem was last week that I've already forgotten, month 13
01:26:37
◼
►
out of bounds, which to be clear, what we're talking about is a message that appears in
01:26:41
◼
►
the console on your Mac that repeatedly tells you that month 13 is out of bounds.
01:26:45
◼
►
Like multiple times per second, like slowing down your Mac.
01:26:48
◼
►
Yeah, it depends on where it's coming from, what applications you have running, but it
01:26:53
◼
►
sounds like, you know, well whatever, your Mac still works, you just got a bunch of noise
01:26:55
◼
►
in the console, not a big deal.
01:26:57
◼
►
But something about the sort of, you know, the hygienic programmer in me finds that one
01:27:05
◼
►
All the more bothersome because it hasn't been fixed, and sort of knowing that your
01:27:09
◼
►
computer is emitting 10 or 20 of this identical log message per second every second every
01:27:16
◼
►
day that you're using it, and Apple hasn't fixed it, kind of like, gnaws at the back
01:27:23
◼
►
It doesn't sit well with me.
01:27:27
◼
►
Regardless of the actual implications, like, "Oh, they use a database format, and it coalesces
01:27:31
◼
►
duplicates, and really it's just incrementing a counter, and you're not actually storing
01:27:34
◼
►
duplicates and blah blah blah, but like whatever, I don't care about the technical things.
01:27:38
◼
►
Like it's just, you know, and maybe also as a server-side programmer, noise in logs is
01:27:45
◼
►
Noise in logs prevent you from seeing signal.
01:27:47
◼
►
Stop spewing stuff to logs.
01:27:49
◼
►
Like it's the thing that makes you go around the company with the big virtual stick and
01:27:52
◼
►
bop people on the head and say, "Stop, stop filling the logs with crap.
01:27:56
◼
►
If you're debugging, fine, debug and then turn off your log messages.
01:27:59
◼
►
Like keep the logs clean."
01:28:01
◼
►
So I really hope that month 13 will no longer
01:28:04
◼
►
be out of bounds.
01:28:06
◼
►
- Yeah, that's the one big thing.
01:28:07
◼
►
When they introduce this new logging framework,
01:28:09
◼
►
I think it was what, last year or the year before?
01:28:12
◼
►
When they introduced the new logging framework,
01:28:14
◼
►
like they tattered like, oh, it's so lightweight,
01:28:16
◼
►
you can just leave incredibly verbose logging
01:28:18
◼
►
enabled all the time and the system will handle it
01:28:20
◼
►
because like, oh, it's so efficient
01:28:22
◼
►
and if no one's looking at the log,
01:28:25
◼
►
it doesn't get written anywhere or something like that.
01:28:27
◼
►
There's all sorts of details that make it super efficient.
01:28:29
◼
►
But yeah, I'm with you.
01:28:30
◼
►
Like first of all, looking at console,
01:28:32
◼
►
or even the Xcode developer log,
01:28:35
◼
►
is nearly useless since this change.
01:28:37
◼
►
Because the apparent message within Apple
01:28:41
◼
►
when they did this was,
01:28:42
◼
►
now that we've made logging really cheap,
01:28:44
◼
►
we can just dump diarrhea in the logs
01:28:47
◼
►
constantly from everything.
01:28:49
◼
►
And it makes it really hard to actually look at the logs
01:28:53
◼
►
when you're having a problem
01:28:54
◼
►
and find anything useful at all.
01:28:56
◼
►
Or to run anything on a tethered device with Xcode
01:29:00
◼
►
and even if you do the whole OS, whatever,
01:29:03
◼
►
OS disable mode, disable, whatever that macro is
01:29:06
◼
►
you're supposed to set, it doesn't actually work.
01:29:07
◼
►
It doesn't actually do what you want.
01:29:09
◼
►
And it's just like, every part of iOS and macOS
01:29:13
◼
►
now just dumps so much crap to the log
01:29:16
◼
►
that it has made the log useless.
01:29:18
◼
►
And not only for developers, but also just for users.
01:29:21
◼
►
Like sometimes, some forum answer will be like,
01:29:23
◼
►
"Hey, go look at console.app for something like this,"
01:29:26
◼
►
and that might tell us an answer.
01:29:28
◼
►
I really strongly disagree with the Apple way of doing this now where logging tons of
01:29:36
◼
►
unnecessary crap all the time is considered okay because they made logs really cheap.
01:29:40
◼
►
Yeah, and for the developers, I think it's actually more reasonable to say, "Oh, just
01:29:45
◼
►
whitelist your application.
01:29:46
◼
►
Use our filtering features to just see logs from your applications."
01:29:49
◼
►
But for users, console has historically been, granted, one of the last resorts, but when
01:29:55
◼
►
and you're really desperate to see what the deal is,
01:29:58
◼
►
you will probably find yourself launching console
01:30:02
◼
►
and saying, "Maybe there's a messaging console
01:30:04
◼
►
"that will let me know what the problem is."
01:30:07
◼
►
And in that case, you can't run any filters
01:30:09
◼
►
because you don't know what you wanna filter.
01:30:11
◼
►
You don't know what application or what part of the system,
01:30:13
◼
►
you don't know what to filter for, you can't whitelist,
01:30:15
◼
►
you could selectively blacklist
01:30:17
◼
►
if you had eliminated sources of things,
01:30:19
◼
►
but sort of an overview of like,
01:30:22
◼
►
"Hey, is anything weird going on in my system?"
01:30:23
◼
►
That's why in server-side applications,
01:30:26
◼
►
the general best practice is to not have noisy log,
01:30:28
◼
►
to have at least one log that is basically,
01:30:30
◼
►
when everything's okay, the log is relatively quiet
01:30:34
◼
►
or there's only one kind of log message there.
01:30:36
◼
►
Or like in some way where you can say,
01:30:38
◼
►
look, if anything other than this normal state
01:30:40
◼
►
appears here, we have a problem.
01:30:42
◼
►
And the normal state may be total quiet,
01:30:44
◼
►
which would mean that every single line
01:30:46
◼
►
to this log means there's a problem.
01:30:48
◼
►
Or the normal state could mean
01:30:49
◼
►
log messages of this type are fine,
01:30:51
◼
►
but if you see any other kind of log message,
01:30:53
◼
►
that's an indicative of a problem.
01:30:54
◼
►
That's what you need.
01:30:55
◼
►
If you just have a big dumping ground,
01:30:57
◼
►
no matter how good your filtering facilities are,
01:30:58
◼
►
no matter how good you are at keeping up your white lists
01:31:00
◼
►
or blacklists of filtering, it's very difficult to,
01:31:04
◼
►
especially in the case of an emergency,
01:31:06
◼
►
you have no place to look anymore
01:31:08
◼
►
where a human being can look at it and say,
01:31:09
◼
►
does that look normal to you?
01:31:10
◼
►
It's like, I don't know, it's just a bunch of crap.
01:31:13
◼
►
Is it more crap or less crap than we were before?
01:31:16
◼
►
And then finally, like month 13 is out of bounds,
01:31:18
◼
►
it represents some kind of error.
01:31:20
◼
►
Is it a programming error?
01:31:21
◼
►
Is it a data error?
01:31:22
◼
►
whatever the source of the error is,
01:31:23
◼
►
is an assertion that it's failing,
01:31:24
◼
►
and we all agree that there is no month 13
01:31:26
◼
►
in the calendar that we all use,
01:31:28
◼
►
so something somewhere is wrong,
01:31:29
◼
►
so someone should fix it,
01:31:30
◼
►
so we don't have to see that message 20 times a second.
01:31:32
◼
►
- Should this be a log message?
01:31:34
◼
►
Shouldn't this be an assertion?
01:31:35
◼
►
Shouldn't it crash?
01:31:36
◼
►
Like that's--
01:31:37
◼
►
- Yeah, let's, you know.
01:31:38
◼
►
- By the way, also, for the record,
01:31:39
◼
►
I have 10.13.2 on my laptop.
01:31:42
◼
►
I just booted it up.
01:31:44
◼
►
This log, I'm still getting month 13
01:31:46
◼
►
is out of bounds errors in the console,
01:31:47
◼
►
so 10.13.2 does not fix this bug.
01:31:49
◼
►
It also doesn't fix my font smoothing bug,
01:31:51
◼
►
because the unchecking the use font smoothing
01:31:54
◼
►
when available box still is completely broken
01:31:58
◼
►
now what, three months after the release of this OS,
01:32:01
◼
►
two major point releases in.
01:32:03
◼
►
If you have that box off,
01:32:04
◼
►
everything is still completely broken.
01:32:06
◼
►
So thanks Apple.
01:32:08
◼
►
Why am I being pushed so hard to use this OS?
01:32:10
◼
►
Why is this being pushed forcibly through my app store?
01:32:13
◼
►
Promote it when it's ready.
01:32:15
◼
►
It's not ready.
01:32:18
◼
►
- Anyway, the month 13 thing,
01:32:20
◼
►
I don't think crashing is probably appropriate
01:32:21
◼
►
Because if it's a data-driven error, the data is bad, the code is not.
01:32:24
◼
►
The code is just telling you the data is bad in a verbose way, in the tradition that you
01:32:28
◼
►
just said of like, "Oh, if you find something wrong and you're not going to throw an exception,
01:32:32
◼
►
just log it so you'll know about it."
01:32:34
◼
►
But if it happens 20 times a second, it's not great.
01:32:36
◼
►
So I'm assuming this is some sort of data bug where some piece of data somewhere, either
01:32:41
◼
►
from the network or on the system, has a bad date in it, or some bad date math added 1
01:32:46
◼
►
to a 12 and got a 13.
01:32:49
◼
►
reason for the code in question to throw an exception in that case because it could be
01:32:53
◼
►
inside some important subsystem that doesn't want to like take down the whole system just
01:32:56
◼
►
because it got some bad data or whatever.
01:32:58
◼
►
I'm just saying find where the bug is and fix it.
01:33:00
◼
►
And obviously it is less urgent than everything else we've talked about.
01:33:03
◼
►
But you know, irrationally, like I said, hygiene-wise, for me it feels mentally urgent to me that
01:33:10
◼
►
this stopped being on in the console.
01:33:15
◼
►
So not a good week for Apple last week.
01:33:18
◼
►
Between the root bug and this bug, it's just not good.
01:33:23
◼
►
But not actually, I'm gonna say not, you know, so it's not good, lots of bugs, but not actually
01:33:26
◼
►
that bad either, because in the grand scheme of things, Apple, like, either through luck,
01:33:31
◼
►
partially through luck, but also partially through things working the way they're supposed
01:33:34
◼
►
to, Apple got fixes out in a timely manner.
01:33:39
◼
►
The fixes more or less work, plus or minus some minor fixes to the fixes.
01:33:44
◼
►
The user base in general, you know, could have been much worse, but it wasn't.
01:33:50
◼
►
I mean, the reasons Marco said local notifications only, the fact that the fixes came out pretty
01:33:56
◼
►
I'm not sure if any of these things even made it out of the little tech nerd circle onto
01:33:59
◼
►
like the evening news or whatever into the wider world.
01:34:02
◼
►
Like was there a front page New York Times story about everybody's iPhones bricking?
01:34:05
◼
►
Like that would be worse, right?
01:34:06
◼
►
So it was unfortunate and there was definitely some bad luck involved, but there was also
01:34:11
◼
►
some good luck.
01:34:12
◼
►
I think Apple more or less functioned the way it's supposed to.
01:34:15
◼
►
Oh, you've got an emergency and a bug, all hands on deck, let's fix the problem, and
01:34:20
◼
►
they fixed it.
01:34:21
◼
►
So you can get pessimistic about the fact that there's all these bugs, and we've
01:34:25
◼
►
talked about that at length, but I'm mostly satisfied that Apple handled the situation
01:34:31
◼
►
the way you would expect a professional good organization to handle the situation.
01:34:35
◼
►
Yeah, I would agree with that.
01:34:37
◼
►
- Yeah, I mean, they're not like, as angry as I am
01:34:41
◼
►
about how crappy they're treating High Sierra right now,
01:34:44
◼
►
and how it should not be,
01:34:45
◼
►
it should not have been released, period.
01:34:47
◼
►
Like this OS is still a beta,
01:34:50
◼
►
and should not have been released,
01:34:52
◼
►
and if they insisted on releasing it,
01:34:53
◼
►
they should not be promoting it as hard as they are,
01:34:55
◼
►
they should not be automatically prompting people
01:34:57
◼
►
to install it as much as they are,
01:34:59
◼
►
but all that being said, they are making software,
01:35:02
◼
►
bugs happen, they are fixing them.
01:35:04
◼
►
You know, bugs happen on both platforms now,
01:35:06
◼
►
Like this isn't just a Mac thing, like iOS has problems,
01:35:08
◼
►
Mac has problems, as long as they fix the problems,
01:35:11
◼
►
they're doing their job.
01:35:12
◼
►
Yeah, but High Sierra is not ready.
01:35:15
◼
►
- I mean, I don't know why you say that.
01:35:17
◼
►
I have it on every one of my machines and it's been fine.
01:35:20
◼
►
- It's just very upset about font smoothing.
01:35:22
◼
►
- Apparently.
01:35:23
◼
►
- Well, and root and month 13, like,
01:35:25
◼
►
it's not that it has one problem.
01:35:28
◼
►
High Sierra has lots of problems.
01:35:31
◼
►
- I don't know, I mean, it depends on
01:35:33
◼
►
if you encounter the problems.
01:35:34
◼
►
Like, if, the example is that I had all these trepidations
01:35:38
◼
►
about installing it, right?
01:35:39
◼
►
And then eventually I just did install it
01:35:41
◼
►
on my wife's computer and it's been fine.
01:35:43
◼
►
I mean, I'm sure her console is filling right now
01:35:45
◼
►
with month 13 being out of bounds.
01:35:47
◼
►
But beyond that, it's more or less works.
01:35:49
◼
►
It's hard for me to gauge like,
01:35:51
◼
►
what is the stability of this thing
01:35:52
◼
►
across the entire user base?
01:35:54
◼
►
Some people have more problems with it than others.
01:35:56
◼
►
None of us have the Windows Server crashing bug,
01:35:58
◼
►
which would certainly be something
01:36:00
◼
►
that would make us all screaming
01:36:01
◼
►
that we shouldn't have upgraded, right?
01:36:03
◼
►
'cause if your computer crashes every 30 to 60 minutes,
01:36:07
◼
►
like, party crashes, kernel panics, that's bad.
01:36:09
◼
►
But I don't know, I feel like Apple probably knows
01:36:14
◼
►
what the stability's like.
01:36:15
◼
►
Certainly it feels shakier than we wish
01:36:18
◼
►
the Mac operating system ever would feel,
01:36:21
◼
►
but early releases of all major updates are like that.
01:36:24
◼
►
And certainly, as we said in the last show,
01:36:25
◼
►
it doesn't live up to the billing as a stability release,
01:36:29
◼
►
like as it was pitched.
01:36:31
◼
►
But it's hard for me to gauge exactly how dire it is.
01:36:34
◼
►
And I still remember the bad old days of 10.5.0
01:36:38
◼
►
and even 10.6.0 and like, oh, the zero releases back
01:36:40
◼
►
in the old days were just so much worse.
01:36:43
◼
►
Like, you may make your computer unusable,
01:36:46
◼
►
but Mark goes right in that they didn't push those.
01:36:47
◼
►
So they didn't automatically download those
01:36:49
◼
►
and throw things in your face to tell you to upgrade.
01:36:50
◼
►
Like no one even knew Leopard was out
01:36:52
◼
►
until most of us had suffered through 10.5.0,
01:36:55
◼
►
10.5.1 and 10.5.2.
01:36:57
◼
►
So it's a different world.
01:37:01
◼
►
Tell us about your iPhone, John.
01:37:03
◼
►
- Do we have time for this?
01:37:04
◼
►
I guess we do.
01:37:04
◼
►
My iPhone is full.
01:37:05
◼
►
- What is that?
01:37:07
◼
►
So wait, what size did you get?
01:37:09
◼
►
- I didn't, here's the thing.
01:37:11
◼
►
- Oh, here we go.
01:37:12
◼
►
- We've all seen the Google ads where they,
01:37:14
◼
►
like part of their advertising campaign is they show up
01:37:16
◼
►
that little dialogue that says like, never see this again.
01:37:19
◼
►
And it's a little iOS dialogue.
01:37:21
◼
►
It comes up and says like, whatever it says,
01:37:23
◼
►
your iPhone is full or you're out of storage.
01:37:24
◼
►
I don't remember the exact wording,
01:37:25
◼
►
but that's been an ad campaigns for Android devices,
01:37:28
◼
►
specifically for Google Android devices, I think, for a while now. And I had never seen
01:37:33
◼
►
that. And so when it appeared, my first question was, "How big is this phone?" Because I'd
01:37:39
◼
►
forgotten. It's an iPhone 7. I bought it a long time ago. I don't remember what size
01:37:42
◼
►
I got. I was surprised to learn that I got a 128, which I normally don't do. Like, I
01:37:48
◼
►
normally get the smaller size, so I'm like, "Oh, I don't have that much stuff on it, and
01:37:51
◼
►
it's not a big deal." It used to be that, you know, back in the old days, when the cameras
01:37:56
◼
►
on phones and iPod Touches really sucked. The biggest thing on your phone or iPod Touch,
01:38:03
◼
►
which I keep saying because that's what I had at the time, was your music. And I was
01:38:07
◼
►
like, "Oh, I'm not going to put my whole music collection on there. I'll just put my three-star
01:38:10
◼
►
plus playlist on there," which is like the songs that I like from my music collection
01:38:14
◼
►
essentially. I'll just put them on there and that's not that big. And that's the biggest
01:38:17
◼
►
thing that's going to be on my phone and my music collection doesn't grow that much. So
01:38:20
◼
►
all I need to do is get a phone or iPod Touch that fits my music collection and I'll be
01:38:24
◼
►
fine but now the cameras on phones and maybe iPod touches are super awesome and
01:38:29
◼
►
we all take lots of pictures with it and the pictures are big and I filled my
01:38:34
◼
►
128 gig phone with yes my music collection which doesn't get that much
01:38:38
◼
►
bigger very often but with photos I filled it with photos so you know you go
01:38:43
◼
►
to the dollar box office says go to manage storage you look at what's taking
01:38:46
◼
►
up all this room and you're like guess what photos and then second place music
01:38:50
◼
►
And then third place, everything else, right?
01:38:53
◼
►
So now I'm in this situation, and I'm like,
01:38:55
◼
►
I saw this ad came in, and I'm like, yeah.
01:38:56
◼
►
But if your phone fills up, you can fix that, right?
01:38:59
◼
►
It's pretty easy to fix.
01:39:00
◼
►
And to its credit, iOS has this pretty nice storage management
01:39:03
◼
►
screen where it will suggest a whole bunch of things
01:39:06
◼
►
you can do to get space back.
01:39:07
◼
►
And it will tell you exactly how much space
01:39:09
◼
►
you'll get back in priority order, the biggest things
01:39:12
◼
►
You can do the thing where you let the operating system offload
01:39:15
◼
►
apps that you don't use.
01:39:15
◼
►
And it tells you what the consequences of that are.
01:39:17
◼
►
And it tells you how much space it'll save.
01:39:19
◼
►
get rid of attachments on messages and it tells you how much space you'll save.
01:39:22
◼
►
You can delete messages older than a year and it tells you how much space that will save and all sorts of stuff like that.
01:39:27
◼
►
I was really impressed with that screen, which I'd never seen before.
01:39:30
◼
►
My problem was I didn't want to do any of those things.
01:39:33
◼
►
What I wanted to happen was iCloud photo library to say I am now going to eject photos that you haven't
01:39:40
◼
►
looked at in a long time and save only the tiniest of thumbnails for them and I'm gonna do that across your entire photo library
01:39:46
◼
►
shrinking it dramatically and I should have done that
01:39:49
◼
►
17 hours ago when I saw you were running out of room on your phone, but I didn't.
01:39:53
◼
►
Instead I waited for your phone to completely fill up and stopped you in the middle of filming
01:39:56
◼
►
a video of your cute dog.
01:39:58
◼
►
And popped up literally in the middle of filming a video of my cute dog and popped up a dialogue
01:40:01
◼
►
that says, "Your phone is full."
01:40:03
◼
►
I'm like, "Well, make it unfold."
01:40:05
◼
►
Like the whole point of optimized storage on my phone, get rid of photos that I haven't
01:40:10
◼
►
Like I have thousands of photos that I have never looked at on my phone.
01:40:13
◼
►
Get them off my phone.
01:40:14
◼
►
That's the whole point of optimized storage, right?
01:40:17
◼
►
And I know people have had the same frustration on their Mac.
01:40:19
◼
►
They're like, they set their Mac to optimized storage
01:40:21
◼
►
and their Mac's disk fills up and they're like,
01:40:24
◼
►
come on photos, optimized storage.
01:40:26
◼
►
The whole point is they're stored in the cloud.
01:40:28
◼
►
I don't need the full res ones here.
01:40:30
◼
►
Download them on demand,
01:40:31
◼
►
get the full res ones off of my system.
01:40:33
◼
►
So I didn't know what to do.
01:40:35
◼
►
So I'm like, I guess I'll try deleting some big apps.
01:40:38
◼
►
I guess I'll finally delete GarageBand that I never used
01:40:40
◼
►
'cause it's like 600 megs or whatever.
01:40:42
◼
►
I deleted some stuff thinking, maybe it's just a lag.
01:40:46
◼
►
Maybe the photos thing just takes a little while
01:40:50
◼
►
to catch up and it'll flush stuff out.
01:40:52
◼
►
But sure enough, like a couple hours later,
01:40:54
◼
►
phone full again.
01:40:55
◼
►
I deleted some more stuff.
01:40:56
◼
►
Next day, phone full again.
01:40:57
◼
►
Like every time I try to take a picture,
01:40:59
◼
►
it would happen literally when I'm taking pictures
01:41:00
◼
►
and videos, just like on the ads,
01:41:02
◼
►
'cause that's when the thing would fill up
01:41:04
◼
►
or hit some threshold.
01:41:05
◼
►
So I was like, I have no choice.
01:41:09
◼
►
I have to basically turn off iCloud Photo Library
01:41:12
◼
►
to convince it to delete these photos off my Mac,
01:41:14
◼
►
'cause it's just not doing it.
01:41:16
◼
►
So I turned off iCloud Photo Library and it said, "Do you want to keep these photos in your Mac or do you want to trash them?"
01:41:21
◼
►
I said, "Go ahead and trash them because they're all safe in the cloud, they're all safe on my Mac, like, you know, there are a million different places, I don't need them to be on my phone, I never look at them on my phone anyway."
01:41:30
◼
►
And by the way, remember, the photos on my photo library is not the family photo library. It's just my photos.
01:41:37
◼
►
The family photo library belongs to my wife, so I'm only talking about a tiny subset of the vast amount of photos I have.
01:41:43
◼
►
I have and I import all of my photos into the family photo library like painfully manually. There's no good way to do this
01:41:50
◼
►
So I wasn't really worried about the data, right?
01:41:54
◼
►
because it's not it's not the real photos and they're all new things so I told it to delete my photo library and
01:42:00
◼
►
And I click delete and it went through and now it's like it's removing space and I'm seeing space come back
01:42:05
◼
►
I get many many gigs free. I'm like, I ought to solve this problem and
01:42:10
◼
►
And then I found myself in the managed storage screen.
01:42:13
◼
►
I guess I was just trying to look up what the progress was
01:42:14
◼
►
or whatever.
01:42:15
◼
►
And I noticed in the managed storage screen it said,
01:42:18
◼
►
"Here's some things you can do to save space."
01:42:20
◼
►
And one of the top items was,
01:42:23
◼
►
"You should enable iCloud Photo Library
01:42:25
◼
►
'cause that'll save you 50 gigs."
01:42:27
◼
►
I was like, "What?
01:42:29
◼
►
"How will enabling iCloud Photo Library save me 50 gigs?"
01:42:34
◼
►
Is it thinking, "Well, I see on your phone
01:42:36
◼
►
you've got gigs and gigs of photos,
01:42:38
◼
►
but if you enable iCloud Photo Library,
01:42:40
◼
►
I can upload all those to the cloud
01:42:42
◼
►
and then dump the full res versions,
01:42:43
◼
►
leaving only the thumbnail, saving you 50 gigs?
01:42:46
◼
►
Like that's the only way I could reason about that.
01:42:48
◼
►
Like that's how it was telling me
01:42:49
◼
►
you would think it would save space.
01:42:50
◼
►
And I would say, "Look, let me tell you,
01:42:52
◼
►
"I had it enabled and that's when my phone filled
01:42:54
◼
►
"and it didn't seem like it saved me space."
01:42:55
◼
►
But anyway, because it offered that to me,
01:42:58
◼
►
I said, "All right, I'll take that bet phone.
01:43:01
◼
►
"I'll enable my phone phone library right now.
01:43:03
◼
►
"Let's see if you save me 50 gigs of space."
01:43:06
◼
►
- You're beating me up about setting my clock back
01:43:08
◼
►
and this is the sort of thing that you do?
01:43:10
◼
►
Like I said, to clarify, these photos are all safe and sound somewhere else.
01:43:13
◼
►
This is not the real family photo library.
01:43:16
◼
►
This is just me versus the phone to see.
01:43:18
◼
►
If you're going to tell me that I'm going to save 50 gigs, I'll enable it.
01:43:22
◼
►
And so I enabled it.
01:43:23
◼
►
And I think what I did was I enabled it so quickly after I had disabled that it hadn't
01:43:27
◼
►
deleted all the photos on my phone.
01:43:29
◼
►
It had just deleted many, many gigs of them.
01:43:32
◼
►
And I re-enabled it.
01:43:34
◼
►
And it went through this thing that said, "Uploading photos."
01:43:37
◼
►
I was like, oh no, is it uploading duplicates of these photos?
01:43:40
◼
►
Surely it knows that it has already uploaded all these.
01:43:42
◼
►
And it did, it figured it out.
01:43:44
◼
►
It said, I gotta upload like 9,000 photos,
01:43:47
◼
►
and it was like, yup, I'm all done.
01:43:48
◼
►
Because all those photos were already uploaded,
01:43:50
◼
►
so it didn't actually re-upload them, no duplicates.
01:43:53
◼
►
And then it just sat there in a steady state.
01:43:55
◼
►
So I'm like, well this technique worked.
01:43:58
◼
►
Disable icon photo library, tell it to delete,
01:44:00
◼
►
wait a short time for it to delete several gigs,
01:44:03
◼
►
then re-enable it, let it figure out
01:44:05
◼
►
that everything that's on the phone
01:44:06
◼
►
has already been uploaded,
01:44:07
◼
►
and let it just say, well, there's nothing for me to do.
01:44:08
◼
►
I guess everything's fine on this phone.
01:44:10
◼
►
So that is my update on my full phone.
01:44:14
◼
►
I'm not sure if I dealt with it in the right way.
01:44:17
◼
►
I'm not sure what the right way really would be.
01:44:20
◼
►
And just to go through the things that I didn't wanna do,
01:44:24
◼
►
I didn't wanna delete message attachments
01:44:25
◼
►
just because I'm stubborn and I'm waiting
01:44:27
◼
►
for that stupid iCloud message sync thing to happen
01:44:30
◼
►
so that all my messages would be in the cloud
01:44:32
◼
►
and I could delete them locally.
01:44:33
◼
►
Like I didn't want, you know, people send me cute videos.
01:44:36
◼
►
I don't want to save them to my video library, but I don't want them to be gone, right?
01:44:39
◼
►
I did want to delete a bunch of applications, especially ones that I might not be able to
01:44:42
◼
►
re-download from the store, although there's fewer of them these days because of the 64-bit
01:44:46
◼
►
thing that kills a lot of my cool 32-bit apps.
01:44:49
◼
►
Flight control.
01:44:51
◼
►
I didn't want to delete any big games and stuff that I play, because I may not play
01:44:57
◼
►
them that often, but when I do want to play them, I like the fact that it's there and
01:45:00
◼
►
I can just launch it and play with it.
01:45:03
◼
►
I didn't want to delete any of my music because I already had a minimal set of my music on
01:45:06
◼
►
there and I didn't want to stream music like it was just another option that I could have
01:45:09
◼
►
done but I like the fact that the music is on there.
01:45:12
◼
►
What I did want to happen was for the photos to flash out.
01:45:14
◼
►
So anyway, I took the phone up on its bed and it sure didn't save me 50 gigs but my
01:45:19
◼
►
phone is no longer full again and I guess what this means is the next time I get a phone
01:45:22
◼
►
I'll be sure to get the 256 or whatever the biggest size the offer is because now I'm
01:45:26
◼
►
apparently one of those people who fills his phone.
01:45:28
◼
►
I will say a useful tip that somebody told me somewhere,
01:45:32
◼
►
or I found somewhere when I was setting up my laptop last,
01:45:35
◼
►
is on iOS, you're screwed.
01:45:38
◼
►
You're up to the iCloud gods to do what they need to do
01:45:40
◼
►
with optimizing storage, which they seem to not do reliably.
01:45:44
◼
►
But on the Mac, I strongly recommend this tactic,
01:45:48
◼
►
where if you're gonna have your main Mac
01:45:51
◼
►
download all the files and download originals, fine.
01:45:54
◼
►
Do it normally.
01:45:55
◼
►
If you're gonna use iCloud Photo Library
01:45:57
◼
►
and have it optimize storage on a Mac.
01:45:59
◼
►
If you have an idea of how much disk space
01:46:02
◼
►
you want that to use at most,
01:46:04
◼
►
create a sparse bundle disk image
01:46:07
◼
►
and locate your photos library on that
01:46:10
◼
►
and you can just have it auto mount
01:46:11
◼
►
by adding it as a login item in your login items.
01:46:14
◼
►
And so I have a disk image called photos
01:46:16
◼
►
that I set as a maximum size of,
01:46:18
◼
►
I think it was like 20 gigs that I chose,
01:46:20
◼
►
something like that.
01:46:21
◼
►
That's why I've been doing it on my new old laptop.
01:46:25
◼
►
and it is wonderful because it filled that up
01:46:29
◼
►
maybe two thirds of the way and then just stopped.
01:46:32
◼
►
And so now I can control exactly how much disk space
01:46:36
◼
►
it uses and it will never exceed the limit
01:46:40
◼
►
on this sparse bundle.
01:46:42
◼
►
It's glorious.
01:46:44
◼
►
I don't know why this isn't a setting.
01:46:46
◼
►
They should just have a setting.
01:46:48
◼
►
- Can you imagine some other way to implement that feature
01:46:50
◼
►
that doesn't involve this image?
01:46:51
◼
►
Imagine if they just had a setting for it.
01:46:52
◼
►
- Yeah, maybe, yeah, an action of storage limit setting.
01:46:55
◼
►
That would be amazing, but they don't have that.
01:46:58
◼
►
So in the absence of them being willing to add
01:47:01
◼
►
such an incredibly useful, obvious setting
01:47:03
◼
►
that everyone needs on a laptop,
01:47:04
◼
►
because the SSDs are expensive and small,
01:47:06
◼
►
make a sparse bundle disk image and disk utility,
01:47:09
◼
►
and you can locate the photo library on that,
01:47:11
◼
►
add it as a login item, and it automatically mounts,
01:47:13
◼
►
and everything just works, except you have a defined limit
01:47:16
◼
►
to how big your photos library can be,
01:47:18
◼
►
and it will stay under it.
01:47:19
◼
►
It is wonderful.
01:47:21
◼
►
I was going to make fun of the inefficiency of the solution because now you've got like
01:47:23
◼
►
another layer of pseudo file system that all your I/O is going through, which, you know,
01:47:28
◼
►
can't be efficient.
01:47:29
◼
►
But I do something even worse for network time machine backups.
01:47:33
◼
►
And what I probably should be doing is I think what both of you use is quotas on Synology.
01:47:37
◼
►
You just have the quotas per user, right?
01:47:39
◼
►
Yep, works great.
01:47:41
◼
►
I think I actually do have the quotas set, but I think I'm slightly over-provisioned in
01:47:44
◼
►
typical fashion.
01:47:46
◼
►
So usually if things start to fill up, I use the TMUTIL thing to delete historic backups,
01:47:51
◼
►
because at least in the case of time machines, there is a physical way for me to do what
01:47:54
◼
►
the system should be doing anyway, which is cleaning up old backups.
01:47:57
◼
►
But sometimes it gets cranky when you get close to too much space.
01:48:00
◼
►
So I have on my network time machine volume a non-sparse disk image as a space-filling
01:48:08
◼
►
placeholder.
01:48:09
◼
►
Like many gigs of a space-filling placeholder.
01:48:13
◼
►
If I ever get to the point where I'm really super full and a time machine needs like too much needs scratch space to get
01:48:20
◼
►
It out of its bind guess what I take the space filler chuck it in the trash empty. You know it delete it
01:48:25
◼
►
Resolve the time machine thing and put back the space filler which is I you know it's disgusting it reminds me of that awesome story
01:48:31
◼
►
I hope it's not a pocket world is one of my favorite internet stories of the
01:48:36
◼
►
Experienced game developer who has some mandate to fit all some I figure I'm gonna messing up details
01:48:42
◼
►
but to fit all the assets for this game in a certain amount of memory and
01:48:45
◼
►
It's like getting to be crunch time and they have to ship and they're like, you know
01:48:51
◼
►
This is the old days of PC gaming like 200 K over their RAM limit and they can't figure out how to ring any more RAM
01:48:56
◼
►
Out and at the beginning of project he'd made a two megabyte RAM buffer as a static variable and in some C file
01:49:01
◼
►
He just comments that line out and says done ship it
01:49:04
◼
►
My thing is obviously much worse than that and not clever at all
01:49:08
◼
►
But it is it is a thing that I do and it has actually come in handy
01:49:11
◼
►
I want to make so much fun of you, Jon, but that is actually very, very clever.
01:49:17
◼
►
It's stupid.
01:49:18
◼
►
I should use quotas, but I'm just saying it's a thing I do.
01:49:21
◼
►
I mean, is that that much worse than a micro-freezy sparse bundle hack?
01:49:23
◼
►
Yeah, well, you know, the sparse bundle, like, the sparse bundle thing just makes me so angry
01:49:28
◼
►
about how these automated systems, like, for version one, fine, but this is obviously a
01:49:32
◼
►
thing that people want.
01:49:33
◼
►
They want more control over how much space your thing is taking, and if the optimized
01:49:36
◼
►
thing really worked the way it was supposed to, where you don't have to worry about,
01:49:39
◼
►
take care of it, no one would complain.
01:49:41
◼
►
Like, that's a great goal, but many years later, on all their systems, their sort of
01:49:45
◼
►
optimized storage thing does not work the way people expect.
01:49:49
◼
►
Like there's, it lets it fill up, it doesn't catch it before it fills up, in scenarios
01:49:53
◼
►
where you're, it's not like, I'm not like I'm flooding, I mean, I suppose video I am
01:49:56
◼
►
kind of flooding the phone with lots of data, but like, it's not unforeseeable by the system
01:50:02
◼
►
that we're getting close to the disk storage limit, and when it does hit the limit, it
01:50:06
◼
►
It seems like no part of the system scrambles to get your space back.
01:50:09
◼
►
They're like, "Yeah, you've hit your limit.
01:50:10
◼
►
No, we're not going to do anything about it.
01:50:12
◼
►
Like, maybe, maybe that demon will wake up and consider thinning some, but maybe it won't.
01:50:17
◼
►
Like, we're not in a hurry.
01:50:20
◼
►
Is there some urgency about this?
01:50:21
◼
►
Perhaps you should go to the settings app on the managed storage screen so you can clear
01:50:23
◼
►
that red badge."
01:50:24
◼
►
Well, it makes you look at that, by the way.
01:50:26
◼
►
It makes you look at that managed storage screen to clear that badge every time it tells
01:50:29
◼
►
you that message.
01:50:30
◼
►
I know that because it would tell me that message a lot.
01:50:32
◼
►
And there's no way to get rid of it until you go into that screen and let it grind away
01:50:36
◼
►
and say, "Here's all the things you can do to save space."
01:50:37
◼
►
I'm like, "You know what you can do to save space?
01:50:40
◼
►
"Get rid of some photos."
01:50:43
◼
►
- Thanks to our sponsors this week,
01:50:44
◼
►
Fracture, Aftershocks, and Linode,
01:50:46
◼
►
and we will see you next week.
01:50:48
◼
►
(upbeat music)
01:50:50
◼
►
♫ Now the show is over
01:50:53
◼
►
♫ They didn't even mean to begin
01:50:55
◼
►
♫ 'Cause it was accidental
01:50:57
◼
►
♫ Accidental
01:50:58
◼
►
♫ Oh, it was accidental
01:51:00
◼
►
♫ Accidental
01:51:01
◼
►
♫ John didn't do any research
01:51:03
◼
►
Marco and Casey wouldn't let him 'Cause it was accidental
01:51:07
◼
►
It was accidental And you can find the show notes at ATP.FM
01:51:14
◼
►
And if you're into Twitter You can follow them at C-A-S-E-Y-L-I-S-S
01:51:22
◼
►
So that's Casey List M-A-R-C-O-A-R-M
01:51:30
◼
►
T-M-A-R-C-O-R-M-N-S-I-R-A-C-U-S-A-C-R-A-C-U-S-A-C-R-A-C-U-S-A
01:51:37
◼
►
It's accidental (It's accidental)
01:51:40
◼
►
They didn't mean to accidental (Accidental)
01:51:45
◼
►
Tech broadcast so long
01:51:50
◼
►
How's the weather up there Marco?
01:51:52
◼
►
Uh, cold? Rainy?
01:51:54
◼
►
How's the forecast though?
01:51:57
◼
►
- Oh, ha, ha. - There it is.
01:51:59
◼
►
- There we go.
01:52:02
◼
►
It's Overcast.
01:52:03
◼
►
- Nicely done, nicely done.
01:52:06
◼
►
We'll be here all week, kids.
01:52:08
◼
►
Anyway, so you've released a Mac app.
01:52:12
◼
►
Congratulations.
01:52:12
◼
►
- Yeah, my second Mac app.
01:52:13
◼
►
Don't forget Quitter.
01:52:15
◼
►
- Yes, that's true, that's true.
01:52:17
◼
►
- I noticed that on my system the other day
01:52:18
◼
►
when I was command spacing it.
01:52:19
◼
►
I think I mistyped and Quitter came up.
01:52:21
◼
►
I'm like, "Oh yeah, I remember that."
01:52:23
◼
►
- Yeah, so I released Forecast.
01:52:24
◼
►
It's a Mac app.
01:52:25
◼
►
It's for producing your own podcasts.
01:52:27
◼
►
It is an MP3 encoder and chapter tool
01:52:30
◼
►
and lets you input some of the MP3 metadata
01:52:33
◼
►
right in the app.
01:52:34
◼
►
And this, I mentioned this on this show
01:52:37
◼
►
a number of times over the last two years or so
01:52:41
◼
►
that I've been developing it.
01:52:42
◼
►
It is a parallelized version of the LAME MP3 encoder
01:52:47
◼
►
under the hood.
01:52:48
◼
►
The parallelization is actually done fairly boringly.
01:52:52
◼
►
It's done entirely outside of LAME.
01:52:54
◼
►
But LAME is a terrible name.
01:52:56
◼
►
That's kind of like an ableist problem name now,
01:52:59
◼
►
but this was named a very long time ago
01:53:00
◼
►
before we were as aware of these things,
01:53:02
◼
►
and I didn't name it,
01:53:03
◼
►
but it happens to be the best MP3 encoder.
01:53:05
◼
►
So I apologize for the terrible name,
01:53:07
◼
►
but it is called the Lame MP3 Encoder.
01:53:09
◼
►
It is the, pretty much the only way
01:53:13
◼
►
you can encode an MP3 legally today
01:53:17
◼
►
without using software that had a preexistent deal
01:53:20
◼
►
with the Fraunhofer Institute
01:53:22
◼
►
that was the creator of the MP3 originally
01:53:24
◼
►
back in like the late 80s and it was them
01:53:28
◼
►
whose patents expired this past spring.
01:53:30
◼
►
When their patents expired, they stopped licensing
01:53:33
◼
►
their encoder at any price.
01:53:35
◼
►
Believe me, I tried.
01:53:36
◼
►
So the only way to encode MP3s legally today
01:53:39
◼
►
if you don't already have a copy or a license
01:53:41
◼
►
of the lame MP3 encoder like Apple does
01:53:43
◼
►
with iTunes and Logic is to use the lame open source project.
01:53:48
◼
►
So anyway, that's what Forecast does
01:53:51
◼
►
And the parallelization happens outside of that.
01:53:54
◼
►
I basically split the file into chunks,
01:53:57
◼
►
send them each to a copy of the regular standard
01:54:00
◼
►
libmp3 lame that comes with the source distribution
01:54:03
◼
►
from Homebrew, rejoin those chunks after they are encoded
01:54:08
◼
►
into one MP3 file.
01:54:09
◼
►
Because as I mentioned earlier in the show,
01:54:11
◼
►
during the question about dynamic ad insertion,
01:54:13
◼
►
MP3 file format is easily spliced and easily rejoined
01:54:17
◼
►
and hacked up like that without causing too many problems
01:54:20
◼
►
as long as you're a little bit careful.
01:54:21
◼
►
So that's what it does.
01:54:24
◼
►
And it is optimized for the workflow that me
01:54:29
◼
►
and some of my podcaster friends have,
01:54:33
◼
►
which is we create MP3 chapters as markers in Logic Pro.
01:54:38
◼
►
You can also do this from Adobe Audition.
01:54:42
◼
►
And I don't think there's a good way to do it
01:54:44
◼
►
from Audacity, unfortunately.
01:54:45
◼
►
I know people are trying.
01:54:46
◼
►
I'm not yet aware of a way to do it.
01:54:49
◼
►
but anything that can export markers as metadata
01:54:54
◼
►
in a WAV file, forecast will try to import that as chapters.
01:54:58
◼
►
You can also create them manually,
01:55:00
◼
►
but I wouldn't recommend that because the interface
01:55:02
◼
►
for doing so is awful because I don't do that.
01:55:05
◼
►
So, also it's all a table view with Cocoa bindings
01:55:09
◼
►
and that makes a bunch of weird little behaviors
01:55:12
◼
►
and inconsistencies and bugs that I need to get rid of
01:55:14
◼
►
by dumping Cocoa bindings, but that's a lot of work
01:55:17
◼
►
and I haven't gotten there yet.
01:55:18
◼
►
Anyway, so I released this app,
01:55:21
◼
►
and I released it for free for lots of reasons
01:55:23
◼
►
that I don't know if I can talk about it if you want to,
01:55:24
◼
►
if you care.
01:55:25
◼
►
I've talked a little bit about some of this stuff
01:55:26
◼
►
on Under the Radar, but I don't know,
01:55:29
◼
►
what do you guys wanna know?
01:55:30
◼
►
Where should I start here?
01:55:32
◼
►
- So what was the motivation?
01:55:33
◼
►
It was simply just efficiency?
01:55:36
◼
►
- Yeah, pretty much.
01:55:36
◼
►
It was, you know, I wanted, first of all,
01:55:40
◼
►
the way I was encoding this show before
01:55:42
◼
►
was by using the command line version of Lame.
01:55:46
◼
►
And I was doing that, you know,
01:55:48
◼
►
I wasn't using the built-in MP3 encoder in Logic,
01:55:50
◼
►
which is the Fraunhofer encoder,
01:55:52
◼
►
which is actually a little bit better quality
01:55:54
◼
►
for low bit rate speech, and also a little bit faster.
01:55:58
◼
►
But I wasn't using that because I wanted,
01:56:00
◼
►
as part of my workflow, to automate things
01:56:03
◼
►
like putting in the right artwork for the show,
01:56:06
◼
►
putting in the right podcast title
01:56:08
◼
►
and episode number and everything.
01:56:09
◼
►
So I had some shell scripts to do that before,
01:56:12
◼
►
and I would shell out to the lame MP3 encoder
01:56:15
◼
►
on the command line.
01:56:16
◼
►
and encoding an episode of the show
01:56:18
◼
►
would take like four or five minutes.
01:56:20
◼
►
And you know, to an impatient programmer,
01:56:22
◼
►
that's just death.
01:56:23
◼
►
Like, just have to sit there and wait.
01:56:25
◼
►
And every time, like if I wanted to change the file,
01:56:28
◼
►
would have to then wait another five minutes
01:56:30
◼
►
for it to re-encode, and it was a pain.
01:56:31
◼
►
So, and I've always loved hacking audio stuff.
01:56:36
◼
►
As you can tell from some of my career choices,
01:56:38
◼
►
always loved it, always loved dealing with audio.
01:56:41
◼
►
And so I decided, you know what,
01:56:43
◼
►
There has to be a way to make this parallel.
01:56:46
◼
►
I have all these cores sitting around doing nothing
01:56:49
◼
►
on my computer while one core works its butt off
01:56:52
◼
►
for five minutes.
01:56:53
◼
►
This is incredibly offensive to me.
01:56:55
◼
►
Let me figure out a way to solve this.
01:56:58
◼
►
And in addition, I realize like if I control
01:57:02
◼
►
like a GUI version of the encoder,
01:57:04
◼
►
I can save myself some time in other ways.
01:57:07
◼
►
For instance, we host this podcast on Squarespace.
01:57:09
◼
►
Well, we host the website and the feed on Squarespace.
01:57:12
◼
►
the files are hosted at Libsyn.
01:57:14
◼
►
And that's a setup I recommend, by the way.
01:57:16
◼
►
But anyway, the Squarespace requires that you paste in
01:57:20
◼
►
the file size and the duration of the podcast file
01:57:25
◼
►
that you're hosting elsewhere.
01:57:27
◼
►
It doesn't just fetch that, it requires that you paste it in.
01:57:29
◼
►
So I figure like, oh, if I can have a tool that like
01:57:32
◼
►
helps me easily copy those things to the clipboard,
01:57:33
◼
►
I can save a few steps there.
01:57:35
◼
►
If I have a tool that can maybe pre-fill certain things
01:57:39
◼
►
based on what I did last for that same podcast,
01:57:41
◼
►
and save some time there. I also wanted to get involved with chaptering my show, our
01:57:48
◼
►
show. And, you know, the Germans kind of convinced me to do it. The Germans are frustratingly
01:57:52
◼
►
right a lot of the time. And, man, I love the Germans. Anyway, so they convinced us
01:57:59
◼
►
all over time. They wore us down and convinced us all that we should probably have chapters
01:58:03
◼
►
on our show and wanted to do that. And I was not happy with the state of the tools to do
01:58:07
◼
►
that two years ago, they were pretty minimal
01:58:09
◼
►
and almost non-existent.
01:58:10
◼
►
And so I wanted to basically solve all these problems
01:58:14
◼
►
at once and so I did, I made an app that was basically
01:58:18
◼
►
my ideal app for podcast encoding and post-production work.
01:58:22
◼
►
I basically made it for myself to save myself time
01:58:26
◼
►
and it does dramatically, so it saves me tons of time
01:58:28
◼
►
every week now that I produce multiple shows
01:58:32
◼
►
and even if I just produced this one,
01:58:33
◼
►
it would still be worth doing.
01:58:35
◼
►
So, and I had a private beta with many of our
01:58:38
◼
►
podcasting friends, probably most notably the people
01:58:43
◼
►
at Relay, Mike, Steven, Jason Snell, they were wonderful
01:58:47
◼
►
beta testers and they uncovered lots of little bugs
01:58:50
◼
►
over the years and we've hopefully fixed them all.
01:58:54
◼
►
And here we are.
01:58:56
◼
►
- So why free?
01:58:57
◼
►
And I know you talked about this on Under the Radar,
01:58:59
◼
►
but what's the kind of short, short version?
01:59:02
◼
►
The main reason is that my expected number
01:59:06
◼
►
of paid customers for this,
01:59:07
◼
►
like if I would have charged money for this,
01:59:10
◼
►
the total number of paid customers I would expect to get
01:59:14
◼
►
is maybe 100.
01:59:15
◼
►
Like there aren't that many podcast producers
01:59:18
◼
►
relative to other professions.
01:59:20
◼
►
Among podcast producers, there aren't that many of them
01:59:24
◼
►
who are willing to try some random tool like this from me.
01:59:28
◼
►
And because the volume would be so low,
01:59:31
◼
►
I would have to price it at like 50 bucks or more
01:59:35
◼
►
to make it worthwhile.
01:59:36
◼
►
And I just figured the market would be so small
01:59:40
◼
►
that, you know, if this was a paid app,
01:59:43
◼
►
the market would be so small that the total amount
01:59:45
◼
►
of money I would make from this is not that great.
01:59:50
◼
►
And the cost of supporting an app that was paid
01:59:54
◼
►
to that level is very high.
01:59:56
◼
►
Like if someone pays 50 bucks for an app or more,
01:59:59
◼
►
they expect a certain level of support for that money.
02:00:02
◼
►
And I did not want to offer that level of support
02:00:05
◼
►
for the anticipated very low customer volume
02:00:07
◼
►
that this would probably generate.
02:00:09
◼
►
And then secondarily, I realized like,
02:00:11
◼
►
there's actually like strategic benefits to this
02:00:14
◼
►
for Overcast, where if I supply the encoder
02:00:19
◼
►
and I control the encoder's UI and features
02:00:23
◼
►
for a bunch of popular podcasts,
02:00:24
◼
►
and I also control the podcast app,
02:00:27
◼
►
then I can do cool features.
02:00:29
◼
►
I can implement new features, I can extend the
02:00:32
◼
►
implementations of current features.
02:00:33
◼
►
So for instance, one of the features that observant
02:00:36
◼
►
listeners might have noticed in ATP and in Overcast
02:00:40
◼
►
over the last couple of months is that I've had the ability
02:00:43
◼
►
to basically create invisible chapters.
02:00:47
◼
►
Chapters that don't show up in the chapter list,
02:00:50
◼
►
but that at a certain time stamp show a certain image
02:00:53
◼
►
or a link or both, but just are not in the table of contents,
02:00:58
◼
►
not in the list of chapters.
02:01:00
◼
►
This is part of the MP3 chapter spec.
02:01:02
◼
►
They actually say like, oh, not every chapter
02:01:04
◼
►
needs to be a member of a table of contents.
02:01:06
◼
►
You could, for instance, just show something
02:01:09
◼
►
at a certain time, but no apps implemented that,
02:01:12
◼
►
both in the encoding or the playing side.
02:01:15
◼
►
Because I controlled the encoder on the player,
02:01:17
◼
►
I implemented that.
02:01:18
◼
►
And so now we have this cool feature
02:01:19
◼
►
that we can do with podcasts,
02:01:20
◼
►
where you can have invisible chapters.
02:01:23
◼
►
So if you want to show a certain link, like right now,
02:01:26
◼
►
or a certain picture right now,
02:01:28
◼
►
without disrupting the semantic structure of the chapter
02:01:31
◼
►
that you're currently in, or if you want to show links
02:01:35
◼
►
or images at certain times without having the rest
02:01:38
◼
►
of the show even have chapters,
02:01:41
◼
►
without having a chapter structure
02:01:42
◼
►
for the rest of the show at all, you can now do that.
02:01:46
◼
►
That's a cool feature, and I'm only able to do that feature
02:01:48
◼
►
because I control an encoder and a player.
02:01:52
◼
►
And so I realized the more people who use this encoder,
02:01:57
◼
►
the better it works out for Overcast
02:01:59
◼
►
and for podcasting as a whole.
02:02:01
◼
►
And so I decided, you know what,
02:02:03
◼
►
because of the combination of those strategic benefits
02:02:06
◼
►
and the fact that any paid income
02:02:09
◼
►
would probably be pretty small
02:02:10
◼
►
and would probably bring a large support burden
02:02:12
◼
►
for that smallness,
02:02:14
◼
►
I decided free was the better approach.
02:02:18
◼
►
So it's free.
02:02:19
◼
►
- But it's not just free.
02:02:22
◼
►
You have an interesting business model, sort of,
02:02:25
◼
►
at the bottom of the forecast page
02:02:27
◼
►
at overcast.fm/forecast.
02:02:30
◼
►
- Oh yeah, I say something along the lines of like,
02:02:32
◼
►
you know, if you use this and you find it useful
02:02:35
◼
►
for your podcasts, I would appreciate
02:02:37
◼
►
if you occasionally promoted Overcast.
02:02:39
◼
►
And you don't have to do it, it's not a requirement,
02:02:41
◼
►
and if it's a show where that doesn't make sense,
02:02:43
◼
►
I was thinking of like, You Look Nice Today.
02:02:46
◼
►
Like, you know, it's not really in production anymore,
02:02:47
◼
►
but like, a show like You Look Nice Today,
02:02:50
◼
►
or even like Due By Friday, which I kind of use
02:02:52
◼
►
or spiritual successor, it doesn't make sense
02:02:56
◼
►
to promote things in a show like that.
02:02:58
◼
►
That doesn't contextually fit.
02:03:00
◼
►
It would sound weird.
02:03:02
◼
►
So I don't want you promoting overcast in a show like that.
02:03:05
◼
►
But if you have a show which most people do,
02:03:07
◼
►
of like, at the end you have like,
02:03:10
◼
►
oh please, you know, rate us on iTunes
02:03:11
◼
►
and subscribe and stitch here or whatever else,
02:03:14
◼
►
occasionally throw an overcast there.
02:03:16
◼
►
That's it, that's my business model.
02:03:17
◼
►
It's like, if you feel like it and if you can,
02:03:20
◼
►
I'd appreciate if you promoted Overcast sometimes.
02:03:23
◼
►
But you don't have to.
02:03:25
◼
►
- Where are you hiding this application?
02:03:26
◼
►
I read the webpage when you linked it on Twitter,
02:03:28
◼
►
but now I'm looking for it.
02:03:29
◼
►
Marco.org/apps doesn't list it.
02:03:31
◼
►
That seems like an oversight.
02:03:32
◼
►
- Yeah, I still have a lot of places I need to update this.
02:03:34
◼
►
It was kind of a soft launch.
02:03:35
◼
►
I've basically launched it on Twitter.
02:03:37
◼
►
The Overcast site does not link to it from anywhere yet.
02:03:41
◼
►
- So where is it?
02:03:42
◼
►
I'm realizing I don't even know--
02:03:44
◼
►
- Overcast FM/Forecast.
02:03:46
◼
►
- All right.
02:03:47
◼
►
I don't even know what the icon looks like.
02:03:49
◼
►
- The icon is a tongue-in-cheek joke.
02:03:52
◼
►
It was created by the wonderful ForgottenTowel,
02:03:57
◼
►
the designer who does all of the Relay FM artwork.
02:04:02
◼
►
I hired him to do this icon and--
02:04:04
◼
►
- It's so good.
02:04:05
◼
►
- 0.9, come on, you're better than that.
02:04:09
◼
►
- What is it, a 1.0, no.
02:04:11
◼
►
- You released it, you gotta go with 1.0.
02:04:13
◼
►
- Yeah, Apple released High Sierra too.
02:04:14
◼
►
- Don't you know that Simver has weird problems
02:04:17
◼
►
with version numbers that begin with zero?
02:04:18
◼
►
- I don't know that.
02:04:20
◼
►
- Anyway, I should probably put the icon on the app page.
02:04:27
◼
►
- I downloaded it to see the icon, so what is the joke?
02:04:29
◼
►
- You don't get the joke?
02:04:30
◼
►
Oh, it's so good.
02:04:32
◼
►
It's the German flag, but an F.
02:04:35
◼
►
- All right, yeah, I see that.
02:04:36
◼
►
I thought it was like some sort of,
02:04:37
◼
►
I should have known, some sports thing,
02:04:39
◼
►
like the sports logo or something,
02:04:40
◼
►
but yeah, I see the German flag colors now, yes.
02:04:43
◼
►
- Yeah, and a few Germans got it,
02:04:44
◼
►
and therefore they made it worth it.
02:04:46
◼
►
- So how do you, I look at this application
02:04:48
◼
►
And how do you feel about,
02:04:52
◼
►
I mean, I know this is just like a utility
02:04:54
◼
►
and you're like, you don't really care that much
02:04:55
◼
►
about the UI.
02:04:56
◼
►
It's very utilitarian applications
02:04:57
◼
►
for all the reasons you listed
02:04:58
◼
►
and even some part of the UI you don't even use.
02:05:01
◼
►
But it also doesn't look like you spent much time
02:05:05
◼
►
worrying about what the window would look like.
02:05:08
◼
►
Like you might have,
02:05:09
◼
►
if this was gonna be a commercial application,
02:05:10
◼
►
like it just kinda, it's just kinda there.
02:05:12
◼
►
Like it's not, things aren't badly aligned
02:05:15
◼
►
except for maybe it's a little bit too much space
02:05:17
◼
►
between the buttons and the rest of the thing.
02:05:18
◼
►
but it certainly is not a particularly showy application,
02:05:24
◼
►
- No, it really isn't at all,
02:05:25
◼
►
and I take full ownership of that,
02:05:27
◼
►
that this is not a pretty UI,
02:05:29
◼
►
this is not a highly polished UI.
02:05:31
◼
►
If you do what I said I'd never do,
02:05:34
◼
►
which is if you manually enter chapters,
02:05:37
◼
►
it's really unpolished.
02:05:39
◼
►
So this is not something that I'm really proud of the UI.
02:05:44
◼
►
This to me is a highly functional app.
02:05:47
◼
►
Most of what I, and I mentioned on this show
02:05:50
◼
►
a few times before, that I also have a tool
02:05:53
◼
►
that helps align double ender files
02:05:56
◼
►
and remove drift in them.
02:05:58
◼
►
This is not that tool.
02:06:00
◼
►
And I understand why people think it might be
02:06:02
◼
►
'cause I talked about that tool before.
02:06:03
◼
►
This is a separate tool.
02:06:04
◼
►
That tool is an even less polished command line app
02:06:09
◼
►
that has tons of weird bugs and edge cases
02:06:11
◼
►
if you don't use it exactly the way I use it.
02:06:14
◼
►
And even then sometimes if you do.
02:06:16
◼
►
And so that is nowhere near releasable state.
02:06:19
◼
►
It doesn't even have a GUI at all,
02:06:21
◼
►
and even the command line version
02:06:22
◼
►
is really not particularly releasable.
02:06:25
◼
►
This is a small step above that.
02:06:27
◼
►
This has a GUI, it is not a good interface,
02:06:30
◼
►
it is not a polished interface,
02:06:32
◼
►
but this is a tool for pro workflows that are like mine.
02:06:36
◼
►
Even if no one else ever uses it,
02:06:42
◼
►
it works great for me, and so I'm happy with that.
02:06:45
◼
►
It's hard to justify spending a lot of time on it,
02:06:48
◼
►
like polishing it up, when I also am maintaining overcast
02:06:51
◼
►
and having to update that and move that forward
02:06:53
◼
►
and everything.
02:06:55
◼
►
So it's probably never gonna be incredibly polished
02:06:59
◼
►
I just wanna make sure that it's really useful.
02:07:02
◼
►
And so, you know, like many Pro Tools,
02:07:05
◼
►
it's kind of ugly, but just functional.
02:07:08
◼
►
- You should add a drawer.
02:07:09
◼
►
- I actually had a drawer in one of the early versions.
02:07:13
◼
►
- Yeah, 'cause I was thinking like,
02:07:15
◼
►
you know, it would be, like one of the things
02:07:17
◼
►
that is an obvious next step for features for this app
02:07:20
◼
►
is to have a little player, and to have it like
02:07:23
◼
►
preview and simulate like, you know,
02:07:25
◼
►
how the chapters would look in a player,
02:07:27
◼
►
and be able to seek to them and play them and everything
02:07:29
◼
►
to make sure that they're right.
02:07:30
◼
►
- You gotta bring back the old visualizer from Overcast.
02:07:33
◼
►
- Yeah. (laughs)
02:07:34
◼
►
I still have all that code, obviously.
02:07:36
◼
►
Yeah, and so if you're gonna add a player to this,
02:07:38
◼
►
a drawer is kind of the obvious way to do it.
02:07:41
◼
►
- No, it is not the obvious,
02:07:42
◼
►
- It's the obvious joke way to do it.
02:07:44
◼
►
Didn't they just deprecate that this year?
02:07:47
◼
►
- I probably, no I mean I wouldn't do it,
02:07:49
◼
►
but I was tempted to do it.
02:07:53
◼
►
- A floating brush metal window is the clear way to do that.
02:07:55
◼
►
- Oh yeah, definitely.
02:07:56
◼
►
- Textured, sorry it's not brush metal.
02:07:58
◼
►
- Yeah, textured, yeah.
02:07:59
◼
►
Looked like iSync.
02:08:00
◼
►
- All right, so I have two questions for you.
02:08:03
◼
►
Number one, do you have any kind of analytics anywhere,
02:08:06
◼
►
just so you know, was this market as small as you thought,
02:08:09
◼
►
or have you had 11 D billion downloads
02:08:12
◼
►
and turns out you might have miscalculated?
02:08:14
◼
►
- I can figure this out now or later.
02:08:18
◼
►
I don't need to do this in the app and so I haven't yet.
02:08:21
◼
►
In order to distribute this app outside of the App Store,
02:08:24
◼
►
which, and honestly, I wasn't trying to make
02:08:26
◼
►
some kind of giant political statement
02:08:27
◼
►
by not being in the App Store.
02:08:29
◼
►
There was just no need for me to be in the App Store,
02:08:31
◼
►
so I wasn't, I didn't feel that it was worth
02:08:33
◼
►
the burdens of being in the App Store for no benefit really.
02:08:38
◼
►
So, I'm not in the App Store, so I had to build in
02:08:42
◼
►
distribution functionality, I had to build in auto updating.
02:08:45
◼
►
And the way you do auto updating in Mac apps
02:08:47
◼
►
is through the Sparkle framework.
02:08:49
◼
►
That's how pretty much everyone does it.
02:08:51
◼
►
Everyone who uses a Mac app that is not from the App Store
02:08:54
◼
►
has seen the little windows that say,
02:08:56
◼
►
like, you know, an update's available,
02:08:57
◼
►
do you wanna install it now, or, you know,
02:08:58
◼
►
run it later, or skip this version,
02:09:00
◼
►
and you would click install now,
02:09:01
◼
►
and it shows like a little like, you know,
02:09:03
◼
►
progress bar, and then it quits and relaunches the app.
02:09:05
◼
►
There's a reason why those are the same
02:09:07
◼
►
across pretty much every app.
02:09:08
◼
►
They all use the same framework called Sparkle.
02:09:10
◼
►
And so the way Sparkle works is once a day or whatever,
02:09:15
◼
►
when you launch the app, it checks a server's RSS feed,
02:09:20
◼
►
and it's a special RSS feed that is for versions of the app.
02:09:24
◼
►
So for me to distribute this,
02:09:27
◼
►
I had to basically build all that.
02:09:28
◼
►
And when I made Quitter, I built like a very,
02:09:31
◼
►
very basic version of that that's just basically
02:09:33
◼
►
all like shell scripts that would generate static files
02:09:36
◼
►
and then upload them to my server.
02:09:38
◼
►
For forecast, this is an Overcast product.
02:09:39
◼
►
I wanted this to live on the Overcast servers.
02:09:42
◼
►
I wanted to finally do a little bit better of a job,
02:09:44
◼
►
so I kind of made my own crappy little version
02:09:47
◼
►
of iTunes Connect for it, where I can upload a build,
02:09:51
◼
►
and a script on the server reads the build number
02:09:55
◼
►
and the version number out of that build,
02:09:57
◼
►
signs it for a Sparkle update mechanism,
02:10:01
◼
►
like there's a signature involved, so signs it for that,
02:10:05
◼
►
and then creates like an entry,
02:10:07
◼
►
then I can enter release notes in that entry
02:10:09
◼
►
and I can say whether it's released or not.
02:10:11
◼
►
So I can actually very easily add a thing to this system
02:10:15
◼
►
that remembers how many people check that RSS feed every day
02:10:19
◼
►
and reports to me roughly how many users there are.
02:10:22
◼
►
Or I can just log like how many downloads the file has,
02:10:25
◼
►
which I also don't do.
02:10:25
◼
►
- Sure, sure.
02:10:26
◼
►
- I probably should be doing that, but I'm not.
02:10:28
◼
►
But overall, the response I've gotten on Twitter so far
02:10:34
◼
►
has been huge.
02:10:36
◼
►
It's been way bigger than I expected.
02:10:39
◼
►
And I think this is really a good sign.
02:10:41
◼
►
There's a lot more podcast producers out there
02:10:46
◼
►
than the people I know.
02:10:48
◼
►
It isn't so many that I regret releasing it for free.
02:10:55
◼
►
I think if it wasn't free, many of them wouldn't try it
02:10:57
◼
►
because they don't know me and this is just
02:10:58
◼
►
some random thing.
02:10:59
◼
►
But because it's free, it is spreading pretty wide.
02:11:04
◼
►
wider than I expected it to spread so quickly,
02:11:05
◼
►
especially since I'm linking to it
02:11:06
◼
►
from nowhere on the site.
02:11:08
◼
►
So yeah, so far it's going pretty well.
02:11:14
◼
►
And because it's my favorite thing to ask,
02:11:18
◼
►
what was the either hardest or crummiest part
02:11:20
◼
►
of the entire process?
02:11:22
◼
►
And I think that your Under the Radar episode
02:11:24
◼
►
talked about a lot of the like,
02:11:27
◼
►
oh, the app is done, but there's so much more to do.
02:11:30
◼
►
And like you were talking about,
02:11:31
◼
►
like your Marco Connect, you know,
02:11:33
◼
►
or your fake iTunes Connect and all that had to be written.
02:11:35
◼
►
But over the entire process from start to finish,
02:11:39
◼
►
including all this administrivia you had to do,
02:11:41
◼
►
what would you say was either the hardest
02:11:43
◼
►
or the most difficult or crummiest part to deal with?
02:11:47
◼
►
- By far the hardest part of this app
02:11:50
◼
►
is just learning AppKit.
02:11:53
◼
►
It's learning how to make Mac apps.
02:11:55
◼
►
I had made Quitter before and I made a couple
02:11:58
◼
►
of little experimental dumb crap before that.
02:12:00
◼
►
But this is the first time that I really have made
02:12:04
◼
►
a Mac app of any kind of substance.
02:12:07
◼
►
Now the good thing is, you know,
02:12:10
◼
►
AppKit provides a lot of really rich functionality built in.
02:12:14
◼
►
So like the entire document model,
02:12:16
◼
►
I don't have to worry that much about like,
02:12:18
◼
►
windowing, opening, saving, save as, stuff like that,
02:12:22
◼
►
like a lot of that comes for free.
02:12:24
◼
►
And so that's pretty great.
02:12:25
◼
►
But the way that the actual UI works,
02:12:29
◼
►
like the way those table views work
02:12:30
◼
►
and the text fields inside the table views,
02:12:33
◼
►
and the formatters and the bindings to an array controller
02:12:36
◼
►
and all this weird stuff, to an iOS developer mainly,
02:12:40
◼
►
it might as well be Android.
02:12:41
◼
►
Like it's so different from the way iOS works
02:12:44
◼
►
that it's like starting over from zero.
02:12:49
◼
►
So I'm making Mac apps as though I'm a complete novice
02:12:53
◼
►
because for the Mac I am.
02:12:55
◼
►
That has been the hardest part is that
02:12:58
◼
►
I'm used to working at a certain speed and proficiency
02:13:01
◼
►
and design proficiency on iOS that I just don't have
02:13:05
◼
►
when making Mac OS apps.
02:13:07
◼
►
So that's been a very, very slow learning process.
02:13:10
◼
►
And it's also just harder on the Mac because the APIs
02:13:13
◼
►
have a lot more legacy because they're much older.
02:13:16
◼
►
So the APIs are a lot clunkier.
02:13:18
◼
►
They have not gotten nearly as much attention
02:13:20
◼
►
in the last decade as iOS has.
02:13:22
◼
►
So they are, in many ways, a lot harder to use
02:13:27
◼
►
or have a lot of antiquated or clunky things
02:13:29
◼
►
you have to do to use them.
02:13:31
◼
►
And the biggest problem with all of it is that
02:13:34
◼
►
because iOS is so incredibly popular
02:13:37
◼
►
and Mac OS development relatively isn't,
02:13:40
◼
►
it's very hard to find answers if you have questions
02:13:43
◼
►
for Mac OS development.
02:13:44
◼
►
There's not, like with iOS, you can search anything
02:13:47
◼
►
under the sun and you're gonna get a thousand Google results,
02:13:51
◼
►
half of them are gonna be really great tutorials
02:13:53
◼
►
on exactly what you have to do
02:13:55
◼
►
or great Stack Overflow answers on exactly the problem
02:13:58
◼
►
you're having, and a Mac OS, that's not the case
02:14:02
◼
►
most of the time.
02:14:03
◼
►
Most of the time what you're searching for,
02:14:04
◼
►
you will get either nothing helpful,
02:14:07
◼
►
or like one ancient mailing list post
02:14:10
◼
►
that you have to scan through the web version
02:14:12
◼
►
of a mailing list to find somebody who might
02:14:14
◼
►
maybe be talking about what you're talking about.
02:14:16
◼
►
It's a very different world.
02:14:19
◼
►
- I'm just trying to think of an excuse
02:14:20
◼
►
to use this application.
02:14:20
◼
►
Maybe I should produce a podcast.
02:14:24
◼
►
- It's funny, you're on so many podcasts,
02:14:27
◼
►
but you've never produced one.
02:14:29
◼
►
- Drop artwork here, okay, why are you yelling at me?
02:14:32
◼
►
- It looked better.
02:14:33
◼
►
I don't know, this isn't like, me designing macOS apps,
02:14:36
◼
►
it's like the way everyone designs Windows apps.
02:14:39
◼
►
It's like, I don't know what the hell's good here,
02:14:41
◼
►
like just throw something there that looks good to me.
02:14:43
◼
►
- This is where you start using the guide snap things
02:14:46
◼
►
in Interface Builder, or did you not use
02:14:47
◼
►
Interface Builder for this at all?
02:14:48
◼
►
- No, I use it, and I use the guide snap things.
02:14:50
◼
►
No, I mean, and I told you, I built most of the interface
02:14:52
◼
►
the Cocoa bindings, just so I wouldn't have to learn
02:14:55
◼
►
a lot of the intricacies of table views.
02:14:57
◼
►
- And then all the experienced Mac developers
02:14:59
◼
►
scolded you for it.
02:15:00
◼
►
- Yeah, and then everyone's like,
02:15:01
◼
►
"Oh yeah, I don't use Cocoa bindings."
02:15:01
◼
►
I was like, "Yeah, thanks a lot."
02:15:03
◼
►
It is really nice to do certain,
02:15:05
◼
►
and you know, Cocoa bindings are great
02:15:07
◼
►
for really simple stuff like enabled/disabled states
02:15:11
◼
►
of certain buttons, tracking certain properties
02:15:14
◼
►
or things being nil or things like that.
02:15:16
◼
►
It's, there's a lot of value to Cocoa bindings,
02:15:19
◼
►
but for me to fix the main problem the app has,
02:15:22
◼
►
which is the manual entry of chapters
02:15:24
◼
►
is very clunky and weird,
02:15:26
◼
►
that is going to basically require dumping bindings
02:15:29
◼
►
for the table view.
02:15:31
◼
►
And that's gonna be, you know,
02:15:33
◼
►
I'm not gonna say it's gonna be a huge pain,
02:15:35
◼
►
but it's gonna be a decent amount of work at least.
02:15:38
◼
►
Especially because I'm totally unfamiliar with it.
02:15:40
◼
►
If it was iOS, I could do it in half a day.
02:15:43
◼
►
But because it's Mac OS,
02:15:44
◼
►
it's gonna take me a lot longer than that.
02:15:45
◼
►
And the good thing is that the app
02:15:47
◼
►
has gotten such a strong reception
02:15:49
◼
►
that I'm actually motivated to do things like this.
02:15:51
◼
►
to fix weird bugs that don't affect me personally.
02:15:54
◼
►
But I do have to also keep that in check with,
02:15:56
◼
►
this is not my primary job, my primary job is Overcast,
02:16:00
◼
►
and I need to make sure that Overcast
02:16:02
◼
►
is not going to suffer from me working too much on Forecast.
02:16:06
◼
►
The good thing is I don't think it's very likely,
02:16:08
◼
►
because I've been working on a forecast for two years.
02:16:12
◼
►
And the way I usually work on it is,
02:16:14
◼
►
I fix some things I've wanted to fix for a while,
02:16:18
◼
►
like for over a week,
02:16:20
◼
►
and then I don't touch it for six months.
02:16:22
◼
►
And then I spend another week tweaking it up,
02:16:25
◼
►
and then I go to the six months without touching it.
02:16:27
◼
►
Because it pretty much works,
02:16:28
◼
►
like it doesn't need a lot of attention.
02:16:30
◼
►
So hopefully this won't be a huge time sink,
02:16:33
◼
►
and I don't think it will.
02:16:35
◼
►
- How is Forecast choosing where to put its window
02:16:37
◼
►
when I hit Command + N?
02:16:39
◼
►
- I don't know.
02:16:40
◼
►
- Running a number generator?
02:16:43
◼
►
- I mean, so there's that weird like thing,
02:16:45
◼
►
interface builder, that little like window graphic thing
02:16:48
◼
►
where you say like, all right,
02:16:49
◼
►
position it kind of in the middle of the window on the left or something like, there's something
02:16:52
◼
►
in interface builder that lets you specify that.
02:16:54
◼
►
>> It is kind of in the middle on the left. I'm just, I wondered if this was a conscious
02:16:58
◼
►
choice or it's, it does remember, it does remember the window position between quits,
02:17:02
◼
►
which I'm assuming you're picking up for free as part of like the save restore.
02:17:05
◼
►
>> I think so.
02:17:06
◼
►
>> Same thing. But if you close all the windows and hit command N, a new window appears in
02:17:09
◼
►
a location that, I mean it's not random, it's always the same place, but it's like off center
02:17:14
◼
►
to the left kind of the middle vertically.
02:17:16
◼
►
- Yeah, I've selected that in the thing
02:17:19
◼
►
in Interface Builder that does that.
02:17:21
◼
►
I wasn't aware that was a global,
02:17:22
◼
►
I figured it would just use the last one
02:17:23
◼
►
and that would be like the very first time
02:17:26
◼
►
it ever made a window it would create it there.
02:17:28
◼
►
- No, all right, see this is the problem.
02:17:30
◼
►
Like, I don't know how to do this on Mac OS yet.
02:17:33
◼
►
- That's fine, I don't know.
02:17:35
◼
►
The other thing that surprised me
02:17:36
◼
►
is that you use a Mac every day,
02:17:37
◼
►
but like, you know, when you laid out
02:17:39
◼
►
like the preferences dialog,
02:17:40
◼
►
that's laid out like no preference dialog in any Mac app.
02:17:42
◼
►
And you use Mac apps all the time.
02:17:44
◼
►
Like you see preference dialogs, but--
02:17:46
◼
►
there's like three preferences.
02:17:48
◼
►
- I know, I know, and yet surprisingly,
02:17:50
◼
►
laid out in kind of a weird Marco kind of way.
02:17:56
◼
►
And the thing is, this is the thing I wanna emphasize,
02:17:58
◼
►
just because you use a Mac application all the time
02:18:00
◼
►
doesn't mean you consciously know,
02:18:02
◼
►
like if I'm making a dialogue from scratch
02:18:04
◼
►
and I have like two text boxes,
02:18:06
◼
►
two radio buttons and a button,
02:18:08
◼
►
how do I put them so it looks like correct?
02:18:11
◼
►
- Right, and I had so, like this stuff took me so long
02:18:15
◼
►
to try to figure out because I am not a Mac developer.
02:18:18
◼
►
It was very, very slow going.
02:18:23
◼
►
Again, it's like I was a novice,
02:18:24
◼
►
'cause for the Mac, I am a novice.
02:18:27
◼
►
And even using a Mac for all these years.
02:18:30
◼
►
- Yeah, that's what I'm saying.
02:18:30
◼
►
You don't think about it if you're not actually
02:18:32
◼
►
dragging the controls out,
02:18:33
◼
►
'cause when you see a Mac dialog box,
02:18:35
◼
►
you're like, oh, it looks more or less right,
02:18:36
◼
►
but then you see one, it doesn't quite look right.
02:18:37
◼
►
There's something off about it,
02:18:38
◼
►
but you can't quite place it,
02:18:39
◼
►
and it's like, what would fix this?
02:18:41
◼
►
Is it just because the button on the bottom is centered?
02:18:45
◼
►
What is the problem with that? I don't know. Anyway, it's fine. I appreciate you.
02:18:51
◼
►
Your icon does look like a sports logo though. I don't know why I keep thinking that.