Uninstall Your Water Reminder App!

Episode 251 • Released December 7, 2017 • Speakers detected

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

Uninstall Your Water Reminder App!

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