PodSearch

ATP

516: One of My Fits of Rage

 

00:00:00   I sound a little bit bad this week because I'm a little bit sick because everyone's a

00:00:04   little bit sick because oh my god everyone is sick.

00:00:06   Like this might be, you know, anecdotally speaking, the most people I've ever heard

00:00:11   of being sick at the same time.

00:00:14   Everyone is sick right now.

00:00:16   Every one.

00:00:17   It's not all, you know, most of it's not COVID fortunately.

00:00:19   A lot of it is just like, you know, mild colds here and there, occasional flu is here and

00:00:22   there, but just everyone is sick.

00:00:25   - Yeah.

00:00:26   Michaela has been fighting a cough. She's been COVID tested, you know, once or twice,

00:00:29   and it doesn't seem to be that. She woke up today complaining of an earache. And so fast forward

00:00:34   three hours, she's getting treated for an ear infection. You know, our kids were sick over

00:00:39   Thanksgiving. Again, not COVID as far as tests and as far as we know. Yeah, I agree with you that it

00:00:44   seems like everyone is making up for lost time, unlike general illnesses. It's not, like you said,

00:00:50   it's not necessarily COVID, although it's certainly plenty of that going around. But just

00:00:54   even general illnesses, there seems to be plenty of it at the moment.

00:00:57   - Yeah, and the good news is that it seems like the most common thing I hear about is

00:01:01   people who just have like mild cold symptoms for a week or two at the most, which is really

00:01:06   annoying. In fact, I'm currently on, I think, my second one of those for the season. It's

00:01:11   annoying, but, you know, it could be a lot worse. It has been a lot worse. So, you know,

00:01:16   it's good that it's all mild. So everyone is just kind of like mildly annoyed with sickness

00:01:21   for this whole winter, which is, you know, again,

00:01:24   could be worse, but that doesn't make it

00:01:25   any less mildly annoying.

00:01:27   - Yeah.

00:01:28   What are you gonna do?

00:01:29   By the way, I don't think it made it

00:01:31   into the release recording, maybe it did,

00:01:33   but as we were hanging up, so not as the,

00:01:36   I don't think it was when the live broadcast was ending,

00:01:38   but as the three of us were hanging up on Zoom,

00:01:41   Marco sniped me and wished John a happy birthday in advance,

00:01:45   and it had completely slipped my mind last recording,

00:01:48   but I will now take credit for this one

00:01:51   and say happy birthday John, I hope your birthday was wonderful and your carrot cake was delicious.

00:01:56   Thank you, we're still working on the carrot cake, still some left.

00:01:59   Oh, I thought you meant that it hadn't arrived yet, I was like what are you talking about?

00:02:03   I thought Tina and Kate made that for you every year, I misunderstood.

00:02:06   Those are the questions, should we make the full-size cake? Yeah, make the full-size cake.

00:02:10   Would you ever not make the full-size cake? I mean-

00:02:12   I mean for just four people it's a lot of cake, but I think we're up to the task.

00:02:16   I mean carrot cake, so this is one of those things, you know, I hate to admit that you're

00:02:20   carrot cake is awesome, like I love carrot cake.

00:02:23   I'm going to your pizza place tomorrow,

00:02:27   like it sucks when you're right this much.

00:02:29   - No, the carrot cake is a relatively new birthday thing.

00:02:32   I mean, I think Tina made it when we were at Underscores.

00:02:36   - Yeah, that's right.

00:02:38   - Right, so that's, I mean, that's not the first time

00:02:39   we had it, but that was when the tradition

00:02:41   was relatively new, so that's about the age of this,

00:02:43   like, I don't know, like 10 years, 12 years, 15 years,

00:02:46   I guess, that's relatively new when you're an old person.

00:02:48   (laughing)

00:02:49   It's not just carrot cake in general, it's that specific recipe.

00:02:52   I forget who it is, maybe it's Ina Gardner or whatever.

00:02:55   It's carrot cake and it's got things in it that people may find controversial.

00:02:58   One, it's got raisins in it.

00:02:59   I know a lot of carrot cakes have raisins in it.

00:03:01   I think they're good.

00:03:02   And two, it's got pieces of pineapple in it, which maybe you haven't seen in a carrot cake

00:03:06   before, but I think works really well.

00:03:08   And then three is just cream cheese frosting.

00:03:10   Carrot cake with cream cheese frosting.

00:03:11   It's a classic combo.

00:03:12   Whether you want the raisins or the pineapples, you can adjust that.

00:03:16   I feel like that combo is overlooked.

00:03:20   And this is literally the one time a year I have it.

00:03:22   I would get sick of it if we had it all the time,

00:03:24   but most of the time people are making cakes or cupcakes

00:03:25   or whatever.

00:03:26   They're making chocolate or vanilla cake or whatever.

00:03:28   It's just for my birthday, carrot cake.

00:03:31   That's-- the pineapples are really good,

00:03:32   and a really interesting idea.

00:03:33   The raisins, I could see why that would be controversial.

00:03:35   Pineapple, though?

00:03:36   That could be really nice.

00:03:38   It keeps the cake moist, I think.

00:03:39   I mean, the first time she made it,

00:03:40   I'm like, are these dried pineapples?

00:03:41   But they're not.

00:03:42   It's fresh cut pineapple, bits of fresh cut pineapple.

00:03:45   and they cook in the cake and the pineapple gets dry

00:03:48   but the cake gets moist so they even out.

00:03:50   So it's not like they're hard pieces of pineapple in there

00:03:54   but the cake is very moist as well, it's good.

00:03:57   - Okay, yeah, 'cause I've recently,

00:03:59   I think I've talked about this before,

00:04:00   I've recently honed the skill of choosing good pineapples

00:04:03   at the grocery store and so now I'm able to fairly reliably

00:04:08   buy pretty decent to great pineapples.

00:04:11   So of course I'm always looking for ways to use them

00:04:13   and that's a good one, I should try that.

00:04:15   - I think this is it.

00:04:16   I mean, I think we've passed around the recipe before.

00:04:18   I'll double check for the show notes,

00:04:20   but Ena Garten, not Ena Gartner,

00:04:22   sorry, get her name wrong all the time.

00:04:23   And we don't put pineapples on top like this shows.

00:04:26   - No, well that's a different thing.

00:04:27   That's an upside down cake kind of thing.

00:04:29   That's a whole different-- - No, no, look at the picture.

00:04:30   Like it's cream cheese frosting,

00:04:32   but then they put bits of pineapple on top and we don't--

00:04:33   - Oh, that's interesting.

00:04:35   - Yeah, that actually could just be like an indicator.

00:04:37   It's like this, warning, this cake contains pineapple

00:04:39   in case for some reason you have terrible taste

00:04:41   and don't want that.

00:04:43   - I am actually not a pineapple fan.

00:04:44   I wish I liked it, but it is not for me.

00:04:46   - Like I said, easy to leave the pineapple

00:04:48   and the raisins out of this.

00:04:50   Then it just becomes a more boring carrot cake.

00:04:52   But you know, plain old boring carrot cake

00:04:53   with cream cheese frosting.

00:04:55   It's one of the classics.

00:04:56   - So what was your cake preference

00:04:58   before this thought technology entered your world?

00:05:01   - I don't think I had one.

00:05:02   - No cake, no presents, no party.

00:05:04   - Yeah, that remains.

00:05:07   That remains.

00:05:07   - Fair enough.

00:05:10   Now I am a fan of like just boring,

00:05:12   boxed like chocolate cake with--

00:05:15   - You're a cheap date, Casey.

00:05:16   - Yes, I am.

00:05:17   I know everyone's surprised by this.

00:05:18   But just chocolate cake with vanilla icing on the top.

00:05:22   And the best thing, it's like lasagna,

00:05:26   after you have a little bit, you refrigerate it,

00:05:28   come back to it the next day,

00:05:29   and the icing is just a little bit crunchy.

00:05:32   - I don't think I've ever heard anyone say that

00:05:33   about boxed cake mix, but okay.

00:05:35   - I'm saying, it's true, try it out

00:05:38   after you try your Velveeta.

00:05:40   - I mean, I've had leftover box cake mix,

00:05:42   not like I just feel like it's--

00:05:43   - I think it's more about the icing

00:05:45   than it is the cake, if I'm honest.

00:05:46   The icing gets a little-- - Do you like it

00:05:47   to get hard and crusty? - Yeah, yeah, yeah, yeah.

00:05:49   (laughing)

00:05:50   Yes, oh yes.

00:05:51   - Have you ever tried combining your loves

00:05:52   and maybe putting a layer of Alveda Mac and Cheese

00:05:56   between the cake-- - No, no, stop.

00:05:57   - Sponge layers?

00:05:58   - Look, okay, we gotta move on.

00:06:01   - I'm sure it could be done.

00:06:02   (electronic beeping)

00:06:04   - All right, let's do some follow-up.

00:06:06   Amy Lee writes, "I loved the recent conversation

00:06:08   around the copyright implications of AI-generated art and there was some hypothetical discussion

00:06:11   of how you'd feel if you were an artist and your art was used to train these models. I

00:06:15   was surprised that something like GitHub Copilot wasn't in the conversation, as Copilot is

00:06:19   probably the closest coding equivalent we have to stable diffusion. If you have any

00:06:23   open source code on GitHub, it's likely been used by Copilot and in a way that doesn't

00:06:27   necessarily respect the license applied to the code. OpenAI used all the public code

00:06:31   they could find regardless of license and used it to train the model. This is quite

00:06:35   similar to their approach with training on art.

00:06:37   Hypothetical for this case would be, what if it was also allowed to train on closed

00:06:40   source code on GitHub?

00:06:42   How would you feel if your code was used in this model even though you never publicly

00:06:46   released it or gave it a license to others?

00:06:48   That's potentially just a contract away between GitHub and OpenAI, no fancy decompilation

00:06:52   needed.

00:06:53   This was, I think, a very, very interesting point.

00:06:55   I really was flummoxed once I read it.

00:06:59   I don't think I have any problem with my open source stuff being sucked into, like, you

00:07:04   Copilot or Stable Diffusion or what have you, but I would not feel good about

00:07:08   closed source stuff ending up there. Just on principle.

00:07:13   Like that's my private stuff. Yes, it exists on GitHub, but that's not

00:07:18   GitHub stuff. That's my stuff, and I would not feel good about that at all.

00:07:22   To me, that's the line. It's like, if you have private repos, those should

00:07:27   remain private to you in all ways, from not only exposure to the files

00:07:32   of you know for people to see but also training to me that's that's an obvious

00:07:36   line yeah I completely agree with you I think the weird thing about copilot and

00:07:40   code stuff well there's two weird things about it one is my impression based on

00:07:45   seeing many examples of copilot and trying myself is that the odds of it

00:07:49   producing a snippet of code verbatim from its source is much higher than with

00:07:54   any of the AI image stuff yeah that's a good point you know what I mean like

00:07:57   sometimes people I've seen people say hey this is like literally my paragraph

00:08:00   of code for doing this thing, right?

00:08:04   And I think that does make a difference because that's not a transformative any of this, literally

00:08:08   just you copy and paste it, right?

00:08:10   And on the open source thing, like, open source doesn't mean you can do whatever you want,

00:08:14   that's why open source licenses exist.

00:08:16   So I feel like open source licenses should address this case explicitly.

00:08:22   Again, arguably all existing open source licenses do address it in some way that has yet to

00:08:27   be tested in a court, right?

00:08:28   Because you can say, well, I can look at the existing rules

00:08:30   and decide whether I think this falls within them or not.

00:08:33   But it would be much simpler if you could just

00:08:35   explicitly put it in there.

00:08:36   And same thing with the copyrighted stuff.

00:08:38   I feel like this should be something that--

00:08:42   if you're training an AI model on code,

00:08:45   you should be using code that you're

00:08:46   pretty sure you're allowed to use for the purposes of training

00:08:49   an AI model.

00:08:49   And so obviously, a very, very open, open source license

00:08:52   may do that.

00:08:53   Because it may say, hey, you can use this code

00:08:54   for whatever you want.

00:08:55   You don't have to credit us.

00:08:56   You don't have to pay us.

00:08:57   You don't have to do anything like the broadest

00:08:58   of broadest open source licenses.

00:08:59   That's probably game right now.

00:09:01   But the more restrictive ones, you know,

00:09:03   that requires credit or if it's a copyleft thing

00:09:05   or whatever, using that to trade in AI models

00:09:08   is still questionable.

00:09:09   And the second thing is, unlike with image training things

00:09:12   or whatever, the result you get from Copilot

00:09:15   is not immediately useful, let's say.

00:09:17   We talked about this before.

00:09:18   You can't just take code generated by an AI thing

00:09:20   and says, I assume this works.

00:09:22   You have to actually figure out whether it does

00:09:24   what you want it to do.

00:09:26   It's a really important part of programming.

00:09:27   not just writing the code the first time,

00:09:29   whether you read it yourself or an AI thing writes it,

00:09:31   then you have to figure out if what you wrote

00:09:33   does the thing that you wanted it to do.

00:09:35   And that's the hard part of programming, right?

00:09:38   Arguably, it's harder when some other thing

00:09:39   wrote the code for you, especially if it's complicated

00:09:42   and you don't understand it, but either way, it's difficult.

00:09:45   And so it's not like people are going to co-pilot up a thing

00:09:48   and say, "And I'm done."

00:09:49   No, you're not even close to done.

00:09:51   You have to now say, "Okay, I co-pilot up

00:09:53   "10,000 lines of code."

00:09:54   Figure out if those 10,000 lines of code

00:09:56   come close to doing what you wanted them to do.

00:09:59   And that's, you know, at the micro level,

00:10:01   does this paragraph do what I want it to do?

00:10:02   And at the macro level,

00:10:03   does the program do what I want it to do?

00:10:05   That is incredibly difficult.

00:10:06   Whereas if an AI art thing comes out and you say,

00:10:08   I like it fine, it's done.

00:10:09   Like it's not functional in that way.

00:10:11   It's not like the people are gonna look at the image

00:10:14   and then their eyes are gonna explode, right?

00:10:15   But that's the equivalent of that could happen

00:10:17   if you have code that doesn't do what you want

00:10:18   and you run it and just absolutely doesn't do

00:10:21   what your program is or crashes or does something like that.

00:10:23   So it is interesting and there are similar issues,

00:10:27   but code is so fundamentally different than images

00:10:31   or something that tells another machine what to do

00:10:36   and that presumably has some kind of correctness.

00:10:40   I don't know, you can say whether it does

00:10:41   what I intended it or not, is a little bit different

00:10:44   than something that just someone has to look at

00:10:46   and say, I find that acceptable, therefore I'm done.

00:10:48   - Yeah, I agree with you that the open source license

00:10:52   should prevent this, or may prevent this sort of thing

00:10:55   from happening.

00:10:56   I'm just saying I'm personally not particularly bothered

00:10:58   if that was subverted or ignored or what have you

00:11:01   for open source stuff.

00:11:03   But yeah, I find it really gross for closed source stuff,

00:11:07   even leaving aside what you're saying, Jon,

00:11:08   that it's not exactly an apples to apples comparison.

00:11:11   But yeah, I thought this was a really interesting point

00:11:14   for me, nevertheless.

00:11:15   - The closed source thing of like,

00:11:17   have any of us read the user agreement for GitHub?

00:11:19   It could be already in the user agreement for GitHub

00:11:22   that we have allowed GitHub by agreeing to that thing

00:11:25   and putting our code on there,

00:11:26   that they're actually allowed to make a contract

00:11:28   with OpenAI and say,

00:11:29   "Hey, we're allowing them to use your close with them."

00:11:30   Of course, if they did that, they could say,

00:11:32   "Well, you agreed to these terms,

00:11:34   then we just take our code off GitHub," right?

00:11:35   I think that would be a bad move for them,

00:11:37   but I'm assuming none of us have actually ever read,

00:11:40   in full, the terms for GitHub.

00:11:42   So that's just centralization

00:11:45   and having large, powerful players in the market.

00:11:48   That's why that's bad.

00:11:49   And to be clear, I don't think GitHub is some kind of monopoly

00:11:52   on Git or whatever.

00:11:53   If GitHub did that, people would take their closed source stuff

00:11:56   off GitHub.

00:11:58   There is enough of a competitive market.

00:12:00   They are not the only place that can host Git stuff.

00:12:03   And Git being decentralized, you don't need any one single place

00:12:05   to host anything.

00:12:06   So we're pretty well protected technologically from this.

00:12:09   Hopefully, GitHub would be smart with this.

00:12:11   But the counterexample is, well, GitHub

00:12:12   wasn't particularly smart with the rollout of Copilot

00:12:15   in terms of what they used to train it

00:12:18   and compliance with the licenses.

00:12:19   I think when they first rolled it out,

00:12:21   they were just like, everything's fine, right?

00:12:22   And they're like, well, wait a second.

00:12:23   My open source license says X, Y, and Z,

00:12:25   and it definitely says you can't use it

00:12:27   for something like this.

00:12:28   Did you use my code?

00:12:29   It seems like you did.

00:12:30   And I think since then, maybe they've adjusted and said,

00:12:33   okay, we will honor the license set on your repo

00:12:36   and only use the ones that we think we're allowed to use

00:12:38   according to the open source license or whatever.

00:12:41   - Yeah, I should have been more explicit, by the way.

00:12:43   GitHub Copilot is a thing where you can start typing code

00:12:47   in one of the many supported languages.

00:12:50   And based on what you type,

00:12:51   it will try to figure out what it is you really want,

00:12:54   and then go ahead and fill out your code for you.

00:12:58   So for basic operations,

00:13:00   like a database like CRUD, for example,

00:13:02   it can get stunningly close from what I've understood.

00:13:05   I haven't really played with this myself,

00:13:06   but my understanding is it can get just bananas close

00:13:09   to what you would actually write

00:13:11   if you were to write this out by hand.

00:13:12   And for tedious, like busy work,

00:13:15   of which there's a fair bit in programming,

00:13:17   that's actually super duper cool, but it's certainly--

00:13:21   - It's not cool, but then you have to read a paragraph

00:13:24   of code you didn't write and say,

00:13:25   does this really reverse a string?

00:13:26   Like whatever trivial thing you have.

00:13:28   - That's the thing, it seems like a subtle bug factory.

00:13:31   Like are you actually saving time?

00:13:34   - I don't know, maybe not.

00:13:35   Again, I haven't really played with this.

00:13:37   - That's why I feel like the thing that people do

00:13:40   that is different than this,

00:13:42   like having a computer do it for you

00:13:44   when you're a programmer is not that much more helpful

00:13:47   than you going and looking up something, whatever it is.

00:13:50   Look it up in Stack Overflow and people say,

00:13:51   "Oh, I just caught," people just copy and paste

00:13:53   everything from Stack Overflow.

00:13:54   But Stack Overflow has someone explaining the code to you

00:13:57   and people may copy and paste it,

00:13:58   but a lot of time what they do is like rewrite it

00:14:01   by looking at Stack Overflow

00:14:02   and that's a process of understanding, hopefully.

00:14:04   Hopefully you're not just blindly like,

00:14:05   "Well, I don't understand this at all,

00:14:07   "but I'm just gonna copy and paste this paragraph of code

00:14:09   "from Stack Overflow."

00:14:11   But even that, copying, pasting code from Stack Overflow

00:14:14   is I feel like has a higher chance of success

00:14:16   if it's a highly rated answer on a well-trafficked question.

00:14:21   That code probably has a better chance of being correct

00:14:24   than the AI-generated equivalent,

00:14:26   unless the AI-generated equivalent is verbatim

00:14:28   from somebody else's code,

00:14:29   because there's not a lot of,

00:14:31   especially for trivial code, mixing and matching,

00:14:33   like what are they gonna do,

00:14:34   rename the variables or something,

00:14:35   like half of what people do

00:14:37   when they copy from Stack Overflow.

00:14:38   But if it takes any sort of deviance from,

00:14:41   like there's not a lot of room for riffing, right?

00:14:44   Like, it either has an off by one error in the loop

00:14:47   or it doesn't, right?

00:14:48   It either correctly reverses strings of all possible links

00:14:50   or it doesn't, right?

00:14:51   It handles the zero length case or it doesn't.

00:14:53   You know, it's kind of an open shot on the micro level.

00:14:56   On the macro level, things get hairier and, you know,

00:14:59   then it's not like you can ask it

00:15:00   to write an entire program for you.

00:15:02   But you kind of can.

00:15:03   You can say, "Space Invaders!"

00:15:04   And it's like, here's an entire Space Invaders game

00:15:06   in JavaScript.

00:15:06   It's not really Space Invaders.

00:15:08   It kind of crashes sometimes, but it mostly works.

00:15:11   So, yeah, it's, again, it's different with code.

00:15:14   because it's not just like, I look at the code

00:15:16   and I'm happy, you have to actually run it,

00:15:18   and it's in the running where you find out

00:15:19   does this thing actually work.

00:15:22   - Fair enough.

00:15:23   John, tell me about ChickBit.

00:15:25   - Yeah, we were talking about data,

00:15:27   a bit rot last episode, someone had a question about it,

00:15:31   and there are lots of programs that can do

00:15:33   one of the steps that we talked about,

00:15:34   which is detect whether there are other errors.

00:15:37   Some file systems do it for you,

00:15:38   some operating systems do it for you.

00:15:40   Sometimes you can use a program outside

00:15:42   of the operating system to do it for you,

00:15:43   Here's one I don't think I had heard of last time we discussed this so I thought I would

00:15:47   Mention it and link it disclaimer. I have not tried this program. I don't know if it actually does what it says it does, haha

00:15:54   But if you want to check it out, it's written in Python

00:15:57   It's called CHK bit which I'm assuming is short for check bit

00:16:00   And as the website says a lightweight tool to check the data integrity of your files

00:16:04   It allows you to verify the data has not changed since you put it there and that is still the same when you move it

00:16:09   Somewhere else it just basically makes dot directories and writes about to check something in it

00:16:12   This is actually kind of a fun project

00:16:13   for a beginning programmer to become

00:16:17   a little bit more seasoned, because you're like,

00:16:19   oh, this is easy.

00:16:20   I know how to read a file and get a checksum.

00:16:22   I know how to make a directory.

00:16:23   And I know how to read and write files and check that,

00:16:26   you know, it seems like, oh, I can do all those things.

00:16:28   I'm a beginning programmer.

00:16:29   I have all the tools I need to do this.

00:16:32   If you then go and try to implement a program like this,

00:16:35   even though you think you know how to do,

00:16:37   you can co-pilot up every single one

00:16:39   of those individual steps,

00:16:40   you will very, very quickly become a not so beginning programmer as you realize

00:16:44   all the weird things you didn't consider about real people's discs and what are

00:16:49   the actual performance bottlenecks to make this unfeasible and how much of a

00:16:53   pain is it and what kind of weird errors do you get from the operating systems

00:16:56   and what are sparse files and what are hard links and what are SIM links and

00:16:59   what are permissions and what is sandboxing and you will learn so especially

00:17:02   if you try to do this on a Mac, you will learn so much so fast probably that

00:17:07   you'd never wanted to know.

00:17:07   And if you don't find that exhilarating, you're probably don't want to be a

00:17:10   programmer but presumably the people who wrote checkbit have done a bunch of this

00:17:13   work for you so if you just want to do something to check some of your files

00:17:16   this is one of many many options it's just one I hadn't heard of before so I

00:17:20   thought it was worth linking you are clearly not a child of the 90s like I am

00:17:25   you think you know but you have no idea so it was that MTV diary something like

00:17:29   that I forget man it's true life I don't know some MTV show you still love

00:17:32   probably true life we are sponsored this week by green chef a CCOF certified

00:17:40   meal kit company. Green Chef makes eating well easy with plans to fit every

00:17:44   lifestyle. Whether you're keto, paleo, vegan, vegetarian, gluten-free, or just

00:17:49   looking to eat more balanced meals, Green Chef offers a range of recipes to suit

00:17:52   your preferences. And in fact, you know, we previously were sponsored by HelloFresh.

00:17:56   Green Chef is now owned by HelloFresh. And the wider variety of meal

00:18:00   plans to choose from, there's something for everyone. So if you're looking to

00:18:03   start a keto diet in particular in this new year, Green Chef's making it easier

00:18:07   than ever to keep keto with their brand new limited time keto kickoff 2023 with

00:18:12   keto recipes for breakfast lunch and dinner plus meal bundles at the green

00:18:15   market keep keto the easy and delicious way and of course they also just have

00:18:20   tons of other variety they've expanded their menu recently you can now choose

00:18:23   from 30 weekly recipes with the option to mix and match meals from different

00:18:27   dietary preferences all in the same box without changing your plans so if you

00:18:31   want to do vegan one day keto the next you can do that they're offering more

00:18:35   customization than ever before. You can also swap protein in any meal that

00:18:39   features chicken, beef, or salmon. For USDA certified organic ground beef, USDA

00:18:44   certified organic chicken, or wild-caught sockeye salmon. You can also now add

00:18:48   chicken or fish to select vegan and veggie recipes each week for an added

00:18:51   protein boost. There are just so many great options with Green Chef. They're

00:18:55   also now offering 10-minute lunches. Each week's menu includes two convenient low

00:18:59   prep and nutritious lunch recipes ready in just 10 minutes, no cooking required.

00:19:03   So it's perfect for when you are on the go or pressed for time at the office so you can eat well at lunchtime too.

00:19:09   So check it out at greenchef.com/ATP60 and use code ATP60 to get 60% off. That's a ton! Plus free shipping.

00:19:19   Once again, greenchef.com/ATP60. Use promo code ATP60 for 60% off plus free shipping.

00:19:27   shipping. Thank you so much to Green Chef, the number one meal kit for eating well, for

00:19:31   sponsoring our show.

00:19:34   Marco, on a recent episode of Under the Radar, which is on a very good run, which is not

00:19:42   surprising because they are excellent episodes. Usually, Marco, usually not longer than 30

00:19:49   minutes. But anyways, on Under the Radar, you were talking about a couple of things.

00:19:55   You were talking about how you're kind of pulling the plug on using CloudKit for Overcast,

00:20:01   but you are allegedly, theoretically, maybe, going to be keeping the web player for Overcast.

00:20:09   So I would like to quickly celebrate the Overcast web player being--surviving for another day,

00:20:14   which is great news, even though I don't use it that much anymore.

00:20:17   I do think it's cool that you're keeping it around.

00:20:20   But I'm very interested in this CloudKit stuff.

00:20:23   So I have been working on something new that the boys don't really know about yet because

00:20:26   it's way too early for that.

00:20:28   But this new thing I'm working on—

00:20:29   Is that us?

00:20:30   Are we the boys?

00:20:31   Yes, yes.

00:20:32   You are the boys.

00:20:33   This thing I'm working on, it is currently written against CloudKit, and I was using

00:20:41   CloudKit as a data store for what it does.

00:20:44   And hearing you have a less rosy opinion of CloudKit than I expected is very selfishly

00:20:50   interesting to me.

00:20:51   So can you give the 10 second version

00:20:55   of your 29 minute podcast, if you don't mind?

00:20:58   And then I'd love to dig in a little more

00:20:59   about how you came to this conclusion

00:21:02   and what you think the implications are

00:21:03   for not only people like me

00:21:05   that are trying to write something new,

00:21:07   but people like you that are maybe moving something old

00:21:09   into this new world.

00:21:11   So I don't know, take it whatever direction you want,

00:21:12   but I thought we could tug on that string a little bit.

00:21:14   - Yeah, sure.

00:21:15   So over the last, I'll be brief,

00:21:18   'cause this is mostly covered in another radar,

00:21:20   so we're mainly doing it here for any additional elaboration

00:21:23   and for you guys to yell at me.

00:21:25   But, you know, mainly I was,

00:21:28   I was facing a couple problems with Overcast

00:21:30   over the past year.

00:21:32   One was that I'm getting increasingly burdened

00:21:36   by my massive amount of legacy code,

00:21:39   and I'm trying to move myself forward in some way

00:21:42   so that I can, you know, basically adopt new things,

00:21:47   new languages, new frameworks, new techniques,

00:21:49   you know, Swift, Swift UI, Swift async stuff

00:21:52   and all that kind of stuff.

00:21:54   So I'm looking at a bunch of rewriting basically.

00:21:58   Not everything has to be rewritten,

00:21:59   like the audio engine I'm gonna keep what it is,

00:22:02   which is mostly C, and that's gonna be fine.

00:22:06   But a lot of the UI I wanna rewrite,

00:22:09   a lot of the data layer I wanna modernize,

00:22:12   in part to make it easier to change the UI

00:22:15   and to keep it up to date and to keep it fresh

00:22:17   and to add features and in part to fix certain,

00:22:20   you know, just certain like shortcomings

00:22:22   and reliability problems,

00:22:24   certain like weird obscure crash conditions

00:22:26   that could happen.

00:22:27   You know, some of those require

00:22:29   just re-architecting certain things.

00:22:31   So anyway, that's the motivating factor.

00:22:33   And the second big problem I was having

00:22:34   besides my massive legacy code bloat

00:22:37   is that my server load was really,

00:22:39   my server maintenance load,

00:22:41   not like the actual load average on a particular server,

00:22:43   but like the amount of my time

00:22:46   it was taking to maintain and deal with my servers

00:22:50   and their workload was getting to be a little too much.

00:22:53   And so over the year, over the past year,

00:22:55   I really have done a lot of optimization,

00:22:59   a lot of server experiments,

00:23:01   moving to certain techniques or services

00:23:04   that are supposed to try to improve things

00:23:06   and some of them did, most of them didn't.

00:23:09   I've had to deal with a lot of regressions,

00:23:12   a lot of bugs.

00:23:16   We talked on the show a few times about how

00:23:18   I would experiment with doing something like with S3

00:23:20   or with Cloudflare as a CDN in front of various things

00:23:24   and almost all of those have actually failed.

00:23:29   Almost all of those ideas I had either didn't make it better

00:23:33   or only made it better if I burned a ridiculous amount

00:23:37   of money way more than I could actually justify

00:23:40   or and even then it wasn't that much better.

00:23:44   So in many cases, they introduced a bunch of weird bugs.

00:23:47   I learned a lot.

00:23:50   One of the things I learned is that

00:23:52   all of those web services,

00:23:53   when you, for instance, write data to them,

00:23:57   and you try to read it back, sometimes it's there.

00:24:00   Sometimes it's not.

00:24:01   Sometimes it says it's updated and it actually hasn't.

00:24:04   It's sometimes the write just fails.

00:24:07   Why? Who knows?

00:24:08   Sometimes Cloudflare just caches things when it shouldn't.

00:24:10   Why? Who knows?

00:24:13   There's a lot of like, this works 98% of the time.

00:24:17   Well that's great, but when I write things to MySQL,

00:24:20   it works 100% of the time.

00:24:22   And then when I read them back,

00:24:23   that works 100% of the time too.

00:24:25   And so many of these optimizations

00:24:29   would introduce weird subtle bugs and problems

00:24:32   that eventually made them not worth it.

00:24:34   And so anyway, so I've just gone through all this crap

00:24:36   with my servers and so I devised this plan in the fall.

00:24:40   You know, and I've been thinking about this for a while,

00:24:43   you know, I should probably just move

00:24:45   as much user data as possible to CloudKit,

00:24:48   because my servers process two kinds of data.

00:24:52   You know, one is like global data.

00:24:53   It's like, well, this is the list of feeds I know about,

00:24:56   of RSS feeds I know about for different podcasts,

00:24:59   and here's the episodes in those feeds,

00:25:01   and you know, and so on,

00:25:03   and then the user-specific part of the data is,

00:25:07   all right, I have these users,

00:25:08   user number 123 is subscribed to feeds A, B, and C,

00:25:13   and in feed B, they've listened to episodes

00:25:16   one, two, and three, to progress 60 seconds completion

00:25:20   and two seconds, you know.

00:25:21   That's what I'm dealing with here, a lot of that data.

00:25:24   Huge volumes of very simple data.

00:25:27   And I know from running my previous web services,

00:25:30   I know the amount of server resources I was spending

00:25:34   per user was not a very good ratio.

00:25:38   I was spending too much per user.

00:25:41   That the number of active users I have

00:25:43   does not justify the amount of server resources

00:25:47   that I was needing to keep the system going.

00:25:50   And the amount of time it was taking me to manage it.

00:25:54   So anyway, so again, I had this idea,

00:25:57   let me go to CloudKit.

00:25:59   I'll move user data there, and I'll keep the public data,

00:26:01   like all the feed crawling and everything,

00:26:02   I'll keep that on my servers,

00:26:04   but I'll move user data to CloudKit,

00:26:06   thereby not only being a huge win in terms of like

00:26:10   getting possibly privacy sensitive data out of my hands,

00:26:14   which is always a great feature there.

00:26:16   It's like nuclear waste, like I don't want this.

00:26:18   Like I don't want people's data.

00:26:20   And then secondarily, that would presumably result

00:26:23   in a huge reduction in the server costs

00:26:27   and server complexity and server maintenance needs

00:26:29   that I'd have to deal with.

00:26:31   Over the course of the fall,

00:26:33   I decided in one of my fits of rage

00:26:36   in undoing one of my very bad ideas

00:26:40   for one of the various CDN hosted S3 bucket,

00:26:44   one of those various things,

00:26:46   I'm like, you know what, let me just buy some time

00:26:49   with the good old fashioned MySQL setup

00:26:51   that's just serving stuff directly.

00:26:53   Let me buy some time and see if I can optimize this

00:26:56   a little bit more.

00:26:58   And I took like a week,

00:27:00   And the one big table that was getting hit the most often

00:27:04   had like three indexes on it.

00:27:06   It's a huge table, hundreds of gigs.

00:27:08   It had like three indexes on it

00:27:10   and I ended up consolidating it down to one.

00:27:13   Both by a little bit combining two that were already there

00:27:16   and then rewriting the code to just not use the other one.

00:27:19   So a combination of basic database stuff

00:27:22   and of code changes made it so I could only use one index

00:27:25   if I had to.

00:27:27   And that single change made a way bigger gain

00:27:32   than any of the stupid stuff I did

00:27:34   for the whole rest of the year.

00:27:35   It was infuriating.

00:27:37   - That is both beautiful and awful all at once.

00:27:40   - Yeah, so I did a couple of other things,

00:27:43   like during that week I optimized a couple other things

00:27:46   like the feed crawling,

00:27:47   it was hitting one of the big tables twice

00:27:50   and I rewrote the code a little bit

00:27:52   so it only had to hit it once, stuff like that.

00:27:54   I did a couple of optimizations like that,

00:27:57   and it just made a huge difference.

00:27:59   And I was like, damn it.

00:28:01   So basically during that time,

00:28:05   oh, sorry, going back a second.

00:28:07   Before I had done that, when I was deciding,

00:28:09   okay, my future is probably gonna be CloudKit,

00:28:12   I put two things on my to-do list.

00:28:14   Number one, I'm like, all right,

00:28:15   I have to issue an update to the app

00:28:16   that will measure the percentage of people

00:28:20   who have CloudKit enabled.

00:28:24   Because I use CloudKit so far, I have used CloudKit

00:28:27   for a number of years now to do something very,

00:28:29   very, very basic, which is if you are logged out,

00:28:33   so if you restored a phone or you got a new phone

00:28:36   or whatever, if you're logged out of Overcast,

00:28:38   it shows you a list of your accounts

00:28:40   and you can tap it to just log in.

00:28:42   And that's just a list of basically login tokens

00:28:47   that are stored in CloudKit.

00:28:49   So I knew that CloudKit was available

00:28:52   on most of my customers' devices

00:28:53   because the system really has not resulted

00:28:55   in any big problems for me,

00:28:56   having this be tied to iCloud.

00:28:58   And then I also use CloudKit on the web

00:29:01   to help people log into the website

00:29:03   who have anonymous accounts

00:29:04   that don't have emails and passwords, which is the default.

00:29:07   And Apple does have a CloudKit.js web interface,

00:29:11   and it is horrific.

00:29:13   It is really hard to use. - I was gonna add.

00:29:16   - It is old and seemingly unmaintained.

00:29:20   It has a very high error rate,

00:29:22   and just the URLs you're hitting just error out a lot

00:29:25   and you just have nothing, you can't do anything about it.

00:29:27   The documentation is horrendous, using it is awkward.

00:29:29   - No, the documentation stinks?

00:29:31   - Yeah, but yeah, using it is incredibly cumbersome

00:29:35   and awkward, it was clearly designed by nobody

00:29:38   who has ever made a web anything ever.

00:29:41   It is designed only for JavaScript use

00:29:43   and it's definitely not designed for any kind of like

00:29:44   tying in with the backend, like it was just,

00:29:46   it's really extraordinarily cumbersome and bad.

00:29:51   So I already knew that if I was going in the direction

00:29:54   of CloudKit, the website, it was not something

00:29:57   I wanted to really offer, like with the web playback.

00:30:01   And I was thinking, I guess I'll still have

00:30:04   the directory on the web where you can search

00:30:05   and browse stuff, 'cause if nothing else,

00:30:08   I use it when I'm debugging feed problems.

00:30:10   I'll search for a podcast, browse this episode list

00:30:13   and see all that, so I was like,

00:30:14   I might as well keep the website.

00:30:15   But I was gonna lose all user functionality on the website

00:30:19   if I went with CloudKit.

00:30:20   Because I'm like, I'm not gonna have access

00:30:23   to what are your subscriptions,

00:30:25   what is your, what's your progress in this episode,

00:30:29   stuff like that.

00:30:29   That was all gonna be in CloudKit

00:30:31   and not on my servers anymore.

00:30:32   So this move that I was planning on doing to CloudKit

00:30:35   was going to kill the website for any kind of logged in use.

00:30:39   And so anyway, so I decided, you know what,

00:30:44   my servers are just killing me.

00:30:46   I'm just gonna finally rip the bandaid off

00:30:49   and just tell people, you know what,

00:30:52   the website's gonna have to go

00:30:53   because I wanna make this move.

00:30:55   And so I did that in, I think, November,

00:30:59   something like that.

00:31:00   I posted a thing to the website,

00:31:02   a little banner on top saying, sorry,

00:31:04   sometime in 2023, this website's gonna be discontinued,

00:31:07   mostly with the user functionality and stuff,

00:31:09   because I wanna leave all my options open

00:31:11   with my server stuff going forward.

00:31:14   And also because hardly anybody uses it.

00:31:16   So to give you some idea of what I mean

00:31:20   by hardly anybody uses it,

00:31:22   I'm looking at a few hundred people who use the website.

00:31:26   And that is not a large portion of the user base.

00:31:30   And this is like per day.

00:31:32   But it's under a thousand people.

00:31:34   And that's well under 1% or whatever.

00:31:39   It's a very small portion of the user base.

00:31:40   And so I'm like, why am I jumping over backwards here

00:31:44   for people, for under a thousand people?

00:31:47   I've made decisions to cut off support for an old OS

00:31:51   that still had thousands of people using it.

00:31:53   But the trade-offs outweigh that or whatever,

00:31:55   and it was still a small enough percentage

00:31:58   that I was comfortable with that or whatever.

00:31:59   So I'm like, this is okay.

00:32:02   I can lose the web player, it's not that big of a deal.

00:32:04   Most people won't care.

00:32:06   Boy was I wrong.

00:32:08   (laughing)

00:32:11   I heard from so many people.

00:32:15   And I think part of my problem with this decision,

00:32:19   part of what I think surprised me,

00:32:21   is that my analytics are not super granular.

00:32:24   This is just like a home built analytics system

00:32:26   that I report a couple of parameters to my server

00:32:30   that's all anonymized with every sync request

00:32:32   and I count 'em up and you know.

00:32:34   So I can tell things like how many distinct users

00:32:38   used feature X yesterday.

00:32:40   I can't tell you how many distinct users

00:32:44   used feature X in the past month.

00:32:46   So if you don't use something every day,

00:32:50   you're not counted every day.

00:32:52   Does that make sense?

00:32:53   So like if a different 200 people use this feature

00:32:57   on Monday, Tuesday, Wednesday, Thursday, and Friday,

00:32:58   if those are actually five different sets of 200 people,

00:33:01   that's a thousand people.

00:33:03   But my analytics will only show 200

00:33:05   'cause it's only measuring it like per day.

00:33:07   - What kind of analytics do you have

00:33:08   where you can tell per day uniqueness

00:33:10   but not cross day uniqueness?

00:33:11   Is this like a one day cookie expiration or something?

00:33:14   - Sort of.

00:33:15   I've wrote the system years ago

00:33:17   so I forget the exact details.

00:33:18   But just as it is, there's two tables.

00:33:20   There's analytics today and analytics archive.

00:33:24   And analytics today is just some random numbers

00:33:27   and everything.

00:33:28   And then analytics archive is like the sum

00:33:32   of how many of those people were for each metric each day.

00:33:35   So I'm only really keeping the sum.

00:33:37   Also, the random number that the app uses

00:33:40   to associate people per day does rotate pretty quickly.

00:33:44   I forget what it is.

00:33:45   It's something like a random expiration

00:33:47   between 48 hours and 72 hours, something like that.

00:33:51   So that number, the random ID people are using

00:33:54   to report to me, it changes so often.

00:33:56   Anything more than a day granularity

00:33:58   wouldn't be useful anyway.

00:33:59   But I've never needed it really.

00:34:01   For the most part, I'm not measuring things

00:34:05   that are so critical that I would need

00:34:06   that kind of advanced measurement.

00:34:08   - So everyone is upset that you're killing the website.

00:34:13   - Yeah, and so I'm starting to get the feeling

00:34:16   that again, it's way more people

00:34:19   than the daily analytics suggest

00:34:20   because what people are telling me is,

00:34:23   I'm hearing the same stories over and over again basically.

00:34:25   It's like, oh I use this occasionally

00:34:27   when looking something up.

00:34:28   Or I use this on certain days when I'm at work,

00:34:32   on my Windows work PC.

00:34:34   And there were so many stories like that.

00:34:39   A lot of the use cases were people who were using

00:34:41   the file upload feature, which is part of Overcast Premium.

00:34:44   And I said, I'll find some way to offer file upload still

00:34:48   if I cancel the web player.

00:34:49   So that was less of a concern, but it was still,

00:34:52   it was a common enough thing, and I noticed

00:34:54   that occasionally I would use the features too.

00:34:57   Like if I hit a link to a website that had a podcast episode

00:35:02   and I would follow the overcast link,

00:35:03   and then I would add it to my account

00:35:05   with the web interface.

00:35:06   I'm like, "Damn it, I want people to do this

00:35:07   "after I make this change." (laughs)

00:35:09   And I started realizing,

00:35:11   there's a lot more uses for this thing.

00:35:13   It's kind of like the Mac Mini,

00:35:15   which is like, most people don't need a Mac Mini.

00:35:18   However, there are certain use cases

00:35:21   that only the Mac Mini can cover.

00:35:23   And it's a large number of very small use cases, effectively.

00:35:28   And that's how my web player was.

00:35:30   it covers a large number of very small use cases.

00:35:33   A lot of people end up using those every once in a while.

00:35:37   That was problem number one.

00:35:39   Problem number two happened when I shipped

00:35:42   the version of Overcast that captured the analytics

00:35:45   of how many people have logged in iCloud accounts.

00:35:47   And I thought that the number of people

00:35:51   who did not have CloudKit available,

00:35:54   which I thought meant they didn't have an iCloud account

00:35:56   on their device, would be very, very small.

00:36:00   I was wrong about two things.

00:36:02   Number one, not being able to use CloudKit

00:36:05   is not just caused by not having an iCloud account

00:36:10   signed into your device.

00:36:11   It is also caused by having iCloud Drive disabled.

00:36:16   That's a very different thing.

00:36:18   - That's so weird to me that the two things

00:36:22   are codependent, for lack of a better word.

00:36:24   I would not have expected that.

00:36:25   - Well, that's where CloudKit stars all the stuff, though,

00:36:27   right? - Yes, that's the thing.

00:36:29   So when people say iCloud, there's a bunch of different

00:36:33   services that actually is part of iCloud.

00:36:35   One that I've used before, which I think I might move

00:36:38   the account system back to, that little login token list

00:36:41   thing, is called Key Value Store.

00:36:44   And this is one of the very first things,

00:36:45   like when iCloud first launched, it was like two or three

00:36:48   services, this was one of them.

00:36:49   It's been there since the beginning.

00:36:51   iCloud Key Value Store is literally a key value store

00:36:53   for very small bits of data, it's limited,

00:36:55   it's very limited.

00:36:57   I forget the exact limits, but it's something like

00:36:58   you can have like a thousand keys and values stored

00:37:01   and each one can be up to like four kilobytes or something.

00:37:03   So you can store decent data there

00:37:07   but it's more for like preferences

00:37:09   and you know short bits of things.

00:37:11   It's not really for arbitrary user data

00:37:13   because the limits are so small,

00:37:16   I wouldn't be able to use KeyValueStore

00:37:18   because like way too many people

00:37:20   would bump into those limits

00:37:21   if you know if you had a lot of subscriptions or whatever.

00:37:24   But that service as far as I can tell

00:37:26   doesn't really count against anyone's data at all.

00:37:29   Like it doesn't count against your iCloud storage

00:37:32   in either in any way or in any meaningful way.

00:37:35   That data is also not user browsable at all.

00:37:39   Like there is no place I can go as an iCloud customer

00:37:42   and see the key value data for my apps for iCloud

00:37:46   as far as I know.

00:37:46   Maybe, I mean, you know, maybe who knows?

00:37:48   Maybe on the Mac it's in some like library

00:37:50   hidden folder somewhere.

00:37:51   But I don't know where that is.

00:37:52   And it's for the most part it's hidden from users.

00:37:55   So users can't go in and delete it or manage it really.

00:37:58   So that data's kept very small.

00:38:00   And as far as I know, that's not affected

00:38:01   by the iCloud Drive preference,

00:38:03   but I don't know that for sure yet.

00:38:04   Anyway, iCloud Drive, the amount of storage

00:38:08   that you're allowed to use is just whatever the user has

00:38:10   in their iCloud account.

00:38:11   So whatever amount of storage they have for free or pay for,

00:38:14   that's what you can use.

00:38:15   So it's, as far as the app's concerned,

00:38:18   kind of unlimited in the sense that you don't have

00:38:21   these arbitrary limits of four kilobytes or whatever else.

00:38:24   So that does make sense to have controllable

00:38:28   in some way by the user, to have visible to the user.

00:38:31   So the way Apple has chosen to do that

00:38:33   is to tie it into iCloud Drive.

00:38:34   That's where that data is stored.

00:38:37   So if you have iCloud Drive disabled,

00:38:39   apps, just as far as apps can tell,

00:38:42   you can't use CloudKit.

00:38:43   And it doesn't tell you necessarily

00:38:46   why you can't use CloudKit.

00:38:48   I think, I could be wrong about this,

00:38:51   I think it returns the no account status,

00:38:56   whether you have no account for real,

00:38:58   or whether you are logged in but iCloud Drive is disabled.

00:39:00   So you can't, there's not an easy message

00:39:02   you could show the user necessarily

00:39:04   that would be very accurate or whatever else.

00:39:06   So anyway, so I was shocked to find out,

00:39:10   not only that, but the percentage of not signed in

00:39:15   to iCloud or iCloud Drive disabled,

00:39:18   The percentage of my users who can't use CloudKit

00:39:23   is around 12%.

00:39:27   And it keeps going up, I keep following this metric.

00:39:30   Now granted, most of my data is from the end of December

00:39:34   and the first day or two of January,

00:39:36   so it is holiday break time for a lot of people.

00:39:40   A lot of people aren't at work during this time

00:39:42   where they take vacations or whatever else,

00:39:44   so it's not an extremely representative time.

00:39:46   Also just my overall usage is down by something like 20%

00:39:49   or something like that for during this time,

00:39:52   just because fewer people listen to podcasts

00:39:53   when they're not in their work routine

00:39:55   and they're like, you know, commuting and everything else.

00:39:57   So this data is not super strong yet,

00:39:59   but it's been staying, since this update shipped

00:40:01   a couple of weeks ago, it's been staying between 10 and 12%

00:40:06   of people who cannot use CloudKit in my user base.

00:40:09   This is way higher than I thought.

00:40:13   I was thinking it would be like 1% maybe.

00:40:16   Nope, it's 10 times that.

00:40:18   So it's way higher than I thought.

00:40:22   And if I can't use CloudKit for these customers,

00:40:25   it's different from if I move the required OS version

00:40:31   forward, I still have, like all those people

00:40:35   who I'm leaving behind still can use the old version.

00:40:38   Like it's fine.

00:40:40   But if I move all my user storage and sync to CloudKit,

00:40:45   I'm gonna cut off 12% of my existing users,

00:40:49   like not even just new users, existing users.

00:40:52   That's a problem.

00:40:53   Now, many of you out there might be thinking,

00:40:56   well who cares, why don't you just not offer sync

00:40:58   to people who don't have iCloud enabled or whatever.

00:41:02   And that's okay, that's a reasonable theory.

00:41:05   The problem is on an iOS device, in practice,

00:41:09   sync means backup.

00:41:11   If you don't offer sync,

00:41:13   then when somebody loses their phone

00:41:16   or it falls off of Casey's car or it--

00:41:19   - Oh, that was my watch, not my phone.

00:41:21   (laughing)

00:41:23   - Or they get a new phone and they don't quite hit

00:41:26   the restore in the correct order

00:41:28   and they have to reset everything

00:41:29   or they lose their synced key chain or whatever,

00:41:32   they just lose all their data.

00:41:35   That sucks.

00:41:37   And I know how people feel about that

00:41:39   from the handful of requests or the handful of support,

00:41:41   emails and stuff I do get about that problem

00:41:43   when my system doesn't work for somebody

00:41:46   with the whole CloudKit account sync thing.

00:41:49   People expect their data to be there.

00:41:51   They expect that no matter what happens,

00:41:54   when they get a new phone or they replace

00:41:55   their run over phone, they expect that everything

00:42:00   will just be there.

00:42:01   You can't just tell them, well hey look,

00:42:03   hey if you don't enable your iCloud account,

00:42:05   you know, this is it, no sync, no backup.

00:42:08   That's not really an acceptable outcome

00:42:10   for modern expectations of software.

00:42:13   that's just not an option.

00:42:14   So you have to have some kind of account

00:42:16   or something to back stuff up,

00:42:17   and ideally it's automatic.

00:42:19   And so anyway, so that's a no-go.

00:42:21   I can't just say, well, sync is optional now.

00:42:24   Like that doesn't fly in this day and age.

00:42:27   So I have to offer this.

00:42:29   And when I first, I first thought

00:42:32   that the reason people wouldn't have an iCloud account

00:42:34   would be really obscure situations like,

00:42:39   I don't even know what.

00:42:40   Like you're using some kind of weird test device,

00:42:42   'cause it's actually somewhat challenging

00:42:44   to use an iOS device without ever signing in

00:42:47   an iCloud account.

00:42:48   Lots of stuff doesn't really work very well without that.

00:42:50   But I learned when I was, I guess, not tweeting about this,

00:42:54   when I was mastadoning about this,

00:42:57   I learned, I'm not gonna say tooting.

00:42:59   That's a different thing.

00:43:01   - You should say tooting.

00:43:02   Embrace the tooting.

00:43:03   - No, when I was masta-posting about this,

00:43:06   that sounds gross too.

00:43:07   - No, it's just making it worse.

00:43:09   Tude is great because it's so close to tweet.

00:43:11   When I was posting on Mastodon about this,

00:43:13   I learned that it's actually fairly common

00:43:19   for corporate issued and corporate locked down devices,

00:43:23   either to not have an iCloud account at all

00:43:26   and to disallow you from logging into one,

00:43:28   or apparently a lot of corporate IT departments

00:43:30   for whatever compliance or security reasons

00:43:33   or whatever it is, won't allow third party

00:43:36   cloud storage solutions.

00:43:37   So they will possibly allow your iCloud account

00:43:40   to be signed in, but they will specifically

00:43:41   disallow iCloud Drive from being enabled.

00:43:44   So that, which kills the whole thing for CloudKit.

00:43:47   So I think what I'm seeing here is way more people

00:43:52   than I expected use Overcast on a corporate managed iPhone.

00:43:57   That makes sense, people listen to podcasts

00:44:00   as part of their workday sometimes,

00:44:01   like they'll have it on in the background

00:44:02   or if you bring that phone to work,

00:44:05   you'll use that on your commute or whatever else,

00:44:08   like there's all sorts of conditions.

00:44:09   So what I've learned here is CloudKit is really a no-go

00:44:14   for things that might be run on a decent number

00:44:17   of corporate issued phones.

00:44:18   And so I decided, like right at the end of December,

00:44:23   I decided, you know what, now that I have this data,

00:44:26   this is not a good idea anymore.

00:44:27   And since I had in the meantime optimized my servers

00:44:31   a little bit better and made those gains,

00:44:33   I'm like, actually, is continuing to run my servers

00:44:37   the way they are really that big of a burden

00:44:39   is it really worth this loss of this many people?

00:44:43   And I decided, you know what, no it's not.

00:44:46   It's not worth, like it isn't worth this loss.

00:44:48   It's not, this whole plan I had to go to CloudKit

00:44:51   and everything, this is not gonna work for me.

00:44:54   And I'm not saying nobody can use CloudKit,

00:44:57   but I'm saying it's, I thought it was gonna be a good fit

00:44:59   for this particular app and for my particular priorities

00:45:02   and needs and I got more information and it's not.

00:45:06   So the website will stay and the Mac Mini remains a product in my lineup and

00:45:11   I'm going to, you know,

00:45:13   keep running my servers and I'll try to keep making it easier on myself.

00:45:16   In the meantime,

00:45:18   I'll get to go do anything else and not spend a year rewriting my whole sync

00:45:21   engine.

00:45:22   How swayed were you,

00:45:23   assuming this was not the case and it really was a fraction of a percent who

00:45:26   couldn't use it,

00:45:27   would you have been swayed by the horror stories from the people who say,

00:45:31   Oh, if you're going to use CloudKit,

00:45:32   you have to have something that's not CloudKit to serve as your backup for in

00:45:35   CloudKit craps out?

00:45:38   - Sync for a podcast app, I just finished telling you

00:45:40   why it's required.

00:45:42   But it doesn't have to be fast,

00:45:44   and it doesn't have to be super aggressive or super recent

00:45:47   because most of my customers are only using it

00:45:50   on one device.

00:45:52   So if CloudKit was having a bad day,

00:45:55   and you were still able to use the podcast app,

00:45:58   and you'd still, in my imagined architecture

00:46:00   with my server still existing to do feed crawling and stuff,

00:46:03   in that architecture, you would still even be getting

00:46:05   new episodes, like that wouldn't stop if CloudKit was down.

00:46:10   All that would stop would be your data wouldn't sync

00:46:12   between different devices of yours.

00:46:14   And so I decided in that kind of scenario,

00:46:17   okay, it's a risk I'm willing to take.

00:46:19   Like if CloudKit's down for a few hours

00:46:21   and your progress, your overcast progress

00:46:24   between your phone and your iPad and your watch

00:46:27   doesn't sync for a few hours,

00:46:28   that's not the end of the world.

00:46:30   - What about the horror story of it just getting wedged?

00:46:32   Like whether it's up or down for some period of time,

00:46:35   at a certain point it just gets wedged

00:46:37   and will just never sink again without some heroic measure.

00:46:40   - That was a little more concerning, for sure.

00:46:42   And frankly, I just hadn't gotten there yet.

00:46:46   I mean, if I had gone down this path,

00:46:49   chances are I would find different downsides to it.

00:46:52   Downsides exist with every solution.

00:46:55   Everyone's like, oh well, why don't you just,

00:46:57   my favorite phrase, why don't you just move to,

00:47:01   insert Facebook or Google or Amazon hosted solution here.

00:47:05   Like, oh, just move to XYZ cloud server parsley.

00:47:08   And it's like, I don't, like you don't understand,

00:47:11   this is not my first day on the internet.

00:47:14   Like this is not the first time I've, you know,

00:47:17   used web services or created web services.

00:47:21   Like every one of these solutions has pitfalls

00:47:25   and limits and downsides.

00:47:27   If you don't know what they are yet,

00:47:28   you haven't used them enough.

00:47:30   Trust me, everything has downsides.

00:47:33   Nothing is hands off, nothing is automatic,

00:47:36   nothing is taking all the problems out of your hands.

00:47:40   Every service has a bad day, every service has downsides,

00:47:43   every service has BS you have to deal with

00:47:45   as the person running it, or using it I guess.

00:47:48   At least with my current service,

00:47:50   of running a whole bunch of Linode servers

00:47:52   with MySQL and PHP and stuff,

00:47:54   I know where all the pitfalls are.

00:47:57   I know how that breaks.

00:47:59   I know when I need to intervene.

00:48:01   I know the BS I have to deal with.

00:48:03   Any other service I would move to,

00:48:05   I knew that I would be signing up for the devil I don't know.

00:48:09   I'd be signing up for some kind of future BS

00:48:13   and some kind of future sleepless nights

00:48:15   and headaches and stress that I didn't yet know

00:48:18   what they were.

00:48:19   It's like Dick Cheney's Unknown Unknowns,

00:48:22   whatever that was, or was it a from himself, who cares?

00:48:24   Anyway, I knew there would be some kind of pitfalls

00:48:27   with any of these other services.

00:48:29   and CloudKit is of course no exception.

00:48:31   Of course CloudKit has weirdness and problems

00:48:34   and shortcomings and downsides and downtime and errors.

00:48:37   Everything does.

00:48:39   I'm not scared away by the possibility

00:48:41   of a service having them.

00:48:43   I'm scared away by me not knowing them

00:48:46   and knowing that if I move to something like this,

00:48:49   there will be some amount of learning curve there,

00:48:53   possibly things that I would do very wrong as I learned.

00:48:56   It'd be one thing if I was starting a whole new app

00:48:58   with no users to start with, but when I'm moving an app

00:49:02   from, you know, when I'm thinking about moving an existing

00:49:05   app with a whole bunch of existing users,

00:49:08   that is currently making up, you know, my income

00:49:12   as a person, like, I don't wanna move that willy nilly

00:49:15   to just anything, you know, I wanna do that pretty carefully

00:49:20   and that's quite an operation to move something like that.

00:49:22   And so, I was entertaining CloudKit because I thought

00:49:26   would have significant benefits to me.

00:49:29   Like I thought that the benefits would outweigh

00:49:31   the possible downsides, and I got more information,

00:49:34   and they didn't.

00:49:36   - It makes sense.

00:49:37   It's obviously a big bummer for you

00:49:40   that you're not getting out of the server business

00:49:42   no matter what happens, but I don't know.

00:49:45   It's, I thought that a lot of Apple's stuff

00:49:49   is using CloudKit now.

00:49:50   Like I thought shared, not shared photo library,

00:49:53   I thought the iCloud Photos was on CloudKit, so.

00:49:56   - It is, and notes and reminder, I don't know if I remember,

00:49:59   I think all of Apple's recent stuff is backed by CloudKit.

00:50:02   And what I heard actually, when I was browsing

00:50:07   my post-a-dons, what I heard was that people

00:50:11   who have these devices, who run devices for work

00:50:15   without iCloud Drive for whatever reason,

00:50:18   a lot of them replied to me and a lot of them said,

00:50:20   yeah, a bunch of apps break in random, annoying ways.

00:50:23   Basically, like a whole bunch of stuff

00:50:25   doesn't work quite right.

00:50:26   A whole bunch of third party apps don't sync

00:50:28   and just don't even tell you why.

00:50:30   A whole bunch of Apple's apps just don't work right.

00:50:33   You are correct, a lot of stuff uses CloudKit.

00:50:35   And when you have one of these devices,

00:50:37   a lot of that stuff just breaks.

00:50:38   - I just, I find that hard,

00:50:40   I'm not trying to say you're wrong,

00:50:41   I'm not trying to imply you're wrong,

00:50:42   I'm not, none of those things.

00:50:44   But I just find that hard to believe, right?

00:50:45   Like, you know what I mean?

00:50:46   Like, it's just, it's stunning to me

00:50:49   that so many of your users apparently don't get to use

00:50:53   like half the junk on their phone.

00:50:56   Obviously I'm being hyperbolic,

00:50:57   but it's just bananas to me

00:51:00   that that's just a no-fly zone for so many people.

00:51:03   And I understand the other corporate thing.

00:51:04   I am not far enough removed from real work

00:51:06   that I don't understand it

00:51:09   or it doesn't make sense or what have you,

00:51:10   but golly, that is bananas.

00:51:13   And I don't know, I guess there's a couple of different

00:51:17   things that I'm thinking about completely selfishly

00:51:19   as I'm wondering if I can create a new thing

00:51:21   that rides on CloudKit.

00:51:22   And one of the things that I was--

00:51:24   the thing I was most worried about, in fact,

00:51:25   was that, oh, CloudKit would be unreliable,

00:51:28   or the API would be crummy, or something like that.

00:51:31   The API seems reasonably OK so far.

00:51:33   I have gotten far enough in the pre-alpha version of this app

00:51:37   that I can save stuff to CloudKit

00:51:40   and pull it back out and so on.

00:51:41   So the API seems fine.

00:51:43   In my singular use, it seems reliable.

00:51:49   But I never thought that, oh, if I release this app,

00:51:52   I'm shutting off 10% of iPhone users,

00:51:54   which granted, I mean, I can choose not to care about that,

00:51:58   which is kind of what you were saying earlier.

00:51:59   You don't get to make that choice.

00:52:00   I can make the choice that I can just choose not to care,

00:52:03   but ugh, that's not what I expected,

00:52:06   and that's a real bummer.

00:52:07   - Well, and to be clear,

00:52:08   this might not be 10% of all users.

00:52:11   This might just be 10% of my users.

00:52:13   - That's fair.

00:52:14   - My user base is not representative of the entire world,

00:52:17   and part of my user base is very nerdy, of course.

00:52:20   That's part of it.

00:52:21   It's a podcast app at all, it's also my podcast app.

00:52:24   So it's a very nerdy leaning for sure.

00:52:27   And also, it depends what the app is used for.

00:52:30   Again, in my case, I think my theory here is like,

00:52:33   in my case, a lot of people use podcast apps at work.

00:52:37   And therefore, my percentage of work-issued device usage

00:52:41   is probably higher than the average.

00:52:43   So if your top secret app that you haven't told us about yet

00:52:46   not that I'm bitter, is, if your top secret app

00:52:51   is less likely to be used by people on their work devices,

00:52:54   you might have a very different number.

00:52:56   - Yeah, yeah, I'm not so sure that's the case, unfortunately.

00:52:59   Well, fortunately and unfortunately.

00:53:01   Ah, that's something else.

00:53:04   So you said you've gotten over the immediate hurdle

00:53:08   of the feeling like your database is going to explode.

00:53:12   I'm not saying that's actually what was happening,

00:53:13   but it seems like you kinda felt like,

00:53:15   oh, whoa, things are getting a little dodgy over here.

00:53:18   So you got through at least the first hurdle

00:53:22   in front of you with some changes on your end,

00:53:24   some changes on the database end.

00:53:26   So now, to the best that you're willing to share,

00:53:29   what is the long-term play then?

00:53:30   Because these servers aren't gonna go away.

00:53:32   This problem is gonna continue to be a problem.

00:53:34   And God willing, it's gonna get worse

00:53:36   'cause you have more users who are doing more with your app.

00:53:39   So what's the plan, man?

00:53:43   - Good question.

00:53:44   So one of the concerns,

00:53:47   one of the things that was frustrating me

00:53:48   was that I was so close to my capacities before.

00:53:52   And it's not, you know, look,

00:53:54   there's lots of things I could do to add capacity.

00:53:59   One of them that I, what I relied on in the past,

00:54:02   most of the time, with my SQL-based things,

00:54:05   and you know, I'm mostly database-bound,

00:54:08   you know, it's your standard kind of, you know,

00:54:10   lamp design of an app, it's, you know,

00:54:12   a monolithic app with a whole bunch of web server,

00:54:15   not even, you know, eight web servers

00:54:16   and a handful of database servers.

00:54:18   And the way I had scaled it in the past

00:54:20   was what everyone does at this kind of

00:54:22   low to moderate scale database based app.

00:54:25   You split some high traffic tables onto their own servers.

00:54:28   Eventually you have replication using MySQL replication

00:54:31   and you have the primary secondary

00:54:33   and then you try to send read queries to the secondary

00:54:35   and write to the primary.

00:54:37   I've done all those things.

00:54:39   You can get pretty far with that.

00:54:42   Obviously you couldn't run a very large scale operation

00:54:44   with this kind of architecture,

00:54:45   but you can get pretty far with it.

00:54:48   And so that's what I've been doing.

00:54:50   I have found MySQL replication to be significantly worse

00:54:54   since MySQL 8 and I'm looking to move,

00:54:58   to reduce my reliance on it to only like a backup

00:55:01   or kind of hot standby kind of situation,

00:55:04   not actually sending any queries to the replicas.

00:55:07   And that's where I am now.

00:55:08   Right now I have everything going to the primary,

00:55:10   no queries are being sent to the replicas,

00:55:11   they're only being used as basically live backups

00:55:14   so I could failover to them.

00:55:16   And I use replication, well no I guess,

00:55:18   no I use hotbackup to actually copy them for backups,

00:55:20   so that's something else.

00:55:21   Anyway, so replication is only for, at this point,

00:55:24   only for like failover scenarios.

00:55:26   So one thing I could do, rather than using replication

00:55:29   to build stuff up later, is I could just split up

00:55:31   the user data, like what we used to call sharding,

00:55:33   I don't know if that still means that today.

00:55:36   'Cause the other thing is like,

00:55:38   my knowledge of server backend stuff is super outdated.

00:55:42   I know the way things were built in 2006

00:55:45   and I'm really frickin' good at it.

00:55:48   And anything that's come out since then,

00:55:51   chances are I don't know about it.

00:55:53   Or if I do know about it, I'd rather not use it.

00:55:56   Because here's the thing, the stuff in 2006

00:55:59   solves my needs really well the vast majority of the time

00:56:03   and I know how to do it and I know how not to do it.

00:56:07   Like I know what mistakes not to make

00:56:11   with this kind of setup.

00:56:12   I know how to avoid getting woken up

00:56:15   in the middle of most nights.

00:56:16   I know how to set this up so I can actually like

00:56:18   have a family life and take vacations

00:56:21   and have work-life balance.

00:56:23   Like I know how to run this.

00:56:26   So that's why I stick with it.

00:56:27   And it's served me just fine.

00:56:29   Anyway, one thing I could do is shard user data.

00:56:31   This is very, very simple.

00:56:32   My user data does not depend on other user data.

00:56:35   So I could say, you know, all right,

00:56:37   let's take the modulus of the user ID

00:56:40   and just make eight different databases,

00:56:42   and if your ID, you know, module eight equals two,

00:56:46   you go to the server, whatever,

00:56:47   and split up the user data across eight different servers,

00:56:51   and then all of a sudden I have eight times the capacity.

00:56:54   I could do something like that.

00:56:55   And I'm fortunate, fortunate,

00:56:57   in the sense that my business

00:56:58   is not really growing very quickly,

00:56:59   so I can predict what I'm going to need

00:57:02   with pretty reasonable certainty.

00:57:04   Like, I'm not gonna need eight times

00:57:07   as much capacity next month.

00:57:09   You know, things are not that,

00:57:10   I don't have hockey stick growth on my podcast app.

00:57:12   It's fine.

00:57:14   So, you know, so, you know,

00:57:16   I have lots of options that I can do,

00:57:18   but one of the reasons why I was so stressed all year

00:57:22   is that I did feel like I was like really at that threshold

00:57:26   of like I was, I felt like I was at like 90% capacity

00:57:29   all the time, and you know, things were not going well.

00:57:33   Sometimes, you know, things would fall behind,

00:57:35   you know, cues would fall behind or whatever.

00:57:37   It was very high stress, certain things would go down,

00:57:39   it was a whole thing.

00:57:40   Well, I wanted to do things that required storing

00:57:43   more database data, like for instance,

00:57:47   the thing I now have tracking data,

00:57:49   but I haven't actually shown it anywhere yet,

00:57:51   which is the how much hour time you spend

00:57:55   listening to each podcast per month or whatever.

00:57:58   People want that kind of Spotify unwrapped feature,

00:58:01   where you tell them at the end of the year,

00:58:02   I hear this every single December,

00:58:04   where you tell people at the end of the year,

00:58:06   hey, this year you spent 400 hours listening to ATP.

00:58:11   Like that's, people want that kind of stuff.

00:58:13   It's a very commonly requested feature.

00:58:15   Not only the end of the year wrap ups,

00:58:16   but people just ask for stats much more often.

00:58:19   And most of my competitors at this point provide stats.

00:58:22   So it's a very, very, very common user request.

00:58:25   And so I wanted to offer that.

00:58:27   So I needed to track more data than I,

00:58:29   before this, all I tracked per episode was like,

00:58:33   all right, you're at this position.

00:58:35   or you've completed it or you've deleted it.

00:58:37   The smart speed total time saved is just a double.

00:58:42   It's just a number.

00:58:44   Like the app just accumulates how much time you're saving

00:58:46   and periodically writes it to the database

00:58:48   and that number is synced.

00:58:50   That's it.

00:58:51   Like that's not tracking every single listening session

00:58:54   you do and adding it up.

00:58:55   It's just tallying up on a number.

00:58:58   So in order for me to add any kind of stats,

00:59:01   well now I have more data to store.

00:59:03   And the idea of writing to my database with more data,

00:59:07   I'm like, I just can't do that feature.

00:59:08   Like, I'm running at 90% capacity here.

00:59:11   I'm having trouble keeping up sometimes.

00:59:13   I can't add load to my database.

00:59:16   And well, I could set up a whole new database cluster

00:59:18   just to do that, but that's a very expensive operation.

00:59:22   'Cause it's gonna be a lot of data.

00:59:24   How big of a server am I gonna need for that?

00:59:26   And then I have to have a replica for that,

00:59:28   and I have to add it to the database backup system,

00:59:29   and it's a whole thing.

00:59:31   So I would just block, I would just say,

00:59:33   you know what, I can't do that right now.

00:59:36   And so ever since I did those optimizations,

00:59:39   I thought, you know what, I bought myself some headroom,

00:59:42   now I can actually see, let me launch this feature

00:59:45   and I'll just launch it in the background

00:59:48   and if it turns out to be way too heavy on the database,

00:59:52   I'll just stop writing the data.

00:59:54   Like I'll just edit the PHP file,

00:59:56   that method of the controller,

00:59:58   and I'll just stop writing it to the database, who cares?

01:00:00   then I just won't launch the feature publicly,

01:00:03   but I can test, I can launch the app

01:00:05   that starts writing the data

01:00:06   and starts submitting it to the servers

01:00:08   and I can see can I actually handle it or not.

01:00:11   So I did that and yeah,

01:00:13   it turns out it handles it just fine now.

01:00:15   It turns out that's really small data.

01:00:17   (laughs)

01:00:18   And so I added enough headroom.

01:00:21   So again, I'm able to do all this stuff now

01:00:25   which feels really good because I have just spent

01:00:29   So much of the past few years with Overcast,

01:00:31   I have spent wishing I could do something,

01:00:34   wishing I could add some feature

01:00:36   or change the way something works,

01:00:38   but then the server side of it was prohibitive in some way.

01:00:43   Either it actually did cause too much load

01:00:47   or I expected it to cause so much more load

01:00:50   that I didn't even try it.

01:00:51   And so now I bought myself a lot of headroom,

01:00:55   I'm learning that some of the ideas I have

01:00:57   actually are cheaper on the database and stuff

01:01:00   than what I thought.

01:01:02   And at some point, my actual plan,

01:01:04   to answer your actual question here,

01:01:05   my plan for the future is,

01:01:07   I guess I'll just keep doing what I've been doing.

01:01:09   And if I reach the point where I can't just

01:01:13   double the instance size on Linode

01:01:14   to make my database have more capacity or whatever,

01:01:17   then I'll split it up.

01:01:18   Then I'll start sharding, and I'll start

01:01:20   splitting more tables into their own servers,

01:01:22   and do more user sharding and stuff like that.

01:01:25   That's all stuff I can do.

01:01:26   It's all a trade-off of cost and complexity

01:01:29   and management time and code adjustment time.

01:01:34   But it's all stuff I can actually do.

01:01:36   And so at the end of the day,

01:01:38   it's probably way less time and complexity

01:01:42   than rewriting my entire sync engine

01:01:45   to use a whole different system.

01:01:47   So this is probably the best way forward.

01:01:50   - Now you can do the fun stuff,

01:01:51   which is using SwiftUI to make a cool animated

01:01:53   year-end wrap-up screen based on the data that you have,

01:01:55   because you have to have, if you've looked at all the ones

01:01:57   that other things do, you have to have some kind of like

01:01:59   nice presentation of the information.

01:02:02   And that's perfect for SwiftUI because the data is small

01:02:04   and SwiftUI is pretty good at doing animations

01:02:07   and arranging images and stuff.

01:02:09   - Yeah, exactly.

01:02:10   Yeah, I am very much on board with that plan.

01:02:13   - To go back a step just for a moment,

01:02:15   you had made a comment a little while ago

01:02:18   that your knowledge is like been frozen in 2006, 2008,

01:02:23   whatever year you said.

01:02:25   And that makes sense. And you've said many times over many shows, including "Build and Analyze,"

01:02:29   that you do not like to be, you know, the tip of the spear for these sorts of things. You prefer

01:02:33   to use the boring stuff because it's the reliable stuff, and that also makes sense. Have you thought

01:02:39   about, like, doing a deep dive in, okay, how does-- how do people do these sorts of things in 2023,

01:02:46   and how is that different than 2006, 2008, whatever? Like, does that appeal to you? Do you

01:02:51   Do you think that would be a worthwhile expenditure

01:02:53   of your time or are you just gonna do the bare,

01:02:55   and I don't mean this, this is gonna come across snarky,

01:02:57   I don't mean it that way,

01:02:58   but are you just gonna do the bare minimum you can

01:03:00   but to kick that can down the road

01:03:01   as long as you possibly can?

01:03:03   - It's a good question.

01:03:04   I think when you're looking at,

01:03:07   is what I'm doing too old

01:03:09   and is the new thing better than the old thing

01:03:10   and should I use the new thing,

01:03:12   it's important to first ask yourself,

01:03:14   well, what's wrong with the status quo?

01:03:16   What am I not getting with the current thing that I'm using?

01:03:20   what problem am I actually trying to solve here?

01:03:23   And again, like I was saying earlier,

01:03:25   anything I would move to,

01:03:27   not just web services-wise, but tools-wise,

01:03:30   any software or stack component I would move to

01:03:33   would also have pitfalls and limitations

01:03:36   and downsides and bugs and crashes and downtime.

01:03:39   And I at least know how the current stuff works.

01:03:43   I know how to run the current stuff

01:03:45   so that it won't be problematic for me

01:03:48   and be a heavy load on me.

01:03:50   So the new stuff, I'm sure it's mature by now.

01:03:53   I'm sure there's many different options of what people do.

01:03:56   I mean, I think part of the problem is that

01:04:00   whenever people recommend something to me

01:04:03   or when people talk about how things should be done,

01:04:06   they seem to either not realize

01:04:08   that things can be run inexpensively

01:04:11   or totally underestimate the scale of the data

01:04:16   that I'm trying to store.

01:04:17   People will suggest things that, you know,

01:04:19   some kind of hosted service that purports

01:04:22   to take all your problems away,

01:04:23   and then you end up paying per query or per byte

01:04:27   or whatever, and it's like, and you actually look,

01:04:29   okay, well, even if I rewrote this to be very efficient

01:04:32   for this particular service, I would still need to hit

01:04:35   1,000 queries per unit of time or whatever,

01:04:40   and it's like, okay, well, that's gonna then cost

01:04:42   like 30 grand a month or something.

01:04:45   It's some absurd, it's like, when you actually look at

01:04:48   what it would take, people don't realize,

01:04:50   people who have grown up in the,

01:04:52   just put everything in AWS kind of age,

01:04:57   don't realize how cheap hosting is for doing things

01:05:01   that are low level that you write yourself.

01:05:05   Another example of this is,

01:05:06   there's all these services that exist

01:05:07   to send push notifications for your iPhone apps.

01:05:10   Sending push notifications is so comically cheap for me.

01:05:15   It costs nothing, not even close to, like it's nothing.

01:05:20   If you are paying anything to send push notifications,

01:05:25   you're overpaying.

01:05:26   Like if you have a server to do literally anything else,

01:05:30   you can have a background job that reads a queue

01:05:32   to send push notifications and you will never even notice it.

01:05:36   It costs nothing.

01:05:38   So I send a lot of push notifications.

01:05:41   I have never had to scale any part of that at all.

01:05:44   Like it has never been a thing I've noticed.

01:05:46   Receipt validation, I do all that myself

01:05:49   'cause it's like one call.

01:05:51   There's stuff that if I used a new system,

01:05:56   a lot of the new ways to do a lot of these things,

01:05:59   whether they're low level components

01:06:01   like a database kind of thing

01:06:04   or whether they're high level services

01:06:06   like we'll send you notifications for you,

01:06:08   a lot of them, it's like one of those as seen on TV

01:06:12   like what's he do at commercials

01:06:14   where you have the black and white scene,

01:06:16   the person's fumbling with the old one,

01:06:18   how can you make a salad with this

01:06:19   and you're like fumbling and dropping all your tools

01:06:21   in the black and white, you need this new tool.

01:06:23   It's like many of those are overstating the problem

01:06:27   or they're making you think something's a huge inconvenience

01:06:30   when it really actually isn't.

01:06:31   And it's like this weird complex doodicky thing here,

01:06:36   whatever, this is solving a problem

01:06:39   that it wants me to think is a big problem for me.

01:06:42   But is it really a big problem for me?

01:06:45   Is this problem actually something I need

01:06:48   to pay someone a large amount of money to solve for me?

01:06:50   What if I just try to do it myself?

01:06:52   What would it take?

01:06:53   What does it cost?

01:06:54   How complex is it?

01:06:55   How hard of a problem is it?

01:06:57   I have found that with a relatively small amount

01:07:01   of virtual server resources, like standard VPS,

01:07:04   like you get with Linode or whatever else,

01:07:06   with a pretty small amount of computing power,

01:07:09   you can do a ton if you just have a Linux server

01:07:13   running a database in some kind of front-end language.

01:07:16   You can do so much more with that than anybody thinks.

01:07:20   I've made a career out of running

01:07:23   moderate-volume web services very, very cheaply

01:07:27   so that I don't need to take VC money

01:07:30   and I don't have to have some kind of creepy business model

01:07:32   and I don't have to have some kind of big company

01:07:33   behind all this stuff.

01:07:35   Overcast has more market share by a lot

01:07:39   than many other apps that have staffs or VC funding

01:07:44   or some kind of startup to like,

01:07:45   oh, we're gonna be the Netflix or podcast.

01:07:47   Or like, part of the reason I'm able to do it

01:07:50   as a single person here is 'cause I'm really good

01:07:53   at hosting stuff cheaply.

01:07:55   So when people recommend a lot of these new alternatives,

01:07:58   it's not only not solving a problem I have,

01:08:02   but it's not solving a problem I have very expensively.

01:08:05   And so to the point where like,

01:08:07   it's not even in the ballpark of what would work for me.

01:08:10   Anyway, that's a long way of saying,

01:08:12   I will move to new things if I have to,

01:08:15   or if there's really compelling reasons to,

01:08:17   and so far, I haven't found those compelling reasons

01:08:21   for any of the tools that I'm actually using.

01:08:24   Once I factor in the cost of rewriting everything,

01:08:28   the cost of learning a new tool,

01:08:29   and learning its pitfalls and downsides,

01:08:31   and downtime, and bugs, and everything else,

01:08:34   what I have is working pretty well most of the time

01:08:36   if I actually optimize it

01:08:38   and I'm a little bit careful about it.

01:08:40   - That makes sense.

01:08:41   So when are you going to Postgres?

01:08:43   - Postgres, again, I've never used Postgres.

01:08:45   I hear it's great, but it doesn't seem like

01:08:48   it's greater enough than MySQL

01:08:51   to be worth the changing in the learning curve.

01:08:54   So maybe, I'll move to it if I have to,

01:08:57   but I'm not rushing to do that.

01:09:00   - All right, well, best of luck.

01:09:02   I mean, it certainly makes me wonder

01:09:05   about my strategy for this thing that may never even see the light of day anyway. So

01:09:08   it's not like this is a business crushing decision or anything like that. It's not dramatically

01:09:14   altering my world. But it makes me think and makes me wonder, you know, I had initially

01:09:19   started writing this, again, you know, it's extremely early stages, but I initially started

01:09:24   writing this thing with like, well, I'll just treat CloudKit as the data source. And it's

01:09:28   quickly becoming apparent that for other reasons too, but that's not going to work. And, you

01:09:33   CloudKit may end up being like a sync destination,

01:09:36   but having it be the one true source of data

01:09:38   is probably unwise.

01:09:39   So, I don't know, it's a lot to think about,

01:09:41   and I appreciate you taking the time.

01:09:42   And like I said, listen under the radar 258,

01:09:44   if you haven't already, 'cause it was really good.

01:09:46   And under 30 minutes.

01:09:47   - It's a much shorter version of this whole thing.

01:09:49   We are brought to you this week by Trade Coffee.

01:09:54   If you love drinking coffee every morning,

01:09:57   I know I sure do, you have to check out Trade Coffee.

01:10:00   Trade makes it super easy to get great coffee delivered

01:10:04   fresh from the finest local roasters around the country.

01:10:08   Now look, if you've been getting the same grocery store

01:10:10   coffee for your whole life,

01:10:11   you don't know what you're missing.

01:10:12   'Cause coffee is best when it's freshly roasted.

01:10:14   It goes stale within a couple of weeks at most of roasting.

01:10:17   And Trade makes it easy to get fresh roasts delivered

01:10:20   to your doorstep.

01:10:21   And they have them from all these local roasters

01:10:24   to choose from.

01:10:24   And so this is a coffee subscription service.

01:10:27   And what's great about it is they have such great variety,

01:10:29   You can discover new coffees so easily

01:10:32   and make your best cup of coffee at home every single day.

01:10:35   All of this from the nation's top rated independent roaster

01:10:38   so that Trade can send you coffee they know you'll love

01:10:41   fresh to your home and on whatever your preferred schedule is.

01:10:44   So whether you're a coffee nerd

01:10:45   and you already know what you like,

01:10:46   or whether you're new to specialty high-end coffee

01:10:49   and need some guidance through it,

01:10:50   Trade makes it easy and convenient to discover new coffees

01:10:53   that you're guaranteed to love.

01:10:55   I personally have used Trade for I think over a year now,

01:10:58   and I love the variety I get from them.

01:11:00   It's so good.

01:11:01   And my tastes changed a while ago,

01:11:03   and so I was able to adjust my preferences

01:11:05   really easily with them and give feedback.

01:11:07   Oh, I like this one, this one wasn't so good,

01:11:09   I like this one.

01:11:10   And they learned quickly,

01:11:11   and it just hit after hit after hit now.

01:11:14   It's just so, so good.

01:11:16   So treat yourself or the coffee lover in your life

01:11:19   with Trade Coffee.

01:11:20   Right now, Trade's offering our listeners

01:11:22   a total of $30 off a subscription

01:11:24   and access to limited time specials

01:11:26   at drinktrade.com/atp.

01:11:29   That's drinktrade.com/atp for $30 off.

01:11:34   Drinktrade.com/atp.

01:11:37   Thank you so much to Trade Coffee

01:11:39   for keeping me caffeinated and for sponsoring our show.

01:11:42   Breaking news.

01:11:46   Samsung has decided to make the studio display

01:11:51   look like garbage, maybe, possibly.

01:11:54   So CES is happening soon, I guess.

01:11:57   I don't even know.

01:11:57   I don't pay attention to CES.

01:11:58   But there's some CES-related announcements.

01:12:01   The Verge covered this, and we'll also put a link to the

01:12:02   Samsung PR article as well.

01:12:05   But Samsung has announced the Viewfinity S9.

01:12:10   And it appears to be a shot across the bow at the studio

01:12:15   display, almost at the studio display.

01:12:19   It's 5K, same resolution.

01:12:21   It's matte.

01:12:22   It's not glossy.

01:12:24   It gets almost perfect DCI-P3 color reproduction.

01:12:29   It has HDR 600, which we'll talk about

01:12:31   what the heck that means in a minute.

01:12:33   It has a 4K external webcam,

01:12:35   which I guess you can slam onto the top of the screen

01:12:39   when you need it and then make it go away when you don't.

01:12:41   Allegedly, this includes automated zoom control

01:12:44   that will track subjects in the frame.

01:12:46   Does that sound like center stage to anyone else?

01:12:48   - 'Cause it worked out so well for the studio display.

01:12:50   - Well, I actually, I am a center stage apologist.

01:12:52   I like center stage, but the studio display's camera

01:12:55   fidelity is pretty bad.

01:12:57   It still is.

01:12:59   It'll rotate to portrait in the included stand.

01:13:02   It has HDMI input, Thunderbolt 4, USB-C, and DisplayPort.

01:13:05   It'll charge downstream, whatever you want to call it,

01:13:07   up to 96 watts.

01:13:09   It does not have True Tone.

01:13:10   And apparently it runs Samsung's--

01:13:13   what is this?

01:13:13   Tizen?

01:13:14   Is that how you pronounce it?

01:13:16   TVOS, and it has apps on it and whatnot.

01:13:18   So you can use it even when it's not

01:13:20   connected to a computer.

01:13:22   That's about everything there is to know about this,

01:13:25   except the deep dive into HDR 600,

01:13:27   which I'll let Captain John take us down in a minute.

01:13:30   But at a glance, not knowing a price,

01:13:33   not knowing when it's coming out,

01:13:34   at a glance, this looks like a pretty compelling option.

01:13:38   I'm not sure it's better than the studio display.

01:13:41   It may be more money than the studio display,

01:13:43   for all I know, although I'd be surprised.

01:13:45   - Unlikely. - It is unlikely.

01:13:47   But hey, I am all in on there being any competition

01:13:52   to the LG Ultra Me and the studio display.

01:13:55   So I'm here for this, at least in principle.

01:13:58   I'm excited to see more about this over time.

01:14:00   - The nice thing about it is that it looks

01:14:02   like the studio display too.

01:14:03   So if you want a studio display,

01:14:04   but you want a cheaper version of it,

01:14:06   that kind of looks like studio display from the distance,

01:14:08   from what I can see in the pictures,

01:14:10   it looks very similar because you know Samsung

01:14:12   and making things that look similar to Apple,

01:14:13   that they're not above that.

01:14:15   - No.

01:14:16   like they have here.

01:14:17   So yeah, because this is a pre-CS announcement, they haven't actually announced the price

01:14:22   or availability, so it's hard to talk too much about it, but the feature set is just

01:14:25   what you would expect, which is, we're going to do a thing like Apple, we're going to make

01:14:29   it look like Apple's product, we'll copy their aesthetic, we'll use the same panel presumably

01:14:32   or a very similar panel, we'll get to that in a second, and we'll undercut them on price.

01:14:36   And you don't have to pay extra for an adjustable stand, and our webcam is 4K, which I think

01:14:41   gives it a shot of not being crap when they do center stage, because they just have more

01:14:45   pixels to work with, right? It's an external camera which is way bigger than the bezel.

01:14:49   Like it's not huge, but like if you look at the picture, it's a circle that is like two to three

01:14:54   times the thickness of a tiny bezel on here. So hey, we can get a normal sized camera without

01:14:58   worrying about having to fit it in, and the camera can be 4K, right? And, you know, presuming it

01:15:05   undercuts it on price, it looks like it does everything the Apple one does. Now, the real

01:15:09   The real question is, is it the same panel?

01:15:12   So the HDR 600 thing, there's a bunch of terrible

01:15:15   marketing terms, we'll put a link in the show notes

01:15:17   to the HDR 600 one, but there's the VISA display HDR

01:15:21   certification things, if you watch any sort of

01:15:25   review channels for gaming monitors, which I watch a lot of

01:15:28   'cause I'm always looking for a good monitor for my PS5

01:15:31   that is HDR, every monitor says, supports HDR

01:15:36   than some number.

01:15:38   Pretty much all of those numbers,

01:15:39   or let's say half those numbers,

01:15:41   mean you don't have HDR.

01:15:43   HDR 400, not HDR.

01:15:45   HDR 500, not HDR.

01:15:47   HDR 600, probably not HDR, right?

01:15:50   Because regular monitors go to that brightness.

01:15:53   So witness the Apple Studio display.

01:15:56   It goes to 600 nits.

01:15:58   But it doesn't have local dimming,

01:16:00   and 600 nits is brighter than 500 nits,

01:16:04   which was the previous kind of standard Mac display thing,

01:16:07   but not super bright.

01:16:09   And not having local dimming means you don't really get

01:16:11   that contrast that you would want in high dynamic range,

01:16:14   because the brighter you support in the screen,

01:16:17   the brighter your blacks are gonna be too,

01:16:19   because the backlight is always on behind the thing, right?

01:16:21   So if you look at the HDR 600 specification

01:16:24   on the displayhdr.org website,

01:16:26   one of the things that it says is,

01:16:28   of the HDR 600 standard specifically is,

01:16:33   real-time contrast ratios with local dimming.

01:16:37   That's in the bullet points of this marketing material

01:16:40   for HDR 600.

01:16:42   Local dimming means you can turn off the backlight

01:16:45   behind some portions of the screen.

01:16:47   The Verge said-- whoever's writing this research--

01:16:49   says, "I couldn't get an answer at press time

01:16:51   as to whether Samsung's latest monitor includes local dimming.

01:16:54   I'm guessing if it did, they would

01:16:55   be highlighting that feature."

01:16:57   It's kind of weird that Samsung wouldn't

01:16:59   say in their press release if it did support local dimming,

01:17:01   but they do say it supports HDR 600

01:17:04   and the HDR 600 marking bullet points say local dimming.

01:17:07   I don't know what this means, we'll find out.

01:17:09   But if it does have local dimming

01:17:10   and the local dimming isn't garbage,

01:17:12   like doesn't have, you know,

01:17:13   it was four zones or something, or it's not one of those,

01:17:15   they do like vertical local dimming.

01:17:16   I don't know if you know about this,

01:17:17   but like one of the crappy,

01:17:19   cheap local dimming technologies

01:17:21   just cuts your screen into a bunch of vertical slices

01:17:24   and the backlight can be on in any of those slices,

01:17:26   which as you can imagine is terrible if you have,

01:17:28   you know, like something that isn't the full height

01:17:30   of the screen because you get blooming and a vertical stripe.

01:17:32   It's bad.

01:17:34   So we'll see.

01:17:35   Obviously, Apple has no local dimming at all.

01:17:38   This is an IPS panel, which is what Apple has,

01:17:41   but it claims to be HDR 600, which is, oh, it's just

01:17:44   like Apple because Apple says their thing is 600 nits,

01:17:46   but the local dimming thing is still a mystery.

01:17:48   And as for True Tone, which is Apple's thing where they have

01:17:51   like a light sensor, it adjusts the color temperature,

01:17:54   essentially, of your screen based on how yellow

01:17:56   the light is in your room.

01:17:57   This doesn't have that because True Tone

01:17:59   is an Apple technology, but it does have

01:18:01   a color calibration feature built into the monitor

01:18:04   where you can either use your smartphone

01:18:07   with the Samsung app on it to sort of like

01:18:08   point it at the screen like the Apple TV thing

01:18:10   where it calibrates, or you can also use

01:18:12   a more professional calibration tool to calibrate it.

01:18:15   That's not calibrating to your room lighting,

01:18:17   it's calibrating the monitor to some standard or whatever,

01:18:20   but that shows where they're kind of aiming this monitor,

01:18:22   so I expect it to be in the ballpark of Apple's price

01:18:25   just because you don't put color calibration

01:18:27   on a monitor that people are just gonna use

01:18:29   to look at webpages or whatever.

01:18:31   It's trying to get that same market

01:18:32   of people who care about color accuracy on their displays.

01:18:36   The Tizen OS, this is not Samsung's first monitor

01:18:40   that does this.

01:18:41   They have a bunch of monitors that's been selling

01:18:42   for a while.

01:18:43   They're like little smart TVs, right?

01:18:45   Only in a computer monitor, right?

01:18:46   So you connect it to nothing except for power.

01:18:49   You can turn it on and inside of it,

01:18:51   it has not an A13 obviously,

01:18:53   but some kind of CPU and memory and storage

01:18:56   so that you can run essentially TV streaming apps.

01:18:59   You can even run Google Hangouts

01:19:00   and do video conferencing and maybe Zoom calls

01:19:03   with just the monitor,

01:19:04   because it has enough smarts in it to run stuff,

01:19:06   just like your TV has enough smarts in it.

01:19:08   This is just something, it's kind of weird,

01:19:09   it took this long to come to computer monitors.

01:19:11   In many ways, televisions were ahead of monitors,

01:19:13   because we buy a monitor and we expect this thing is useless

01:19:16   until I plug it into something to send it an image.

01:19:19   And because these monitors have an increasing amount

01:19:22   of computing power in them just to do their monitor job,

01:19:24   It's not too much of a stretch to say, you know what,

01:19:27   why don't we just run our TV OS in here too?

01:19:29   And so now all you need to do is connect it to power

01:19:31   and you can watch Netflix or look at YouTube

01:19:34   or do video conferencing with the supplied camera

01:19:37   or whatever.

01:19:37   I think that's a great idea.

01:19:38   And I think it's kind of,

01:19:40   it's definitely a huge waste of computing resources

01:19:42   for the A13 in the studio display,

01:19:45   not to be acting like a little Apple TV in that mode,

01:19:48   but that's something Apple chose not to do,

01:19:50   at least in the first iteration of their product.

01:19:51   So we don't know a ship date for this,

01:19:54   Maybe by the time this comes out,

01:19:56   a new Apple Studio display with local dimming will come out

01:19:58   and we'll have a better comparison.

01:20:00   But not having to pay extra for an adjustable display.

01:20:03   And if you really don't like glossy,

01:20:05   not having to pay the huge amount of money

01:20:07   for Apple's nano texture,

01:20:08   but instead to accept a presumably somewhat inferior

01:20:11   but way cheaper default matte display on this thing

01:20:14   may be to your liking.

01:20:15   So I'm with Casey.

01:20:18   Anything to get beyond the ultra fine

01:20:21   as being the only other option.

01:20:22   - Vuefinity is an awful name, but I think this is

01:20:26   some decent competition for Apple's display.

01:20:28   - And by the way, it's not Vuefinity, it's Vuefinity S9.

01:20:31   - Yeah, S9 reminds me of an Audi, so.

01:20:33   - No, I'm happy to see this.

01:20:36   Even if it's not something any of us want,

01:20:38   it's not healthy in this ecosystem

01:20:42   for there to be only one monitor available

01:20:46   at a given size that has the right DPI for Apple users.

01:20:49   And that's only a fairly recent thing

01:20:52   that's really been a problem.

01:20:53   Like, you know, the XDR is the first Apple monitor

01:20:58   I've ever bought.

01:20:59   All of my desktop use before this, that wasn't an iMac,

01:21:02   you know, when I go back in a pre desktop retina time,

01:21:07   it was always with third party monitors.

01:21:08   I had some Dell monitors, I had an HP monitor,

01:21:12   I had, you know, before that I had like ViewSonic

01:21:14   and the other like kind of PC brands.

01:21:16   There's always been good monitor choices from third parties

01:21:20   until relatively recent in computing history

01:21:23   for Apple people to choose.

01:21:24   That would have the right DPI,

01:21:26   that would have the resolution that we're looking for

01:21:29   and the size we're looking for,

01:21:30   and pretty decent specs if you didn't care too much

01:21:33   about some of the stuff Apple cares about.

01:21:35   And for me, most of that was always fine.

01:21:39   I never needed super color accuracy for my programming work.

01:21:44   Like that's not something I really ever need.

01:21:47   So it's been fine.

01:21:50   I've greatly enjoyed those monitors

01:21:52   at the time they came out.

01:21:52   And it was only when we went to desktop Retina

01:21:55   that the Darth of Monitors started.

01:21:58   And even when we first got the 27 inch category of monitors,

01:22:03   there were a couple of 5K ones besides the LG Ultrafine.

01:22:10   Like, Adele had one briefly.

01:22:13   I think ViewSonic actually had one briefly

01:22:15   that maybe wasn't even available in the US.

01:22:17   But there were a couple others at launch

01:22:19   and then they just disappeared

01:22:20   and were just discontinued very quickly.

01:22:23   But I hope there are more options.

01:22:25   Like Apple should not be the only company

01:22:28   making a 5K 27 inch monitor.

01:22:32   Apple should not be the only company

01:22:33   making a 6K 30 whatever XDR is either.

01:22:37   Like there should be other options here

01:22:40   and ideally more than one

01:22:42   so we don't have the ultra fine problem.

01:22:45   But that's a sign of a healthy ecosystem.

01:22:48   And I know for various reasons, like PC people

01:22:52   kind of went in a different direction

01:22:53   with what they prioritize with monitor design,

01:22:55   and a different direction than Apple

01:22:59   with the whole high DPI, retina,

01:23:01   game frame rate kind of situation.

01:23:03   I get that, but it's really good to have more options here.

01:23:07   And so if Apple screws this up again,

01:23:11   there's somewhere else to go.

01:23:12   And if this actually ends up being better

01:23:15   than Apple's monitor in ways that are important to people,

01:23:17   like number one, I'm sure price is probably gonna be better.

01:23:20   Number two, that webcam is almost certain to be better

01:23:23   because it's so much larger, it has room for better optics,

01:23:27   better sensor and everything.

01:23:29   - And it's 4K.

01:23:31   - Yeah, right, and so I expect certain things

01:23:34   about this to be better.

01:23:35   I expect certain things about it to be worse,

01:23:38   but that's fine, it's another option,

01:23:40   and the more options we have, the better.

01:23:42   We are brought to you this week by Squarespace,

01:23:46   The all-in-one platform for building your brand

01:23:48   and growing your business online.

01:23:50   Stand out with a beautiful website,

01:23:52   engage with your audience, and sell anything.

01:23:54   Your products, content you create, even your time.

01:23:57   Squarespace makes it incredibly easy for anyone

01:24:00   to make amazing websites, especially with all

01:24:02   their great new business features.

01:24:04   So for instance, maybe your business

01:24:06   is selling content to members.

01:24:08   They have member areas now.

01:24:09   You can monetize your content and expertise

01:24:11   in a way that fits your brand.

01:24:13   Unlock new revenue streams for your business

01:24:14   and free up time in your schedule

01:24:16   by selling access to gated content like videos,

01:24:18   online courses, or newsletters.

01:24:21   Of course, you can also have online stores of Squarespace.

01:24:23   Sell any physical or digital products,

01:24:26   all with the tools Squarespace has to sell online.

01:24:29   You can have email campaigns to promote what you're doing,

01:24:32   apply your own brand ingredients like site colors and logo,

01:24:35   have built-in analytics to measure the impact of every

01:24:38   email that you send.

01:24:39   And all of this, of course, is backed

01:24:40   by awesome, powerful analytics in other areas, too.

01:24:43   You can use insights to grow your business,

01:24:45   Learn where your site visits and your sales are coming from.

01:24:48   Analyze which channels are most effective.

01:24:50   Build your marketing strategy based on your top keywords,

01:24:52   your most popular products and content.

01:24:54   All of that and so much more is available

01:24:57   with Squarespace sites.

01:24:59   They make it so easy.

01:25:00   You can see for yourself, you can build the entire site

01:25:03   with their free trial.

01:25:04   No credit card is required.

01:25:06   You can set up your entire site, test it out,

01:25:09   see how it looks, send it to other people to look at,

01:25:11   all without giving them a dime or a credit card.

01:25:14   And they are, I'm so confident you're gonna use them really.

01:25:17   They're so good, it's so easy, it's so much easier

01:25:19   than doing any of this stuff in any other way,

01:25:21   if I'm honest with you.

01:25:23   So go to squarespace.com/atp to start that free trial.

01:25:27   When you're ready to launch, use offer code ATP

01:25:29   to save 10% off your first purchase of a website or domain.

01:25:32   Once again, squarespace.com/atp to start that free trial

01:25:36   and use offer code ATP when you purchase

01:25:37   to save 10% off your first purchase of a website or domain.

01:25:40   Thank you so much to Squarespace for sponsoring our show.

01:25:43   (upbeat music)

01:25:47   Let's do some Ask ATP.

01:25:48   Eshu Marnidi writes, "How do you backup and store

01:25:51   your main Xcode project folders for your apps?

01:25:54   Just on your Mac with Time Machine, iCloud,

01:25:56   something more sophisticated, and PS,

01:25:58   does Ask ATP work on Mastodon?"

01:25:59   Let me cover the second one first.

01:26:00   No, I need to look into, so it was just an if-t-t-t-t

01:26:04   that did the scanning on Twitter for #askATP.

01:26:08   Is that even something you can do on Mastodon?

01:26:11   - It probably is, but my interpretation

01:26:13   of this question was, "Hey, can we ask questions on Mastodon

01:26:17   by addressing them to @ATPFM and get them answered?"

01:26:22   And the answer to that is, yeah, pretty much.

01:26:25   But I have, this is one of my,

01:26:26   granted, this is not a use case that Mastodon

01:26:28   probably needs to care about at this point,

01:26:30   but it is one of my use cases, so it bothers me.

01:26:33   Mastodon doesn't have full search.

01:26:37   That's a whole thing.

01:26:38   I think I have a good link on that.

01:26:39   Tim Bradis wrote a bunch about it today.

01:26:41   We should put that in the show notes.

01:26:42   I will find it for you.

01:26:44   Remind me, Casey, to get that link for you.

01:26:46   But anyway, there's no full text search.

01:26:47   You can search your own messages,

01:26:50   and you can search your favorites,

01:26:52   and you can search on hashtags,

01:26:53   but you can't do full text search,

01:26:54   and that is an intentional design decision,

01:26:56   not a technical limitation,

01:26:57   and there is much controversy about it.

01:26:59   But anyway, that is the case.

01:27:01   What that means is for someone like me,

01:27:03   I have my personal account,

01:27:05   but also I like to look at the mentions for ATP FM

01:27:09   on both Twitter and Mastodon.

01:27:11   So I can see things like people asking Ask ATP questions,

01:27:14   especially since Casey's automation

01:27:15   that automatically finds anybody who uses the Ask ATP hashtag

01:27:19   and shoves it into Google Sheet,

01:27:20   doesn't currently work with Mastodon,

01:27:22   and we'll work on getting that work.

01:27:23   But I like to look at the ATP mentions manually, and I can.

01:27:27   I have access to the ATP account.

01:27:28   We share access to that account.

01:27:30   I can have it in Mastodon.

01:27:32   I can go over that and look at the mentions

01:27:33   when I'm logged in, right?

01:27:35   What I can't do, though,

01:27:36   and what I'm used to doing on Twitter is,

01:27:40   On Twitter, I just have a saved search for @ATPFM.

01:27:43   And I can look at that saved search,

01:27:44   and now I'm looking at all of ATP's mentions.

01:27:46   I can't do that on Mastodon.

01:27:48   I have to be signed into the ATP account

01:27:51   to look at the mentions, but it's fine.

01:27:52   Again, I can do that.

01:27:53   But when I want to reply to them,

01:27:55   I want to reply to the ATP FM mentions as me.

01:27:59   I don't want to reply from the ATP account

01:28:01   because I don't feel like I'm speaking,

01:28:02   unless I'm speaking for all of ATP,

01:28:04   which is a rare occurrence,

01:28:05   I want to just speak for myself.

01:28:07   And Mastodon makes that so hard.

01:28:09   Because when I'm signed into ATP,

01:28:13   looking at the ATP mentions,

01:28:14   I see something I wanna respond to,

01:28:16   this is what I have to do.

01:28:18   Copy link to the toot, Marco.

01:28:21   - Nope, I'm not on board with this.

01:28:23   - As a URL, then I have to switch back to my account,

01:28:27   paste that URL into the search field,

01:28:29   switch to post so it finds that post,

01:28:31   and then reply to it.

01:28:32   That is a terrible process.

01:28:33   It takes way too long.

01:28:35   I just wanna be able to reply.

01:28:37   I don't know what the solution to this is,

01:28:39   'cause I understand all the decisions that led to this,

01:28:41   I understand it's a weird use case

01:28:42   to be looking at a shared account or whatever,

01:28:44   but boy is it hard to,

01:28:46   because the thing might not even be on the same server

01:28:48   as you and so if you do it in the web thing,

01:28:51   you have to, it's just, doing it in clients

01:28:54   like the various iOS clients I use,

01:28:56   some of them make this harder and easier

01:28:57   depending on how well they have integrated

01:29:00   the search and reply functionality.

01:29:02   It's weird, but anyway, if you do wanna ask

01:29:06   and ask ATP on Mastodon, human beings will look at that.

01:29:09   And if we find the question interesting,

01:29:10   we'll probably see it.

01:29:12   But the automation was really good

01:29:13   because the automation just puts them

01:29:14   into a giant Google Sheet

01:29:15   and we can browse that at our leisure.

01:29:18   So even if we missed it in the day of or whatever,

01:29:20   or noted it, but forgot to write it down,

01:29:21   it would always be in the Google Sheet.

01:29:22   So we'll work on that.

01:29:24   - Yep, so you can, like John said,

01:29:26   you can certainly ask on Mastodon,

01:29:27   but we need an automated solution.

01:29:30   And actually I was listening to upgrade

01:29:32   before we recorded and Mike was hinting

01:29:34   they have some sort of automated solution. Now he never said anything about Mastodon,

01:29:38   but I'm curious to see what they come up with and maybe I'll be able to steal it. But anyway,

01:29:44   with regard to issues, actual question, you know, how do you back up and store the main

01:29:47   Xcode project folders? I mean, I just check stuff into GitHub and I don't remember where

01:29:52   I got my gitignore, but it's like a standard issue iOS gitignore. So perhaps I'm misunderstanding

01:29:56   the question, but like other than what's in GitHub, which is enough to just download and

01:30:01   and start development, assuming Xcode is already installed.

01:30:04   I don't do anything explicit or specific for it.

01:30:08   I do have Time Machine and I do have Backblaze,

01:30:10   but I don't do anything specific.

01:30:12   So am I missing the point here?

01:30:14   I don't know, Marco, what is the correct answer?

01:30:16   - So the way I read this, is Ashu not using source control?

01:30:21   Like-- - I don't know.

01:30:22   - So my answer here is, I mean,

01:30:27   the main store for my source code is GitHub.

01:30:30   Like that's the source control store.

01:30:33   They're all private repos, which you can do.

01:30:35   - Yeah, same.

01:30:36   - So I store it there for many reasons.

01:30:39   And then the local checkouts of my code,

01:30:42   they are backed up just as any other files

01:30:46   on my computer are as part of Time Machine

01:30:49   and Backblaze and everything else.

01:30:50   - Yeah, same.

01:30:51   - Yeah, I do think it's weird that this question

01:30:53   didn't mention version control.

01:30:54   Maybe people are in the mindset where like

01:30:56   they've been heard so many times

01:30:57   if you've been around the internet,

01:30:58   RAID is not a backup.

01:30:59   like oh it's a way to redone only start data on a disk but raid is not a backup

01:31:02   you need to make separate backups because if you pose your data you also

01:31:06   on a raid it's post on your raid it's not a backup solution right as in you

01:31:11   oops I deleted it oh I want to get that back raid does not help you there maybe

01:31:14   your file system helps you there maybe your backups help you there but raid is

01:31:18   not a backup get decentralized version control is also kind of not a backup but

01:31:25   it's way more of a backup than raid for a bunch of reasons so first of all the

01:31:29   The point of decentralized version control is there's not some central server that has

01:31:32   all the data and then your client just has a portion of it.

01:31:35   When you clone a repo, the word clone is right there.

01:31:39   You've got it locally.

01:31:40   Now, it doesn't mean they're always in sync.

01:31:41   You could have a repo on your laptop, on your desktop, on GitHub, and they could all be

01:31:46   at different states.

01:31:47   They're not automatically synchronized.

01:31:48   You have to do that yourself with pulling and pushing and fetching and doing all that

01:31:51   stuff.

01:31:52   But the thing about version control that has that raid doesn't is that it keeps past versions

01:31:58   of your thing.

01:31:59   So if you screw it up real badly,

01:32:02   you can always rewind to a time when it wasn't screwed up

01:32:05   and it keeps them forever unless you remove them, right?

01:32:07   And that's not, RAID does not do that for you, right?

01:32:10   So using Git and having,

01:32:12   or any kind of decentralized version control

01:32:15   and having multiple reasonably recent clones of that repo

01:32:19   that you have some way of keeping in sync

01:32:22   is actually a pretty good backup.

01:32:23   And the GitHub thing is like, I'm trusting GitHub,

01:32:25   the big giant corporation now owned by Microsoft,

01:32:27   to mostly not lose my data, right?

01:32:30   If you wake up one day and like,

01:32:31   oh, GitHub has had a catastrophe

01:32:33   and 60% of their private repos, the data's gone, sorry.

01:32:37   Actually, I think most people, they'd grumble,

01:32:38   but most people probably have local copies of that repo,

01:32:42   local clones of that repo that are reasonably up to date.

01:32:44   In fact, their local repos may be ahead of the one on GitHub

01:32:47   'cause they haven't pushed recently.

01:32:48   So it wouldn't be as big as a disaster

01:32:51   because that's the nature of decentralized version control.

01:32:53   But having it on GitHub is in fact one,

01:32:56   it's a cloud backup, right?

01:32:57   But what Casey said is true too.

01:33:00   They're just files, like backblaze, time machine,

01:33:04   like back them up the way you back up any of your files.

01:33:06   The good thing is they're probably small files too,

01:33:08   so you don't have to worry about it.

01:33:09   So yeah, they should be in your patented backup vortex

01:33:12   where they get backed up to multiple local backups,

01:33:15   multiple cloud backups, and then throw in GitHub

01:33:18   as a second or third cloud backup,

01:33:20   because I think it counts.

01:33:22   - Sean Cameron writes, "John, how do you feel

01:33:24   "about lossy video streaming compression

01:33:26   "with your fancy new TV?

01:33:27   Platforms do offer content technically in 4K, Dolby Atmos, etc.,

01:33:31   but the streams will still be compressed lossy, and I find visible artifacts like color banding

01:33:35   all the more tragic in the context of our era of incredible TV technology.

01:33:40   With studios producing new content available streaming only, there's often little you can do

01:33:43   to avoid this until it's released on another medium. How do you manage? And have you ever

01:33:47   looked into lossless movie sources like Kaleidoscope, which claim to offer an even higher

01:33:52   bitrate than Blu-ray. You know, this is a very funny Ask ATP because I've been giving

01:33:57   a friend of mine a real hard time. He just got, actually we were talking about him obliquely

01:34:01   when you had recommended the LG and the Andrew Sony. He just got, you know, this, I think

01:34:07   he ended up with the new LG and he keeps insisting on buying Blu-rays and I keep making fun of

01:34:12   him for it because, you know, it's fidelity, fidelity, fidelity. And this is your time

01:34:16   to make me feel wrong, John, and convince me that the Blu-ray player from 15 years ago

01:34:21   that's been in my attic for 10 years should come back downstairs and be used to new.

01:34:25   Maybe not if it's a 1080 Blu-ray player. I know, I know.

01:34:31   Yeah, so getting my fancy TV that's 4K, it's my first 4K TV so I'm late to the 4K revolution,

01:34:36   but it has of course made me realize, "Oh, I have that movie and I have it on Blu-ray,

01:34:41   but it's only 1080 and it's a 4K version." And it's tricky with Blu-ray because there's so much

01:34:46   more to a Blu-ray release than just the bitrate.

01:34:50   It's how is it mastered, how is it upscaled from the lower res source if that's the case,

01:34:55   how is it color corrected.

01:34:56   That's why you see reviews of Blu-ray discs.

01:34:58   Which version of the 4K thing of this movie looks good or which one did they screw up

01:35:02   by weirdly color balancing it or whatever.

01:35:04   So you have to do your research there.

01:35:06   In terms of what my favorite YouTube channel calls "bit starved content", things that are

01:35:11   lossy compressed with bad artifacts and stuff, there actually is a difference in the television

01:35:17   you use to view it and how it handles that.

01:35:21   You wouldn't be surprised to know that upscaling non-4K content to 4K, different TVs do a better

01:35:29   or worse job of that, but even just playing content at its native resolution when it is

01:35:34   bit starved, when the bitrate is not enough to avoid visible compression artifacts, televisions

01:35:41   have ways to try to make those compression artifacts less visible and it's not even like

01:35:46   the really extreme like oh just totally massage this picture you know computational photography

01:35:51   but for video even with basically everything turned quote unquote off some televisions will

01:35:56   do things like decontouring filters at a very very low level that will show difficult gradients

01:36:03   with less banding than other televisions the one that uh HGTVs has the YouTube channel I was

01:36:07   referring to always uses is a scene from The Martian which has like a red orange

01:36:12   kind of Martian sky in the background and it's a big gradient behind Matt

01:36:16   Damon's head it's like a dark you know dark orange to light orange huge gradient

01:36:20   across the whole sky and even on blu-ray it is difficult to show some television's

01:36:26   have difficulty showing that content at a high bit rate without banding on the

01:36:31   on the gradient right it's a challenging situation to get a smooth gradient

01:36:36   across an entire 4K screen, some televisions do better than others with it.

01:36:41   That's why you watch TV reviews and find out what do I care about more.

01:36:44   Do I care about gaming input lag versus decontouring versus handling the really badly compressed

01:36:51   HBO copy of a Game of Thrones episode that's really dark and has weirdly weird flickering

01:36:55   and what is it, near black luminance overshoot.

01:36:59   Did I get that right?

01:37:00   I think I got the reverse.

01:37:01   I'm sorry Vincent T. O. for near white luminance overshoot.

01:37:05   I'm sure it's one of those two things.

01:37:06   Anyway, there's a bunch of visual artifacts

01:37:08   that you might care about that your TV has an influence on.

01:37:10   So that's why I say look at TV reviews.

01:37:12   Now, setting all that aside,

01:37:14   you do want the highest bit rate you could possibly get.

01:37:17   That's why I buy Blu-ray discs of the movies

01:37:20   that I care about the most,

01:37:21   because I don't wanna see them

01:37:22   in the movies that I care about the most.

01:37:24   And yes, you can see the difference

01:37:25   if you actually are familiar with the movie enough,

01:37:29   especially on a service

01:37:30   where either your network connection is bad,

01:37:32   or the service is having a bad day,

01:37:34   or the service just has low bit rate stuff.

01:37:36   You'll look at a particular scene and it'll be blocky

01:37:38   and it's gross and it takes you out of it.

01:37:39   If anyone ever throws confetti in your movie,

01:37:42   you should get the Blu-ray.

01:37:44   Confetti is hell on my handbag artifact, it's so bad.

01:37:48   Like the movie will look perfect up until the point

01:37:50   confetti explodes and you're like,

01:37:51   "Oh, what the heck is going on?"

01:37:53   It's bad.

01:37:53   - Like the HBO static logo?

01:37:55   - The HBO static logo is actually better

01:37:57   because your eye doesn't know, like,

01:38:00   "Ah, static is static and yeah,

01:38:01   it might look a little blocky,

01:38:02   but you're not looking for it."

01:38:03   but confetti is supposed to be individual,

01:38:05   brightly colored, like little pieces of confetti,

01:38:08   and you know that's what it's supposed to look like

01:38:09   on those macro block, it doesn't get hidden

01:38:12   like the static logo on HBO does, but yeah.

01:38:15   The problem with, of course, high bit rate stuff

01:38:18   is it's big, so I get Blu-rays for the movies

01:38:20   I really, really care about, but it is such a pain.

01:38:22   Blu-rays suck so bad, they take so long to load,

01:38:25   you gotta go through the menus, it is the worst.

01:38:27   Everyone hates Blu-rays for a reason,

01:38:28   but it's the best I can have.

01:38:29   So that's why I was saying, what about,

01:38:31   what if you just take those Blu-rays

01:38:32   rip them one-to-one, you know, no recompression, just take the data right off the blu-ray and

01:38:36   put it on your Synology.

01:38:38   I looked into that back when I had a 1080 TV and even at 1080 resolution I do not have

01:38:44   the storage to do that.

01:38:45   Someday I might, but they're big.

01:38:47   You know, 1080 blu-ray is like 50 gigs or whatever, 4K ones might be even bigger, I

01:38:51   haven't even looked.

01:38:52   I just know I don't have the storage for that.

01:38:55   Even for like the one or two movies that I care about, I just gave up, I deleted them

01:38:59   off of my Synology and I just go back to the plastic disks that they came from.

01:39:03   Someday maybe when hard drive sizes continue to get bigger and bigger and movies stay at

01:39:07   4K I will have one to one ripped version of blu-ray stuff on my Synology and I think that'll

01:39:12   be great.

01:39:13   I do now prefer the services that have higher bitrate content.

01:39:17   There is that, what was the Sony thing, the BraviaCore I think it was called, the service

01:39:23   that Sony runs that will stream you really high bitrate stuff and your Sony television

01:39:29   comes with like 10 free movies or whatever.

01:39:32   I look at that.

01:39:33   I look at HBO versus Netflix versus Amazon to see who has the better version of a particular

01:39:39   thing.

01:39:40   It's usually pretty easy to tell.

01:39:41   You just start playing it and wait a few seconds for it to snap in and see what it looks like.

01:39:46   In my experience, HBO does okay.

01:39:49   Amazon is usually the worst and Netflix is somewhere in the middle, but your mileage

01:39:52   which may vary based on the particular thing that you're watching.

01:39:55   Fair enough.

01:39:57   And then Justin Fisher writes, "What's the best way to backup a photos library to a

01:40:00   Synology? Ideally, I think I'd like a backup as a disk image,

01:40:04   open to other options as well."

01:40:05   I don't

01:40:07   backup my photo library in the sense that I think Justin's talking about. Like, my

01:40:11   photos, as I've said many, many times, the canonical version of my photos,

01:40:15   as far as I'm concerned,

01:40:17   is what's on my Synology.

01:40:19   But I don't do anything, I don't really do a lot

01:40:23   with like albums and favoriting and things like that

01:40:26   in photos and if I lost that,

01:40:28   I wouldn't personally be upset by it.

01:40:30   So I don't really do anything to back that up

01:40:32   other than to trust an iCloud photo

01:40:33   or what is an iCloud photo library?

01:40:35   John, you obviously, as you've talked many times

01:40:39   throughout the show, you spend a lot of time

01:40:41   curating your photos collection.

01:40:42   So what is the correct answer to this question?

01:40:45   - So if you just point Time Machine at your photos library,

01:40:47   I think it ignores everything that's an iCloud photo library,

01:40:50   like in terms of the photo data, or maybe just ignores

01:40:53   the entire thing.

01:40:54   But the bottom line is that the Photos library, especially

01:40:57   today, is just a bunch of files on disk.

01:40:59   So any file-based backup solution

01:41:01   ought to be able to make a 100% faithful backup of your Photos

01:41:05   library.

01:41:06   I would not suggest doing it on a disk image

01:41:08   and trying to do that yourself.

01:41:09   Even if you just backblaze it, like just an online cloud backup

01:41:12   of your Photos library, and as long

01:41:13   as you don't leave photos running all the time,

01:41:16   or even if you do, like it's just, I'm wondering

01:41:19   if you're gonna get like the SQLite databases

01:41:21   like mid update or something.

01:41:22   In general, I think like just having a file based backup

01:41:25   of your photos library to a cloud backup service

01:41:28   or anything else is fine.

01:41:29   I wouldn't go through the trouble to make a disk image

01:41:31   on your Synology and then go through that

01:41:33   because I don't think any of the metadata matters that much.

01:41:36   You just wanna make sure you're getting the file.

01:41:39   So the prerequisite to that is you would have to have

01:41:41   your photos library on your Mac set to download originals

01:41:44   so you actually have the photos.

01:41:46   If you don't have it set to download originals,

01:41:47   what you're backing up is a bunch of smaller,

01:41:49   lower resolution thumbnails,

01:41:51   and then some full-size images, right?

01:41:53   So you have to set it download originals,

01:41:54   you have to let it download all the originals,

01:41:56   then use any decent file backup solution to back it up.

01:42:00   And the reason I say don't make a district image

01:42:02   is because then you gotta mount the image,

01:42:03   which might be annoying, and then on top of that,

01:42:05   then you have to run some kind of, you know,

01:42:07   backup file synchronization thing

01:42:09   that understands Mac metadata,

01:42:10   which is actually pretty hard to find.

01:42:12   So better to just point cloud backup

01:42:14   or carbon copy cloner or any kind of basic file-based

01:42:19   backup solution at your photos library

01:42:21   and just have it backed up like any other set of files.

01:42:24   - Marco, any thoughts?

01:42:25   - Yeah, I would just use regular backup methods.

01:42:28   I would just use Time Machine.

01:42:30   Synology's host Time Machine backups really well.

01:42:33   So if you aren't already using a Time Machine Synology

01:42:36   backup, I would suggest starting to do that.

01:42:39   And then it's then included.

01:42:41   - Well yeah, but then check.

01:42:42   That's why I didn't definitively say this one

01:42:44   or the other, but I seem to recall

01:42:46   that Time Machine ignores photos in your photo library

01:42:49   if you have iCloud Photo Library enabled.

01:42:51   Yeah, so check I guess.

01:42:53   Yeah, you'll be able to tell.

01:42:54   Just look on your backup and see if your .icloud photo library

01:42:58   folder is like one terabyte or like 500 megs.

01:43:00   It should be obvious once you have lots of images.

01:43:02   Or you just look inside it.

01:43:03   Again, they're just files.

01:43:04   Like your .icloud photo library thing, it's a bundle.

01:43:07   It looks like a file in the Finder,

01:43:09   but it's actually a folder.

01:43:10   You can go into there and look at the stuff.

01:43:12   Don't mess with the SQLite databases,

01:43:14   but don't mess with anything in there,

01:43:16   but you can look at it.

01:43:17   It's just a bunch of files.

01:43:19   - All right, thanks to our sponsors this week,

01:43:21   Green Chef, Trade Coffee, and Squarespace.

01:43:25   Thanks to our members who support us directly.

01:43:26   You can join at atp.fm/join.

01:43:29   We will talk to you next week.

01:43:32   (upbeat music)

01:43:34   ♪ Now the show is over ♪

01:43:36   ♪ They didn't even mean to begin ♪

01:43:39   ♪ 'Cause it was accidental ♪

01:43:41   ♪ Accidental ♪

01:43:42   Oh it was accidental John didn't do any research

01:43:47   Marco and Casey wouldn't let him Cause it was accidental

01:43:52   Oh it was accidental And you can find the show notes at ATP.fm

01:43:59   And if you're into Twitter You can follow them @C-A-S-E-Y-L-I-S-S

01:44:09   So that's Casey Liss, M-A-R-C-O-A-R-M

01:44:14   Anti-Marco Armin, S-I-R-A-C

01:44:19   USA, Syracuse, it's accidental

01:44:24   They didn't mean to accidental

01:44:29   Tech podcast, so long

01:44:34   - Jon, a long time ago,

01:44:35   you went on an adventure with microphones.

01:44:38   And I actually did kind of the same thing.

01:44:40   Markowitz suggested to the two of us that,

01:44:43   hey, maybe it's time to upgrade our mics.

01:44:44   - No, no, no, that's not what I said.

01:44:47   - Okay.

01:44:48   - That's right.

01:44:49   The reason I put this in here is because

01:44:51   this is one of those questions we get every few years.

01:44:52   And we usually, you know,

01:44:54   we like to re-answer the same questions multiple times.

01:44:57   If you listen to the shows for years and years,

01:44:58   you know that.

01:44:59   And I think it's a useful thing to do.

01:45:00   And this is our, I don't know,

01:45:03   biannual every three years, whatever,

01:45:06   answering of the question,

01:45:07   How do you record your podcasts?

01:45:10   What kind of equipment do you use?

01:45:11   We get that question all the time,

01:45:12   but we can't answer it all the time.

01:45:13   But this is one of the times we're answering it

01:45:15   because the story that we're gonna tell here

01:45:18   is tangentially about what we use to record our podcasts,

01:45:21   but it was kicked off by Marco posting

01:45:24   to various channels that we are in,

01:45:26   hey, this microphone that I like that used to cost $700

01:45:29   is now available for $400.

01:45:32   That's a good deal.

01:45:33   You should check this out.

01:45:35   - Yes.

01:45:35   - It wasn't to us in particular,

01:45:37   was just like, this is quite a price cut.

01:45:38   700 down to 400.

01:45:40   Was it 700 to 400 or 700 to 300?

01:45:41   It was 700, I think, to 400.

01:45:43   Yeah, but anyway, that's a good deal, right?

01:45:45   And it wasn't-- what we later found out

01:45:47   is it wasn't on sale for Black Friday or something like that.

01:45:49   It was just like, this is the new lower price.

01:45:51   And so this microphone that you might have looked at and said,

01:45:53   oh, Marco likes his microphone.

01:45:55   It's $700.

01:45:55   Like, I'm not a big, big podcaster.

01:45:57   I don't need to look at that.

01:45:58   $400?

01:45:59   Like, eh, maybe, right?

01:46:00   And so when Marco posted this, both Casey and I independently

01:46:04   So I thought, hmm, you know,

01:46:06   we haven't looked at our audio setup for a while.

01:46:09   This is a microphone Marco likes.

01:46:11   It's way cheaper than it used to be.

01:46:12   And we do podcasts for a living.

01:46:15   We can justify a $400 microphone, easy.

01:46:17   Maybe seven and another one, we're like,

01:46:18   ah, current mics are fine.

01:46:19   But for $400, we should check it out.

01:46:21   So I went on this adventure, and so did Casey,

01:46:24   of getting this microphone.

01:46:25   - Without asking me.

01:46:26   - Yeah, we don't need to ask you.

01:46:27   It's not, only Casey was not blaming you for this.

01:46:30   It's not like you told us to do it.

01:46:32   I was just like, this is the thing I'd like to try.

01:46:34   It's not like I mess with my setup very often, right?

01:46:37   It's been years and years,

01:46:38   and I'll get to what my current setup is in a second.

01:46:41   But this microphone is called the Earthworks Ethos.

01:46:43   We'll put a link in the show notes.

01:46:45   It is a very nice looking, attractive microphone.

01:46:48   One of the reasons that I was interested in it,

01:46:49   in fact, had to do with the form factor.

01:46:51   My current setup is unwieldy.

01:46:53   It is, the stand is big and weird.

01:46:56   I have a pop filter.

01:46:57   It's got a little springy, what is it,

01:46:59   what is that thing called?

01:47:00   - A shock mount.

01:47:00   It's got a shock mount with little elastic thingies.

01:47:03   I've had it so long that the elastic and the shock mount

01:47:06   dried up and broke and I had to get my new elastics for it.

01:47:08   Just from existing, it dried up and crumbled to dust

01:47:11   and I got bought new elastics for it

01:47:12   like two years ago or whatever.

01:47:14   And I don't like it.

01:47:15   And this new one has an integrated shock mount

01:47:19   and is slim and, you know, an integrated shock mount

01:47:22   and a little, what is the little foamy thing called?

01:47:25   - A pop filter, effectively.

01:47:26   It's a foam windscreen technically,

01:47:28   but it serves as a pop filter, basically.

01:47:31   - Right, and so it's just a little stick

01:47:34   that you put a cable in the back of

01:47:35   and it has everything built in.

01:47:36   I'm like, that is much slimmer than what I have.

01:47:39   I would love to have that on my desk instead of this setup.

01:47:41   And hey, if Marco says this is a good microphone,

01:47:44   maybe I should try it out.

01:47:46   The main reason I wanted to bring this up is

01:47:49   this is an XLR microphone.

01:47:50   That's the type of connector that's on the back of it,

01:47:52   and there is no XLR port on the back of any of our Macs.

01:47:55   So if you wanna plug this microphone into your Mac,

01:47:57   you plug an XLR cable into the back of the microphone,

01:48:00   and then the other end of that cable plugs into something,

01:48:03   and then that something connects to your Mac.

01:48:06   And I have never had one of those somethings.

01:48:08   For the entire time I've been podcasting,

01:48:10   my entire podcasting career,

01:48:12   I have had a microphone that you plug a USB cable

01:48:15   into the microphone, and the other end of the USB cable

01:48:18   connects to my Mac.

01:48:19   And if there's one message I want everyone to get

01:48:22   from this thing, this whole adventure here,

01:48:24   is that you can be a professional podcaster

01:48:27   with a microphone that connects with a USB cable

01:48:30   to your computer and that's it.

01:48:31   You do not need a giant console with motorized faders on it

01:48:35   and a bunch of RGB lights.

01:48:36   You do not need a stream deck.

01:48:38   Do you not need a big fancy amplifier with tubes on it?

01:48:41   And also you don't need any of that stuff.

01:48:44   I record this podcast on what I think is like

01:48:46   the third microphone I've ever bought for doing this.

01:48:49   It's no longer made, which is relevant in a second,

01:48:52   but it is the Shure PG42 USB.

01:48:55   And that USB at the end, it says,

01:48:56   hey sure used to make a version of this microphone with an XLR in it but they also made a USB

01:49:00   variant and a USB cable just plugs into the bottom of this microphone and that's it.

01:49:05   That is my entire audio setup.

01:49:07   I have a microphone stand, a shock mount, the windscreen thing, this is all just physical

01:49:13   stuff.

01:49:14   It's like pantyhose stretched over a little circular thing and a fuzzy foam microphone

01:49:17   and some Kredy rubber bands that eventually rot out.

01:49:20   That's it.

01:49:21   You do not need fancy audio equipment and this microphone, I mean it wasn't cheap but

01:49:25   but it wasn't expensive. I think it was maybe like $200 or $300 back when I bought it.

01:49:28   Yeah, I think it was like $249 when it was listed.

01:49:32   And we're going to go into the details of this kind of microphone, but like I said,

01:49:36   if you want to podcast, you do not need fancy audio equipment. That said, lots of people

01:49:40   I know who podcast have fancy audio equipment, and I was like, "I kind of like that I didn't

01:49:45   have it because it makes a simpler setup." But hey, if the cost of having the slimmer

01:49:49   microphone that Marco says that he likes is that I have to deal with some of that XLR

01:49:55   stuff.

01:49:56   Why not?

01:49:57   I've got time.

01:49:58   I'm not currently messing with my setup.

01:49:59   My computer setup is fine.

01:50:01   I should go on this little adventure.

01:50:03   So I ordered the microphone, you know, and an XLR cable, and then I needed to buy some

01:50:09   kind of box.

01:50:10   Hold on.

01:50:11   Before you get to this, let me tell people about your current setup a little bit more

01:50:15   than you did.

01:50:16   I'll explain what you're going to explain in a second.

01:50:18   I just want to go through the whole thing.

01:50:19   We'll go through the story, and then we'll

01:50:21   understand why the results are what they were.

01:50:22   And I think it's a perfectly fine result.

01:50:24   But anyway, I needed a little box to connect it.

01:50:27   And the box I was looking for basically has XLR,

01:50:29   the microphone plug-in to.

01:50:31   And then I just wanted USB from that box to my computer.

01:50:33   And it would be a USB audio input.

01:50:34   There's lots of boxes like this that you can get.

01:50:36   One of the features that's been difficult for all podcasters,

01:50:40   apparently, to deal with has been a mute thing.

01:50:43   There is the cough button that Marco uses.

01:50:45   It doesn't really mute.

01:50:46   It just makes the volume really, really low.

01:50:49   but you can still hear what's being said.

01:50:51   I kind of like the full mute thing

01:50:52   and some of the more modern boxes

01:50:54   that are made for podcasters

01:50:55   actually do have a mute thing on it.

01:50:57   The one I found was called the Algato Wave XLR.

01:50:59   Had a touch sensitive full mute,

01:51:02   full digital mute button on the thing,

01:51:04   which I thought was great

01:51:04   'cause you don't hear a button clicking,

01:51:06   it's touch sensitive.

01:51:07   Like this box is ideal.

01:51:08   I also wanted to be able to adjust the bounce

01:51:11   in my headphones of my own voice

01:51:12   and the other people's voices

01:51:13   and this had that as well.

01:51:14   And so I got that one, got the microphone,

01:51:17   got everything all set up.

01:51:18   boy, it was so much smaller than the setup.

01:51:21   I was like so excited about it.

01:51:23   But of course, like being a programmer,

01:51:25   you don't just get it set up and say, we're good to go.

01:51:27   I did what you have to do is, gotta test it.

01:51:30   Gotta see, you know, don't just assume,

01:51:32   because this is a cool microphone that Marco said

01:51:35   was a microphone that he likes,

01:51:37   that it's better than your other one.

01:51:38   So I did multiple record, I put the microphone,

01:51:41   my old microphone and my new microphone

01:51:42   right next to each other and I talked to them

01:51:43   and I sent Marco the recordings and I said,

01:51:46   which one of these is better?

01:51:47   And he said, "Your old microphone is better."

01:51:49   (laughing)

01:51:50   And I was like, "Okay, maybe the box I got was wrong."

01:51:53   So I borrowed a box from a friend

01:51:54   that had like a lower noise thing,

01:51:55   'cause there was definitely some noise in this thing,

01:51:57   and did the same thing.

01:51:58   "Okay, Marco, which one of these is better?"

01:52:00   "Your old microphone is better."

01:52:02   And then I did a blind test with the old box

01:52:04   and the new box, and Marco was like,

01:52:05   "Your old microphone is better."

01:52:07   Which I was very disappointed to hear,

01:52:09   because boy, this new setup was so much nicer.

01:52:11   Like the box wasn't that big,

01:52:13   but the microphone was smaller and lighter,

01:52:15   and there was less stuff around it or whatever,

01:52:18   but always test.

01:52:20   Now, why was the old microphone better?

01:52:22   My current microphone, my old one,

01:52:24   is a large diaphragm condenser microphone,

01:52:27   which basically means that there's a big thing in there

01:52:30   that my voice makes wiggle.

01:52:32   It's literally large diameter.

01:52:36   And this is the type of microphone

01:52:38   that if you read Margot's Giant Microphone Review

01:52:39   that we'll link, he says,

01:52:41   large diaphragm, large diameter condenser microphones

01:52:45   pick up every little thing, every little noise,

01:52:47   'cause they have a large thing

01:52:49   that for air particles to whack up against, right?

01:52:53   I happen to have an acoustically nice room

01:52:55   with carpets and bookshelves and lots of soft materials

01:52:58   so you don't hear a lot of echo.

01:53:00   And so I get away with using a large diaphragm condenser.

01:53:03   Also, my voice being kind of froggy and nasal,

01:53:05   I need a large diaphragm condenser

01:53:09   to make my voice not sound awful,

01:53:11   because the only good parts of my voice

01:53:13   need to be picked up by this large diaphragm condenser.

01:53:16   And the one, the Earthworks Ethos was,

01:53:19   what is that one, Marco?

01:53:20   - It's a small diaphragm condenser.

01:53:22   - All right, so it's not a dynamic microphone,

01:53:24   which is the other kind.

01:53:25   It is a condenser microphone, but it is smaller.

01:53:27   Like the diameter of the thing that wiggles is,

01:53:31   you can tell it's smaller.

01:53:31   The microphone is small, it's physically smaller.

01:53:33   It is a smaller thing in there

01:53:35   that is wiggling back and forth.

01:53:36   And it wasn't as good at picking up

01:53:39   the nuances of my voice that need to be there

01:53:41   to make me sound slightly less like Kermit the Frog.

01:53:44   - And people overestimate or overthink

01:53:47   the difference between condenser and dynamic

01:53:49   and they attribute benefits to one or the other

01:53:52   that actually aren't a result of the pickup technology

01:53:55   and are more the result of the pickup pattern

01:53:58   or the other various characteristics of the mic.

01:54:01   But yeah, you had a large diaphragm condenser

01:54:07   that worked well.

01:54:09   And the problem with large diaphragm condensers,

01:54:12   if anybody's ever been in this podcast microphone

01:54:16   buying game, you've at some point probably tried

01:54:19   the Blue Yeti.

01:54:20   The Blue Yeti is a large diaphragm condenser mic.

01:54:23   There's a few other popular ones that are like

01:54:24   in the kind of affordable price range.

01:54:26   And the main characteristic of these is

01:54:31   they can sound amazing in a really good environment.

01:54:35   So if you have what John has,

01:54:37   which is a small room filled with soft diffused surfaces

01:54:42   like carpet, bookshelves with lots of books in them,

01:54:45   all different sizes sticking out,

01:54:47   any kind of padding or anything,

01:54:49   any kind of acoustic treatment you can get.

01:54:50   - Bay window that's on an angle.

01:54:53   - Yeah, anything that is not just like a big hard box,

01:54:56   like anything that is soft and different shapes

01:54:59   that can diffuse the sound,

01:55:00   whether it's actually acoustic foam or a bookshelf

01:55:04   or whatever.

01:55:06   And also, large diaphragm condensers are very sensitive

01:55:09   to shaking, like if you hit the desk,

01:55:12   that's why you put them in those giant,

01:55:14   suspended rubber shock mount things.

01:55:16   And they're usually very susceptible to pops.

01:55:19   When you, here I'll take mine off for a second.

01:55:21   When you say pop, pop, pop, edit,

01:55:23   you get that big bass thing.

01:55:26   When that big blast of air, when you say the puh sound,

01:55:29   when that hits the diaphragm, it goes boom,

01:55:31   and you hear that, like.

01:55:33   So anyway, they are very sensitive.

01:55:35   They do pick up everything to a fault.

01:55:38   And so if you are in good circumstances

01:55:41   and if you baby the crap out of the microphone,

01:55:43   they sound amazing.

01:55:45   I have never been able to get one of these

01:55:47   to sound amazing for me because I'm never in a perfect room,

01:55:49   but Jon for some reason is.

01:55:51   And so when he first got this microphone years ago,

01:55:55   I told him, "Oh my God, never change it.

01:55:56   "Like it's great, just don't change a thing."

01:55:59   And that's the audio way.

01:56:03   When you get something working, don't touch it again.

01:56:05   - But the reason I was interested in changing it

01:56:07   had nothing to do with the quality of the audio

01:56:09   and everything to do with just the physical reality

01:56:11   of this microphone, it is unwieldy.

01:56:13   Like all the things you said about it,

01:56:15   I would love to have something slimmer

01:56:18   and less cumbersome and just, you know,

01:56:19   'cause this, I have a double pop filter,

01:56:23   like it's two pieces of pantyhose strung over like a ring,

01:56:26   a double one of those in front of the microphone

01:56:29   which has a foam thingy on top of it.

01:56:32   So my plosives are as well arrested as they possibly can be

01:56:36   and that all adds to the bulk.

01:56:37   So you know, if it's not broken up,

01:56:41   part of it is like because they don't make

01:56:42   this microphone anymore,

01:56:43   and literally if this microphone breaks,

01:56:44   I'm gonna have to buy one

01:56:46   and then I'm gonna have to start doing research,

01:56:47   but at least now I know just to look for

01:56:49   other large diaphragm condensers I suppose.

01:56:51   - And the good thing is you don't have to do

01:56:52   that much research because large diaphragm condensers,

01:56:56   like I did this in my mic test,

01:56:57   I got a really nice one from Neumann and a couple others.

01:57:00   Large diaphragm condensers sound pretty much all the same.

01:57:05   Like there are very small differences,

01:57:07   but for the most part, across all price ranges,

01:57:11   they sound pretty similar,

01:57:12   because they have fairly flat frequency responses

01:57:16   and they don't really color the sound.

01:57:19   Like dynamic mics have a huge range of how they sound.

01:57:23   'Cause dynamic mics,

01:57:24   just because of the different ways they pick up,

01:57:27   it's almost like Instagram filters for sound.

01:57:29   like the old Instagram filters,

01:57:31   when they would significantly change the way the image,

01:57:33   you can get different dynamic mics

01:57:35   that sound radically different on the same person's voice

01:57:38   and just by the nature of how they're made.

01:57:40   Condensers are not like that.

01:57:42   Condensers largely sound the same

01:57:45   and the large diaphragm condensers in particular

01:57:48   really sound very similar to each other, all of them.

01:57:50   You can get different characteristics and pickup pattern

01:57:53   and certain built-in filters that might be on the mic

01:57:56   but for the most part, the basic pickup of them

01:57:58   is all very, very similar.

01:57:59   And so, and actually, that's what,

01:58:02   the Blue Yeti is a really great sounding microphone

01:58:05   in a really good environment.

01:58:07   But I don't recommend it to some people usually

01:58:09   because no one except Jon has a really good environment

01:58:12   to record sound, which we'll get to in a minute with Casey.

01:58:15   - Wait, what did I do?

01:58:17   I'm not in trouble, am I?

01:58:18   - Well, just to finish on my thing here,

01:58:20   I wanna say that when I sent the audio recordings to Marco

01:58:23   and he said mine sound better,

01:58:24   I could hear the difference too.

01:58:26   If he had said that but I thought they sounded the same or I sounded better I would have kept the new microphone but

01:58:31   You know, it was impossible not to hear like I was I did like as good an a/b test

01:58:36   I'm literally talking to both microphones at the same time and I could hear the difference and I had to agree

01:58:40   The old one was better as much as I hated it. I was like, oh, yeah

01:58:44   Because I had to return everything and it was annoying for multiple reasons and no one likes to go through all that

01:58:50   I mean, I I did return everything I got all the money back. It's fine or whatever

01:58:53   but it's like, boy, it was so much nicer

01:58:56   in that setup, but this one sounds better.

01:58:58   And I really do think it has to do

01:59:00   with the nature of my voice.

01:59:01   If you have like a big earthy kind of,

01:59:02   like if you have a voice that is not as nasal as mine,

01:59:05   I think the difference would be less severe.

01:59:08   I think, in fact, I think it was recommended,

01:59:10   that, hey, you should use a large diaphragm condenser

01:59:12   by someone who, by a listener,

01:59:14   who is an expert in audio,

01:59:16   who said, your particular voice, John, you, John,

01:59:19   because of the way your voice sounds,

01:59:21   you will need something like large diaphragm condenser

01:59:23   to make you not sound as bad.

01:59:26   Or apparently I could wake up at 9am because everybody loved my voice on the episode where

01:59:29   I had to wake up at 9am.

01:59:31   And I listened back to it and I'm like, "I sound congested and gravelly!"

01:59:34   And everyone's like, "Yeah, congested and gravelly, that's great."

01:59:36   No, I don't like congested and gravelly.

01:59:39   Anyway, it didn't sound as much like me.

01:59:41   But yeah, so apparently I need a large eye for a condenser.

01:59:43   They are unwieldy.

01:59:44   I continue to have one.

01:59:46   I'm glad to hear that if this does eventually break, I can find another one that is essentially

01:59:49   equivalent.

01:59:50   I don't even wanna go through that

01:59:51   because it sounds like I find an equivalent.

01:59:53   It will also be unwieldy.

01:59:55   I'll have to have the stupid shock mount

01:59:56   and it'll probably be side address instead of front address.

01:59:59   - Usually. - I'll have to have the thing.

02:00:01   Well, anyway, it is what it is.

02:00:03   - That's why I personally, for myself and for most people,

02:00:08   recommend small diaphragm condensers

02:00:10   that are usually in the form of stage microphones.

02:00:12   And in fact, this Earthworks Ethos, I think,

02:00:14   is the first one I found that was not,

02:00:16   that was also otherwise good.

02:00:17   And I usually recommend supercardioid pickup patterns.

02:00:19   And what that means is like, it only picks up like,

02:00:22   a very kind of narrow shape in front of the microphone.

02:00:26   And if I move off to the side here,

02:00:27   I'm moving off to the side now, I get quiet very quickly.

02:00:30   And if I come back to the front,

02:00:31   it's kind of loud again.

02:00:32   So the idea there is the kind of sharper the shape is

02:00:36   that it's picking up within, the less room echo

02:00:40   and background noise it is likely to pick up.

02:00:42   Now, it doesn't work miracles, as with Casey,

02:00:45   it doesn't work miracles, but generally speaking,

02:00:49   like the small diaphragm stage condensers,

02:00:51   like the Beta 87A or the Neumann KMS 105,

02:00:55   and now this Earthworks Ethos that I found,

02:00:58   they are way more practical for most podcasters,

02:01:02   just because most people don't have perfect rooms

02:01:05   in perfect conditions all the time,

02:01:07   and they minimize background noise better than most.

02:01:10   Whether you go dynamic or condenser,

02:01:13   the supercardioid pickup pattern

02:01:14   is one I strongly recommend.

02:01:16   And in fact, Casey's mic is a super-cardioid dynamic.

02:01:19   It's the Shure Beta 58A.

02:01:22   I recommended this to him forever ago.

02:01:24   Basically what happened was, a long time ago,

02:01:27   when John got his new microphone,

02:01:29   he by comparison made Casey and I sound like garbage.

02:01:34   And so we were like, all right.

02:01:35   - This cannot stand.

02:01:37   - Yeah, it's like, John, all of us,

02:01:38   like we were using, I was using the Rode Podcaster,

02:01:41   which is like what all the 5x5 and TWiT people got

02:01:44   a million years ago.

02:01:45   And by today's standards, it was garbage.

02:01:49   But back then, it was fine.

02:01:51   But then once John steps up,

02:01:52   it's like a nice large condenser.

02:01:55   We said it like crap by comparison.

02:01:58   So, you know.

02:01:59   - Well, I had a sure something or other for a long time.

02:02:02   And then after that,

02:02:05   I think I have this on my website somewhere.

02:02:07   But anyway, after that, I got the,

02:02:08   what is this, the 58a?

02:02:09   I don't even remember.

02:02:10   - The beta 58a is what you use now.

02:02:12   - Yeah, and this has been working pretty well for me.

02:02:14   And the short, short, short version of the story for me

02:02:17   with regard to the Earthworks ethos is that

02:02:20   I did the exact same thing that Jon did.

02:02:21   Oh, that's a good deal, I'm a sucker for a good deal.

02:02:24   I'm a professional now, I should give this a shot.

02:02:26   And I did, and Marco immediately said,

02:02:28   oh, absolutely, absolutely not,

02:02:31   that is not gonna work for you.

02:02:33   - Oh my God.

02:02:33   - Real time follow up, it was the SM7B,

02:02:35   and then, like you said, now I'm on the 58A.

02:02:38   - Oh, I hate the SM7B so much.

02:02:40   I tried to make it work, I bought one myself

02:02:42   'cause I was duped like everyone else who buys them.

02:02:44   "Oh, this is a radio classic.

02:02:45   Michael Jackson recorded Thriller on it, ugh."

02:02:48   Oh my God, what an overrated microphone that is.

02:02:51   I tried for a long time, I spent a ton of money

02:02:54   trying to make that thing sound good.

02:02:55   And it turns out it's not that great by modern standards.

02:02:58   It was great when it came out.

02:03:00   That was a very long time ago.

02:03:02   We have better options now.

02:03:03   Yeah, so what happened when Casey tried my new microphone,

02:03:06   the Earthworks Ethos, that was now discounted.

02:03:09   When he tried it, I'm like,

02:03:11   what is all this background noise?

02:03:13   Like, are you running like a fan?

02:03:15   Like, are you in a fan factory?

02:03:17   What is going on there?

02:03:19   And you're like, oh yeah, well, you know,

02:03:21   I'm running these 14 fans in the room,

02:03:23   but I always run them.

02:03:24   You never hear them before.

02:03:26   - That's mostly true.

02:03:27   It is not 14 fans, but typically,

02:03:29   I had a ceiling fan on for like 98% of the run of ATP,

02:03:34   and this has actually stopped in the last month or two,

02:03:36   because it was like a month or two ago

02:03:39   that I guess it just had a little bit of a jiggle to it,

02:03:42   ceiling fan and Marco blew a gasket which if I were in your shoes I would

02:03:46   have blown a gasket. What is this ticking? What is this ticking? What is it? What are

02:03:50   you doing? It sounded like a bomb was gonna go off. It's like when

02:03:56   the little chain of a ceiling fan is a little bit rattly and the fans going

02:04:00   you hear "tik tik tik tik tik" just all the time and he's talking in the background "oh my god I'm

02:04:06   like what I'm like this is you we can't use this like this is totally unusable."

02:04:09   - Yeah, and so I was, it was immediately verboten

02:04:13   that I ever turn the ceiling fan on,

02:04:15   which is, I've honored your request ever since.

02:04:19   Now, instead, I have a fan blowing at my legs

02:04:21   under the desk, which apparently is okay

02:04:23   and makes a lot less noise.

02:04:24   But anyways, but yeah, Marco immediately said,

02:04:27   "Oh my gosh, this is completely unacceptable."

02:04:29   And let me remind you, I think I've told this story

02:04:30   more than once because it still blows my mind,

02:04:32   but like a year ago or thereabouts,

02:04:35   I think I had like a video call for some reason,

02:04:37   this was after I was independent,

02:04:39   I had a video call for some reason,

02:04:40   and I had closed the closet doors behind my desk.

02:04:44   So my desk faces one wall.

02:04:46   On the opposite wall, on the other side of the room,

02:04:48   there's one of those like accordion closet doors.

02:04:51   And I closed them and I'd forgotten to reopen them

02:04:53   during the recording.

02:04:54   And the following day, whenever you went to do the edit,

02:04:57   you're like, "Mm, yep, yep, something's wrong.

02:04:59   "Something ain't right here."

02:05:01   Marco, what are you talking about?

02:05:01   I did nothing different.

02:05:03   Everything is identically the same.

02:05:04   And I went back and forth for a few minutes,

02:05:06   and I was like looking around the room,

02:05:08   wondering like, "What did I do?"

02:05:11   And then I looked all the way behind me,

02:05:14   and sure enough, the closet doors were closed,

02:05:15   and I was like, "Well, the closet doors were closed?"

02:05:20   And, oh, that was it, yep, sure enough.

02:05:22   And I have also never, ever, ever recorded

02:05:24   with the closet doors closed ever since, so.

02:05:27   - Make sure you don't take their clothes out of the closet,

02:05:29   'cause that is the function, right?

02:05:31   You gotta leave the clothes in there, too.

02:05:32   - That's right, and my point is, you know,

02:05:34   Marco has a pretty good ear for these sorts of things,

02:05:37   And yeah, apparently the Earthworks Ethos

02:05:40   was not a good fit for either of us.

02:05:43   - Yeah, 'cause in John's case, it wasn't sensitive enough,

02:05:45   because typically the difference between

02:05:47   a small condenser like this and a large condenser

02:05:49   is the high frequency pickup.

02:05:51   Like usually there's a substantial roll off

02:05:54   in high frequency pickup for any kind of smaller mic,

02:05:57   including small condensers, and large condensers

02:06:00   basically have like relatively flat pickup,

02:06:02   and in fact sometimes even boost the high end.

02:06:04   And so the large sensors pick up,

02:06:07   everything above 10 kilohertz or whatever,

02:06:10   large sensors are way better at picking up usually.

02:06:13   So all that high frequency crispness

02:06:15   that makes John sound awesome.

02:06:16   And if you're a professional voiceover artist,

02:06:19   you're probably using one of these.

02:06:21   If you're really trying to capture

02:06:22   a really high quality voice,

02:06:24   that's what you should be using most of the time.

02:06:26   But for podcasting, again, when you wanna pick up,

02:06:30   sometimes you wanna pick up less detail for various reasons.

02:06:32   Like whether you wanna minimize the harsh sss,

02:06:35   like sibilance sound, or the high frequencies sss,

02:06:39   like that can be very harsh sounding.

02:06:41   So whether you're trying to minimize that

02:06:42   with certain mics, or just trying

02:06:43   to minimize background noise.

02:06:45   And Casey's mic is actually pretty insensitive.

02:06:49   Like in terms of how much power it takes

02:06:51   to generate a signal, it's actually pretty efficient

02:06:53   'cause it uses modern NIB magnets.

02:06:56   But the, like how much it picks up around it,

02:06:59   it's a pretty insensitive dynamic mic.

02:07:02   So the only reason I would ever suggest Casey upgrade his mic

02:07:06   is because Casey has a wonderful voice

02:07:08   and a voice that I think would be compatible

02:07:10   with almost any mic.

02:07:11   And in fact, if you ever heard any of our live shows,

02:07:14   I always brought to the live shows three Neumann KMS 105s.

02:07:18   That's what we use for those.

02:07:19   So it's three of my mic basically.

02:07:21   Like I would always just bring three of those

02:07:24   and so that you could hear them,

02:07:25   I mean, it's a little bit different environment there,

02:07:27   but you could hear the voices

02:07:28   and it sounded a little bit different.

02:07:29   And so I would love for Casey to have like, you know,

02:07:31   a better mic at some point to get more of that

02:07:34   glorious, casey-less voice.

02:07:36   But he needs a mic that's incredibly insensitive

02:07:39   to make up for his ridiculous fan factory that he podcasts.

02:07:42   - Oh, stop it, all his fans,

02:07:44   and his glass of water with ice in it,

02:07:46   and his technology running two feet away from his desk.

02:07:49   - Right, meanwhile, John accidentally created

02:07:52   a perfect recording studio with his home office.

02:07:54   And so he's great with a large condenser--

02:07:56   - And I do think I need it for my voice,

02:08:00   That's where I get to tell, there's not much,

02:08:02   if you take out the highs in my voice, it gets way worse.

02:08:05   Like Casey has a more normal voice

02:08:08   and I think a lot of radio, the radio sound is more

02:08:10   about the mids and the lows than the super highs, so.

02:08:13   - Yeah, and Casey and I both need to be careful

02:08:16   about our siblings, that high end,

02:08:18   we both have like a strong siblings in our voices.

02:08:22   - Right, I mumble too much for that.

02:08:24   - Right, yeah. (laughing)

02:08:25   So we both have to use mics that actually have

02:08:27   less high end pickup and you know, a lot of this,

02:08:29   I fix a lot of this with EQ,

02:08:31   like I EQ all of our voices as part of my process,

02:08:33   but you know, sometimes EQ can only do so much

02:08:37   when the microphone is sometimes just not even

02:08:39   picking up certain frequencies.

02:08:41   - Yeah, you can't EQ what's not there, so.

02:08:42   - Right, right, and the mic can get you

02:08:44   a lot of the way there.

02:08:45   Anyway, so, turns out we all have very different setups

02:08:50   for good reasons, and yeah, when you get it working,

02:08:54   don't touch it.

02:08:55   - Kind of like you wish you could use the AirPods

02:08:57   back when you can use them,

02:08:58   I wish my voice was compatible with that microphone

02:09:00   'cause it was so nice.

02:09:01   It's a really nice look.

02:09:02   It's the first microphone that I thought is nice looking

02:09:04   'cause it looks kind of like the, you know,

02:09:06   the shock, not the shock, the flash tube.

02:09:11   You remember old cameras from like, you know,

02:09:12   black and white movies where there'd be someone

02:09:14   holding a camera and there'd be like a vertical tube

02:09:18   that led to the giant flash.

02:09:19   You'd hold the camera with like one hand on the camera,

02:09:21   one hand on the big vertical tube that led to the flash.

02:09:24   That flash tube is what Luke's lightsaber in the first Star Wars is based on.

02:09:31   They took that tube and added a bunch of crap to it.

02:09:33   So that big flash tube, it's just a big silver tube, that's what this microphone looks like.

02:09:37   It looks like that flash tube only instead of adding lightsaber stuff to it, they added

02:09:41   a really cool looking little ball joint microphone thing to it and an XLR to the bottom and a

02:09:45   fuzzy sock on the top.

02:09:47   I endorse the Earth, Earth, and Ethos at its new price of $400 as long as your voice doesn't

02:09:51   sound like mine.

02:09:53   as long as you are not in a fan factory.

02:09:55   Yeah.

02:09:56   It's not a fan factory coming out.

02:09:59   Sorry, a bomb factory.

02:10:01   But only the cartoon bombs with the alarm clocks on them.

02:10:03   It's one or the other. You have to choose.

02:10:05   You have to choose what the factory's producing.

02:10:07   It's either a bomb or fans. One or the other.

02:10:09   (beeping)