PodSearch

ATP

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   [Laughter]

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:12   Uhhhh...

00:00:14   No.

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:35   (laughing)

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:09   Anyways.

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:38   No.

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:26   (laughing)

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:50   update.

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:44   people.

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:20   policy.

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:57   All right.

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:53   Excellent.

00:13:54   All right.

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:08   ball.

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:18   happened.

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:47   to it.

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:03   or not.

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:24   IT.

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:34   [Music]

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:37   Ew. What?

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:14   the front.

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:29   part of it.

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:44   Yeah

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:34   (laughing)

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:01   Maybe.

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:30   (laughs)

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:49:59   keys?"

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:27   or two.

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:58   whatever.

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:35   [Music]

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:50   so.

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:54   - Yes, yes.

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:11   - Yep.

01:18:12   - Right?

01:18:13   (laughs)

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:22   Thinking?

01:18:23   No.

01:18:24   (laughs)

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:17   (laughing)

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:09   - Go.

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:21   (laughing)

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   (laughing)

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:21   of my mind.

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:44   bad.

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:17   Sorry.

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:55   quickly.

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:00   - Yeah.

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   When--

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:11   first.

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:09   looked at.

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:28   (laughing)

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:48   R.I.P.

01:44:49   Flight control.

01:44:50   Yeah.

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:40   Yep.

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:49   200 K

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:16   It's not.

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:19   Well, fair.

01:49:20   Fair.

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:19   Is it wise?

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:42   - Goodness.

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:40   (laughing)

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:23   let's say.

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:08   (laughs)

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:15   (laughs)

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:58   in the UI.

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:51   (laughing)

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:12   - Good.

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:22   (laughing)

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:27   - No, no.

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:54   (laughing)

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.

02:18:53   [BEEPING]