One of My Fits of Rage
Marco:
I sound a little bit bad this week because I'm a little bit sick, because everyone's a little bit sick, because, oh my God, everyone is sick.
Marco:
Like, this might be, you know, anecdotally speaking, the most people I've ever heard of being sick at the same time, everyone is sick right now.
Marco:
And it's not all, you know, most of it's not COVID, fortunately.
Marco:
A lot of it is just like, you know, mild colds here and there, occasional flus here and there, but just everyone is sick.
Casey:
Yeah.
Casey:
Michaela has been fighting a cough.
Casey:
She's been COVID tested, you know, once or twice, and it doesn't seem to be that.
Casey:
She woke up today complaining of an earache.
Casey:
And so fast forward three hours, she's getting treated for an ear infection.
Casey:
You know, our kids were sick over Thanksgiving.
Casey:
Again, not COVID as far as tests and as far as we know.
Casey:
Yeah, I agree with you that it seems like everyone is making up for lost time, unlike general illnesses.
Casey:
It's not, like you said, it's not necessarily COVID, although it's certainly plenty of that going around.
Casey:
But just even general illnesses, there seems to be plenty of it at the moment.
Marco:
And the good news is that it seems like the most common thing I hear about is people who just have like mild cold symptoms for a week or two at the most, which is really annoying.
Marco:
In fact, I'm currently on, I think, my second one of those for the season.
Marco:
It's annoying, but, you know, it could be a lot worse.
Marco:
It has been a lot worse.
Marco:
So, you know, it's good that it's all mild.
Marco:
So everyone is just kind of like mildly annoyed with sickness for this whole winter, which is...
Casey:
you know again could be worse but that doesn't make it any less mildly annoying yeah what are you gonna do uh by the way i don't think it made it into the release recording maybe it did but as we were hanging up so not as the i don't think it was when the the live broadcast was ending but as the three of us were hanging up on zoom uh marco sniped me
Casey:
and wished John a happy birthday in advance.
Casey:
And it had completely slipped my mind last recording.
Casey:
But I will now take credit for this one and say happy birthday, John.
Casey:
I hope your birthday was wonderful and your carrot cake was delicious.
John:
Thank you.
John:
We're still working on the carrot cake.
John:
Still some left.
Casey:
Oh, I thought you meant this and it hadn't arrived yet.
Casey:
I was like, what are you talking about?
Casey:
I thought Tina and Kate made that for you every year.
Casey:
I misunderstood.
John:
Those are the questions.
John:
Should we make the full-size cake?
John:
I said, yeah, make the full-size cake.
John:
Would you ever not make the full-size cake?
Marco:
For just four people, it's a lot of cake, but I think we're up to the task.
Marco:
I mean, carrot cake.
Marco:
So this is one of those things, you know, I hate to admit that you're right.
Marco:
Carrot cake is awesome.
Marco:
Like I love carrot cake.
Marco:
I, I, I'm even, I'm going to your pizza place tomorrow.
Marco:
Like it sucks when you're right this much, but the carrot cake is relatively new birthday thing.
John:
I mean, you, I think, didn't we, I think Tina made it when we were at, at underscores.
John:
Right.
John:
That's right.
John:
Right.
John:
So that's, I mean, that's not the first time we had it, but that was when the tradition was relatively new.
John:
So that's about the age of this.
John:
Like, I don't know, like 10 years, 12 years, 15 years, I guess.
John:
That's relatively new when you're an old person.
John:
And it's not just carrot cake in general.
John:
It's that specific recipe.
John:
I forget who it is.
John:
Maybe it's Ina Gardner or whatever.
John:
It's a carrot cake, and it's got things in it that people may find controversial.
John:
One, it's got raisins in it.
John:
I know a lot of carrot cakes have raisins in it.
John:
I think they're good.
John:
And two, it's got pieces of pineapple in it, which maybe you haven't seen in a carrot cake before, but I think works really well.
John:
And then three is just cream cheese frosting.
John:
Carrot cake with cream cheese frosting.
John:
It's a classic combo.
John:
Whether you want the...
John:
raisins or the pineapples you know you can adjust that but i feel like that combo is uh overlooked um and this is literally the one time a year i have it i would get sick of it if we had it all the time but most of the time people are making cakes or cupcakes or whatever they're making chocolate or vanilla cake or whatever it's just my birthday carrot cake that's the pineapples are really good and really interesting idea the raisins i could see why that would be controversial pineapple though that could be that could be really nice
John:
It keeps the cake moist, I think.
John:
I mean, the first time she made it, I'm like, are these dried pineapples?
John:
But they're not.
John:
It's fresh cut pineapple, bits of fresh cut pineapple.
John:
And they cook in the cake and like the pineapple gets dry, but the cake gets moist.
John:
So they even out.
John:
So it's not like they're hard pieces of, you know.
Marco:
pineapple in there but the cake is very moist as well it's good okay yeah because like i'm i i've recently i think i talked about this before i've recently honed the skill of choosing good pineapples at the grocery store um and so now like i'm able to fairly reliably buy pretty decent to great pineapples so of course i'm always looking for ways to use them and that's uh that's a that's a good one i should try that
John:
I think this is it.
John:
I mean, I think we've passed around the recipe before.
John:
I'll double check for the show notes.
John:
But Ina Garten, not Ina Gartner.
John:
Sorry, I get her name wrong all the time.
John:
And we don't put pineapples on top like this shows.
Marco:
No, well, that's a different thing.
Marco:
That's an upside down cake kind of thing.
John:
No, no, look at the picture.
John:
Like it's cream cheese frosting, but then they put bits of pineapple on top and we don't.
Casey:
Oh, that's interesting.
Marco:
Yeah, that could just be like an indicator.
Marco:
It's like this warning, this cake contains pineapple in case for some reason you have terrible taste and don't want that.
Casey:
I am actually not a pineapple fan.
Casey:
I wish I liked it, but it is not for me.
John:
Like I said, easy to leave the pineapple and the raisins out of this.
John:
Then it just becomes a more boring carrot cake.
John:
But, you know, plain old boring carrot cake with cream cheese frosting.
John:
It's one of the classics.
Casey:
So what was your cake preference before this thought technology entered your world?
Casey:
I don't think I had one.
Marco:
No cake, no presents, no party.
Marco:
That remains.
Marco:
That remains.
Casey:
Fair enough.
Casey:
Now, I'm a fan of just boring boxed chocolate cake with- You're a cheap date, Casey.
Casey:
Yes, I am.
Casey:
I know everyone's surprised by this.
Casey:
But just chocolate cake with vanilla icing on the top.
Casey:
And the best thing, it's like lasagna.
Casey:
After you have a little bit, you refrigerate it, come back to it the next day, and the icing is just a little bit crunchy and-
John:
I don't think I've ever heard anyone say that about boxed cake mix, but okay.
Casey:
I'm saying it's true.
Casey:
Try it out.
Casey:
After you try your Velveeta.
John:
No, I mean, I've had leftover boxed cake mix.
John:
It's not like that.
Casey:
I just feel like it's... I think it's more about the icing than it is the cake, if I'm honest.
John:
You like it to get hard and crusty?
Casey:
Yeah, yeah, yeah, yeah.
Casey:
Yes.
Casey:
Oh, yes.
Marco:
Have you ever tried combining your loves and maybe putting a layer of Velveeta mac and cheese between the cake sponge layers?
Mm-hmm.
Casey:
Okay, we got to move on.
Marco:
I'm sure it could be done.
Casey:
All right, let's do some follow-up.
Casey:
Amy Lee writes, I loved the recent conversation around the copyright implications of AI-generated art, and there was some hypothetical discussion of how you'd feel if you were an artist, and your art was used to train these models.
Casey:
I was surprised that something like GitHub Copilot wasn't in the conversation, as Copilot is probably the closest coding equivalent we have to stable diffusion.
Casey:
If you have any open source code on GitHub, it's likely been used by Copilot, and in a way that doesn't necessarily respect the license applied to the code.
Casey:
OpenAI used all the public code they could find, regardless of license, and used it to train the model.
Casey:
This is quite similar to their approach with training on art.
Casey:
A hypothetical for this case would be, what if it was also allowed to train on closed source code on GitHub?
Casey:
How would you feel if your code was used in this model, even though you never publicly released it or gave it a license to others?
Casey:
That's potentially just a contract away between GitHub and OpenAI.
Casey:
No fancy decompilation needed.
Casey:
This was, I think, a very, very interesting point.
Casey:
I really was flummoxed once I read it.
Casey:
I don't think I have any problem with my open source stuff being sucked into like, you know, Copilot or Stable Diffusion or what have you.
Casey:
But I would not feel good about closed source stuff ending up there just on principle.
Casey:
Like that's my private stuff.
Casey:
Yes, it exists on GitHub, but that's not GitHub stuff.
Casey:
That's my stuff.
Casey:
And I would not feel good about that at all.
Marco:
To me, that's the line.
Marco:
If you have private repos, those should remain private to you in all ways.
Marco:
Not only exposure to the files for people to see, but also training.
Marco:
To me, that's an obvious line.
John:
Yeah, I completely agree with you.
John:
I think the weird thing about copiloting code stuff... Well, there's two weird things about it.
John:
One is...
John:
My impression, based on seeing many examples of Coppola and trying myself, is that the odds of it producing a snippet of code verbatim from its source is much higher than with any of the AI image stuff.
Casey:
Yeah, that's a good point.
John:
You know what I mean?
John:
Like sometimes people I've seen people say, hey, this is like literally my paragraph of code for doing this thing.
John:
Right.
John:
Right.
John:
Right.
John:
Right.
John:
explicitly again arguably all existing open source licenses do address it in some way that has yet to be tested in a court right because you can say well i can look at the existing rules and decide whether i think this falls within them or not but it would be much simpler if you could just explicitly uh put it in there and i and i same thing with the copyright stuff i feel like this should be something that uh you know if you're training a an ai model on code you should be using code that you're pretty sure you're allowed to use for the purposes of training an ai model
John:
model and so obviously a very very open open source license may be do that because it may say hey you can use this code for whatever you want you don't have to credit us you don't have to pay us you don't have to do anything like the broadest of broadest open source licenses that's probably game right now but the more restrictive ones you know that requires credit or if it's a copy left thing or whatever using that to trade an ai models is still questionable and the second thing is unlike with image training things or whatever the results you get from copilot is
John:
is not immediately useful, let's say.
John:
We talked about this before.
John:
You can't just take code generated by an AI thing and say, I assume this works.
John:
You have to actually figure out whether it does what you wanted it to do.
John:
It's a really important part of programming, not just writing the code the first time, whether you write it yourself or an AI thing writes it.
John:
Then you have to figure out if what you wrote does the thing that you wanted it to do.
John:
And that's the hard part of programming, right?
John:
arguably it's harder when some other thing wrote the code for you, especially if it's complicated and you don't understand it.
John:
But either way, it's difficult.
John:
And so it's not like people are going to co-pilot up a thing and say, and I'm done.
John:
No, you're not even close to done.
John:
You have to now say, okay, I co-piled up 10,000 lines of code.
John:
Figure out if those 10,000 lines of code come close to doing what you wanted them to do.
John:
Uh, and that's, you know, at the micro level, does this paragraph do what I wanted to do?
John:
And at the macro level, does the program do what I wanted to do?
John:
That is incredibly difficult.
John:
Whereas if an AI art thing comes out and you say, I like it fine, it's done.
John:
Like it's not, it's not functional in that way.
John:
It's like, it's not like the people are going to look at the image and their eyes are going to explode.
John:
Right.
John:
But that's the equivalent of that could happen.
John:
If you have code that doesn't do what you want and you run it and just absolutely doesn't do what your program is or crashes or does something like that.
John:
So, uh,
John:
um it is it is interesting um and there is there are similar issues but code is so fundamentally different than you know uh than images or something something that tells another machine what to do and that presumably has some kind of uh correctness uh you can say whether it does what i intended or not is a little bit different than something that just someone has to look at and say i find that acceptable therefore i'm done
Casey:
Yeah, I agree with you that the open source license should, you know, prevent this or may prevent this sort of thing from happening.
Casey:
I'm just saying I'm personally not particularly bothered if that was subverted or ignored or what have you for open source stuff.
Casey:
But yeah, I find it really gross for closed source stuff.
Casey:
Even leaving aside what you're saying, John, that, you know, it's not exactly an apples to apples comparison.
Casey:
But yeah, I thought this was a really interesting point for me, nevertheless.
John:
Yeah.
John:
The closed source thing of like, have any of us read the user agreement for GitHub?
John:
It could be already in the user agreement for GitHub that we have allowed GitHub by agreeing to that thing and putting our code on there that they're actually allowed to make a contract with OpenAI and say, hey, we're allowing them to use your closed source.
John:
Of course, if they did that, they could say, well, you agreed to these terms, then we just take our code off GitHub, right?
John:
I think that would be a bad move for them.
John:
But I'm assuming none of us have actually ever read in full the terms for GitHub.
John:
So that's
John:
That's just, you know, centralization and having large, powerful players in the market.
John:
That's why that's bad.
John:
And to be clear, I don't think GitHub is some kind of monopoly on Git or whatever.
John:
Like, if GitHub did that, people would take their closed source stuff off GitHub.
John:
You know what I mean?
John:
Yeah.
John:
There is enough of a competitive market.
John:
They are not the only place that can host Git stuff.
John:
And Git being decentralized, you don't need any one single place to host anything.
John:
So we're pretty well protected technologically from this.
John:
Hopefully GitHub would be smart about this.
John:
But the counterexample is, well, GitHub wasn't particularly smart with the rollout of Copilot in terms of what they use to train it and compliance with the licenses.
John:
I think when they first rolled it out, they were just like, everything's fine.
John:
And they're like, wait a second.
John:
My open source license says X, Y, and Z. And it definitely says you can't use it for something like this.
John:
Did you use my code?
John:
It seems like you did.
John:
And I think since then, maybe they've adjusted and said, okay, we will honor the license set on your repo and only use the ones that we think we're allowed to use according to the open source license or whatever.
Casey:
Yeah, I should have been more explicit, by the way.
Casey:
GitHub Copilot is a thing where you can start typing code in one of the many supported languages.
Casey:
And based on what you type, it will try to figure out what it is you really want and then go ahead and figure
Casey:
fill out your code for you.
Casey:
So for basic operations like a database like CRUD, for example, it can get stunningly close from what I've understood.
Casey:
I haven't really played with this myself, but my understanding is it can get just bananas close to what you would actually write if you were to write this out by hand.
Casey:
And for tedious, like busy work, of which there's a fair bit in programming, that's actually super duper cool.
Casey:
But it certainly...
John:
It's not cool, but then you have to read a paragraph of code you didn't write and say, does this really reverse a string?
John:
Like whatever trivial thing.
Marco:
That's the thing.
Marco:
It seems like a subtle bug factory.
Marco:
Are you actually saving time?
Casey:
I don't know.
Casey:
Maybe not.
Casey:
Again, I haven't really played with this.
John:
That's why I feel like the thing that people do that is different than this, having a computer do it for you,
John:
when you're a programmer, is not that much more helpful than you going and looking up something, whatever it is.
John:
Look it up in Stack Overflow, and people say, oh, people just copy and paste everything from Stack Overflow.
John:
But Stack Overflow has someone explaining the code to you, and people may copy and paste it, but a lot of times what they do is rewrite it by looking at Stack Overflow, and that's a process of understanding, hopefully.
John:
Hopefully you're not just blindly like, well, I don't understand this at all, but I'm just going to copy and paste this paragraph of code from Stack Overflow.
John:
But even that, copying and pasting code from Stack Overflow,
John:
I feel like has a higher chance of success if it's a highly rated answer on a well-trafficked question.
John:
That code probably has a better chance of being correct than the AI-generated equivalent, unless the AI-generated equivalent is verbatim from somebody else's code, because there's not a lot of...
John:
you know mix especially for trivial code mixing and matching like what are they going to do rename the variables or something like half what half what people do when they copy from stack overflow but if it takes any sort of deviance from this like there's not a lot of room for riffing right like it either it either has an off by one error in the loop or it doesn't right either correctly reverses strings of all possible links or it doesn't right it handles the the zero length case or it doesn't you know it's
John:
It's kind of an open shot on the micro level.
John:
On the macro level, things get hairier, and then it's not like you can ask it to write an entire program for you.
John:
But you kind of can.
John:
You can say, Space Invaders, and it's like, here's an entire Space Invaders game in JavaScript, and it's not really Space Invaders, and it kind of crashes sometimes, but it mostly works.
John:
So, yeah.
John:
Again, it's different with code, because it's not just like, I look at the code, and I'm happy.
John:
You have to actually run it, and it's in the running where you find out, does this actually work?
Casey:
Fair enough.
Casey:
John, tell me about Chickpit.
John:
um yeah we're talking about uh data uh a bit rot uh on the last episode uh someone had a question about it and there are lots of programs that can do one of the steps that we talked about which is detect whether there are other errors some file systems do it for you some operating systems do it for you sometimes you can use a program outside of the operating system to do it for you and here's one i don't think i had heard of last time we discussed this so i thought i would uh 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
John:
But if you want to check it out, it's written in Python.
John:
It's called C-H-K-B-I-T, which I'm assuming is short for Checkbit.
John:
And as the website says, it's a lightweight tool to check the data integrity of your files.
John:
It allows you to verify that the data has not changed since you put it there and that it's still the same when you move it somewhere else.
John:
It just basically makes .directories and writes lots of checksums in it.
John:
This is actually kind of a fun project for, like, a beginning programmer to, like...
John:
to become a little bit more seasoned because you're like, oh, this is easy.
John:
I know how to read a file and get a checksum.
John:
I know how to make a directory.
John:
And I know how to read and write files and check that, you know, like it seems like, oh, I can do all those things.
John:
I'm a beginning programmer.
John:
I have all the tools I need to do this.
John:
If you then go and try to implement
John:
a program like this even though you think you know how to do you know you can copile it up every single one of those individual steps you will very very quickly become a not so beginning programmer as you realize all the weird things you didn't consider about real people's disks and what are the actual performance bottlenecks to make this unfeasible and how much of a pain is it and what kind of weird errors do you get from the operating systems and what are sparse files and what are hard links and what are sim links and what are permissions and what is sandboxing and you will learn so especially if you try to do this on a mac
John:
You will learn so much so fast, probably that you never wanted to know.
John:
And if you don't find that exhilarating, you probably don't want to be a programmer.
John:
But presumably the people who wrote Checkbit have done a bunch of this work for you.
John:
So if you just want to use something to check some of your files, this is one of many, many options.
John:
It's just one I hadn't heard of before, so I thought it was worth linking.
Casey:
You are clearly not a child of the 90s like I am.
Casey:
You think you know, but you have no idea.
Casey:
What was that, MTV Diary, something like that?
Casey:
I forget.
Casey:
It's True Life.
Casey:
I don't know.
Casey:
Some MTV show I used to love.
John:
Probably True Life.
Marco:
We are sponsored this week by Green Chef, a CCOF-certified meal kit company.
Marco:
Green Chef makes eating well easy with plans to fit every lifestyle.
Marco:
Whether you're keto, paleo, vegan, vegetarian, gluten-free, or just looking to eat more balanced meals, Green Chef offers a range of recipes to suit your preferences.
Marco:
And in fact, you know, we previously were sponsored by HelloFresh.
Marco:
Green Chef is now owned by HelloFresh.
Marco:
And the wider variety of meal plans to choose from, there's something for everyone.
Marco:
So if you're looking to start a keto diet in particular in this new year, Green Chef's making it easier than ever to keep keto with their brand new limited time keto kickoff 2023 with keto recipes for breakfast, lunch, and dinner, plus meal bundles with the green market.
Marco:
Keep keto the easy and delicious way.
Marco:
And of course, they also just have tons of other variety.
Marco:
They've expanded their menu recently.
Marco:
You can now choose from 30 weekly recipes with the option to mix and match meals from different dietary preferences all in the same box without changing your plans.
Marco:
So if you want to do vegan one day, keto the next, you can do that.
Marco:
They're offering more customization than ever before.
Marco:
You can also swap protein in any meal that features chicken, beef, or salmon for USDA certified organic ground beef, USDA certified organic chicken, or wild caught sockeye salmon.
Marco:
You can also now add chicken or fish to select vegan and veggie recipes each week for an added protein boost.
Marco:
There are just so many great options with Green Chef.
Marco:
They're also now offering 10-minute lunches.
Marco:
Each week's menu includes two convenient, low-prep, and nutritious lunch recipes ready in just 10 minutes.
Marco:
No cooking required.
Marco:
So it's perfect for when you are on the go or pressed for time at the office.
Marco:
You can eat well at lunchtime, too.
Marco:
So check it out at greenchef.com slash ATP60.
Marco:
And use code ATP60 to get 60% off.
Marco:
That's a ton.
Marco:
plus free shipping.
Marco:
Once again, greenchef.com slash ATP60.
Marco:
Use promo code ATP60 for 60% off plus free shipping.
Marco:
Thank you so much to Green Chef, the number one meal kit for eating well, for sponsoring our show.
Casey:
Marco, on a recent episode of Under the Radar, which is on a very good run, which is not surprising because they are excellent episodes.
Casey:
Usually, Marco, usually not longer than 30 minutes.
Casey:
But anyways, on Under the Radar, you were talking about a couple of things.
Casey:
You were talking about how you're kind of pulling the plug on using CloudKit for Overcast and
Casey:
But you are allegedly, theoretically, maybe, going to be keeping the web player for Overcast.
Casey:
So I would like to quickly celebrate the Overcast web player surviving for another day, which is great news.
Casey:
Even though I don't use it that much anymore, I do think it's cool that you're keeping it around.
Casey:
But I'm very interested in this CloudKit stuff.
Casey:
So I have been working on something new that the boys don't really know about yet because it's way too early for that.
Casey:
But this new thing I'm working on – Is that us?
Marco:
Are we the boys?
Casey:
Yes, yes.
Casey:
You are the boys.
Casey:
This thing I'm working on, it is currently written against CloudKit.
Casey:
And I was using CloudKit as a data store for what it does.
Casey:
And hearing you have a less rosy opinion of CloudKit than I expected is very selfishly interesting to me.
Casey:
So can you give like the 10 second version of your 29 minute podcast if you don't mind?
Casey:
And then I'd love to dig in a little more about CloudKit.
Casey:
you know, how you came to this conclusion and what you think the implications are for not only, you know, people like me that are trying to write something new, but people like you that are maybe moving something old into this new world.
Casey:
So, I don't know, take it whatever direction you want, but I thought we could tug on that string a little bit.
Marco:
Yeah, sure.
Marco:
So, I, you know, over the last, I'll be brief, because this is, you know, mostly covered in another radar, so we're mainly doing it here for any additional elaboration and for you guys to yell at me.
Marco:
But...
Marco:
Mainly, I was facing a couple of problems with Overcast over the past year.
Marco:
One was that I'm getting increasingly burdened by my massive amount of legacy code, and I'm trying to move myself forward in some way so that I can basically adopt new things, new languages, new frameworks, new techniques, Swift, Swift UI, Swift async stuff, and all that kind of stuff.
Marco:
So I'm looking at a bunch of rewriting, basically.
Marco:
Not everything has to be rewritten.
Marco:
Like the audio engine, I'm going to keep what it is, which is mostly C, and that's going to be fine.
Marco:
But a lot of the UI I want to rewrite, a lot of the data layer I want to modernize.
Marco:
in part to make it easier to change the UI and to keep it up to date and to keep it fresh and to add features, and in part to fix certain shortcomings and reliability problems, certain weird obscure crash conditions that could happen.
Marco:
Some of those require just re-architecting certain things.
Marco:
So anyway, that's the motivating factor.
Marco:
And the second big problem I was having besides my massive legacy code bloat
Marco:
is that my server load was really my server maintenance load not like the actual load average on a particular server but like the amount of my time it was taking to maintain and deal with my servers and and their workload was getting to be a little too much and so over the year over the past year i really have done a lot of optimization a lot of server experiments you know moving to certain techniques or services that are supposed to try to improve things and
Marco:
Some of them did.
Marco:
Most of them didn't.
Marco:
I've had to deal with a lot of regressions, a lot of bugs.
Marco:
We've talked on the show a few times about how I would experiment with doing something like with S3 or with Cloudflare as a CDN in front of various things.
Marco:
And almost all of those have actually failed.
Marco:
Almost all of those ideas I had either didn't make it better
Marco:
Or only made it better if I burned a ridiculous amount of money, way more than I could actually justify.
Marco:
And even then, it wasn't that much better.
Marco:
So in many cases, they introduced a bunch of weird bugs.
Marco:
I learned a lot.
Marco:
One of the things I learned is that all of those web services, when you, for instance, write data to them,
Marco:
And you try to read it back, sometimes it's there, sometimes it's not.
Marco:
Sometimes it says it's updated and it actually hasn't.
Marco:
You know, sometimes the write just fails.
Marco:
Why?
Marco:
Who knows?
Marco:
Sometimes Cloudflare just caches things when it shouldn't.
Marco:
Why?
Marco:
Who knows?
Marco:
You know, there's a lot of like...
Marco:
You know, this works 98% of the time.
Marco:
Well, that's great.
Marco:
But when I write things to MySQL, it works 100% of the time.
Marco:
And then when I read them back, that works 100% of the time, too.
Marco:
And so many of these optimizations would introduce weird, subtle bugs and problems that eventually made them not worth it.
Marco:
And so anyway, so I've just gone through all this crap with my servers.
Marco:
And
Marco:
So I devised this plan in the fall.
Marco:
You know, and I've been thinking about this for a while.
Marco:
You know, I should probably just move as much user data as possible to CloudKit because my servers process two kinds of data.
Marco:
You know, one is like global data.
Marco:
It's like, well, this is the list of feeds I know about, of RSS feeds I know about for different podcasts.
Marco:
And here's the episodes in those feeds and so on.
Marco:
And then the user-specific part of the data is, all right, I have these users.
Marco:
User number one, two, three is subscribed to feeds A, B, and C. And in feed B, they've listened to episodes one, two, and three to progress 60 seconds completion and two seconds.
Marco:
That's what I'm dealing with here.
Marco:
A lot of that data, huge volumes of very simple data.
Marco:
And I know from running my previous web services, I know the amount of server resources I was spending per user was not a very good ratio.
Marco:
I was spending too much per user.
Marco:
The number of active users I have does not justify the amount of server resources that I was needing to keep the system going.
Marco:
And the amount of time it was taking me to manage it.
Marco:
so anyway so again i had this idea let me go to cloud kit um i'll move user data there and i'll keep the public data like all the feed crawling and everything i'll keep that on my servers but i'll move user data to cloud kit thereby not only being a huge win in terms of like getting possibly privacy sensitive data out of my hands which is always a great a great feature there it's like nuclear waste like i don't i don't want this like i don't i don't want people's data
Marco:
And then secondarily, that would presumably result in a huge reduction in the server costs and server complexity and server maintenance needs that I'd have to deal with.
Marco:
Over the course of the fall, I decided in one of my fits of rage in undoing one of my very bad ideas for one of the various CDN-hosted S3 bucket, one of those various things...
Marco:
I'm like, you know what?
Marco:
Let me just buy some time with the good old-fashioned MySQL setup that's just serving stuff directly.
Marco:
Let me buy some time and see if I can optimize this a little bit more.
Marco:
And I took like a week, and the one big table that was getting hit the most often had like three indexes on it.
Marco:
It's a huge table, you know, hundreds of gigs.
Marco:
It had like three indexes on it, and I ended up consolidating it down to one.
Marco:
both by a little bit combining two that were already there and then rewriting the code to just not use the other one.
Marco:
So a combination of basic database stuff and of code changes made it so I could only use one index if I had to.
Marco:
And that single change made a way bigger gain than any of the stupid stuff I did for the whole rest of the year.
Marco:
It was infuriating.
Casey:
That is both beautiful and awful all at once.
Marco:
Yeah, so I did a couple of other things.
Marco:
During that week, I optimized a couple of other things, like the feed crawling.
Marco:
It was hitting one of the big tables twice, and I rewrote the code a little bit, so it only had to hit it once.
Marco:
Stuff like that.
Marco:
I did a couple of optimizations like that.
Marco:
And it just made a huge difference.
Marco:
And I was like, damn it.
Marco:
So basically during that time... Oh, sorry, going back a second.
Marco:
Before I had done that, when I was deciding, okay, my future is probably going to be CloudKit...
Marco:
I put two things on my to-do list.
Marco:
Number one, I'm like, all right, I have to issue an update to the app that will measure the percentage of people who have CloudKit enabled.
Marco:
Because I use CloudKit so far, I have used CloudKit for a number of years now to do something very, very, very basic, which is if you are logged out, so maybe if you restored a phone or you got a new phone or whatever, if you're logged out of Overcast, it shows you a list of your accounts.
Marco:
And you can tap it, just log in.
Marco:
And that's just a list of basically login tokens that are stored in CloudKit.
Marco:
So I knew that CloudKit was available on most of my customers' devices because the system really has not resulted in any big problems for me, having this be tied to iCloud.
Marco:
And then I also use CloudKit on the web to help people log in to the website who have anonymous accounts that don't have emails and passwords, which is the default.
Marco:
And Apple does have a CloudKit.js web interface, and it is horrific.
Marco:
It is really hard to use.
Marco:
It is old and seemingly unmaintained.
Marco:
It has a very high error rate.
Marco:
Just the URLs you're hitting just error out a lot, and you can't do anything about it.
Marco:
The documentation is horrendous.
Marco:
Using it is awkward.
Marco:
No.
Marco:
The documentation stinks?
Yeah.
Yeah.
Marco:
But yeah, using it is incredibly cumbersome and awkward.
Marco:
It was clearly designed by nobody who has ever made a web anything ever.
Marco:
It is designed only for JavaScript use and it's definitely not designed for any kind of like tying in with the backend.
Marco:
Like it was just, it's really extraordinarily cumbersome and bad.
Marco:
So I already knew that like, if I was going in the direction of CloudKit, the website, it was not something I wanted to really offer.
Marco:
Like with web playback.
Marco:
And I was thinking like,
Marco:
I guess I'll still have the directory on the web where you can search and browse stuff.
Marco:
Because if nothing else, I use it when I'm debugging feed problems.
Marco:
I'll search for a podcast and browse its episode list and see all that.
Marco:
So I was like, I might as well keep the website.
Marco:
But I was going to lose all user functionality on the website if I went with CloudKit.
Marco:
Because I'm like, you know, I'm not going to have access to like, what are your subscriptions?
Marco:
What is your, you know, what's your progress in this episode?
Marco:
You know, stuff like that.
Marco:
That was all going to be in CloudKit and not on my servers anymore.
Marco:
So this move that I was planning on doing to CloudKit was going to kill the website for any kind of logged in use.
Marco:
And so anyway, so I decided, you know what, my servers are just killing me.
Marco:
I'm just going to like, you know, finally rip the bandaid off and just tell people, you know what, the website's going to have to go because I want to make this move.
Marco:
And so I did that in, I think, November, something like that.
Marco:
I posted a thing to the website, a little banner on top saying, sorry, sometime in 2023, this website is going to be discontinued, mostly with the user functionality and stuff, because I want to leave all my options open with my server stuff going forward.
Marco:
And also because hardly anybody uses it.
Marco:
So to give you some idea of what I mean by hardly anybody uses it, I'm looking at a few hundred people who use the website.
Marco:
And that is not a large portion of the user base.
Marco:
And this is like per day, but it's under a thousand people.
Marco:
And that's well under 1% or whatever.
Marco:
It's a very small portion of the user base.
Marco:
And so I'm like...
Marco:
why am i jumping over backwards here for people for for you know under a thousand people you know i've made decisions to like cut off support for an old os that still had thousands of people using it but you know the trade-offs outweigh that or whatever and and it was still you know a small enough percentage that i was comfortable with that or whatever so you know so i'm like this is this is okay like i can lose the web player it's not that big of a deal most people won't care
Marco:
Boy, was I wrong.
Marco:
I heard from so many people.
Marco:
And I think part of my problem with this decision, part of what I think surprised me, is that my analytics are not super granular.
Marco:
You know, this is just like a home-built analytics system that I report a couple of parameters to my server that's all anonymized with every sync request.
Marco:
And I count them up and, you know...
Marco:
So I can tell things like how many distinct users used feature X yesterday.
Marco:
I can't tell you how many distinct users use feature X in the past month.
Marco:
So if you don't use something every day, you're not counted every day.
Marco:
Does that make sense?
Marco:
So if a different 200 people use this feature on Monday, Tuesday, Wednesday, Thursday, and Friday, if those are actually five different sets of 200 people, that's 1,000 people.
Marco:
But my analytics will only show 200 because it's only measuring it per day.
Marco:
Yeah.
Marco:
And analytics today is just some random numbers and everything.
Marco:
And then analytics archive is like the sum of how many of those people were for each metric each day.
Marco:
So I'm only really keeping the sum.
Marco:
Also, the random number that the app uses to associate people per day...
Marco:
does rotate pretty quickly i forget what it is it's something like a random expiration between like you know 48 hours and 72 hours it's something like that so like that number like the the random id people are using to report to me it changes so often anything more than a day granularity wouldn't be useful anyway but i've just i've never needed it really like it's not like for the most part i'm not i'm not measuring things that are so critical that i
Casey:
So everyone is upset that you're killing the website.
Marco:
Yeah.
Marco:
And so I'm starting to get the feeling that, again, it's way more people than the daily analytics suggest.
Marco:
Because what people are telling me is I'm hearing the same stories over and over again, basically.
Marco:
It's like, oh, I use this occasionally when looking something up.
Marco:
Or I use this on certain days when I'm at work on my Windows work PC.
Marco:
Yeah.
Marco:
um and and there were so many stories like that um a lot a lot of the use cases were people who were using the file upload feature which is part of overcast premium which and and i and i said i'll find some way to upload to to offer file upload still if i cancel the web player so that was like less of a concern but it was still it was a common enough thing and i and i noticed that occasionally
Marco:
i would use the features too like if i if i hit like a link to a website that had a podcast episode and i would follow the overcast link and then you know i would add it to my account with the web interface i'm like damn it i want people to do this after i make this change and i started realizing there's a lot more a lot more uses for this thing it's kind of like the mac mini which is like most people don't need a mac mini
Marco:
However, there are certain use cases that only the Mac Mini can cover.
Marco:
And it's a large number of very small use cases, effectively.
Marco:
And that's how my web player was.
Marco:
It covers a large number of very small use cases.
Marco:
A lot of people end up using those every once in a while.
Marco:
That was problem number one.
Marco:
Problem number two happened when I shipped the version of Overcast that captured the analytics of how many people have logged in iCloud accounts.
Marco:
And I thought that the number of people who did not have CloudKit available, which I thought meant they didn't have an iCloud account on their device, would be very, very small.
Marco:
I was wrong about two things.
Marco:
Number one, not being able to use CloudKit...
Marco:
is not just caused by not having an iCloud account signed into your device.
Marco:
It is also caused by having iCloud Drive disabled.
Marco:
That's a very different thing.
Casey:
That's so weird to me that the two things are codependent, for lack of a better word, that I would not have expected that.
John:
Well, that's where CloudKit stores all the stuff, though, right?
Marco:
Yes, that's the thing.
Marco:
So when people say iCloud, there's a bunch of different services that actually is part of iCloud.
Marco:
One that I've used before, which I think I might move the account system back to, that little login token list thing, is called Key Value Store.
Marco:
And this is one of the very first things.
Marco:
When iCloud first launched, it was like two or three services.
Marco:
This was one of them.
Marco:
It's been there since the beginning.
Marco:
iCloud key value store is literally a key value store for very small bits of data.
Marco:
It's limited.
Marco:
It's very limited.
Marco:
I forget the exact limits, but it's something like you can have like a thousand keys and values stored and each one can be up to like four kilobytes or something.
Marco:
So you can store decent data there, but it's more for like preferences and short bits of things.
Marco:
It's not really for arbitrary user data because the limits are so small.
Marco:
I wouldn't be able to use Key Value Store because way too many people would bump into those limits if you had a lot of subscriptions or whatever.
Marco:
But that service, as far as I can tell, doesn't really count against anyone's data at all.
Marco:
It doesn't count against your iCloud storage either in any way or in any meaningful way.
Marco:
That data is also not user-browsable at all.
Marco:
Like, there is no place I can go as an iCloud customer and see the key value data for my apps for iCloud, as far as I know.
Marco:
Maybe, I mean, you know, maybe, who knows, maybe on the Mac it's in some, like, library hidden folder somewhere.
Marco:
But I don't know where that is.
Marco:
And for the most part, it's hidden from users.
Marco:
So users can't go in and, like, delete it or manage it, really.
Marco:
So that data is kept very small.
Marco:
And as far as I know, that's not affected by the iCloud Drive preference, but I don't know that for sure yet.
Marco:
Anyway.
Marco:
iCloud Drive, the amount of storage that you're allowed to use is just whatever the user has in their iCloud account.
Marco:
So whatever amount of storage they have for free or pay for, that's what you can use.
Marco:
So it's, as far as the app's concerned, kind of unlimited in the sense that you don't have these arbitrary limits of four kilobytes or whatever else.
Marco:
So that does make sense to have controllable in some way by the user, to have visible to the user.
Marco:
So the way Apple has chosen to do that is to tie it into iCloud Drive.
Marco:
That's where that data is stored.
Marco:
So if you have iCloud Drive disabled, apps, just as far as apps can tell, you can't use CloudKit.
Marco:
And it doesn't tell you necessarily why you can't use CloudKit.
Marco:
I think, I could be wrong about this, I think it returns the no account status
Marco:
Whether you have no account for real or whether you are logged in, but iCloud Drive is disabled.
Marco:
So you can't, there's not like an easy message you could show the user necessarily that would be very accurate or whatever else.
Marco:
So anyway, so I was shocked to find out not only that, but the percentage of not signed in to iCloud or iCloud Drive disabled, like, you know, the percentage of my users who can't use iCloud, who can't use CloudKit is around 12%.
Marco:
you
Marco:
It keeps going up.
Marco:
I keep following this metric.
Marco:
Now, granted, most of my data is from the end of December and the first day or two of January.
Marco:
So it is holiday break time for a lot of people.
Marco:
A lot of people aren't at work during this time or they take vacations or whatever else.
Marco:
So it's not an extremely representative time.
Marco:
Also, just my overall usage is down by something like 20% or something like that for during this time, just because fewer people listen to podcasts when they're not in their work routine and they're like, you know, commute and everything else.
Marco:
So this data is not super strong yet, but it's been staying, since this update shipped a couple of weeks ago, it's been staying between 10% and 12% of people who cannot use CloudKit in my user base.
Marco:
This is way higher than I thought.
Marco:
I was thinking it would be like 1% maybe.
Marco:
Nope, it's 10 times that.
Marco:
So it's way higher than I thought.
Marco:
And if I can't use CloudKit for these customers,
Marco:
It's different from if I move the required OS version forward, all those people who I'm leaving behind still can use the old version.
Marco:
It's fine.
Marco:
But if I move all my user storage and sync to CloudKit...
Marco:
I'm going to cut off 12% of my existing users, like not even just new users, existing users.
Marco:
That's a problem.
Marco:
Now, many of you out there might be thinking, well, who cares?
Marco:
Why don't you just not offer sync to people who don't have iCloud enabled or whatever?
Marco:
And that's okay.
Marco:
That's a reasonable theory.
Marco:
The problem is on an iOS device, in practice, sync means backup.
Marco:
If you don't offer sync, then when somebody loses their phone or it falls off of Casey's car or it – Oh, that was my watch, not my phone.
Marco:
Whatever.
Marco:
Or they get a new phone and they don't quite hit the restore in the correct order and they have to reset everything or they lose their sync key chain or whatever.
Marco:
Yeah.
Marco:
They just lose all their data.
Marco:
That sucks.
Marco:
And I know how people feel about that from the handful of support emails and stuff I do get about that problem when my system doesn't work for somebody with the whole CloudKit account sync thing.
Marco:
People expect their data to be there.
Marco:
They expect that no matter what happens when they get a new phone or they replace their run over phone, they expect that everything will just be there.
Marco:
You can't just tell them, well, hey, look, hey, if you don't enable your iCloud account, you know, this is it.
Marco:
No sync, no backup.
Marco:
Like, that's not really an acceptable outcome for modern expectations of software.
Marco:
Like, that's just not an option.
Marco:
So you have to have some kind of account or something to back stuff up.
Marco:
And ideally, it's automatic.
Marco:
And so anyway...
Marco:
So that's a no-go.
Marco:
I can't just say, well, sync is optional now.
Marco:
That doesn't fly in this day and age.
Marco:
So I have to offer this.
Marco:
And I first thought that the reason people wouldn't have an iCloud account would be really obscure situations.
Marco:
I don't even know what.
Marco:
You're using some kind of weird test device because it's actually somewhat challenging to use an iOS device without ever signing in an iCloud account.
Marco:
Lots of stuff doesn't really work very well without that.
Marco:
But I learned when I was, I guess not tweeting about this, when I was mastodoning about this, I learned, I'm not going to say tooting.
Marco:
That's a different thing.
John:
You should say tooting.
John:
Embrace the tooting.
Marco:
No.
Marco:
When I was mastoposting about this, that sounds gross too.
John:
You're just making it worse.
John:
Toot is great because it's so close to tweet.
Marco:
When I was posting on Mastodon about this, I learned that it's actually fairly common for corporate-issued and corporate lockdown devices either to not have an iCloud account at all and to disallow you from logging into one, or apparently a lot of corporate IT departments, for whatever compliance or security reasons or whatever it is, won't allow third-party cloud storage solutions.
Marco:
So they will...
Marco:
Possibly allow your iCloud account to be signed in, but they will specifically disallow iCloud Drive from being enabled.
Marco:
So that which kills the whole thing for CloudKit.
Marco:
So I think what I'm seeing here is way more people than I expected use Overcast on a corporate managed iPhone.
Marco:
That makes sense.
Marco:
People listen to podcasts as part of their workday sometimes.
Marco:
They'll have it on in the background or if you bring that phone to work, you'll use that on your commute or whatever else.
Marco:
There's all sorts of conditions.
Marco:
So what I've learned here is CloudKit is really a no-go for things that might be run on a decent number of corporate-issued phones.
Marco:
And so I decided right at the end of December, I decided, you know what?
Marco:
Now that I have this data,
Marco:
This is not a good idea anymore.
Marco:
And since I had, in the meantime, optimized my servers a little bit better and made those gains, and I'm like, actually, is continuing to run my servers the way they are really that big of a burden?
Marco:
Is it really worth this loss of this many people?
Marco:
And I decided, you know what?
Marco:
No, it's not.
Marco:
It's not worth it.
Marco:
Like it isn't worth this loss.
Marco:
It's not this, this whole plan I had to go to cloud kit and everything.
Marco:
This is not going to work for me.
Marco:
And, you know, and I'm not, I'm not saying nobody can use cloud kit, but I'm saying it's, I thought it was going to be a good fit for, for this particular app and for my particular priorities and needs.
Marco:
And I got more information and it's not.
Marco:
So the website will stay and the Mac mini remains a product in my lineup.
And
Marco:
And I'm going to, you know, keep running my servers and I'll try to keep making it easier on myself.
Marco:
In the meantime, I'll get to go, you know, do anything else and not spend a year rewriting my whole sync engine.
John:
How swayed were you, assuming this was not the case and it really was a fraction of a percent who couldn't use it.
John:
Would you have been swayed by the horror stories from the people who say, oh, if you're going to use CloudKit, you have to have something that's not CloudKit to serve as your backup for and CloudKit is craps out?
Marco:
sync for a podcast app i just finished telling you why it's required but it doesn't have to be fast and it doesn't have to be super aggressive or super recent because most of my customers are only using it on one device so if cloud kit was having a bad day and and you were still able to use the podcast app and you'd still you know in in my imagined architecture with my server still existing to do feed crawling and stuff
Marco:
in that architecture, you would still even be getting new episodes.
Marco:
That wouldn't stop if CloudKit was down.
Marco:
All that would stop would be your data wouldn't sync between different devices of yours.
Marco:
And so I decided in that kind of scenario, okay, it's a risk I'm willing to take.
Marco:
If CloudKit's down for a few hours and your overcast progress between your phone and your iPad and your watch doesn't sync for a few hours, that's not the end of the world.
John:
What about the horror story of it just getting wedged?
John:
Whether it's up or down for some period of time, at a certain point it just gets wedged and will just never sink again without some heroic measure.
Marco:
That was a little more concerning, for sure.
Marco:
And frankly, I just hadn't gotten there yet.
Marco:
I mean...
Marco:
If I had gone down this path, chances are I would find different downsides to it.
Marco:
Downsides exist with every solution.
Marco:
Everyone's like, oh, well, why don't you just... My favorite phrase.
Marco:
Why don't you just move to... Insert Facebook or Google or Amazon-hosted solution here.
Marco:
Like, oh, just move to XYZ Cloud Server Parsley.
Marco:
And it's like, I don't... You don't understand...
Marco:
This is not my first day on the internet.
Marco:
This is not the first time I've used web services or created web services.
Marco:
Every one of these solutions has pitfalls and limits and downsides.
Marco:
If you don't know what they are yet, you haven't used them enough.
Marco:
Trust me, everything has downsides.
Marco:
Nothing is hands-off.
Marco:
Nothing is automatic.
Marco:
Nothing is taking all the problems out of your hands.
Marco:
Every service has a bad day.
Marco:
Every service has downsides.
Marco:
Every service has BS you have to deal with as the person running it or using it, I guess.
Marco:
At least with my current service of running a whole bunch of Linode servers with MySQL and PHP and stuff, I know where all the pitfalls are.
Marco:
I know how that breaks.
Marco:
I know when I need to intervene.
Marco:
I know the BS I have to deal with.
Marco:
any other service i would move to i knew that i would be signing up for the devil i don't know i'd be signing up for some kind of future bs and some kind of future sleepless nights and headaches and stress that i didn't yet know what they were it's like you know it's like dick cheney's unknown unknowns whatever that was or was it from himself who cares
Marco:
Anyway, I knew there would be some kind of pitfalls with any of these other services.
Marco:
And CloudKit is, of course, no exception.
Marco:
Of course, CloudKit has weirdness and problems and shortcomings and downsides and downtime and errors.
Marco:
Everything does.
Marco:
I'm not scared away by the possibility of a service having them.
Marco:
I'm scared away by me not knowing them and knowing that if I move to something like this,
Marco:
there will be some amount of learning curve there, possibly things that I would do very wrong as I learned.
Marco:
It'd be one thing if I was starting a whole new app with no users to start with, but when I'm moving an app from... When I'm thinking about moving an existing app with a whole bunch of existing users,
Marco:
that is currently making up my income as a person, I don't want to move that willy-nilly to just anything.
Marco:
I want to do that pretty carefully.
Marco:
And that's quite an operation to move something like that.
Marco:
And so I was entertaining CloudKit because I thought it would have significant benefits to me.
Marco:
I thought that the benefits would outweigh the possible downsides.
Marco:
And I got more information, and they didn't.
Casey:
It makes sense.
Casey:
It's obviously a big bummer for you that you're not getting out of the server business no matter what happens.
Casey:
I don't know.
Casey:
I thought that a lot of Apple's stuff is using CloudKit now.
Casey:
I thought the iCloud Photos was on CloudKit.
Marco:
It is.
Marco:
And notes and reminder.
Marco:
I think all of Apple's recent stuff is backed by CloudKit.
Marco:
And what I heard, actually, when I was browsing my post-it-ons, what I heard was that people who have these devices, who run devices for work without iCloud Drive for whatever reason...
Marco:
A lot of them replied to me, and a lot of them said, yeah, a bunch of apps break in random annoying ways, basically.
Marco:
A whole bunch of stuff doesn't work quite right.
Marco:
A whole bunch of third-party apps don't sync and just don't even tell you why.
Marco:
A whole bunch of Apple's apps just don't work right.
Marco:
You are correct.
Marco:
A lot of stuff uses CloudKit, and when you have one of these devices, a lot of that stuff just breaks.
Casey:
I just, I find that hard.
Casey:
I'm not trying to say you're wrong.
Casey:
I'm not trying to imply you're wrong.
Casey:
I'm not, none of those things.
Casey:
But I just find that hard to believe, right?
Casey:
Like, you know what I mean?
Casey:
Like, it's just, it's stunning to me that so many of your users apparently don't get to use, like, half the junk on their phone.
Casey:
Like, obviously, I'm being hyperbolic.
Casey:
But it's just bananas to me that that's just a no-fly zone for so many people.
Casey:
And I understand, you know, the corporate thing.
Casey:
I am not far enough removed from real work that, you know, that I...
Casey:
don't understand it or it doesn't make sense or what have you.
Casey:
But golly, that is bananas.
Casey:
And I don't know, I guess there's a couple of different things that I'm thinking about completely selfishly as I'm wondering if I can create a new thing that rides on CloudKit.
Casey:
And one of the things that I was, the thing I was most worried about, in fact, was that, oh, CloudKit would be unreliable or the API would be crummy or something like that.
Casey:
And the API seems reasonably okay so far.
Casey:
I have gotten far enough in the pre-alpha version of this app that
Casey:
that I can save stuff to CloudKit and pull it back out and so on.
Casey:
So the API seems fine.
Casey:
In my singular use, it seems reliable, but I never thought that, oh, if I release this app, I'm shutting off 10% of iPhone users, which granted, I can choose not to care about that, which is kind of what you were saying earlier.
Casey:
You don't get to make that choice.
Casey:
I can make the choice that I can just choose not to care, but that's not what I expected, and that's a real bummer.
Marco:
Well, and to be clear, this might not be 10% of all users.
Marco:
This might just be 10% of my users.
Marco:
That's fair.
Marco:
My user base is not representative of the entire world.
Marco:
And part of my user base is very nerdy, of course.
Marco:
That's part of it.
Marco:
It's a podcast app at all.
Marco:
It's also my podcast app.
Marco:
So it's a very nerdy leaning for sure.
Marco:
And also, it depends what the app is used for.
Marco:
Again, in my case, I think my theory here is in my case, a lot of people use podcast apps at work.
Marco:
And therefore, my percentage of work issued device usage is probably higher than the average.
Marco:
So if your top secret app that you haven't told us about yet, not that I'm bitter, is if your top secret app is less likely to be used by people on their work devices, you might have a very different number.
Casey:
Yeah, I'm not so sure that's the case, unfortunately.
Casey:
Well, fortunately and unfortunately.
Casey:
That's something else.
Casey:
So you said you've gotten over the immediate hurdle of the feeling like your database is going to explode.
Casey:
I'm not saying that's actually what was happening, but it seems like you kind of felt like, oh, uh-oh.
Casey:
Things are getting a little dodgy over here.
Casey:
So you got through at least the first hurdle in front of you with, you know, some changes on your end, some changes on the database end.
Casey:
So now to the best that you're willing to share, like what is the long-term play then?
Casey:
Because these servers aren't going to go away.
Casey:
Like this problem is going to continue to be a problem.
Casey:
And God willing, it's going to get worse because you have more users who are doing more with your app.
Casey:
So what's the plan, man?
Marco:
Good question.
Marco:
So one of the concerns – one of the things that was frustrating me was that I was so close to my capacities before.
Marco:
And it's not – look, there's lots of things I could do to add capacity.
Marco:
One of them that I, what I relied on in the past, most of the time with, with my SQL based things, and you know, my, I'm mostly database bound, you know, it's my, it's my, your standard kind of, you know, lamp design of an app.
Marco:
It's, you know, a monolithic app with a whole bunch of web server, not even, you know,
Marco:
eight web servers and a handful of database servers and and the way i had scaled it in the past was what everyone does at this kind of you know low to moderate scale database based app you split some high traffic tables onto their own servers you know eventually you have replication using mysql replication and you have like the primary secondary and then you try to send read queries to the secondary and write to the primary like i've done all those things
Marco:
you can get pretty far with that.
Marco:
Obviously, you couldn't run a very large-scale operation with this kind of architecture, but you can get pretty far with it.
Marco:
And so that's what I've been doing.
Marco:
I have found MySQL replication to be significantly worse since MySQL 8.0.
Marco:
And I'm looking to move to reduce my reliance on it to only like a backup or, you know, kind of hot standby kind of situation, not actually sending any queries to the replicas.
Marco:
And that's where I am now.
Marco:
Right now I have everything going to the primary.
Marco:
No queries are being sent to the replicas.
Marco:
They're only being used as basically live backups.
Marco:
So I could fail over to them.
Marco:
And I use replication.
Marco:
Well, no, I guess, no, I use hot backup to actually copy them for backups.
Marco:
So that's something else.
Marco:
Anyway, so replication is only for, at this point, only for like failover scenarios.
Marco:
So one thing I could do rather than using replication to build stuff up later is I could just split up the user data.
Marco:
Like, you know, what we used to call sharding.
Marco:
I don't know if that still means that today.
Marco:
Because the other thing is like my knowledge of server backend stuff is super outdated.
Marco:
I know the way things were built in 2006 and I'm really freaking good at it.
Marco:
And anything that's come out since then, chances are I don't know about it.
Marco:
Or if I do know about it, I'd rather not use it.
Marco:
Because here's the thing.
Marco:
The stuff in 2006 solves my needs really well the vast majority of the time.
Marco:
And I know how to do it.
Marco:
And I know how not to do it.
Marco:
Like I know what mistakes not to make with this kind of setup.
Marco:
I know how to avoid getting woken up in the middle of most nights.
Marco:
I know how to set up stuff so I can actually like have a family life and take vacations and have work-life balance.
Marco:
Like I know how to run this.
Marco:
So that's why I stick with it.
Marco:
And it's served me just fine.
Marco:
Anyway, one thing I could do is shard user data.
Marco:
This is very, very simple.
Marco:
My user data does not depend on other user data.
Marco:
So I could say, you know, all right, let's take the modulus of the user ID and, you know, just make eight different databases.
Marco:
And all right, if your ID, you know, module eight equals two, you go to the server, whatever, and split up the user data across, you know, eight different servers and have all the, you know, and then all of a sudden I have eight times the capacity.
Marco:
I could do something like that.
Marco:
I'm fortunate in the sense that my business is not really growing very quickly, so I can predict what I'm going to need with pretty reasonable certainty.
Marco:
I'm not going to need eight times as much capacity next month.
Marco:
I don't have hockey stick growth on my podcast app.
Marco:
It's fine.
Marco:
I have lots of options that I can do, but
Marco:
One of the reasons why I was so stressed all year is that I did feel like I was like really at that threshold of like I was I felt like I was at like 90 percent capacity all the time.
Marco:
And, you know, things were not going well.
Marco:
Sometimes, you know, things would fall behind, you know, cues would fall behind or whatever.
Marco:
It was very high stress.
Marco:
Certain things would go down.
Marco:
It was a whole thing.
Marco:
Well, I wanted to do things that required storing more database data, like, for instance, the thing I now have tracking data, but I haven't actually shown it anywhere yet, which is the how many how much hour time you spend listening to each podcast per month or whatever.
Marco:
People want that kind of like Spotify unwrapped feature where you tell them at the end of the year, I hear this every single December, where you tell people at the end of the year, hey, this year you spent, you know, 400 hours listening to ATP, you know, like that's what people want, that kind of stuff.
Marco:
It's a very commonly requested feature, not only the end of the year wrap ups, but people just ask for stats much more often.
Marco:
And most of my competitors at this point provide stats.
Marco:
So it's a very, very, very common user request.
Marco:
And so I wanted to offer that.
Marco:
So I need to track more data than I, you know, before that, before this, all I tracked per episode was like, all right, you're at this position like you or you've completed it or you've deleted it.
Marco:
The smart speed total time saved is just a double.
Marco:
It's just a number like the app just accumulates how much time you're saving and periodically writes it to the database.
Marco:
And that number is synced.
Marco:
That's it.
Marco:
That's not tracking every single listening session you do and adding it up.
Marco:
It's just tallying up on a number.
Marco:
So in order for me to add any kind of stats, well, now I have more data to store.
Marco:
And the idea of writing to my database with more data...
Marco:
I'm like, I just, I can't do that feature.
Marco:
Like I'm running at 90% capacity here.
Marco:
I'm having trouble keeping up sometimes.
Marco:
I can't add load to my database.
Marco:
And well, I could set up a whole new database cluster just to do that.
Marco:
But that's a very expensive operation, you know, because it's going to be a lot of data.
Marco:
Like how big of a server am I going to need for that?
Marco:
And then I have to have a replica for that.
Marco:
And I have to add to the database backup system.
Marco:
And it's a whole thing.
Marco:
So I would just block.
Marco:
I would just say, you know, I can't do that right now.
Marco:
And so ever since I did those optimizations, I thought, you know what?
Marco:
I bought myself some headroom.
Marco:
Now I can actually see.
Marco:
Let me launch this feature.
Marco:
And I'll just launch it in the background.
Marco:
And if it turns out to be way too heavy on the database...
Marco:
i'll just stop writing the data like i'll just edit the you know the php file that you know that that method of the controller and i'll just stop writing it to the database who cares if you know then i just won't launch the feature publicly but i you know i can test i can launch the app that starts writing the data and start submitting it to the servers and i can see can i actually handle it or not so i did that and yeah it turns out it handles it just fine now it turns out that's really small data and
Marco:
And so I added enough headroom.
Marco:
So again, I'm able to do all this stuff now, which feels really good because I have just spent so much of the past few years with Overcast.
Marco:
I have spent wishing I could do something, wishing I could add some feature or change the way something works.
Marco:
But then the server side of it was prohibitive in some way.
Marco:
Either it actually did cause too much load or I expected it to cause so much more load that I didn't even try it.
Marco:
And so now I bought myself a lot of headroom.
Marco:
I'm learning that some of the ideas I have actually are cheaper on the database and stuff than what I thought.
Marco:
And at some point, my actual plan, to answer your actual question here, my plan for the future is
Marco:
I guess I'll just keep doing what I've been doing.
Marco:
And if I reach the point where I can't just double the instance size on Linode to make my database have more capacity or whatever, then I'll split it up.
Marco:
Then I'll start sharding and I'll start splitting more tables into their own servers and do more user sharding and stuff like that.
Marco:
That's all stuff I can do.
Marco:
It's all a trade-off of cost and complexity and management time and code adjustment time.
Marco:
But it's all stuff I can actually do.
Marco:
And so at the end of the day, it's probably way less time and complexity than rewriting my entire sync engine to use a whole different system.
Marco:
So this is probably the best way forward.
John:
Now you can do the fun stuff, which is using SwiftUI to make a cool animated year-end wrap-up screen based on the data that you have.
John:
Because if you've looked at all the ones that other things do, you have to have some kind of nice presentation of the information.
John:
And that's perfect for SwiftUI because the data is small and SwiftUI is pretty good at doing animations and arranging images and stuff.
Marco:
Yeah, exactly.
Marco:
Yeah, I am very much on board with that plan.
Casey:
To go back a step just for a moment, you had made a comment a little while ago that your knowledge has been frozen in 2006, 2008, whatever you said.
Casey:
And that makes sense.
Casey:
And you've said many times over many shows, including Build and Analyze, that you do not like to be the tip of the spear for these sorts of things.
Casey:
You prefer to use the boring stuff because it's the reliable stuff.
Casey:
And that also makes sense.
Casey:
Have you thought about doing a deep dive in, okay, how do people do these sorts of things in 2023, and how is that different than 2006, 2008, whatever?
Casey:
Does that appeal to you?
Casey:
Do you think that would be a worthwhile expenditure of your time, or are you just going to do the bare minimum?
Casey:
And I don't mean this.
Casey:
This is going to come across snarky.
Casey:
I don't mean it that way.
Casey:
But are you just going to do the bare minimum you can, but to kick that can down the road as long as you possibly can?
Marco:
It's a good question.
Marco:
I think when you're looking at, is what I'm doing too old, and is the new thing better than the old thing, and should I use the new thing?
Marco:
It's important to first ask yourself, well, what's wrong with the status quo?
Marco:
What am I not getting with the current thing that I'm using?
Marco:
What problem am I actually trying to solve here?
Marco:
And again, like I was saying earlier, anything I would move to, not just web services wise, but tools wise, any software or stack component I would move to would also have pitfalls and limitations and downsides and bugs and crashes.
Marco:
And downtime.
Marco:
And I at least know how the current stuff works.
Marco:
I know how to run the current stuff so that it won't be problematic for me and be a heavy load on me.
Marco:
So the new stuff, I'm sure it's mature by now.
Marco:
And I'm sure there's many different options about what people do.
Marco:
I mean, I think part of the problem is that whenever people recommend something to me or when people talk about how things should be done, they seem to either not realize
Marco:
that things can be run inexpensively or totally underestimate the scale of the data that I'm trying to store.
Marco:
People will suggest things that, you know, some kind of hosted service that purports to take all your problems away and then you end up paying, you know, per query or per byte or whatever and it's like, and you actually look, okay, well,
Marco:
Even if I rewrote this to be very efficient for this particular service, I would still need to hit X thousand queries per unit of time or whatever.
Marco:
And it's like, okay, well, that's going to then cost like 30 grand a month or something.
Marco:
It's some absurd... When you actually look at what it would take, people don't realize... People who have grown up in the put-everything-on-AWS kind of age...
Marco:
Don't realize how cheap hosting is for doing things that are like low level that you write yourself.
Marco:
Like, you know, another example, this is like there's all these services that exist to send push notifications for your iPhone apps.
Marco:
Mm hmm.
Marco:
Setting push notifications is so comically cheap for me.
Marco:
Like it costs nothing.
Marco:
Not not even close to like it's nothing.
Marco:
If you are paying anything to send push notifications, you're overpaying.
Marco:
Like if you have a server to do literally anything else, you can have a background job that reads a cue to send push notifications and you will never even notice it.
Marco:
It costs nothing.
Marco:
So I send a lot of push notifications.
Marco:
I have never had to scale any part of that at all.
Marco:
It has never been a thing I've noticed.
Marco:
Receipt validation.
Marco:
I do all that myself because it's like one call.
Marco:
There's stuff that if I used a new system, a lot of the new
Marco:
ways to do a lot of these things whether they're low-level components like you know like a you know a database kind of thing or whether they're you know high-level services like we'll send you notifications for you a lot of them it's like one of those as seen on tv like you know what's he do's at commercials where you know you have the black and white scene the person's fumbling with the old what how can you make a salad with this and you're like fumbling and dropping all your tools in the black and white you need this new tool it's like what
Marco:
Many of those are overstating the problem or they're making you think something's a huge inconvenience when it really actually isn't.
Marco:
And it's like this weird complex doodicky thing here, whatever, this is solving a problem that it wants me to think is a big problem for me.
Marco:
But is it really a big problem for me?
Marco:
Is this problem actually something I need to pay someone a large amount of money to solve for me?
Marco:
What if I just try to do it myself?
Marco:
What would it take?
Marco:
What does it cost?
Marco:
How complex is it?
Marco:
How hard of a problem is it?
Marco:
I have found that with a relatively small amount of virtual server resources, like standard VPS like you get with Linode or whatever else, with a pretty small amount of computing power, you can do a ton.
Marco:
If you just have a Linux server running like a database in some kind of front end language like that's you can do so much more with that than anybody thinks.
Marco:
I've made a career out of running moderate volume web services very, very cheaply so that I don't need to take VC money and I don't have to have some kind of creepy business model.
Marco:
I don't have to have some kind of big company behind all this stuff.
Marco:
Overcast has more market share by a lot than many other apps that have staffs or VC funding or some kind of startup to like, oh, we're going to be the Netflix podcast or like part of the reason I'm able to do it as a single person here is I'm really good at hosting stuff cheaply.
Marco:
So when people recommend a lot of these new alternatives, it's it's not only not solving a problem I have, but it's not solving a problem I have very expensively.
Marco:
And so to the point where like it's not even in the ballpark of what would work for me.
Marco:
Anyway, that's a long way of saying I will move to new things if I have to or if there's really compelling reasons to.
Marco:
And so far, I haven't found those compelling reasons for any of the tools that I'm actually using.
Marco:
Once I factor in the cost of rewriting everything, the cost of learning a new tool and learning its pitfalls and downsides and downtime and bugs and everything else, what I have is working pretty well most of the time if I actually optimize it and I'm a little bit careful about it.
Casey:
That makes sense.
Casey:
So when are you going to Postgres?
Marco:
Postgres, again, Postgres, I've never used Postgres.
Marco:
I hear it's great, but it doesn't seem like it's greater enough than MySQL to be worth the changing and the learning curve.
Marco:
So maybe, you know, I'll move through if I have to, but I'm not rushing to do that.
Casey:
All right.
Casey:
Well, best of luck.
Casey:
I mean, it certainly makes me wonder about my strategy for this thing that may never even see the light of day anyway.
Casey:
So it's not like this is a business crushing decision or anything like that.
Casey:
It's not dramatically altering my world, but it makes me think and makes me wonder.
Casey:
you know, I had initially started writing this again, you know, it's extremely early stages, but I initially started writing this thing with like, well, I'll just, you know, treat cloud kit as the data source.
Casey:
And it's quickly becoming apparent that for reason, other reasons too, but that's not going to work.
Casey:
And, you know, cloud kit may end up being like a sync destination, but I, but having it be the one true source of data is probably unwise.
Casey:
So, you know, it's a lot to think about and I appreciate you taking the time.
Casey:
And like I said, listen under the radar to 58, if you haven't already, cause it was really good.
Casey:
And under 30 minutes.
Marco:
It's a much shorter version of this whole thing.
Marco:
We are brought to you this week by Trade Coffee.
Marco:
If you love drinking coffee every morning, I know I sure do, you have to check out Trade Coffee.
Marco:
Trade makes it super easy to get great coffee delivered fresh from the finest local roasters around the country.
Marco:
Now, look, if you've been getting the same grocery store coffee for your whole life, you don't know what you're missing because coffee is best when it's freshly roasted.
Marco:
It goes stale within a couple of weeks at most of roasting.
Marco:
And trade makes it easy to get fresh roast delivered to your doorstep.
Marco:
And they have them from all these local roasters to choose from.
Marco:
And so this is a coffee subscription service.
Marco:
And what's great about it is they have such great variety.
Marco:
You can discover new coffees so easily and make your best cup of coffee at home every single day.
Marco:
All of this from the nation's top rated independent roaster so that trade can send you coffee.
Marco:
They know you'll love fresh to your home and on whatever your preferred schedule is.
Marco:
So whether you're a coffee nerd and you already know what you like, or whether you're new to like specialty high end coffee and need some guidance through it, trade makes it easy and convenient to discover new coffees that you're guaranteed to love.
Marco:
I personally have used Trade for, I think, over a year now, and I love the variety I get from them.
Marco:
It's so good.
Marco:
And, you know, my taste changed a while ago, and so I was able to adjust my preferences really easily with them and give feedback.
Marco:
Okay, I like this one.
Marco:
This one wasn't so good.
Marco:
I like this one.
Marco:
And they learned quickly, and it's just hit after hit after hit now.
Marco:
It's just so, so good.
Marco:
So...
Marco:
Treat yourself or the coffee lover in your life with Trade Coffee.
Marco:
Right now, Trade's offering our listeners a total of $30 off a subscription and access to limited time specials at drinktrade.com slash ATP.
Marco:
That's drinktrade.com slash ATP for $30 off.
Marco:
drinktrade.com slash ATP.
Marco:
Thank you so much to Trade Coffee for keeping me caffeinated and for sponsoring our show.
Casey:
Breaking news.
Casey:
Samsung has decided to make the studio display look like garbage, maybe, possibly.
Casey:
So CES is happening soon, I guess.
Casey:
I don't even know.
Casey:
I don't pay attention to CES.
Casey:
But there's some CES-related announcements.
Casey:
The Verge covered this, and we'll also put a link to the Samsung PR article as well.
Casey:
But Samsung has announced the Viewfinity S9, and it appears to be a shot across the bow at the studio display, almost at cinema display, at the studio display.
Casey:
It's 5K, you know, same resolution.
Casey:
It's matte.
Casey:
It's not glossy.
Casey:
It gets almost perfect DCI-P3 color reproduction.
Casey:
It has HDR 600, which we'll talk about what the heck that means in a minute.
Casey:
It has a 4K external webcam, which I guess you can slam onto the top of the screen when you need it and then make it go away when you don't.
Casey:
Allegedly, this includes automated zoom control that will track subjects in the frame.
Casey:
Does that sound like center stage to anyone else?
Marco:
Because it worked out so well for the studio display.
Casey:
Well, I actually, I am a center stage apologist.
Casey:
I like center stage, but the studio displays, you know, camera fidelity is pretty bad.
Casey:
It still is.
Casey:
It'll rotate to portrait in the included stand.
Casey:
It has HDMI input, Thunderbolt 4, USB-C and DisplayPort.
Casey:
It'll charge, you know, downstream, whatever you want to call it, up to 96 watts.
Casey:
It does not have True Tone, and apparently it runs Samsung's, what is this, Tizen?
Casey:
Is that how you pronounce it?
Casey:
TVOS, and it has apps on it and whatnot, so you can use it even when it's not connected to a computer.
Casey:
That's about everything there is to know about this, except the deep dive into HDR 600, which I'll let Captain John take us down in a minute, but...
Casey:
At a glance, not knowing a price, not knowing when it's coming out, at a glance, this looks like a pretty compelling option.
Casey:
I'm not sure it's better than the studio display.
Casey:
It may be more money than the studio display, for all I know, although I'd be surprised.
John:
Unlikely.
Casey:
It is unlikely.
Casey:
But, hey, I am all in on there being any competition to the LG UltraMeh and the studio display.
Casey:
So I'm here for this, at least in principle.
Casey:
I'm excited to see more about this over time.
John:
The nice thing about it is that it looks like a studio display too.
John:
So if you want a studio display, but you want a cheaper version of it that kind of looks like a studio display from the distance, from what I can see in the pictures, it looks very similar because you know Samsung and making things that look similar to Apple.
John:
They're not above that.
John:
No.
John:
And I feel like they have here.
John:
So yeah, because this is a pre-CES announcement, they haven't actually announced the price of availability, so it's hard to talk too much about it.
John:
But the feature set is just what you would expect, which is we're going to do a thing like Apple.
John:
We're going to make it look like Apple's product.
John:
We'll copy their aesthetic.
John:
We'll use the same panel, presumably, or a very similar panel.
John:
We'll get to that in a second.
John:
And we'll undercut them on price.
John:
And you don't have to pay extra for an adjustable stand.
John:
And our webcam is 4K, which I think gives it a shot of not being crap when they do center stage because they just have more pixels to work with, right?
John:
It's an external camera, which is way bigger than the bezel.
John:
Like it's not huge, but like if you look at the picture, it's a circle that is like two to three times the thickness of a tiny bezel on here.
John:
So, hey, we can get a normal size camera without worrying about having to fit it in.
John:
And the camera can be 4K, right?
John:
And, you know, presuming it undercuts it on price, it looks like it does everything the Apple one does.
John:
Now, the real question is, is it the same panel?
John:
Right.
John:
So the HDR 600 thing, there's a bunch of terrible marketing terms.
John:
We'll put a link in the show notes to the HDR 600 one.
John:
But there's the Visa display HDR certification things.
John:
If you watch any sort of review channels for gaming monitors, which I watch a lot of because I'm always looking for a good monitor for my PS5 that is HDR.
John:
Every monitor says, you know, supports HDR and then some number.
John:
Pretty much all of those numbers or let's say half those numbers mean you don't have HDR.
John:
HDR 400, not HDR.
John:
HDR 500, not HDR.
John:
HDR 600, probably not HDR, right?
John:
Because regular monitors go to that brightness.
John:
So witness the Apple Studio display.
John:
It goes to 600 nits.
John:
But it doesn't have local dimming.
John:
And 600 nits is...
John:
brighter than 500 nits which was the previous kind of standard mac display thing but not super bright and not having local dimming means you don't really get that contrast that you would want in high dynamic range because the brighter you you support in the screen the brighter your blacks are going to be too because the backlight is always on behind the thing right so if you look at the hdr 600 specification on the display hdr.org website one of the things that it says is
John:
of the HDR 600 standard specifically is real-time contrast ratios with local dimming.
John:
That's in the bullet points of this marketing material for HDR 600.
John:
Local dimming means you can turn off the backlight behind some portions of the screen.
John:
The Verge said, whoever's writing this with Serge says, I couldn't get an answer at press time as to whether Samsung's latest monitor includes local dimming.
John:
I'm guessing if it did, they would be highlighting that feature.
John:
It's kind of weird that Samsung wouldn't say in their press release if it did support local dimming, but they do say it supports HDR 600 and the HDR 600 marketing bullet points say local dimming.
John:
i don't know what this means we'll find out but if it does have local dimming and the local dimming isn't garbage like doesn't have you know it's four zones or something or it's not one of those they do like vertical local dimming i don't know if you know about this but like one of the crappy cheap local dimming technologies just cuts your screen into a bunch of vertical slices and the backlight can be on in any of those slices which as you can imagine is terrible if you have you know like something that isn't the full height of the screen because you get blooming in a vertical stripe it's it's bad
John:
Um, so we'll see.
John:
Uh, obviously Apple has no local dimming at all.
John:
Uh, this is an IPS panel, which is what Apple has, but it claims to be HDR 600, which is, oh, it's just like Apple because Apple says their thing is 600 nits, but the local dimming thing is still a mystery.
John:
Um, and as for True Tone, which is Apple's thing where they have like a light sensor and it like adjusts the, the color temperature essentially of your screen based on how yellow the light is in your room.
John:
This doesn't have that because True Tone is an Apple technology, but it does have
John:
a color calibration feature built into the monitor where you can either use your smartphone with the samsung app on it to sort of like point it at the screen like the apple tv thing where it calibrates or you can also use a more professional calibration tool to calibrate it that's not calibrating to your room lighting it's calibrating the monitor to you know to some standard or whatever but that shows where they're kind of aiming this monitor so i expect it to be in the ballpark of apple's price just because
John:
You know, you don't put color calibration on a monitor that people are just going to use to, you know, look at web pages or whatever.
John:
It's trying to get that same market of like people who care about color accuracy on their displays.
John:
The Tizen OS, this is not Samsung's first monitor that does this.
John:
They have a bunch of monitors that have been selling for a while.
John:
they're like little smart TVs, right?
John:
Only in a computer monitor, right?
John:
So you connect it to nothing except for power.
John:
You can turn it on and inside of it, it has not an A13, obviously, but some kind of CPU and memory and storage so that you can run essentially TV streaming apps, right?
John:
Right.
John:
You can even run like Google Hangouts and like do video conferencing and maybe Zoom calls with just the monitor because it has enough smarts in it to run stuff just like your TV has enough smarts.
John:
And this is just something it's kind of weird.
John:
It took this long to come to computer monitors.
John:
In many ways, televisions were ahead of monitors because we buy a monitor and we expect this thing is useless until I plug it into something to send it an image.
John:
and because these monitors have an increasing amount of computing power in them just to do their monitor job it's not too much of a stretch to say you know what why don't we just run our tv os in here too and so now all you need to do is connect it to power and you can watch netflix or you know look at youtube or do video conferencing with the with the supplied camera or whatever i think that's a great idea and i think it's kind of it's definitely a huge waste of computing resources for the a13 and the studio display and
John:
Not to be acting like a little Apple TV in that mode.
John:
But that's something Apple chose not to do, at least in the first iteration of that product.
John:
So we don't know a ship date for this.
John:
Maybe by the time this comes out, a new Apple Studio display with local dimming will come out and we'll have a better comparison.
John:
But not having to pay extra for an adjustable display.
John:
And if you really don't like glossy, not having to pay the huge amount of money for Apple's nanotexture, but instead to accept a presumably somewhat inferior but way cheaper, you know, default matte display on this thing may be to your liking.
John:
So I'm with Casey.
John:
Anything, you know, to get beyond the ultrafine as being the only other option.
John:
Viewfinity is an awful name, but, you know, I think this is some decent competition for Apple's display.
Casey:
And by the way, it's not Viewfinity.
Casey:
It's Viewfinity S9.
John:
Yeah.
John:
S9 reminds me of an Audi.
Marco:
I'm happy to see this.
Marco:
Even if it's not something any of us want, it's not healthy in this ecosystem for there to be only one monitor available at a given size that has the right DPI for Apple users.
Marco:
And that's only a fairly recent thing that's really been a problem.
Marco:
The XDR is the first Apple monitor I've ever bought.
Marco:
All of my desktop use before this, that wasn't an iMac, you know, when I go back, you know, pre-desktop Retina time, it was always with third-party monitors.
Marco:
I had some Dell monitors.
Marco:
I had an HP monitor.
Marco:
I had, you know, before that, I had, like, ViewSonic and, you know, the other, like, kind of PC brands.
Marco:
there's always been good monitor choices from third parties until relatively recent in computing history for apple people to choose that that would have the right dpi that would have you know the the resolution that we're looking for and the size we're looking for and pretty decent specs if you didn't care too much about some of the stuff apple cares about and like you know for me most of that was always that was always fine like i i never needed like super color accuracy for my programming work like that's a
Marco:
It's not something I really ever need.
Marco:
So it's been fine.
Marco:
I've greatly enjoyed those monitors at the time they came out.
Marco:
And it was only when we went to Desktop Retina that the Darth of monitors started.
Marco:
And even when we first got the 27-inch
Marco:
category of monitors there there were a couple of 5k ones besides the lg ultra fine like like a dell had one briefly i think view sonic actually had one briefly that maybe wasn't even available in the u.s but like there there were a couple others at launch and then they just disappeared and just discontinued very quickly but i'm i hope there are more options like apple should not be the only company making a 5k 27 inch monitor and
Marco:
Apple should not be the only company making a 6K, 30, whatever the XDR is either.
Marco:
There should be other options here, and ideally more than one, so we don't have the ultra-fine problem.
Marco:
But that's a sign of a healthy ecosystem.
Marco:
And I know for various reasons, like PC people kind of went in a different direction with what they prioritize with monitor design, a different direction than Apple with the whole high DPI, retina, game frame rate kind of situation.
Marco:
I get that, but...
Marco:
It's really good to have more options here.
Marco:
And so if Apple screws this up again, there's somewhere else to go.
Marco:
And if this actually ends up being better than Apple's monitor in ways that are important to people, like number one, I'm sure price is probably going to be better.
Marco:
Number two, that webcam is almost certain to be better because it's just so it's so much larger.
Marco:
It has room for like better optics, better sensor and everything.
John:
And it's 4K.
Marco:
Yeah.
Marco:
Yeah, right.
Marco:
And so I expect certain things about this to be better.
Marco:
I expect certain things about it to be worse.
Marco:
But that's fine.
Marco:
It's another option.
Marco:
And the more options we have, the better.
Marco:
Thank you.
Marco:
For instance, maybe your business is selling content to members.
Marco:
They have member areas now.
Marco:
You can monetize your content and expertise in a way that fits your brand.
Marco:
Unlock new revenue streams for your business and free uptime in your schedule by selling access to gated content like videos, online courses, or newsletters.
Marco:
of course you can also have online stores of squarespace sell any physical or digital products all with the tools squarespace has to sell online you can have email campaigns to promote what you're doing apply your own brand ingredients like site colors and logo have built-in analytics to measure the impact of every email that you send and all of this of course is backed by awesome powerful analytics in other areas too you can use insights to grow your business learn where your where your site visits and your sales are coming from analyze which channels are most effective
Marco:
Build your marketing strategy based on your top keywords, your most popular products and content.
Marco:
All of that and so much more is available with Squarespace sites.
Marco:
They make it so easy.
Marco:
You can see for yourself.
Marco:
You can build the entire site with their free trial.
Marco:
No credit card is required.
Marco:
You can set up your entire site, test it out, see how it looks, send it to other people to look at, all without giving them a dime or a credit card.
Marco:
And I'm so confident you're going to use them, really.
Marco:
They're so good.
Marco:
It's so easy.
Marco:
It's so much easier than doing any of this stuff in any other way, if I'm honest with you.
Marco:
So go to squarespace.com slash ATP to start that free trial.
Marco:
When you're ready to launch, use offer code ATP to save 10% off your first purchase of a website or domain.
Marco:
Once again, squarespace.com slash ATP to start that free trial.
Marco:
And use offer code ATP when you purchase to save 10% off your first purchase of a website or domain.
Marco:
Thank you so much to Squarespace for sponsoring our show.
Casey:
Let's do some Ask ATP.
Casey:
Eshu Marniti writes, how do you back up and store your main Xcode project folders for your apps?
Casey:
Just on your Mac with Time Machine, iCloud, something more sophisticated?
Casey:
And P.S., does Ask ATP work on Mastodon?
Casey:
Let me cover the second one first.
Casey:
No, I need to look into.
Casey:
So it was just an if that did the scanning on Twitter for hashtag Ask ATP.
Casey:
Is that even something you can do on Mastodon?
John:
mastodon i don't probably is but my interpretation of this question was hey can we ask questions on mastodon by addressing them to add at a dpfm and get them answered and the answer to that is yeah pretty much but i have this is one of my granted this is not a use case that mastodon probably needs to care about at this point but it is one of my use cases so it it bothers me um
John:
uh massonon doesn't have full search that's a whole thing i think i have a good link on that tim bradis wrote a bunch about it today we should put that in the show notes i will find it uh for you remind me casey to get that link for you um but anyway there's no full text search you can search your own messages uh and you can search your favorites and you can search on hashtags but you can't do full text search and that is an intentional design decision not a technical limitation and there is much controversy about it but anyway that is the case
John:
What that means is for someone like me, I have my personal account, but also I like to look at the mentions for ATP FM on both Twitter and Mastodon.
John:
So I can see things like people asking ask ATP questions, especially since Casey's automation that automatically finds anybody who uses the ask ATP hashtag and shoves it into a Google sheet doesn't currently work with Mastodon and we'll work on getting that work.
John:
Yeah.
John:
I like to look at the ATB mentions manually.
John:
And I can.
John:
I have access to the ATB account.
John:
We share access to that account.
John:
I can have it in Mastodon.
John:
I can go over that and look at the mentions when I'm logged in, right?
John:
What I can't do, though, and what I'm used to doing on Twitter...
John:
Is I on Twitter?
John:
I just have a saved search for at ATP FM and I can look at that saved search and now I'm looking at all of ATP's mentions I can't do that on mass.
John:
I don't I have to be Signed into the ATP account look at the mentions, but just fine again I can do that but when I want to reply to them I want to reply to the ATP FM mentions as me I don't want to reply from the ATP account because I don't feel like I'm speaking unless I'm speaking for all of ATP, which is a rare occurrence I wanted to speak for myself and
John:
and mastodon makes that so hard because when i'm when i'm signed into atp looking at the atp mentions i see something i want to respond to this is what i have to do copy link to the the toot marco nope i'm not on board with this as a url then i have to switch back to my account paste that url into the search field switch to post so it finds that post and then reply to it that is a terrible process i'm
John:
takes way too long i just want to be able to reply i don't know what the solution to this is because i understand all the decisions that led to this i understand it's a weird use case to be looking at like a shared account or whatever but boy is it hard to you know because the thing might not even be on the same server as you and so if you do it in the web thing you have to it's just doing it in clients like the iowa various iowa clients i use some of them make this harder and easier depending on how that how well they have integrated the search and reply functionality
John:
It's weird.
John:
But anyway, if you do want to ask and ask ATP on Mastodon, human beings will look at that.
John:
And if we find the question interesting, we'll probably see it.
John:
But the automation was really good because the automation just puts it into a giant Google sheet and we can browse that at our leisure.
John:
So even if we missed it in the day of or whatever, or noted it but forgot to write it down, it would always be in the Google sheet.
John:
So we'll work on that.
Casey:
So you can, like John said, you can certainly ask on Mastodon, but we need an automated solution.
Casey:
Actually, I was listening to Upgrade before we recorded, and Mike was hinting that they have some sort of automated solution.
Casey:
Now, he never said anything about Mastodon, but I'm curious to see what they come up with, and maybe I'll be able to steal it.
Casey:
with regard to issues actual question you know how do you back up and store the main xcode project folders i mean i just check stuff into github and i don't remember where i got my git ignore but it's like a standard issue ios git ignore so perhaps i'm misunderstanding the question but like other than what's in github which is enough to just download and start you know development assuming xcode is already installed i don't do anything explicit or specific for it you know i do have time machine and i do have backblaze but
Casey:
I don't do anything specific.
Casey:
So am I missing the point here?
Casey:
I don't know.
Casey:
Marco, what is the correct answer?
Marco:
So the way I read this is, is Shu not using source control?
Marco:
I don't know.
Marco:
So my answer here is, I mean, the main store for my source code is GitHub.
Marco:
That's the source control store.
Marco:
They're all private repos, which you can do.
Marco:
Yeah, same.
Marco:
So I store it there for many reasons.
Marco:
And then the local checkouts of my code, they are backed up just as any other files on my computer are as part of Time Machine and Backblaze and everything else.
John:
Yeah, same.
John:
Yeah, I do think it's weird that this question didn't mention version control.
John:
Maybe people are in the mindset where they've been heard so many times if you've been around the internet, RAID is not a backup.
John:
Like, oh, it's a way to redundantly store data on a disk, but RAID is not a backup.
John:
You need to make separate backups because if you host your data on a RAID, it's hosed on your RAID.
John:
It's not a backup solution, right?
John:
As in, oops, I deleted it.
John:
Oh, I want to get that back.
John:
RAID does not help you there.
John:
Maybe your file system helps you there.
John:
Maybe your backups help you there, but RAID is not a backup solution.
John:
Git, decentralized version control, is also kind of not a backup, but it's way more of a backup than RAID for a bunch of reasons.
John:
So first of all, the point of decentralized version control is there's not some central server that has all the data and then your client just has a portion of it.
John:
When you clone a repo, the word clone is right there.
John:
you've got it locally now it doesn't mean they're always in sync all you could have repo on your laptop on your desktop on github and they could all be at different states right so they're not automatically synchronized you have to do that yourself with pulling and pushing and fetching and doing all that stuff but the thing about version control that has that raid doesn't is that it keeps past versions of your thing so if you screw it up real badly and
John:
you can always rewind to a time when it wasn't screwed up and it keeps them forever unless you remove them right and that's not raid does not do that for you right so using git and having or any kind of decentralized version control and having multiple reasonably recent clones of that repo that you have some way of keeping in sync is actually a pretty good backup and the github thing is like i'm trusting github the big giant corporation now owned by microsoft to mostly not lose my data right
John:
If you wake up one day and like, oh, GitHub is out of catastrophe and 60% of their private repos, the data is gone.
John:
Sorry.
John:
Actually, I think most people they'd grumble, but most people probably have local copies of that repo, local clones of that repo that are reasonably up to date.
John:
In fact, their local repos may be ahead of the one on GitHub because they haven't pushed recently.
John:
So it wouldn't be as big as a disaster because that's the nature of decentralized version control.
John:
But having it on GitHub is in fact one, it's a cloud backup, right?
John:
But what, you know, Casey said is true too.
John:
They're just files like Backblaze, Time Machine, like back them up the way you're backuping your files.
John:
The good thing is they're probably small files too, so you don't have to worry about it.
John:
So yeah, they should be in your patented backup vortex where they get backed up to multiple local backups, multiple cloud backups, and then throw in GitHub as a second or third cloud backup because I think it counts.
Casey:
Sean Cameron writes,
Casey:
With studios producing new content available streaming only, there's often little you can do to avoid this until it's released on another medium.
Casey:
How do you manage?
Casey:
And have you ever looked into lossless movie sources like Kaleidoscape, which claim to offer an even higher bitrate than Blu-ray?
Casey:
You know, this is a very funny ask ATP because I've been giving a friend of mine a real hard time.
Casey:
He just got—actually, we were talking about him obliquely when you had recommended the LG and your Sony—
Casey:
He just got, you know, this, I think he ended up with a new LG and he keeps insisting on buying Blu-rays and I keep making fun of him for it because, oh, you know, it's fidelity, fidelity, fidelity.
Casey:
And this is your time to make me feel wrong, John, and convince me that the Blu-ray player from 15 years ago that's been in my attic for 10 years should come back downstairs and be used anew.
John:
Maybe not if it's a 1080 Blu-ray player.
John:
I know, I know, I know.
John:
So, yeah, so getting my fancy TV that's 4K, it's my first 4K TV, so I'm late to the 4K revolution.
John:
But it has, of course, made me realize, oh, I have that movie and I have it on Blu-ray, but it's only 1080 and it's a 4K version.
John:
And it's tricky with Blu-ray because there's so much more to a Blu-ray release than just, you know, the bit rate.
John:
it's you know how is it mastered how is it upscaled from the lower red source if that's the case there's you know how is it color corrected that's why you see reviews of blu-ray discs which version of the 4k thing of this movie looks good or which one did they screw up by weirdly color balancing it or whatever so you have to do your research there um in terms of what my favorite youtube channel calls bit starved content things that are lossy compressed with bad artifacts and stuff
John:
there actually is a difference in the television you use to view it and how it handles that.
John:
You wouldn't be surprised to know that upscaling non-4K content to 4K, different TVs do a better or worse job of that.
John:
But even just playing content at its native resolution when it is bit-starved, when the bitrate is not enough to avoid visible compression artifacts,
John:
televisions have ways to try to make those compression artifacts less visible and it's not even like the really extreme like oh just totally massage this picture the picture you know computational photography but for video even with basically everything turned quote-unquote off some televisions will do things like decontouring filters at a very very low level that will show difficult gradients with less banding the other televisions the the one that uh hdtv's has the youtube channel i was referring to
John:
always uses is a uh scene from the martian which has like a red orange kind of martian sky in the background and it's a big gradient behind matt damon's head it's like a dark you know dark orange too light orange huge gradient across the whole sky and even on blu-ray it is difficult to show some televisions have difficulty showing that content at a high bit rate without banding on the uh
John:
on the gradient right because it's a challenging situation to get a smooth gradient across you know across an entire 4k screen some televisions do better than others that's why you watch tv reviews and find out you know what do i care about more do i care about you know gaming input lag versus decontouring versus handling the really badly compressed hbo copy of a game of thrones episode that's really dark and has really weird flickering and uh uh
John:
What is it?
John:
Near Black Luminance Overshoot?
John:
Did I get that?
John:
I think I got the reverse.
John:
I'm sorry, Vincent Teo.
John:
Near White Luminance Overshoot is one of those two things.
John:
Anyway, there's a bunch of visual artifacts that you might care about that your TV has an influence on.
John:
So that's why I say look at TV reviews.
John:
Now, setting all that aside...
John:
You do want the highest bit rate you could possibly get.
John:
That's why I buy Blu-ray discs of the movies that I care about the most because I don't want to see them in the movies that I care about the most.
John:
And yes, you can see the difference if you actually are familiar with the movie enough, especially on a service where either your network connection is bad or the service is having a bad day or the service just has low bit rate stuff.
John:
You'll look at a particular scene and it'll be blocky and it's gross and it takes you out of it.
John:
If anyone ever throws confetti in your movie, you should get the Blu-ray disc.
John:
Because confetti is hell on a handbag artifact.
John:
It's so bad.
John:
The movie will look perfect up until the point confetti explodes.
John:
You're like, ah, what the heck is going on?
John:
It's bad.
John:
Like the HBO static logo?
John:
The HBO static logo is actually better because your eye doesn't know.
John:
Like, ah, static is static.
John:
And yeah, it might look a little blocky, but you're not looking for it.
John:
But...
John:
confetti is supposed to be individual broadly colored like little pieces of confetti and you know that's what it's supposed to look like on those macro block it doesn't get hidden like the uh the static logo on hbo does but yeah um the problem with of course high bit rate stuff is it's big
John:
So I get Blu-rays for the movies I really, really care about, but it is such a pain.
John:
Blu-rays suck so bad.
John:
They take so long to load.
John:
You got to go through the menus.
John:
It is the worst.
John:
Everyone hates Blu-rays for a reason, but it's the best I can have.
John:
So that's why I was saying, what about, what if you just take those Blu-rays and rip them one-to-one, you know, no recompression, just take the data right off the Blu-ray and put it on your Synology?
John:
I looked into that back when I had a 1080 TV.
John:
And even at 1080 resolution, I do not have the storage to do that.
John:
Someday I might, but they're big.
John:
1080 Blu-ray is like 50 gigs or whatever.
John:
4K ones might be even bigger.
John:
I haven't even looked.
John:
I just know I don't have the storage for that.
John:
Even for like the one or two movies that I care about, I just, I gave up.
John:
I deleted them off of my Synology and I just go back to the plastic discs that they came from.
John:
So someday maybe when hard drive sizes continue to get bigger and bigger and movies stay at 4K,
John:
I will have one-to-one ripped version of Blu-ray stuff on my Synology, and I think that'll be great.
John:
I do now prefer the services that have higher bitrate content.
John:
There is that, what was the Sony thing?
John:
The Bravia Core, I think it was called, the service that Sony runs.
John:
that will stream you really high bit rate stuff and your sony television comes with like 10 free movies or whatever um i look at that i look at uh you know hbo versus netflix versus amazon to see who has the better version of a particular thing it's usually pretty uh easy to tell you just start playing it and wait a few seconds for it to snap in and see what see what it looks like and in my experience hbo is okay amazon is usually the worst and netflix is somewhere in the middle but your mileage may vary based on the particular thing that you're watching
Casey:
Fair enough.
Casey:
All right.
Casey:
And then Justin Fisher writes, what's the best way to back up a photos library to a Synology?
Casey:
Ideally, I think I'd like a backup as a disk image, open to other options as well.
Casey:
I don't back up my photo library in the sense that I think Justin's talking about.
Casey:
Like my photos, as I've said many, many times, the canonical version of my photos, as far as I'm concerned, is what's on my Synology.
Casey:
But I don't do anything.
Casey:
I don't really do a lot with like albums and favoriting and things like that and photos.
Casey:
And if I lost that, I wouldn't personally be upset by it.
Casey:
So I don't really do anything to back that up other than, you know, to trust an iCloud photo or what is an iCloud photo library?
Casey:
John, you obviously, as you've talked many times throughout the show, you spend a lot of time curating your photos collection.
Casey:
So what is the correct answer to this question?
John:
So if you just point Time Machine at your photos library, I think it ignores everything that's an iCloud photo library, like in terms of the photo data, or maybe just ignores the entire thing.
John:
But the bottom line is that the photos library, especially today, is just a bunch of files on disk.
John:
So any file based backup solution ought to be able to make 100% faithful backup of your photos library.
John:
I would not suggest doing it on a disk image and trying to do that yourself.
John:
Like even if you just backblaze it, like just the online cloud backup of your photos library.
John:
And as long as you don't leave photos running all the time, or even if you do, like it's just, I'm wondering if you're going to get like the SQLite databases, like mid update or something in general, I think like just having a file based backup of your photos library to a cloud backup service or anything else is fine.
John:
I wouldn't go through the trouble to make a disk image.
John:
on your Synology and then go through that because I don't think any of the metadata matters that much.
John:
You just want to make sure you're getting the files.
John:
So the prerequisite to that is you would have to have your photos library on your Mac set to download originals so you actually have the photos.
John:
If you don't have it set to download originals, what you're backing up is a bunch of smaller or lower resolution thumbnails and then some full-size images, right?
John:
So you have to set it download originals, you have to let it download all the originals, then use any decent file backup solution
John:
to back it up and the reason i say don't make a disk image is because then you got to mount the image which might be annoying and then you on top of that then you have to run some kind of you know backup file synchronization thing that understands mac metadata which is actually pretty hard to find so better to just point cloud backup or carbon copy cloner or any kind of like basic file based backup solution at your photos library and just have it backed up like any other set of files
Casey:
Marco, any thoughts?
Marco:
Yeah, I would just use regular backup methods.
Marco:
I would just use Time Machine.
Marco:
Synologies host Time Machine backups really well.
Marco:
So if you aren't already using a Time Machine Synology backup, I would suggest starting to do that.
Marco:
And then just it's then included.
John:
Well, yeah, but then check.
John:
That's why I didn't definitively say this one way, but I seem to recall that Time Machine ignores photos in your photo library if you have iCloud photo library enabled.
John:
Yeah, so check, I guess.
John:
Yeah, you'll be able to tell.
John:
Just look on your backup and see if your .iCloud photo library folder is like one terabyte or like 500 megs.
John:
It should be obvious once you have lots of images.
John:
or you just look inside it again they're just files like your your iCloud photo library thing it's it's a bundle it's it's looks like a file in the finder but it's actually a folder you can go into there and look at the stuff you know don't mess with the SQLite databases but like don't don't mess with anything in there but you can look at it it's just a bunch of files
John:
All right.
Marco:
Thanks to our sponsors this week, Green Chef, Trade Coffee, and Squarespace.
Marco:
Thanks to our members who support us directly.
Marco:
You can join at atp.fm slash join.
Marco:
We will talk to you next week.
Marco:
Now the show is over.
Marco:
They didn't even mean to begin.
Marco:
Cause it was accidental.
Marco:
Oh, it was accidental.
Marco:
John didn't do any research.
Marco:
Marco and Casey wouldn't let him.
Marco:
Cause it was accidental.
Marco:
Oh, it was accidental.
John:
And you can find the show notes at ATP.FM.
John:
And if you're into Twitter...
Marco:
You can follow them at C-A-S-E-Y-L-I-S-S So that's Casey Liss M-A-R-C-O-A-R-M-E-N-G Marco Armin S-I-R-A-C-U-S-A Syracuse It's accidental They didn't mean to Accidental Tech Podcast So long
Casey:
John, a long time ago, you went on an adventure with microphones.
Casey:
And I actually did kind of the same thing.
Casey:
Marco had suggested to the two of us that, hey, maybe it's time to upgrade our mics.
Casey:
No, no, no.
John:
That's not what I said.
John:
Okay.
John:
That's right.
John:
The reason I put this in here is because this is one of those questions we get every few years.
John:
And we usually, you know, we like to re-answer the same questions multiple times.
John:
If you listen to the shows for years and years, you know that.
John:
And I think it's a useful thing to do.
John:
And this is our...
John:
I don't know, biannual, every three years, whatever, answering of the question, how do you record your podcast?
John:
What kind of equipment do you use?
John:
We get that question all the time, but we can't answer it all the time.
John:
But this is one of the times we're answering it because the story that we're going to tell here is tangentially about what we're used to record a podcast, but it was kicked off by Marco posting to various channels that we are in.
John:
Hey, this microphone that I like that used to cost $700 is now available for $400.
John:
that's a good deal you should check this out yes it was not wasn't to us in particular it was just like this is quite a price cut 700 down to 400 was it seven to 400 or seven to 300 it was seven i think to 400 yeah but anyway that's a good deal right and it wasn't you know what we later found out is it wasn't like on sale for black friday or something like that it was just like this is the new lower price and so this microphone that you might have looked at and said oh marco likes his mic was 700 like i'm i'm not a big wig podcaster i don't need to look at that
John:
$400, you're like, eh, maybe, right?
John:
And so when Marco posted this, both Casey and I independently thought, hmm, you know, we haven't looked at our audio setup for a while.
John:
This is a microphone Marco likes.
John:
It's way cheaper than it used to be.
John:
And we do podcasts for a living.
John:
We can justify a $400 microphone easy.
John:
Maybe a $700 one, we're like, oh, my current mics are fine.
John:
But for $400, we should check it out.
John:
So I went on this adventure, and so did Casey, of getting this microphone.
Marco:
Without asking me.
John:
Yeah, we don't need to ask you.
John:
I, unlike Casey, was not blaming you for this.
John:
It's not like you told us to do this.
John:
I was just like, this is a thing I'd like to try.
John:
It's not like I mess with my setup very often, right?
John:
It's been years and years.
John:
And I'll get to what my current setup is in a second.
John:
But this microphone is called the Earthworks Ethos.
John:
We'll put a link in the show notes.
John:
It is a very nice-looking, attractive microphone.
John:
One of the reasons that I was interested in, in fact, had to do with the form factor.
John:
My current setup is unwieldy.
John:
It is the stand is big and weird.
John:
I have a pop filter.
John:
It's got a little springy.
John:
What is it?
John:
What is that thing called?
Marco:
A shock mount.
John:
Yeah, it's got a shock mount with little elastic thingies.
John:
I've had it so long that the elastic in the shock mount dried up and broke and I had to get new elastics for it just from existing.
John:
It dried up and crumbled to dust and I bought new elastics for it like two years ago or whatever.
John:
And I don't like it.
John:
And this new one has an integrated shock mount and is slim and, you know, integrated shock mount and a little what is the little foamy thing called?
Marco:
A pop filter, effectively.
Marco:
It's a foam windscreen, technically, but it's it serves as a pop filter, basically.
John:
Right, and so it's just a little stick that you put a cable on the back of and it has everything built in.
John:
I'm like, that is much slimmer than what I have.
John:
I would love to have that on my desk instead of this setup.
John:
And hey, if Marco says this is a good microphone, maybe I should try it out.
John:
uh the main reason i wanted to bring this up is this is an xlr microphone that's the type of connector that's on the back of it and there is no xlr port on the back of any of our macs so if you want to plug this microphone into your mac you plug an xlr cable into the back of the microphone and then the other end of that cable plugs into something and then that something connects to your mac
John:
And I have never had one of those somethings.
John:
For the entire time I've been podcasting, my entire podcasting career, I have had a microphone that you plug a USB cable into the microphone and the other end of the USB cable connects to my Mac.
John:
And if there's one message I want everyone to get from this thing, this whole adventure here is that...
John:
You can be a professional podcaster with a microphone that connects with a USB cable to your computer and that's it.
John:
You do not need a giant console with motorized faders on it and a bunch of RGB lights.
John:
You do not need a stream deck.
John:
Do you not need a big fancy amplifier with tubes on it?
John:
And also you don't need any of that stuff.
John:
i record this podcast on what i think is like this third microphone i've ever bought uh for doing this it's no longer made which is relevant in a second but it is the shure pg42 usb and that usb at the end it says hey sure used to make a version of this microphone with an xlr in it but they also made a usb variant and a usb cable just plugs into the bottom of this microphone and that's it that is my entire audio setup i have a microphone stand a shock mount
John:
the the windscreen thing this is all just physical stuff it's like pantyhose sweats stretched over a little uh circular thing and a fuzzy foam microphone and some cruddy rubber bands that eventually rot out that's it you do not need fancy audio equipment and this microphone i mean it wasn't cheap but it wasn't expensive i think it was maybe like two or three hundred dollars back when i bought it yeah i think it was like 249 when it was when it wasn't right listed
John:
And we're going to go into the details of this kind of microphone or whatever, but like I said, if you want to podcast, you do not need fancy audio equipment.
John:
That said, lots of people I know who podcast have fancy audio equipment.
John:
I was like, you know, I kind of like that I didn't have it because it makes a simpler setup.
John:
But hey, if the cost of having the slimmer microphone that Marco says that he likes is that I have to deal with some of that XLR stuff.
John:
why not i've got time i'm not currently messing with my setup my computer setup is fine i should go on this little adventure so i ordered the the microphone you know and an xlr cable and then i decided i needed to buy some kind of box before before you get to this let me let me tell people about your current setup a little bit more than you did i'll explain what you're going to explain in a second i just want to just want to go through the story and then we'll understand why the results are what they were and i think it's a perfectly fine result but anyway
John:
I needed a little box to connect it and the box I was looking for is basically has XLR that the microphone plug into and then I just wanted USB from that box to my computer and it would be a USB audio input There's lots of boxes like this that you can get one of the features that's been difficult for
John:
all podcasters apparently to deal with has been like a mute thing um there's like the cough button that marco uses that doesn't really mute it just makes the volume really really low but if you you can still hear what's being said i kind of like the full mute thing and some of the modern more modern boxes that are made for podcasters actually do have a mute thing on it uh the one i found was called the algato wave xlr had a touch sensitive full mute full digital mute button on the thing which i thought was great because you don't hear a button clicking it's touch sensitive
John:
Like this box is ideal.
John:
I also wanted to be able to adjust the balance of my headphones of my own voice and the other people's voices.
John:
And this had that as well.
John:
And so I got that one, got the microphone, got everything all set up.
John:
Boy, it was so much smaller set up.
John:
It was just I was like so excited about it.
John:
But of course, like being a programmer, you don't just get it set up and say, we're good to go.
John:
I did what you have to do is...
John:
Got to test it.
John:
Got to see, you know, don't just assume because this is a cool microphone that Marco said was a microphone that he likes, that it's better than your other one.
John:
So I did multiple recordings.
John:
I put my old microphone and my new microphone right next to each other and I talked into them and I sent Marco the recordings and I said, which one of these is better?
John:
And he said, your old microphone is better.
John:
And I was like, okay, maybe the box I got was wrong.
John:
So I borrowed a box from a friend that had like a lower noise thing because there was definitely some noise in this thing and did the same thing.
John:
Okay, Marco, which one of these is better?
John:
Your old microphone is better.
John:
And then I did a blind test with the old box and the new box.
John:
Marco was like, your old microphone is better, which I was very disappointed to hear because boy, this new setup was so much nicer.
John:
Like the box wasn't that big, but the microphone was smaller and lighter and there was less stuff around it or whatever.
John:
But
John:
always test now why was the old microphone better my current microphone my old one is a large diaphragm condenser microphone which basically means that there's a big thing in there that my voice makes wiggle right it's literally large diameter uh and this is the type of microphone that if you read marco's giant microphone review that will link he says the
John:
large uh diaphragm large diameter condenser microphones pick up every little thing every little noise because they have a large a large thing that like that for air particles to whack up against right i happen to have an acoustically nice room with carpets and bookshelves and lots of soft materials so you don't hear a lot of echo and so i get away with using a large diaphragm condenser also my voice being kind of froggy and nasal so
John:
I need a large diaphragm condenser to make my voice not sound awful because the only like good parts of my voice need to be picked up by this large diaphragm condenser.
John:
And the one the Earthworks ethos was what is that one, Marco?
John:
It's a small diaphragm condenser.
John:
All right, so it's not a dynamic microphone, which is the other kind.
John:
It is a condenser microphone, but it is smaller.
John:
Like the diameter of the thing that wiggles is, you can tell it's smaller.
John:
The microphone is small.
John:
It's physically smaller.
John:
It is a smaller thing in there that is wiggling back and forth.
John:
And it wasn't as good at picking up the nuances of my voice that need to be there to make me sound slightly less like Kermit the Frog.
Marco:
And people overestimate or overthink the difference between condenser and dynamic, and they attribute benefits to one or the other that actually aren't a result of the pickup technology and are more the result of the pickup pattern or the other various characteristics of the mic.
Marco:
But yeah, you had a large diaphragm condenser that worked well.
Marco:
And the problem with large diaphragm condensers...
Marco:
If anybody's ever been in this podcast microphone buying game, you've at some point probably tried the Blue Yeti.
Marco:
The Blue Yeti is a large diaphragm.
Marco:
There's a few other popular ones that are in the affordable price range.
Marco:
And the main characteristic of these is...
Marco:
They can sound amazing in a really good environment.
Marco:
So if you have what John has, which is a small room filled with soft, diffuse surfaces like carpet, bookshelves with lots of books in them, all different sizes sticking out, any kind of padding or anything, any kind of acoustic treatment you can get.
Marco:
Bay window that's on an angle.
Marco:
Yeah, anything that is not just like a big hard box, like anything that is soft and different shapes that can diffuse the sound, whether it's actually acoustic foam or a bookshelf or whatever.
Marco:
So and also large diaphragm condensers are very sensitive to shaking.
Marco:
Like if you hit the desk, that's why you put them in those giant suspended rubber shock mount things.
Marco:
And they're usually very susceptible to pops when you take mine off for a second.
Marco:
When you say pop, pop, pop, and you get that big bass thing, when that big blast of air, when you say the p sound, when that hits the diaphragm, it goes boom, and you hear that.
Marco:
So anyway, they are very sensitive.
Marco:
They do pick up everything to a fault.
Marco:
And so if you are in good circumstances, and if you baby the crap out of the microphone, they sound amazing.
Marco:
I have never been able to get one of these to sound amazing for me because I'm never in a perfect room.
Marco:
But John, for some reason, is.
Marco:
And so when he first got this microphone years ago, I told him, oh, my God, never change it.
Marco:
Like, it's great.
Marco:
Just don't change a thing.
Marco:
And that's the audio way.
Marco:
When you get something working, don't touch it again.
John:
but the reason i was interested in changing it had nothing to do with the quality of the audio and everything to do with just the physical reality of this micro and it is unwieldy like all the all the things you said about it like i it just i would love to have something slimmer and less cumbersome and just you know because this i have i have a double uh pop filter like it's two pieces of pantyhose strung over like a ring a double one of those in front of the microphone which has a foam thingy on top of it
John:
Right.
John:
So my plosives are, are as well arrested as they possibly can be.
John:
And that all adds to the bulk.
John:
So, you know, I, you know, if it's, if it's not broken up, part of it is like, because they don't make this microphone anymore.
John:
It literally, if this microphone breaks, I'm going to have to buy one and then I'm going to have to start doing research.
John:
But at least now I know just to look for other large diaphragm condensers, I suppose.
Marco:
What?
Marco:
And the good thing is you don't have to do that much research because large diaphragm condensers, like I did this in my mic test.
Marco:
I got a really nice one from Neumann and a couple others.
Marco:
Large diaphragm condensers sound pretty much all the same.
Marco:
Like there are very small differences.
Marco:
But for the most part, across all price ranges, they sound pretty similar because they have fairly flat frequency responses and they don't really color the sound.
Marco:
Dynamic mics have a huge range of how they sound.
Marco:
Because dynamic mics, just because of the different ways they pick up, it's almost like Instagram filters for sound.
Marco:
Like the old Instagram filters, like when they would significantly change the way the image is.
Marco:
You can get different dynamic mics that sound radically different on the same person's voice just by the nature of how they're made.
Marco:
Condensers are not like that.
Marco:
Condensers largely sound the same.
Marco:
And the large diaphragm condensers in particular...
Marco:
really sound very similar to each other all of them like they you can get different characteristics and like pickup pattern and you know certain like built-in filters that might be on the mic but for the most part the basic pickup of them is all very very similar and so and actually that's what the blue yeti is a really great sounding microphone in a really good environment but i don't recommend it to people usually because no one except john has a really good environment to record sound which we'll get to in a minute with casey
Casey:
Wait, what do I do?
Casey:
I'm not in trouble, am I?
John:
Well, just to finish on my thing here, I want to say that, like, when I sent the audio recordings to Marco and he said mine sound better, I could hear the difference, too.
John:
Like, if he had said that, but I thought they sounded the same or I sounded better, I would have kept the new microphone.
John:
But...
John:
you know it was impossible not to hear like i because i did like as good an a b test i'm literally talking to both microphones at the same time and i could hear the difference and i had to agree the old one was better as much as i hated it i was like oh no because i had to return everything and it was annoying for multiple reasons and no one likes to go through all that i mean i did return everything i got all the money back it's fine or whatever but it's like
John:
Boy, it was so much nicer when that set up, but this one sounds better.
John:
And I really do think it has to do with the nature of my voice.
John:
If you have like a big earthy kind of, like if you have a voice that is not as nasal as mine, I think the difference would be less severe.
John:
I think, in fact, I think I was recommended, hey, you should use a large diaphragm condenser.
John:
By a listener who's an expert in audio who said, your particular voice, John, you, John, because of the way your voice sounds, you will need something like a large diaphragm condenser to make you not sound as bad.
John:
Or apparently I could wake up at 9 a.m.
John:
because everybody loved my voice on the episode where I had to wake up at 9 a.m.
John:
And I listened back to it and I'm like, I sound congested and gravelly.
John:
And everyone's like, yeah, congested and gravelly.
John:
That's great.
John:
No, I don't like congested and gravelly.
John:
Anyway, it didn't sound as much like me.
John:
But yeah, so apparently I need a large IFR condenser.
John:
They are unwieldy.
John:
I continue to have one.
John:
I'm glad to hear that if this does eventually break, I can find another one that is essentially equivalent.
John:
But I don't even want to go through that because it sounds like if I find an equivalent, it will also be unwieldy.
John:
I'll have to have the stupid shock mount and it'll probably be side address instead of front address.
John:
Usually.
John:
I'll have to have the thing.
John:
Well, anyway, it is what it is.
Marco:
That's why I personally, for myself and for most people, recommend small diaphragm condensers that are usually in the form of stage microphones.
Marco:
In fact, this Earthworks Ethos, I think, is the first one I found that was not, that was also otherwise good.
Marco:
And I usually recommend super cardioid pickup patterns.
Marco:
And what that means is, like, it only picks up, like, a very kind of narrow shape in front of the microphone.
Marco:
And if I move off to the side here, I'm moving off to the side now, I get quiet very quickly because
Marco:
And if I come back to the front of the unit, it's kind of loud again.
Marco:
So the idea there is the kind of sharper the shape is that it's picking up within, the less room echo and background noise it is likely to pick up.
Marco:
Now, it doesn't work miracles, as with Casey.
Marco:
It doesn't work miracles, but generally speaking, the small diaphragm stage condensers like the Beta 87A or the Neumann KMS-105 and now this Earthworks ethos that I found...
Marco:
They are way more practical for most podcasters just because most people don't have perfect rooms in perfect conditions all the time, and they minimize background noise better than most.
Marco:
Whether you go dynamic or condenser, the super cardioid pickup pattern is one I strongly recommend.
Marco:
And in fact, Casey's mic is a super cardioid dynamic.
Marco:
It's the Shure Beta 58A.
Marco:
I recommended this to him a forever ago.
Marco:
Basically what happened was a long time ago when, when John got his new microphone, he, he by, by comparison made Casey and I sound like garbage.
Casey:
And so we were like, all right, this cannot stand.
Marco:
Yeah.
Marco:
It's like John, all of us, like, you know, we were using like, I was using the road podcaster for, you know, that we should be like, like what all the, like the five by five and twit people got a million years ago.
Marco:
And it,
Marco:
You know, by today's standards, it was garbage.
Marco:
But back then, it was fine.
Marco:
But, you know, then once John steps up to, like, you know, a nice large condenser, we sounded like crap by comparison.
Casey:
Well, I had a Shure something or other for a long time, and then after that...
Casey:
I think I have this on my website somewhere.
Casey:
But anyway, after that, I got the, what is this, the 58A?
Casey:
I don't even remember.
Marco:
The Beta 58A is what you use now.
Casey:
Yeah, and this has been working pretty well for me.
Casey:
And the short, short, short version of the story for me with regard to the Earthworks ethos is that I did the exact same thing that John did.
Casey:
Oh, that's a good deal.
Casey:
I'm a sucker for a good deal.
Casey:
I'm a professional now.
Casey:
I should give this a shot.
Casey:
And I did.
Casey:
And Marco immediately said, oh, absolutely, absolutely not.
Casey:
That is not going to work for you.
Marco:
Oh, my God.
Casey:
Real-time follow-up is the SM7B and then, like you said, now I'm on the 58A.
Marco:
Oh, I hate the SM7B so much.
Marco:
I tried to make it work.
Marco:
I bought one myself because I was duped like everyone else who buys them.
Marco:
Oh, this is the radio classic.
Marco:
Michael Jackson recorded Thriller on it.
Marco:
Oh my God, what an overrated microphone that is.
Marco:
I tried for a long time.
Marco:
I spent a ton of money trying to make that thing sound good.
Marco:
And it turns out it's not that great by modern standards.
Marco:
It was great when it came out.
Marco:
That was a very long time ago.
Marco:
We have better options now.
Marco:
So what happened when Casey tried my new microphone, the Earthworks Ethos that was now discounted, when he tried it, I'm like, what is all this background noise?
Marco:
Are you running a fan?
Marco:
Are you in a fan factory?
Marco:
What is going on there?
Marco:
And you're like, oh, yeah, well, I'm running these 14 fans in the room, but I always run them.
Marco:
You never hear them before.
Marco:
Yeah.
Casey:
That's mostly true.
Casey:
It is not 14 fans.
Casey:
But typically, I had a ceiling fan on for like 98% of the run of ATP.
Casey:
And this has actually stopped in the last month or two because it was a month or two ago that I guess it just had a little bit of a jiggle to it, the ceiling fan.
Casey:
And Marco blew a gasket, which if I were in your shoes, I would have blown a gasket.
Casey:
I was like, what is this ticking?
Casey:
What is this ticking?
Casey:
What is it?
Casey:
What are you doing?
Casey:
I was like, what?
Marco:
it sounded like a bomb was gonna go off and so and so it's like you know it's like you know when when the little chain of a ceiling fan is a little bit rattly and the fans going you hear just all the time and he's talking in the background oh my god i'm like what i'm like this is you we can't use this like this is totally unusable
Casey:
Yeah, and so it was immediately verboten that I ever turn the ceiling fan on, which is, I have honored your request ever since.
Casey:
Now, instead, I have a fan blowing at my legs under the desk, which apparently is okay and makes a lot less noise.
Casey:
But anyways, but yeah, Marco immediately said, oh my gosh, this is completely unacceptable.
Casey:
And let me remind you, I think I've told this story more than once because it still blows my mind, but like a year ago or thereabouts,
Casey:
I think I had like a video call for some reason.
Casey:
This was after I was independent.
Casey:
I had a video call for some reason and I had closed the closet doors behind my desk.
Casey:
So my desk face is one wall on the opposite wall on the other side of the room.
Casey:
There's a one of those like accordion closet doors.
Casey:
And I'd closed them and I'd forgotten to reopen them during the recording.
Casey:
And the following day, whenever you went to do the edit, you were like, yep, yep, something's wrong.
Casey:
Something ain't right here.
Casey:
I said, Marco, what are you talking about?
Casey:
I did nothing different.
Casey:
Everything is identically the same.
Casey:
And you and I went back and forth for a few minutes.
Casey:
And I was looking around the room wondering, like, what did I do?
Casey:
And then I looked all the way behind me.
Casey:
And sure enough, the closet doors were closed.
Casey:
And I was like...
Casey:
Well, the closet doors were closed.
Casey:
And, oh, that was it.
Casey:
Yep, sure enough.
Casey:
And I have also never, ever, ever recorded with the closet doors closed ever since.
John:
Make sure you don't take the clothes out of the closet because that is the function, right?
John:
You got to leave the clothes in there too.
Casey:
That's right.
Casey:
And my point is, you know, Marco has a pretty good ear for these sorts of things.
Casey:
And, yeah, apparently the Earthworks ethos was not a good fit for either of us.
Marco:
Yeah, because in John's case, it wasn't sensitive enough because typically the difference between a small condenser like this and a large condenser is the high frequency pickup.
Marco:
Like usually there's a substantial roll off in high frequency pickup for any kind of smaller mic, including small condensers.
Marco:
And the large condensers basically have like relatively flat pickup and in fact sometimes even boost the high end.
Marco:
And so the large condensers pick up everything above 10 kilohertz or whatever.
Marco:
Large condensers are way better at picking up usually.
Marco:
So all that high frequency crispness that makes John sound awesome.
Marco:
And if you're a professional voiceover artist, you're probably using one of these.
Marco:
Because if you're really trying to capture a really high quality voice, that's what you should be using most of the time.
Marco:
But for podcasting, again, when you want to pick up
Marco:
Sometimes you want to pick up less detail for various reasons, like whether whether you want to minimize the harsh like sibilance sound or the high frequencies like that can be very harsh sounding.
Marco:
So whether you're trying to minimize that with certain mics or just try to minimize background noise.
Marco:
And Casey's mic is actually pretty insensitive.
Marco:
Like, you know, in terms of, you know, how much power it takes to generate a signal, it's actually pretty efficient because it uses modern NIB magnets.
Marco:
But the, like, how much it picks up around it, it's a pretty insensitive dynamic mic.
Marco:
Yeah.
Marco:
the only reason i would ever suggest casey upgrade his mic is because casey has a wonderful voice and and a voice that i think would be compatible with almost any mic and in fact if you ever heard any of our live shows i always brought to the live shows three neumann kms 105s that's what we use for those so it's it's three of my mic basically like i would always just bring three of those um and so that you could hear them here i mean it's a
Marco:
And so I would love for Casey to have, like, you know, a better mic at some point to get, you know, more of that glorious Casey-less voice.
Marco:
But he needs a mic that's incredibly insensitive to make up for his ridiculous fan factory that he podcasts.
John:
Oh, stop it.
John:
All his fans and his glass of water with ice in it and his synology running two feet away from his desk.
Marco:
Yeah, that's right.
Marco:
Right.
Marco:
Meanwhile, John accidentally created a perfect recording studio with his home office.
Marco:
And so he's great with a large condenser, a large condenser.
John:
And I do think I need it for my voice.
John:
Like that's why there's not much.
John:
If you take out the highs and my voice, it gets way worse.
John:
Like Casey has a more normal voice.
John:
And I think a lot of radio, the radio sound is more about the mids and the lows than the super highs.
Marco:
So, yeah.
Marco:
And Casey and I both need to be careful about our siblings, that high-end.
Marco:
We both have a strong siblings in our voices.
Marco:
I mumble too much for that.
Marco:
So we both have to use mics that actually have less high-end pickup.
Marco:
And I fix a lot of this with EQ.
Marco:
I EQ all of our voices as part of my process.
Marco:
But, you know, sometimes EQ can only do so much when the microphone is sometimes just not even picking up certain frequencies.
John:
Yeah, you can't EQ what's not there.
Marco:
Right, right.
Marco:
And the mic can get you a lot of the way there.
Marco:
Anyway, so it turns out we all have very different setups for good reasons.
Marco:
And yeah, when you get it working, don't touch it.
John:
Yeah, kind of like you wish you could use the AirPods back when you can use them.
John:
I wish my voice was compatible with that microphone because it was so nice.
John:
It's a really nice look.
John:
It's the first microphone that I thought is nice looking because it looks kind of like the, you know, the shock, not the shock, the flash tube.
John:
Do you remember old cameras from like, you know, Blackfly movies where there'd be someone holding a camera and there'd be like a vertical tube that led to the giant flash.
John:
You'd hold the camera with like one hand on the camera, one hand on the big vertical tube that led to the flash.
John:
that flash tube is what uh luke's lightsaber in the first star wars is based on they took that tube and added a bunch of crap to it so that big flash tube it's just a big silver tube that's what this microphone looks like it looks like that flash tube only instead of adding lightsaber stuff to it they added a really cool looking little ball joint microphone thing to it an xlr to the bottom and a fuzzy sock on the top
Marco:
so i endorse i endorse the earthworth ethos at its new price of 400 as long as your voice doesn't sound like mine and as long as you are not in a fan factory yeah it's not a fan factory come now sorry a bomb factory but like only the cartoon bombs with the alarm clocks on them it's one or the other you have to choose you have to choose what the factory's producing it's either a bomb or fans one or the other