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]