Coffee Stops Working
John:
We'll talk about TiVo next week.
Casey:
Sorry, John.
Casey:
We're never talking about TiVo.
Casey:
So we're in the midst of talking about what to do about shirts for this year.
Casey:
We've been talking about it, the three of us, for a couple of weeks now.
Casey:
Ding.
Casey:
And I really like it.
Casey:
And I really like it.
Casey:
And we haven't really come up with any brilliant ideas in terms of design.
Casey:
We don't want to just kind of phone it in and do regurgitation of a prior design.
Casey:
Yeah.
Casey:
But, you know, if there are listeners that would like shirts, we want to fulfill that need.
Casey:
So we're in the midst of a debate over what to do.
Casey:
And we were currently leaning towards, I think, not doing shirts this year in part because Teespring isn't going to have them done and delivered before WWDC, which is typically when we try to get this thing done by.
Casey:
So we're not sure what to do.
Marco:
Yeah, so because basically, and you know, WBDC is a nice target date because a lot of fans are there and people like buying shirts and showing off their geek shirts there.
Marco:
But the reality is the vast majority of purchasers of the shirt probably aren't going to WBDC.
Marco:
We're talking like, do people have t-shirt fatigue?
Marco:
Are people tired of t-shirts?
Marco:
People have too many t-shirts?
Marco:
Is there anything else we could sell?
Marco:
Maybe a hoodie, maybe mugs or other stuff that's not shirts?
Marco:
Polo shirts.
Marco:
And my position is very strong that I think we should have an original design every time we do these things.
Marco:
Because we don't want to...
Marco:
You know, I learned forever ago from Howard Stern, actually, who I learned a lot from.
Marco:
He had a thing.
Marco:
He was kind of criticizing somebody else.
Marco:
I think it might have been Rush Limbaugh, some other talk show host for constantly nickel and diming the audience for just selling them all sorts of garbage with his name on it or something like that.
Marco:
And Howard said his position is always to basically ask the audience for money as infrequently as possible.
Marco:
This is why you can't get Howard Stern's face on a bumper sticker.
Marco:
There's pretty much no official merchandise for the show.
Marco:
Very little, if any.
Marco:
I don't think I've ever even seen any.
Marco:
And he said that when he moved to Sirius, that was like a big ask that was like, all right, I'm moving from free radio to a paid service.
Marco:
He's like, I'm going to ask the audience now for the pretty big ask.
Marco:
Come to me to this paid service.
Marco:
And he said he was already asking them for that.
Marco:
Then he really didn't want to ask them for more money like in anything else.
Marco:
He really wanted to kind of like conserve the times he asked the audience for money, you know, as respect for the audience.
Marco:
And so that when he does ask, it matters.
Marco:
And so I've kind of internalized that in a lot of stuff I do.
Marco:
And that's why I feel like with this show, I feel like for us to ask the listeners, hey, go buy this thing, I want to make sure it's good.
Marco:
And I don't want to ask that question too often.
Marco:
And so that's why, for me, it's not enough to just say, let's just do the original shirt with the logo on it with Swift on the back, for instance, which is one of the ideas we had.
Marco:
It should be fine, you know, because the original version had just C code in the back.
Marco:
We could put Swift in the back and it would feel like phoning it in.
Marco:
And we don't want to do that to you, to the audience, because if we're going to ask you to buy something, we want to make sure it's it's like good and that we are putting a lot of effort into our side as well.
Casey:
Yeah, so in summary, we're not sure what to do.
Casey:
And when we don't know what to do, we'll probably just punt and wait until somebody has a clever idea.
Marco:
I do love that Lava like in the chat suggested making an ATP watch strap.
John:
I do think that is brilliant.
John:
That is fantastic.
John:
For the Apple watches that the two of us aren't wearing.
Marco:
It could come in multiple versions.
Marco:
Mine could have a spring bar so you could put on any watch.
Marco:
And John's could just be like something that you hang on the wall or something.
Casey:
Or it can come with the arm hair already torn out of your arm and attached to the strap.
Marco:
Well, John, we could get custom Dynaflexes printed.
Marco:
I don't know what that is.
Marco:
I have no idea what that is.
Marco:
What are you talking about?
Marco:
They're the RSI, the little gyroscope spinny ball things that people use for RSI.
Marco:
They're actually really good.
Marco:
I did it for a while.
Marco:
You guys are useless.
Marco:
All right.
Casey:
All right.
Casey:
Speaking of useless information, I have a very short story that I'd like to share.
Casey:
I apparently have a – what's the term for this?
Casey:
Somebody that has my exact same name but isn't me.
Casey:
Doppelganger?
Casey:
It's like a twin or doppelganger.
Casey:
Yeah, but he doesn't look like me.
Casey:
When I was trying to get myself onto the right timetable when I was in California on vacation, as everyone always is when they're in California –
Casey:
I probably was doing a vanity search or God knows what, and I somehow came up with the link I just put in the chat that says, Casey Liss, a senior computer engineering major at the University of New Hampshire, presented his research on, quote, IoT security, ASIC implementation of the hash function Blake.
Casey:
And I was completely stupefied by this because I've seen plenty of Casey's and I've even seen a handful of Lisses.
Casey:
But to see the combination of Casey lists was startling.
Casey:
And then furthermore, I found another page.
Casey:
This is how bored and desperate I was during my bout of insomnia.
Casey:
I found another page that had some mention of a guy, Corey Liss, C-O-R-E-Y, who supposedly looks like Justin Timberlake, even though he really doesn't, who has a twin, Casey Liss.
Casey:
And this is doubly interesting because my dad's name is Corey.
Casey:
It's spelled differently, but yeah, very weird.
Casey:
And this totally weirded me out, and I wanted to share with the group, and we can cut this from the show.
Marco:
You know, it would be amazing.
Marco:
I'm not going to listen to the show because I think it would be amazing if it became like a thing that people did that whenever they wanted to give like a fake name to a newspaper reporter or something, instead of going for some like name that sounds like, you know, like some general reference when it's said aloud that, you know, people have done before, just start giving the name Casey Liss.
Marco:
Oh, God.
Marco:
And then wouldn't it be amazing to just have like all Casey Lisses like just showing up everywhere?
Marco:
Yeah.
Casey:
No, that'll ruin all my vanity searches, man.
Casey:
Come on.
Marco:
That's the best reason to do it.
Casey:
So yeah, so that really weirded me out when I was in California.
Casey:
It was probably like three in the morning or something like this.
Casey:
And I found that I have a quasi-doppelganger.
Casey:
I think there's a term for this.
Casey:
I don't think it's doppelganger because isn't a doppelganger somebody that looks like you but isn't you?
Casey:
Yes.
Casey:
Where's the umlaut?
Casey:
It's over the A. I got to get this right lest we have all the pedants.
John:
Oh my God.
Casey:
That was for you.
John:
yeah we're all just one serial killer away from having our vanity searches ruined anyway you're going through life serial killer or pop star you're going through life and your name is michael bolton as in office space and you feel like you're fine it was a good name until that no talent ass clown ruined it oh god did we did we get a reference trifecta i you know
John:
Yeah, I'm coming down to your level.
John:
It's one of the five movies I've seen.
Casey:
Oh, goodness.
Casey:
All right.
Casey:
So we should probably do a little bit of follow-up.
Casey:
WWDC charge failures.
Casey:
We had a lot of discussion in the past episode about what would happen if you win the lottery and you have won the right to give Apple $1,600 of your money.
Casey:
And then they attempt to charge a credit card and the credit card company says, eh, screw you.
Casey:
Uh, listener David Beck wrote in and said, I got an email on Saturday that they failed to charge my card for WWDC.
Casey:
I updated my info and they successfully charged it today.
Casey:
I even got a phone call from an Apple dev relations, uh, representative to make sure everything worked out.
Casey:
Um, additionally, Andrew wrote in my credit card got declined, not for billing info.
Casey:
Apple gave me three days to get it fixed.
Marco:
Yeah, so that's great.
Marco:
It sounds like they have taken this really bad, like, just kind of like, you know, really like hurts to happen to you flaw from previous lottery systems from the last couple years, and they have fixed it.
Marco:
So that's great.
Casey:
Let's talk about Volvo's level four self-driving car.
John:
Yeah, this is the beginning middle of the autonomous driving trash talking among car vendors.
John:
So Tesla gets a lot of the press for the self-driving cars, and Marco was talking about in the last show, how people are asking, well, is this the one that drives itself and everything?
John:
And so, of course, every carmaker has some variant on this type of technology, either out now or coming out soon, and Volvo is hyping its self-driving stuff mostly on a safety basis, and they are...
John:
trashing tesla saying that they have you know level four we talked about that on the past show the sae levels of autonomous cars going from zero to five five being full automation of all those things supposedly level four so it's not only able to drive itself down the road but it is capable of handling any situation they come across without human intervention something goes wrong the car can even safely stop itself at the side of the road and they're uh
John:
senior technical leader of crash avoidance at volvo says if you don't take over meaning like if if you don't take over driving if you're falling asleep or you're watching a film then we will take responsibility we won't just turn autonomous mode off so that's you know tesla will do the marco condos what does it do like beeps at you or something and then eventually turns autonomous mode off what does it do if you are if you don't take the wheel
Marco:
It beeps like a quick error code, the beep, beep, beep.
Marco:
And then it's like the same code if it fails.
Marco:
So you're kind of used to hearing it in bad situations.
Marco:
And then it just, you know, I haven't actually let it go to see like what happens if I don't intervene.
Marco:
I probably won't ever try that, but I would imagine it just coasts.
Marco:
I don't think it like slows down or tries to pull over or anything, but I could be wrong.
John:
yeah so anyway that's what vol was saying there they they're claiming to have a level four system which is called high automation and this little diagram from the se folks one below full automation and they claim that you know don't worry about it we will handle everything we will won't just handle like oh we'll do the driving when it's easy but if we get confused it's your turn to take over they said even if you fall asleep we'll handle it now does handling it mean oh if you fall asleep we'll pull over to the side of the road because that can be extremely dangerous depending on which road you're on
John:
But anyway, the search for true artificial intelligence to drive your car continues.
Marco:
And also, I mean, there's so many other things about this, about, you know, unintended automated driving that are just really hard.
Marco:
Like, as I'm driving around now town with this, like, partially rudimentary, rudimental, rudimentary?
Marco:
What's the word there?
Casey:
Rudimentary.
Marco:
But in an adjective form.
Casey:
Oh, you got me.
Marco:
Rudimentarily.
Yeah.
Marco:
But anyway, whatever that word is, if it exists, as I'm driving around with a car with that level of automation, I see so many situations where like, wow, a self-driving car would have a really hard time with this thing I just did or this road that I'm on or this condition that I just passed.
Marco:
And even simple things like those systems that are automated for the highway.
Marco:
Great.
Marco:
But what about highways that have traffic lights on them?
Marco:
If it's going to be that level of automation where it supposedly handles you stopping paying attention, it has to also do things like stop at traffic lights or follow a traffic cop's directions through construction zones or something.
Marco:
There's so many things like that where...
Marco:
it's just a really hard problem you know things that are even often hard for humans to figure out what to do or where to put their car and so it just shows like once you start thinking about it and seeing seeing in real life and seeing how limited these systems are today i think it just goes to show quite how complex of a problem this is not that it's unsolvable necessarily but that as we said last time it just may not be as imminent as a lot of people are predicting
Casey:
A few people have written in to say, you know, you guys, you really are supposed to eject volumes on Windows as well as on OS X. I can tell you that I used Windows for a long, long, long time, and all I ever did was pay attention to, and this was almost always with the USB key, pay attention to when the USB key stopped flashing its little LED, and then I ripped it out, never thought twice.
Casey:
And I think I may have had data lost like once.
John:
Who knows how many files you corrupted?
John:
You have data loss that you noticed once.
Casey:
Fair enough.
John:
I didn't know that you were supposed to unmount it.
John:
I thought that was the actual Windows way, was wait for the blinking light to stop.
John:
It must have been at some point, like in the DOS days, I guess, because there's no unmounting your floppy disk in DOS.
John:
You just wait for the drive light to stop blinking, and then you turn the little thing and yank out your five and a quarter.
John:
Yeah.
John:
but anyway uh if you're supposed to do it in modern windows too i have also not seen people do that they just wait for the light the blinking light to stop and yank it out and that is crazy in a world of offered io fair enough all right well uh any other follow-up unless unless we want to talk more about the bumper sounds i mean we should talk about that at some point i don't know if it's follow-up anymore though
Casey:
Oh, we have more to talk about?
Casey:
We're leaving the XP sounds because they're perfect.
Casey:
All right, moving on.
Marco:
We're sponsored tonight by Casper.
Marco:
Go to casper.com slash ATP and use code ATP for $50 towards your Casper mattress.
Marco:
Casper is an obsessively engineered mattress at a shockingly fair price.
Marco:
They created this perfect mattress sold directly to consumers, eliminating commission-driven inflated prices.
Marco:
This award-winning mattress was developed in-house by Casper, has a sleek design, and is delivered in a remarkably small box.
Marco:
You can get it up narrow stairs.
Marco:
And now, in addition to the mattress, Casper also offers an adaptive pillow and soft, breathable sheets.
Marco:
The mattress industry has forced consumers into paying notoriously high markups.
Marco:
Casper has revolutionized the industry by cutting the cost of dealing with resellers and showrooms and passing that savings directly to the consumers.
Marco:
Now, an in-house team of engineers spent thousands of hours developing this Casper mattress.
Marco:
It combines springy latex and supportive memory foams for a sleep surface with just the right sink and just the right bounce.
Marco:
Plus, the breathable design sleeps cool to help you regulate your temperature throughout the night.
Marco:
This mattress comes in at a shockingly fair price.
Marco:
Premium mattresses often cost well over $1,500, but a Casper mattress costs just $500 for a twin, $750 for full, $850 for queen, and $950 for a king, and these are made in America.
Marco:
Casper also made buying mattresses online easy and completely risk-free, with free delivery and free returns within a 100-night home trial.
Marco:
If you don't love it, they'll pick it up at your house and give you a full refund within 100 nights.
Marco:
Casper understands the importance of truly sleeping on a mattress before you commit, especially considering you're going to spend a third of your life on it.
Marco:
Now, we've heard from friends and listeners who all have great things to say about the Casper mattress, and Time Magazine named it one of the best inventions of 2015.
Marco:
It is now the most awarded mattress of the decade.
Marco:
So get yours today and try it for 100 nights in your own home with free delivery and free returns with home pickup, completely risk-free.
Marco:
Go to casper.com slash ATP and use code ATP for $50 towards your mattress.
Marco:
Thanks to Casper for sponsoring our show.
Casey:
So you released a new version of Overcast, which has a much improved sync system, or maybe...
Casey:
Yeah.
Casey:
How was your day a few days ago?
Marco:
Well, I released two versions of Overcast in the last few days, if that tells you roughly how good the first one was.
Marco:
Fun.
Marco:
Yeah.
Marco:
I released a new version of Overcast that had noticeable improvements to syncing.
Marco:
And in particular, the speed of syncing between multiple devices.
Marco:
And I kind of codenamed this QuickSync, even though I know lots of other things like Intel's thing.
Marco:
There's so many things in the tech industry called QuickSync.
Marco:
um that's why i'm not really heavily branding it and i didn't capitalize it and i'm not really it doesn't appear anywhere in the app it just kind of is what i called it in blog posts basically what this is is a weird tricky sync system that combines push notifications and icloud key value store to try to get fast syncing between multiple devices most of which are apple devices and one of which is my website
Marco:
The technical details of it aren't that interesting, I don't think.
Marco:
Every syncable object has a sync version number on it, and when you make a change, you increment the version number, and the server manages conflicts when they arise.
Marco:
When you make a change, you also append to an iCloud key value store list the object you just change, like its ID, and then the version number that you just set on it.
Marco:
When the key value store syncs across other devices that are running Overcast, they will, within usually a few seconds or so, they will get that notification from iCloud, which has a persistent connection to the phones.
Marco:
They will get the information from iCloud saying, hey, this dictionary just changed.
Marco:
And now you can look and you can say, this has version numbers on these objects that I don't know about yet.
Marco:
So then that triggers the device to go to my servers and fetch the new information.
Casey:
Even in the background?
Marco:
Well, if the app is running at all, it'll get the notifications.
Marco:
But if it's playing audio, it will get them because it's running.
Marco:
But if it's suspended in the background when it's not playing audio, it won't get them until it wakes up again.
Casey:
Gotcha.
Marco:
So I made the system and I tightened up a few other timings of various things.
Marco:
like when you activate the app how often does it sync does it does it sync every time you activate it or does it does it have like a certain minimum every x minutes and then certain things you do like should i sync every time you pause or seek and then if if you're just playing audio how often should i sync the playback position of that so if so that it syncs properly to the website and to your other devices if you have any of the devices
Marco:
It's just this kind of complex, fairly boring solution to a really tricky problem, which is syncing things in both a way that's quick and efficient of data and power usage and server resources.
Marco:
It's kind of hard to get right.
Marco:
And the first version I launched, I didn't get it right.
Marco:
And so there was a sync loop issue.
Marco:
which fortunately i could fix server side but all day yesterday my server started collapsing because this in theory creates more sync requests than before i was expecting this and so on the server i i actually the server tells the app how frequently to sync certain things and and how long certain timeouts should be so things like like to to coalesce or how did how did federico say that koalas
Casey:
Timer quality.
Marco:
Yes.
Marco:
So I do some of that.
Marco:
And so the server using just like, you know, tweaking some variables in the server, I can slow down all the apps or speed them up.
Marco:
And so I launched out like kind of like a middle setting that I thought would be good and a little bit conservative.
Marco:
And my servers were just collapsing.
Marco:
And I'm wondering what the heck is going on.
Marco:
So I start looking at the logs.
Marco:
I start adding more debug information, trying to optimize certain things.
Marco:
I immediately provision 50% more web servers, just more instances, get them out there.
Marco:
PHP 7 comes with a massive speed up and memory reduction.
Marco:
So in the midst of all this, I'm like, you know, I was running it on one server before.
Marco:
I'm like, let me just deploy it to the rest.
Marco:
I need any saves I can get right now.
Marco:
So I upgrade PHP in all of them.
Marco:
Doing all this crazy stuff, upgrading things, optimizing things, checking database queries, spreading out memcache, like doing all like my crazy scaling stuff.
Marco:
It was like the server day from hell.
Marco:
In my career, I've had many server days from hell.
Marco:
Very few of them, though, after I left Tumblr.
Marco:
Just because once I left Tumblr, I was dealing with things that were just much smaller scale.
Marco:
So Instapaper, I had some of those days, but the scale wasn't as big.
Marco:
And then with Overcast, I've had almost none of those server days from hell.
Marco:
Because A, I've gotten better at doing server stuff.
Marco:
B, the server stuff has gotten more powerful.
Marco:
And C, Overcast isn't that big.
Marco:
As I get further from having server days from hell frequently, each one I have now...
Marco:
is I have no tolerance for it anymore.
Marco:
So each server day from hell I have now, at the end of it, I'm just like, I'm just using iCloud from now on.
Marco:
I don't want to ever be doing this again.
Marco:
But I am still doing it for the next few days, at least.
Marco:
We'll see what happens.
Marco:
Anyway, so...
Marco:
eventually to make a very long story short eventually i i figured out under certain conditions after basically there's a race condition checker if between when you when you start a sync and when you end the sync if you change that object locally then you by definition have the most recent version as long as that sync you know didn't span hours or days or whatever but you know if it's like a you know immediate mode sync
Marco:
If you modify it during the sync operation and the server comes back saying, what you have is out of date, replace it with this stuff I got from some other iPad somewhere that's in your closet, then you know, like, no, what you have is correct.
Marco:
So there's a condition where the app can then tell the server, no matter what you think you have, replace it with what I have.
Marco:
I'm forcing you to accept mine.
Marco:
It's like a force overwrite kind of conflict resolution.
Marco:
There was a condition where the app was saying, no, force this, because there was just a race condition.
Marco:
The server, under certain conditions, was incrementing its version number on the response back, which meant it put itself in a loop.
Marco:
The app would say, no, force it to have this.
Marco:
The server would say, okay, and then it would send back something saying, but the new version is this.
Marco:
And the app would say, okay, but I'm also changing it now, so the new version is this plus one.
Marco:
The server would say back, oh, no, okay, thanks, but now it's this plus one.
Marco:
So it created this loop under that certain race condition response scenario in which also nothing was actually changed.
Marco:
This wouldn't have happened for almost anybody.
Marco:
And I had a beta test that had 500 people on it, and it never happened in the beta.
Marco:
You should have let it run to see if you could have overflowed the int.
Marco:
How big was the number?
Yeah.
Marco:
Big enough that I would have gotten in very big trouble if I would have let that happen.
Marco:
Because I don't think I used a big int.
Marco:
I think I used a regular int.
Marco:
So it's at least 32 bits.
Marco:
And I was seeing revision numbers that were in the 600s range.
Marco:
So it would have taken a while to get to $4.2 billion if I unsigned it.
Marco:
Maybe $2 billion if I signed it.
Marco:
But anyway, so this was obviously a problem.
Marco:
Fortunately, that I was able to fix server-side, but it took me most of the day to find that and to figure out what was causing certain clients to just hit the sync service over and over again with seemingly identical-looking requests.
Marco:
So I resolved my day from hell for the most part.
Marco:
There was also, separately from that, a race condition sync bug, which causes episodes to basically come back from the dead sometimes.
Marco:
Like if you played it on an iPad and then went and finished it on your phone, next time you launch the iPad app, the iPad would tell the server, hey, I have this version of those things I'm playing.
Marco:
And it also can cause some weird issues.
Marco:
So I submitted an expedited request, which I'd hardly ever do.
Marco:
So, basically, it was a day and a half from hell, and now my hands are all sore from RSI stuff, from the server day from hell, and yeah.
Marco:
I'm looking forward to just talking for the next hour instead of, well, not the whole hour.
Marco:
You guys are going to talk for most of the rest of it.
Yeah.
John:
This is the part where we tell Marco about unit tests again, I think, Casey.
John:
I think you're right.
John:
On our regular schedule.
John:
See, what you do is for every weird case you can think of involving every weird device, you simulate those scenarios in a series of tests.
John:
And every time you come up with a new scenario that you're worried about as you drift off to sleep, you're like, I'm going to write a test for that and see if it works.
John:
And then you run those tests to make sure you haven't broken anything.
John:
That's every time you revise the sync system.
John:
And then you feel better when you do release.
John:
And you're still not going to find all the bugs.
John:
But every time you find one of them,
John:
Part of fixing the bug is not just fixing it on your server and fixing it on your client and releasing new versions, but writing a failing test case to isolate the bug and then fixing the bug and see that it fixes your tests.
John:
And then every time you run those tests, you feel a little bit better about the changes you're making.
John:
Yep.
John:
Did I cover everything?
Casey:
Yeah, I think so.
Marco:
All right.
Marco:
So, John, in case you guys can come over and you can write a bunch of tests for me to show me how good they are.
Marco:
I won't pay you.
Marco:
You're doing it for exposure.
Casey:
Of course.
Marco:
And then if I like it, maybe I'll hire you in the future.
Casey:
I see how it is.
Casey:
For what it's worth, so at the new gig, we're implementing the company's app all over again.
Casey:
We're re-implementing our app.
Casey:
and uh the guy i'm working with um who marco knows actually uh jamie he has not really done unit testing before but it's been really really open to it and really interested in doing it on this project you know because we're trying to do everything as right as we possibly can and over the last just 48 hours he said to me at least three or four different times oh my god i'm so glad i wrote a unit test because i just exposed a bug i didn't even know was there just saying they're your friend kids they're your friend
John:
sync systems are a pain especially and client server things are a pain um and you know this is like sort of designing for testability if you know you're gonna have a system like that as a pain you're like how am i how am i gonna write tests against this i need a server i need a client there are separate code bases they're running in separate places like it encourages you to make both ends of your sync system
John:
work uh disembodied like having to be divorced from both the client and the server so you can actually test them and then the only thing the client and the server are providing is like little homes and transport mechanisms then you can test the transport mechanisms independently and then once you have those pieces and you're confident that those tests show that they work the way that they work then you can write your series of scenarios with just a bunch of you know test data and fixtures and you know the beginning of your test you make a whole bunch of theoretical devices in different states
John:
and then you make them collide at each other in different ways and you can do fuzz testing and randomize them and have them uh you know be turned on and turned off at random intervals to make sure everything resolves and uh you know anyway yeah they are they are super annoying to code and super annoying to test but
John:
If you if you code with that in mind from the beginning, you can save yourself a lot of a lot of headaches.
John:
I remember the worst one I think I recall doing was involved a whole mess of stored procedure code in the database, which is particularly easy to like divorce from the database itself.
John:
And you can't really mock it.
John:
uh well you can mock at the other sense of the word but anyway um so it kind of had so you had to like sort of make a new database instance for your testing purposes fill it with crap data and then run the stored procedures because i couldn't figure out how to get that logic out of there and it had to be anyway um it always that's that's the worst and the best project that i can recall working on that way and the worst and it was the hardest to make it testable and the best in that it was this byzantine system came up it was come up with by some
John:
business person with a very complicated excel spreadsheet and there's no way in hell i would have any confidence that i was correctly implementing this crazy specification uh if it wasn't for tons and tons and tons of unit tests it was the only i mean that's the only way i could have even known when i was done because it was just it was just nonsensical but it's like well this thing does what you say in every obscure scenario and if there's a corner case that isn't covered by your stupid specification i'll ask you about it and whatever you say i'll implement and they'll say look this does everything enjoy
John:
I hope that Marco's sync system is considerably less complicated than that BS thing that I still think about sometimes.
John:
You still get the night sweats about.
Marco:
It is a fairly simple system.
Marco:
It really is.
Marco:
Most of the bugs in sync have been on the app side, not on the server side.
Marco:
I think this might have been the first server-side sync bug that I've ever had that was meaningful.
John:
Well, it's a combination.
John:
I mean, it's like, which side is the bug on?
John:
Who's behaving badly?
John:
You could say the server was confused because it was sending back the wrong version or whatever, but it's like, you know, it doesn't really matter which side it's on.
John:
You're all on the same team here.
John:
You're just trying to get the things to not have infinite loops.
John:
Like, that's step one, you know?
John:
Coalesce to some sort of version.
John:
Those are the worst tests to make, like performance tests and, like, average number of syncs tests to try to catch out-of-bounds errors, where you just throw an order of magnitude.
John:
You're like, look, I'm going to run this whole set of unit tests
John:
And it should run somewhere in the thousands of requests across the virtual wire.
John:
If it runs 10,000 or 100,000, maybe throw off test failure and say, hey, I've seen an order of magnitude change in the amount of traffic.
John:
Maybe something is wrong.
John:
That's those type of like heuristics, especially when it's just your own test where you're just like, you know, because what you saw was a crazy increase in traffic.
John:
but it could have been legit like you don't know that you don't you don't know what's out there on the world how many how many units maybe everyone just updated all at the same time or whatever uh but during your unit tests if you had triggered that that loop you would have seen the number of requests going back and forth be much higher than it was before and then if you had some alert and that you'd be like all right well none of my tests caught this bug but this is really doing way more syncing traffic than i think it should and i have to figure what that is
Casey:
And for what it's worth, protocol-oriented design in Swift makes a lot of this much easier.
Casey:
Just saying.
Casey:
Great.
Casey:
You can write all my Swift code, too.
Casey:
That's fine.
Casey:
So when you were doing all these fixes, you said a lot of it was server-side.
Casey:
Would you just deploy that crap live everywhere and just pray that everything was good?
Casey:
How do you handle deployments in general and then also in these red alert, all-hands-on-deck sort of situations?
Casey:
Yeah.
John:
Well, I had to go through code review first, and then QA had to take a look.
John:
Then he had to get sign-offs from management.
Marco:
Yeah, he has to go through legal, you know.
Marco:
Yeah.
Marco:
Well, first I run my arsenal of unit tests and integration tests, whatever that means.
Marco:
I don't honestly know what that means.
Marco:
I then have a stand-up in the parking lot.
Oh.
Casey:
Oh, God.
Casey:
Would you stop and answer the damn question?
Marco:
Yeah.
Marco:
So I use Git to manage my web server source code.
Marco:
And I have local development environment on my Mac.
Marco:
So I test things locally here relatively informally.
Marco:
and then i'm careful i know this sounds terrible i apologize to everybody who's yelling at me right now through their car speakers or whatever and uh then i go to one of the servers that is kind of like like maintains the master checkout and i do a git pull on there and then i have a deploy script from there that r syncs all the files to all the other servers that matter
Marco:
And that script runs a few additional checks to make sure things like I didn't commit a PHP syntax error.
Marco:
It refused to push anything like that.
Marco:
But it's fairly, for the most part, fairly rudimentary pre-flight checks there.
Marco:
And then it syncs it.
Marco:
And I watch logs and I watch stats afterwards to see, like, is anything reporting errors?
Marco:
Is anything reporting errors?
Marco:
jumping up and load weirdly or having way you know way more of anything that i'm that i'm measuring or way less than anything i'm measuring i measure things like cash hit rates and all sorts of you know database performance database lag stuff like that so are you pulling servers out of the pool as you update them
Marco:
No, that's not how PHP works.
Marco:
You literally just replace the files live.
Marco:
I know, but you're not replacing all the files at once, though.
Marco:
No, it doesn't matter.
John:
Well, it kind of does.
John:
I think it kind of does.
Marco:
No, I know what you're saying.
Marco:
In practice, it doesn't matter, really.
Marco:
For the kind of things I'm doing, for the speed at which these things are happening, the way PHP manages it, and the error rate likely to happen from somebody getting a partially updated checkout...
Marco:
it's enough to usually cause like one crash a year.
John:
Well, at the traffic rate, at your normal traffic rates, yes, but at 10,000 requests a second, the number of requests that come in between the time the first file rsyncs to a server and the last file rsyncs to the server could be a big number.
Marco:
Oh, yeah.
Marco:
Well, that's why, I mean, yeah, 10,000 requests a second, like, you know, that's when you develop better systems.
Marco:
But my normal traffic level is like 100.
Marco:
I know, but you were at 10,000 requests a second.
Marco:
Yes.
Marco:
That's what you were at.
Marco:
Well, those weren't actually getting to the application servers.
Marco:
The application servers kept falling over.
John:
Oh, those were just being bad.
Marco:
All right.
Marco:
Well, anyway.
Marco:
The application servers were getting about 500 of them.
John:
Isn't that the good thing about a truly disastrous scenario?
John:
It's like, well, it's so broken now, I can't possibly make it worse.
Marco:
Yeah, basically, it's like it's so broken out.
Marco:
The least of my concerns is somebody hitting a web server, actually getting a response and having that response be wrong because of these two files that are out of sync.
Marco:
Or, you know, a 500 or something because, you know, it's a half updated source code or whatever.
Marco:
Well, that actually never happens.
Marco:
Like the files are seemingly updated atomically or maybe PHP is just smart about when it like repicks them up from its compiled cache.
Marco:
I don't know.
John:
You can write a unit test for this with a bunch of sleep calls somewhere and induce this failure mode and see what happens.
Casey:
Add it to your list.
Casey:
And then hell will freeze over.
Marco:
This is the kind of thing, I am fully aware that the proper ways to do these things are not the way I'm doing them for much of this stuff.
Marco:
The stuff that matters, I think I'm pretty solid on.
Marco:
Things like security, privacy, that stuff I'm pretty sure I'm doing correctly as much as I possibly can.
Marco:
But things like this, it's more kind of like the advanced software development proper methodology kind of stuff.
Marco:
I do play fast and loose with.
Marco:
I know that.
Marco:
Part of that is because I never learned any other way.
Marco:
And I do regret never having worked in like a big software development organization that was well run.
Marco:
I never had that experience.
Marco:
I only worked in small places where there were either just very few developers or I was like the only one.
Marco:
And so it's, I never learned the more fancy systems from anyone else's work environment.
Marco:
And I do regret that career-wise on some level.
John:
There's a whole other set of pathologies associated with those.
John:
Don't believe those are actually, I mean, it's just a different set of problems that come with those.
John:
Right, right.
John:
So...
Marco:
Yeah, so that's the main reason I don't do some of the more formalized, honestly burdensome stuff is because I don't know how, because I've never done it.
Marco:
And then the secondary reason is because I just don't see the need or the justification for the time as a one-person, basically part-time project.
Marco:
that it's hard for me to justify spending a whole bunch of time and overhead and extra money on some of the stuff because it's like I can't afford the time overhead for that.
Marco:
And look, I know there's going to be a lot of people who say, well, if you can't afford to do it right, you shouldn't do it at all.
Marco:
And well, would you rather Overcast not exist?
Marco:
These are the kinds of decisions that I face.
Marco:
And so you do what you can.
Marco:
and uh you know when you're when you're working for yourself on your own with a project that has fairly slim margins you can't really hire anybody else like you know you got to make cuts somewhere and either the product doesn't ship or it doesn't progress or you know maybe you don't write every unit test or any but you know or any test yeah no uh
John:
The good thing is that the app, I'm assuming since I was using it during the time and didn't notice any of this, the app is resilient to the server being wonky for the most part.
John:
You're not going to see a bunch of... The failures behind the scenes to sync or whatever are not stopping you from listening to your podcast.
John:
In some respects, you have...
John:
A grace period and protection against users.
John:
It's not as if your server starts throwing errors and all of a sudden every single person who's using Overcast can't listen to their podcast anymore.
John:
It's just not how it manifests.
Marco:
In fact, you won't even see an error message unless you manually initiate a sync.
Marco:
Like if you do the pull to refresh and that sync fails, you'll see a box.
Marco:
But if a routine sync in the background fails, you won't even know.
John:
Right.
John:
So I bet for most people, even though this was a busy, stressful day for you, they had no idea any of this was going on unless they follow the Overcast Twitter account, because as far as they're concerned, maybe if they were using multiple devices, they would have noticed that it didn't sync or something and gotten a little bit of a frowny face about your sync system.
John:
But as long as once you fixed it, it got in sync again and they didn't have to do anything about it, you still got one leg up on like the stubborn inability to sync stuff that we all complain about in iCloud or messages or whatever, where there's nothing you can do and it never fixes itself automatically.
Marco:
right exactly i mean like you know i've built i i built all my sync stuff to fully work in offline and failure scenarios and to do the right thing um as far as i know we'll see if i ever test it but as far as i know it does the right thing because like this all comes like when i made instapaper that was designed for offline use so the whole thing was designed to be to have a bunch of changes happen while offline and then sync later at some point and have it have it be correct and
Marco:
And so I took that same ethos to Overcast where like any state of connections coming up and down and doing stuff offline, doing stuff online, it should always do the right thing when it gets a chance to connect again.
Marco:
And so you're right.
Marco:
I mean, most people who are on Twitter and stuff, I got almost no support email about the server problems.
Marco:
And I got only a very small handful of tweets, most of which were people saying, why is it... Like, it's being slow to load this directory category or this... You know, it was being slow to load something that's dynamically fetched.
Marco:
For the most part, this... I mean, that's part of the reason why, like...
Marco:
Why I'm able to do overcast server stuff without massive stress weighing on me all the time, because honestly, I don't have the capacity for that anymore.
Marco:
I'm able to do overcast level of it because if the entire service goes down, you know, worst case scenario, everything goes down.
Marco:
Pingdom lights up all of my devices with alerts.
Marco:
If for some reason that stays down for like two hours, most of my customers won't even know.
Marco:
And that's kind of freeing in a way.
Marco:
Not that I let that happen, but that I don't have to be in constant fear of that happening.
John:
That's an interesting point.
John:
By the way, speaking of RSI that you were talking about for a little RSI tip from a longtime sufferer.
John:
Many things contribute to RSI.
John:
We've talked about it in the past.
John:
One of the really big contributors, surprisingly, which people don't think about, is stress.
John:
As in, I'm not sure how much typing you did, Marco, on that day.
John:
But I would wager that it's probably not much more typing than you did on a really productive coding day.
John:
But if you are doing that typing frantically while stressed...
John:
uh it makes a big difference uh in terms of how much inflammation and problems you get so you because you'll be typing harder because you'll be more prone to you know whatever stress hormones are going through your system more prone to inflammation being working when under pressure when you are stressed it's a huge contributor to in addition to the typical things we talk about like how many keystrokes did you type how long have you been using the computer how many breaks have you been taking yes all those happen when you're stressed you tend to not take breaks everything like that but merely the act of being stressed
John:
Depending on your type of RSI can be a huge contributing factor.
John:
And I've always been aware of that in the years since my worst flare ups that like sometimes you just have to chill out like you can continue to work productively and take breaks.
John:
But while you're working, if you find yourself like tensing up and all that, you know, just all the muscles in your body, that is terrible for most kinds of RSI.
Marco:
yeah i mean and that was totally the case yesterday and today and and i usually don't feel that and that's i think you're right i mean that's that's obviously very related to things like back pain um very very related and uh so i've certainly seen that before also i'm pretty sure i'm getting sick and whenever i'm getting sick the day or two beforehand coffee stops working and i start getting rsi pain because everything stops working yeah what does that mean
Marco:
It means I no longer get the energy boost, the awakeness boost from the caffeine.
Casey:
Yeah, but you can quit anytime.
Casey:
Don't worry.
Casey:
When you had mentioned earlier that you were thinking about, and you said it kind of jokingly, but you said you were thinking about switching entirely to iCloud.
Casey:
I haven't kept up with some of the more late-breaking changes to iCloud in the last year or two.
Casey:
I know that there's some amount of support for getting to user data from the web.
Casey:
Have you looked deeply or even slightly deeply into that to see, like, could you still do the Overcast web app with just iCloud?
Marco:
I know about as much about it as what you just said.
Marco:
Okay.
Marco:
I know there's some... They call it a JavaScript interface, but basically it's web requests you could do from a server too, I think.
Marco:
So there are ways that you can use CloudKit from something that's not an Apple device.
Marco:
I don't know anything more about it than that, and obviously if I decided to do something like this, the first thing I would do would be to look into that and see what I'm dealing with here.
John:
You'd trade your personal stress for the impotent rage of Apple's bugs that you can't fix, that you can't get them to take seriously.
John:
Yeah.
Marco:
Right, but whenever you outsource some amount of your app's functionality to some kind of third-party service like that, when things break, it's not usually your fault.
Marco:
It is your problem.
Marco:
but there's often nothing you can do about it.
Marco:
Like oftentimes the solution is just, well, I guess we have to wait a few days for this to get better, or we have to wait an hour for this thing to be up again or whatever.
Marco:
Um, if it becomes longer than that, if it's like we have to wait a few years for this to get better, that becomes a bigger problem for you.
Marco:
You know, then, then that's kind of on you that you should, you know, move to something else.
Marco:
But something like, like, you know, I mentioned I'm hosting at Linode, uh,
Marco:
I don't manage their switches.
Marco:
And if they have a network outage for like five minutes, there's nothing I can do about it.
Marco:
So it's kind of freeing in that way because it's like, well, I just have to sit back and wait for this to get fixed.
Marco:
And maybe if it goes on for a while, I might file a ticket just to make sure they really know about it.
Marco:
But in every instance, they already did know about it.
Marco:
and it gets fixed a few minutes later so it's you know not that big of a problem i mean like this is like you know it's like the web hosting continuum like you as you you can move up the the hierarchy of like web hosting abstractions and each one you go up you know you get more things that are taken out of your hands and they again they are still your problem
Marco:
If your customers have your app stop working or your service stop working, they don't care if your web host is having a temporary switch outage.
Marco:
They will go to you and they will say, you are down.
Marco:
You are broken.
Marco:
One star, useless.
Marco:
I want all my money back plus damages, etc.
Marco:
And the more you go up the stack, you are saving yourself work, but you're also adding more and more things to the giant list of things that are out of your control.
Marco:
And again, it's a balance.
Marco:
For the most part, that is freeing when you do that.
Marco:
But it does become a problem if...
Marco:
the service you're on just starts to suck it's not just a temporary outage but if things just take a turn or quality slips or they decide to get acquired and shut down the service that you were using or something like that like that becomes your problem and i try to minimize ways in which things like that can be a problem for me by doing things like you know i'm just using standard linux to host my stuff and
Marco:
And it's running on VPSs, but I'm not doing anything fancy with the VPSs.
Marco:
And I could go to any other VPS or dedicated server host and run the exact same stack and with the exact same servers and no changes really, just like moving servers over, which is not that big of a deal.
Marco:
I keep things in such a way that I try to abstract away as much as I can so I don't have to worry about the basics of things like power, connectivity, failed disks, stuff like that.
Marco:
But I'm not going to go all the way to a service like App Engine or Heroku or even Amazon Web Services, honestly, where things are so abstracted away that it's hard to replace for core functionality.
Marco:
I do use like S3 for storing file uploads and stuff, but that's easier to swap out if it sucks than like, oh, my entire app is written based on the assumptions of these handful of services that I can't actually replicate anywhere else but this provider.
John:
I feel like those companies you listed would all be at least more superficially responsive to your concerns than Apple because all those things like, oh, I was using this web service or I'm using Heroku and my thing is broken.
John:
There's some person you can contact who will get back to you about whatever your problem is.
John:
Maybe they won't solve it immediately or whatever, but...
John:
Historically speaking, I think Apple has not been up to the standards of the other sort of infrastructure service provider things in terms of, oh, yeah, no, there's totally a support mechanism and a place where you can report problems and expect a speedy response and report bugs and issues and get them resolved.
John:
uh with apple i mean i'm just thinking of like all the poor game center developers and like i mean surely they are trying every possible mechanism to complain to apple about their issues with the game center that are causing their applications to hang or do weird things or have bugs um and not only they're not getting like a ticket reply in five minutes and a response in 24 hours or whatever but like these are just problems that are festering for years on end and i have no idea if there's any official channel contact going uh back and forth between them but
John:
Anyway, Apple's got a lot.
John:
I was mentioning not so much that you wouldn't want to use one of these services, but that Apple specifically, like CloudKit and iCloud, no matter how good they may be, it just doesn't seem like Apple's set up to be the type of service provider like Amazon's Web Services or Heroku or whatever, where those are entire businesses that are about, like, you're a developer.
John:
We provide a service.
John:
You can use our services.
John:
And if you have problems with them, here's what you do.
John:
And you can file bugs and track those bugs through the system.
John:
And again, none of them are perfect and they all have problems and, you know, all the tradeoffs you just talked about.
John:
But Apple just seems so far from having even the basic sort of like table stakes to be a reliable third-party web services provider like Microsoft Azure or whatever.
John:
Even though they may have the tech stuff, I feel like they don't have the surrounding infrastructure behind the tech, the people, the service, the tracking, the transparency, all the things that you would want in any service like that.
Marco:
Yeah, I mean, the reason that I would consider iCloud, first of all, iCloud is an umbrella term that covers lots of different things, and the things that are under it oftentimes are not related and have vastly different reliabilities and reputations and kind of general suitabilities for certain tasks.
Marco:
CloudKit, which is what I would be moving to if I did that,
Marco:
is you know i i don't know of a lot of big users of it but the the the bit i've heard so far is that it is somewhat limited but what it does it does very well and it tends to work and i don't i don't think a lot of people that i know are having trouble are having trouble with cloud kit the way they did with things like icloud core data sync which was always a disaster or even things like the key value store work sometimes get messed up a little bit or something like that but
Marco:
For the most part, people think CloudKit is pretty good for what it does as far as I know.
John:
Yeah, it's one of the better technologies they've released.
John:
But the question is, nothing is perfect.
John:
The question is, if something goes wrong with CloudKit or you're suspicious or you think you don't have visibility into something and you can't tell whether it's your problem or their problem or it's down for a while or your requests are slow, do you have any hope of getting that resolved?
John:
Or is it just like, well, I just sit here and wait impotently and either it improves or it doesn't?
Marco:
Right, and there's all sorts of little things that would be problematic with CloudKit as well.
Marco:
I mean, you're totally right that, generally speaking, the kind of relationship that Apple has with the public and with developers is, in many ways, completely the opposite kind of approach and attitude and openness than what you'd want from your web services provider.
Marco:
Especially as a developer, it is really...
Marco:
You want companies that are transparent and that are constantly iterating and making things better and that have totally 100% solid reputations for web services and things like that.
Marco:
And Apple just isn't those things.
Marco:
That's not the way they operate.
Marco:
CloudKit would also bring the second problem of...
Marco:
Tying your overcast data to your devices currently logged in iCloud account, which is not always a safe assumption to make.
Marco:
So, I mean, even in my house, like we have TIFF's iPad Pro has the best speakers of any iOS device in the house.
Marco:
uh because like the ipad pro speakers are awesome so we have this ipad pro signed into my overcast account and in every other way it's tiff's ipad but it's signed into my overcast account because we use it frequently as a kitchen or table speaker to play podcasts out loud together if i moved cloud kit then we'd have to either sign that entire ipad out of icloud so that it would have so it could have my account instead of her account even though it has all of her apps and her email like everything else is hers on that ipad
Marco:
or buy a second iPad, which is probably the solution Apple wants us to do, or switch to listening to her Overcast account for anything we listen to out loud, which is kind of a clunky solution.
Marco:
So there's problems with tying it to iCloud.
Marco:
There's also the major advantage, the whole reason I would consider using CloudKit is
Marco:
is that right now I'm kind of using iCloud Key Value Store as a kludge.
Marco:
Is that the right pronunciation of kludge?
Marco:
I believe so.
Marco:
Is it kludge?
Marco:
I think it's kludge.
Marco:
Anyway, right now I'm using this kludge of Key Value Store along with a server-side sync and occasional push notifications to try to trigger a somewhat real-time connection kind of thing to sync things quickly to each other.
Marco:
Another way to do that would be to have a persistent connection whenever the app is running, kind of like a chat, where you just have an open socket, and you can make very fast things.
Marco:
The server can tell you as soon as it gets things.
Marco:
The main reasons I don't do that are, A, I'm not set up for it server-side, and I could become set up for it server-side, but it's another infrastructure thing I'd have to set up and maintain and learn all of the ways it fails.
Marco:
And B, the bigger reason is that I'm a little concerned about battery usage on the device.
Marco:
Apple maintains one of those connections for the entire device.
Marco:
That's what iCloud uses.
Marco:
That's what push notifications use.
Marco:
There's already a persistent connection to the device that Apple's maintaining for me.
Marco:
So if I move to an iCloud-based sync solution, I would be using the connection that's already there.
Marco:
So the battery penalty would be either minimal or nonexistent compared to any other sync solution.
John:
Do you know that for a fact that CloudKit uses an open connection?
John:
I thought it would do it on demand.
John:
I mean, sure, you know, OS manage coalescing of requests, only opening the connection, do it, whatever.
John:
But is it a constantly open one?
John:
I thought that was maybe only for push notifications and not for CloudKit.
Marco:
You know, that's a detail that I just don't know the answer to yet.
John:
I mean, Apple doesn't talk about it, I don't think.
Marco:
Right.
Marco:
And there are silent push notifications with the content available flag that you can and that I do send to the app whenever there's a new episode.
Marco:
When notification shows a notification, that wasn't a message-only push.
Marco:
That was a silent content available push that woke up the app to tell it, here's a new episode to download.
Marco:
The app receives that notification from the server, checks locally with its preferences on whether to send that to you while it's also enqueuing it to download and things like that, and then shows you a local notification.
Marco:
So I could use those every time the server gets exchanged, send a content available notification to all the other devices on that account.
Marco:
I could do that, but those notifications are throttled and are not guaranteed to be delivered.
Marco:
And the answer to how many content available push notifications can one device receive reliably in, you know, say an hour or a day, that information I don't think is widely available and is probably not worth relying upon anyway.
Marco:
So there's all these little tricks and limitations that iOS does for power management and for keeping apps from making sync loops and taking over the whole phone.
Marco:
I have to work around all those, whereas CloudKit and iCloud stuff, I believe, has special privileges and is able to operate in, I think, more special ways, I think.
Marco:
I have to double check on that.
Marco:
But that would be the main driving factor to use it over any other kind of system.
Marco:
So if it could actually do that well and reliably, then it might be worth tolerating Apple's potential weirdness and being your service provider.
John:
Or you use Microsoft Azure and not worry about this whole iCloud business.
John:
You wouldn't get the advantage of the privileged background demon doing your bidding for you, but it seems like it would basically be more similar to what you have now.
John:
It's your own backend.
John:
You make it however you want.
John:
You got your own account system.
John:
Do whatever you want with it, and hopefully Microsoft would be more responsive because they're hungry.
Marco:
That's really not that much different from what I have now.
Marco:
I'm already right now running instances of cloud computing resources with code that I write doing almost everything and managing almost everything.
Marco:
The stuff that something like Azure would give me, things like account management and push notifications, that stuff's all easy to me.
Marco:
Those are all solved problems with...
Marco:
A couple hundred lines of code that I wrote years ago and that still work.
Marco:
Those are all totally solved problems.
Marco:
That's not where the difficulty lies, really.
Marco:
The difficulty is in the stuff that with any of these providers, you have to write.
Marco:
Even with CloudKit.
Marco:
CloudKit...
Marco:
Just give us access to your local database, and we're just going to make it sync.
Marco:
And we're just going to make that work.
Marco:
That could never work.
Marco:
Things are more complicated than that.
Marco:
It's not that Apple did a bad job of implementing that.
Marco:
It's that the entire idea was deeply flawed from the start.
Marco:
That was never going to work well.
Marco:
cloud kit the reason why people like it so much better is because design in such a way that it is kind of like a web service that you interact with that notifies you on changes and then you locally in the app do things like resolving conflicts yeah you can still make your own infinite loop
Marco:
yeah exactly so like you're still writing the hard stuff you're just not running the servers but like you're still writing all the tricky complex sync logic in the app and that's true of any of these services because sync is just hard and it's there really isn't a generalized sync library that just works for everybody like if there was sync wouldn't be hard
John:
If you used iCloud and CloudKit, I would imagine there's some chance that you would actually not have noticed this infinite loop bug for a long time.
John:
It's very possible.
John:
Surely they have the server capacity, the surge server capacity to sort of eat that.
John:
maybe someone would have contacted you or maybe your usage would have been throttled or you would have gone into those weird asterisks where they're like, you have a certain number of amount of data, a number of requests.
John:
And if you exceed that, like call us or whatever, you know, we'll call you or, you know, when you're not, when they're not your servers, you notice this because you're like, whoa, my servers are dying, but Apple's probably wouldn't die, but things would probably get
John:
slower and it would be like this sort of general malaise over overcast thinking you'd be like i wonder what's going on here and i don't even you wouldn't have access to probably like let me query the table to see what the max version number is oh 600 that seems big you know uh so maybe maybe you're on the right system uh after all maybe you are maybe this is the best possible worlds for you
Marco:
We are sponsored this week by Audible.
Marco:
Go to audible.com for more than 250,000 audiobooks and spoken word audio products.
Marco:
Get a free 30-day trial today at audible.com slash ATP.
Marco:
If you want to listen to it, Audible has it.
Marco:
You can listen to audiobooks from virtually every genre, anytime, anywhere.
Marco:
On phones, tablets, computers, iPods, if you still have an iPod.
Marco:
Even if you happen to have a Kindle that has a headphone jack, a lot of the older models do.
Marco:
Those can also play audiobooks from Audible.
Marco:
Audio books are great for flights, long road trips, even your daily commute.
Marco:
Now, you might think you don't have time to read books.
Marco:
I think that a lot.
Marco:
But you'd be surprised how many audio books you can hear each year, even if you only listen to and from work every day.
Marco:
Because that all adds up.
Marco:
Audio books bring books to life.
Marco:
Many of them are read by the authors themselves, adding an extra dimension to the text.
Marco:
You can take risks and try new authors and dramas without regret because Audible offers their great listen guarantee.
Marco:
If you start an audiobook and don't like it, you can exchange it for another one for free.
Marco:
There's no risk.
Marco:
So you can see and listen for yourself.
Marco:
When you begin your free 30-day trial, you get your first audiobook for free.
Marco:
And there's no stress or obligation.
Marco:
You can cancel your membership at any time.
Marco:
And with more than 250,000 audiobooks and spoken word audio products, you will find what you're looking for with Audible.
Marco:
Get a free 30-day trial today by signing up at audible.com slash ATP.
Marco:
That's audible.com slash ATP.
Marco:
Thanks to Audible for sponsoring our show.
Casey:
So we should talk quickly about Quitter, which is your new Mac app.
Casey:
And we don't have to say too much about it because I presume you're going to save a lot of this from under the radar.
Casey:
But I feel like we should at least mention it.
Casey:
And hopefully you had at least a couple of things to say or at least recap what it is.
Marco:
Yeah, so basically a few months back, I wrote this blog post called Automatic Social Discipline.
Marco:
And my idea was I've been struggling over the last few years to try to balance the time I spend on Twitter and other social-like distractions from the time I spend working.
Marco:
And because of the nature of what I do and the way I've chosen to go about my career and how to promote my stuff –
Marco:
I do kind of have to use Twitter and social tools on a semi-regular basis.
Marco:
And even if it's something simple, like when we start the live broadcast, I tweet from the ATP account, we're live now and we give a link.
Marco:
And when I make new blog posts, I also tweet about them to promote them because that's where a lot of traffic comes from these days.
Marco:
I have tried at various times to just not have Twitter apps installed at all on my desktop.
Marco:
It ends up just not working.
Marco:
I try only using it on my phone or only using it on a laptop that I keep off to the side that isn't my main computer.
Marco:
I've tried all sorts of stupid things like that, and they never stick because the reality is I do have to use Twitter on a semi-regular basis for my job as well as for enjoyment in life.
Marco:
by far the most efficient way for me to use twitter is using tweetbot on the mac by far like i'm so fast that i can go through so much it's the mac so everything's kind of like this multitasking quick environment it's very i'm very efficient with that so if i'm going to be using twitter for work it should be on the mac and it should be on my primary mac that's just how it works for me most efficiently
Marco:
So the question is, how do I manage that without spending so much time on Twitter all the time, not ever getting any work done?
Marco:
And the answer, of course, is self-control.
Marco:
But I don't have enough of that when it comes to this.
Marco:
So we have to start building hacks and tools.
Marco:
For it to solve many people's self-control issues with other things, this is what we do.
Marco:
We try to hack around.
Marco:
We try to build self-control replacement tools, or at least assistance tools.
Marco:
And I started seeing this was a problem with Twitter because I use the app called RescueTime, which is basically an app time tracking app.
Marco:
It sits in your menu bar and it uses a web service which is a little bit creepy.
Marco:
I'm a little wary about that.
Marco:
But it sits in your menu bar and it watches what apps you're using and it times it.
Marco:
And it categorizes things into like, you know, work versus entertainment versus whatever.
Marco:
And then every week it emails you a report saying this week you worked on your computers for X hours and you spent six hours in Xcode, five hours in Logic, four hours in Adobe Audition.
Marco:
And then like every week I was also seeing four hours in TweetBot.
Marco:
And it's like, ooh, that's a lot of time spent in TweetBot.
Marco:
It started to add up over about a year.
Marco:
I'm like, you know, this is really not comfortable.
Marco:
I need to do something about this.
Marco:
Because I kept feeling like I wanted to work better and use my time more effectively and get more done.
Marco:
And every week I could be getting these emails saying, hey, you're using Twitter.
Marco:
You used Twitter for six hours this week.
Marco:
Oh, my God.
Marco:
And then Slack came around and made the problem even worse because now Slack is even worse for blending work and distraction because it's made for work communication.
Marco:
And it's so easy to just become like a constant drain of your attention and just constant like peppering all day of little tiny distractions.
Marco:
Anyway, I started seeing Slack bubble up in the list as well.
Marco:
And then all of a sudden, I'm spending like six hours a day on Slack and Twitter combined.
Marco:
Or not a day, six hours a week on Slack and Twitter.
Marco:
And it started becoming so many hours.
Marco:
I'm just like, my God, this is eating into all of my productivity.
Marco:
Six hours, eight hours.
Marco:
This is terrible.
Marco:
I have to do something about this.
Marco:
As I said, a few months ago, I wrote this post called Automatic Special Discipline.
Marco:
What I did was I basically wrote an Apple script and I scheduled it with LaunchD.
Marco:
Every 10 minutes, it would run and it would just check, is TweetBot the active app right this second?
Marco:
If not, quit the app.
Marco:
And same thing with Slack.
Marco:
If Slack is the active app right now, keep it.
Marco:
Otherwise, kill it.
Marco:
And that ended up being way too aggressive for Slack because I do use Slack oftentimes for work purposes.
Marco:
In fact, the majority of the time I'm using Slack, it's for work purposes, actually.
Marco:
so that like i i couldn't have slack be just quit constantly like because the way this would work too it's like it was just checking every 10 minutes and saying are you active right now if not quit so oftentimes you'd be you know click on slack type something switch to another window and two seconds later slack disappears and
Marco:
like okay this is kind of unfortunate um same thing you know with twitter and everything so it it was just it was a little bit too dumb of a solution recently uh i started making a mac app called quitter and it sits in the menu bar and because a native app has a way better way to do this rather than just like constantly pulling to see like what's the active app right now is it this quit and
Marco:
you can actually observe the current workspace.
Marco:
And there's no polling involved.
Marco:
You get notified when the active application changes.
Marco:
And so now I'm able to do things way more efficiently and way smarter, where now I can have it...
Marco:
watch for changes and for the list of apps that you want to quit after certain time intervals it can quit them not every 10 minutes checking to see if they're running and then quitting them immediately but it can start the timer when you click away from the app and then after a certain amount of time where you don't click back to the app then it can fire the timer and quit them or also building out the option to hide them for slack because for me that's more efficient for the amount of use slack
Marco:
So basically, the Mac app version of this is way better.
Marco:
It also isn't an Apple script that has to have a launch D command line process to register and register it.
Marco:
So it's also a lot more friendly for other people to use and for me to distribute as a thing people use.
Marco:
Now, the effect of running this app is that it really does work.
Marco:
For me, because I've been measuring this with RescueTime, I've been using first that script and then a few weeks ago switching to this app.
Marco:
I've been using this for a while now, and I have seen a reliable drop in my usage hours as reported by RescueTime of these social apps that I keep forcibly quitting.
Marco:
It also has the interesting effect where it just makes Twitter seem unreliable.
Marco:
The effect is basically it seems like TweetBot just crashes every few minutes.
Marco:
So it kind of keeps it a little bit in check for me.
Marco:
It's not this thing that's always there.
Marco:
There's not always a new thing I could be looking at.
Marco:
Also, critically, I set it so that these apps are not in my dock.
Marco:
They're not running.
Marco:
So that when they get forced quit, they're just gone.
Marco:
They're out of sight, out of mind.
Marco:
You have to then explicitly think...
Marco:
oh, I want to go check Twitter now.
Marco:
And so what I'm able to do, not only has the total amount of time spent in these apps dropped noticeably, probably by at least 50%, if I can guess, but I'm also finding that I'm now much more often having long, productive spans.
Marco:
Because that was where these apps really hurt is in that constant peppering of new stuff coming in every minute, every 30 seconds, or something new to look at.
Marco:
And you're constantly context switching back and forth, both technically and mentally, or context switching.
Marco:
And that, to me, it just destroys...
Marco:
Any kind of meaningful productivity I'm having on things like coding or editing a podcast or writing.
Marco:
These things that just like I was having such a hard time staying focused on my work when these things just kept coming in on like a background window.
Marco:
Just, oh, it's off to the side.
Marco:
Look, oh, there's something new to read.
Marco:
New at reply.
Marco:
New Slack thing.
Marco:
Somebody's being funny.
Marco:
Whatever.
Marco:
Now, these apps are so frequently just removed from view that I'm able to have these long productive spans that
Marco:
where I can code for three hours straight, four hours straight.
Marco:
I can write an entire blog post and then open up Twitter after I publish it to go promote it.
Marco:
It really has changed the way I work a lot.
Marco:
And it also gave me an excuse to learn how to write stuff for the Mac.
Marco:
Because I've had a few little apps for myself or toy apps or half-budded apps that were not at all releasable.
Marco:
But for the most part, I really don't know how to make Mac software.
Marco:
At least I don't know how to make good Mac software, I should say.
Marco:
And so this was kind of a nice intro.
Marco:
I've been wanting to learn it for a while.
Marco:
And this was kind of a nice intro to start that.
Marco:
It's not in the App Store because it can't be.
Marco:
It can't be Sandbox because Sandbox apps can't quit other apps.
Marco:
And it's fine.
Marco:
I'm just distributing it.
Marco:
It's free.
Marco:
It's just a zip file.
Marco:
You download it off my website.
Marco:
It's kind of amazing to distribute software this way for somebody who's only ever really professionally worked in the App Store.
Marco:
When we talked about this a few weeks back on the show, I got the impression that pretty much nobody wanted this except me, which is not unusual for things I make, by the way.
Marco:
I make all sorts of crazy stuff for myself that nobody else would ever want.
Marco:
This, I really thought was one of those things, but it ends up I released it, and it's gotten over 25,000 downloads, and it's free.
Marco:
I'm not making anything off of it, at least not yet.
Marco:
Who knows if I ever will, but...
Marco:
A lot of people at least want to try this.
Marco:
And that's pretty cool.
Marco:
I don't think it'll ever become anything big.
Marco:
I mean, if I wanted to give it all my time, maybe I could basically make it, you know, rescue time replacement or something like that.
Marco:
But I don't think it's worth quite that much.
Marco:
But it is really cool to just kind of see...
Marco:
the other side to see what it's like having a Mac app, to see what Mac programming is like to a very small extent and to distribute apps directly.
Marco:
That's kind of cool.
Marco:
And I just am really happy that it works, that I've actually solved this problem I had.
Marco:
And, you know, I'm not perfect yet by any means, but this is by far the most effective method that I've come up with yet for maintaining a healthy balance of distracting apps versus getting work done.
John:
The app has two big things going for it.
John:
One, free.
John:
Everyone loves free, right?
John:
And second, it's got the same thing going for it that self-help books have.
John:
Everyone, to some degree, feels the thing that you're talking about, which is like, boy, I wish I could be more productive and I was less distracted or whatever.
John:
And it's like you said, well, why don't you just not be distracted?
John:
Well, people want tools to help them with that.
John:
They say, like, I've been trying to do it with just sort of willpower alone or trying to change my habit or turn over and leave, and it hasn't been working.
John:
Is there something I can do?
John:
Is there some...
John:
system i can employ or better yet product i can buy or better ux still product i can get for free that will help me along this um and so yeah who doesn't like who wouldn't download this app if people know you and they know you write software and everybody has that feeling that they're not particularly productive and you offer a download for free click on it there you go you got it uh that offers a way to potentially help you be more productive i bet a lot of people can try it how many people
John:
uh find it useful and stick with it i don't know if you have any uh statistics on that but that is a like like a lot of self-help things some systems work for some people sometimes they don't work for other people so who knows um since it's free i don't think you really care one way the other but yeah like the i feel like the only way you could really turn this into a serious endeavor is to basically be a better rescue time um
John:
And before you do that, you should probably talk to the RescueTime people to ask how their business is going before you go and try to take it all.
John:
Because it could be that if you totally replace RescueTime in the market, you would still make no money because it's not a big market.
John:
But who knows?
Marco:
Yeah, I mean, the money thing is an interesting question.
Marco:
I mean, I don't know what it's like to sell Mac software.
Marco:
I'm still not doing that.
Marco:
So I don't know what the market is.
Marco:
I'm sure, like any kind of software, it probably depends a lot on what exactly you're selling.
Marco:
I have no idea.
Marco:
RescueTime, I haven't actually paid for.
Marco:
Their business model is, I think, some kind of premium service or something.
Marco:
I don't know.
Marco:
I've been using it for years and never given them a dime.
Marco:
So whatever their business model is does not include me in it.
Marco:
So maybe that's a problem.
Marco:
I don't know.
Marco:
I'm not going to know what the money market is like on Mac stuff unless I actually try it.
Marco:
And I don't know if I'm ready to do that yet or what I would do that with necessarily.
Marco:
But I do think it's interesting to consider.
Marco:
i don't know and for what it's for whatever it's worth i don't i don't have like analytics running in the app but the app does include sparkle to check my server for updates which is the thing you have to worry about how does your app update itself when you're outside of the mac app store and uh so i have uh i checked while you were talking there at this moment i was listening also don't worry but i checked as you were talking and at this moment i have 27 000 downloads of the zip file and
Marco:
and 2,500 IPs that have been checking the auto-update XML file.
Marco:
So roughly a 10% rate of people who are actually running this app after downloading it, which I think is actually pretty good.
Marco:
I mean, that's roughly along with what I would expect.
John:
Especially since you don't have one of those little disk images that opens that shows your app icon and an arrow drawn on the window background, dragging into a sim link to slash applications.
John:
I mean, you laugh at that, but one of the advantages of the Mac App Store is that you press a button in the Mac App Store, and in theory...
John:
an application appears in your application folder, right?
John:
There's no other process.
Marco:
But then that's also mitigated.
Marco:
That's mitigated by the problem of like, A, all right, I clicked this app.
Marco:
I bought it.
Marco:
Now, where is it?
John:
How do I launch it?
John:
If people can find launch, what do you call it?
John:
Launch, what is the thing called?
Casey:
Launchpad.
John:
Launchpad.
John:
Yeah, it's in your doc by default for regular people.
John:
And if they just download it, it'll be all sparkly and they should be able to find it.
John:
But like what you're doing is best case scenario with the default settings, they click your zip file on Safari, it automatically unzips it.
John:
And what they end up is your application icon in their downloads folder.
John:
If they even know how to get to your downloads folder,
John:
There's a very good chance that if they can even find your application icon, they'll just double click it and run it from your downloads folder, which will probably work fine for your application unless you have specific code that says, hey, it looks like you launched me from the downloads folder.
John:
Would you like me to quit and put myself into the application folder and relaunch myself?
Marco:
I do.
John:
Because you can't figure out how to install apps?
Marco:
No, there's actually an open source thing that's like moved to application folder.
Marco:
You've probably seen a lot of apps that offer this.
John:
yeah yeah i know but this is all these are all these are all problems that are not part of the mac app store experience like you said the auto updating with sparkle handled by the mac app store and the general problem of how do i quote unquote install a mac application obviously anyone who knows anything about max this is not a problem at all but if you ever want to go to a broader market which
John:
It may not be like people who read your blog and your Twitter feed and download your applications because they know you.
John:
All those people probably know how to install applications.
John:
But I can tell you in the general public, anything that involves even an auto-expanding zip file or a disk image or where do you put the application and stuff like that, it is still one of the areas that...
John:
i think it's underestimated uh people don't talk about it much these days but it's one of the huge advantages that ios and phone apps and app stores have in general it's like see app i want put finger on screen now app now i have app tap tap like that's it you know there is no mounting and unmounting speaking of uh casey yanking out usb keys disc images there are no zip files there are no expanding there's no dragging things to folders there's none of that stuff
John:
the mac app store is not as bad as zip files or dmgs but it's still not as good as the ios app store and that that simple part that simple aspect of like how can we get more people to download and use more apps it's like you got to get rid of the part where they have to quote unquote install it at all
Marco:
Yeah, agreed.
Marco:
I mean, the whole system, especially with DMGs, I mean, that's like the idea, like just the idea of a disk image is it's such like a geeky abstraction that is very confusing and tedious to manage for people.
Marco:
Like it's how that ever became the standard.
Marco:
I have no idea.
John:
Disk images are awesome, technologically speaking.
John:
They were especially they were awesome in the classic Mac OS days because, you know, I mean, like for tech savvy people, disk images are an amazing convenience and a great thing.
John:
But as a way, as the way to distribute software is one of two major ways.
John:
Like in the OS X era, it's like you've got your zip file that expands to an app bundle is one way.
John:
And then you've got your disk image and it's the other way.
John:
And then the Mac App Store is off to the side there.
John:
And all both of those systems have problems for novice users.
Casey:
Yeah, totally.
Casey:
Does this make you think any differently about some of those tools that you've developed for yourself that are native Mac apps?
Casey:
Does it make you think differently about perhaps releasing them for real?
Marco:
It does, yeah.
Marco:
But I also saw with Quitter, this is a very, very simple app.
Marco:
And even just getting it up to a minimum level of quality,
Marco:
that i would want to actually release it to the public uh was probably more work than it deserves like you know logically business wise like i this was a distraction for me for the most part you know it might become a business someday but it isn't today and should have just used quitter to quit xcode when it was in the front most app stop distracting you from your important slack and twitter work
John:
Oh, my goodness.
John:
Oh, wow.
John:
Quitter is totally a distraction.
Marco:
I mean, one of the things is, like, a few hours after I released Quitter, there were a few, like, kind of embarrassing little shortcomings and bugs.
Marco:
One of the biggest things was, in the app, I never explained the idea of quitting after X minutes of what.
Marco:
And a lot of people who downloaded it, who didn't read the post very closely, said, well, I told her to quit after a half hour.
Marco:
It didn't quit.
Marco:
What happened?
Yeah.
Marco:
your app is broken one star useless right and so so you know there was like this this completely embarrassing oversight where in the app it never said anything about quitting after what like so and the answer is quitting after inactivity which is defined as not being the foreground application yeah yeah i wouldn't i wouldn't guess that's what inactivity means i would guess inactivity means like the app isn't doing everything like hey quit my mail app but it was totally downloading mail in the background
Marco:
Well, nobody downloads Mail anymore.
Marco:
Some people have said it quit iTunes when it was playing music.
Marco:
It's like, okay, well, that's interesting.
Marco:
The app had a number of... The other major shortcoming is the app itself, it didn't have an about screen or anything really to tell you... If you just forgot about where you got this app and a few months later you just saw this app and you launched it, you'd have no idea where it came from
Marco:
how to get more information about it, who made it, because there was no information in the app about the app.
Marco:
And so the combination of a couple of those minor... Oh, and you could also enter negative times.
Marco:
That was fun.
Marco:
So a couple of just minor polish flaws, basically, like areas in which I did not make a releasable quality app, but released anyway, I wanted to issue a quick update.
Marco:
So I fixed all the problems, tested it with all sorts of unit tests and integration tests and parking lot tests.
Marco:
And then I just put the new zip file on my server and regenerated the Sparkle manifest, which I have a script to do in one command.
Marco:
And it was released immediately to everyone.
Marco:
Neat, huh?
Marco:
Nobody had to approve it.
Marco:
It didn't have to sit around and wait for days.
Marco:
I knew that in the really worst case scenario, if I really botched things in this update, I could just issue another one.
Marco:
It was kind of amazing.
Marco:
And of course, every Mac programmer is like, ugh, these stupid iOS fools.
Marco:
They don't know what they're missing.
Marco:
And yeah, now I know what I'm missing.
Marco:
And so it's kind of intoxicating.
Marco:
And I can see where it could be dangerous.
Marco:
But the appeal to me of just distributing apps directly to people...
Marco:
without this giant middleman that is really opinionated and picky and slow is very appealing on a number of levels.
Marco:
I think the experience of doing this, first of all, I've seen just enough of what it's like to develop a Mac app with AppKit and everything.
Marco:
I've seen just enough of it to know it would take me a long time to become an expert at it and that it's not easy and that there's lots of things to think about and consider.
Marco:
It also showed me that it's possible and that there is some kind of market here.
Marco:
I don't know how big the market is for all the other stuff I'd want to make, but there is a market there.
Marco:
And the idea of direct access to your customers is so refreshing and foreign to me.
Marco:
I am definitely going to be more likely to try to make more Mac apps in the future.
Marco:
Who knows what, if anything, will actually come out of that feeling to the public eventually, but I'm certainly interested.
Marco:
I'm much more likely to try it now than I was before.
John:
Wait until you learn you can charge $99 for them.
Marco:
Yeah, but then you have to answer support email.
John:
Do you?
John:
That's a good question.
John:
I don't know.
John:
Wow.
John:
You've got to think outside the box.
John:
$99, no support.
John:
If anyone can pull it off, it's Marco.
Marco:
Our final sponsor tonight is Hover.
Marco:
Hover is the best way to buy and manage domain names.
Marco:
Go to hover.com and use promo code eggeverything for 10% off your first purchase.
Marco:
When you have a great idea, you want a great domain name that's catchy and memorable.
Marco:
Hover gives you exactly what you need to find the perfect domain for your idea so you can get started actually working on it.
Marco:
Hover gives you easy-to-use, powerful tools to buy and manage domains.
Marco:
Anybody can do it at any skill level.
Marco:
And if you need a hand, their support team is always ready.
Marco:
In fact, they have.
Marco:
If you want to use it, you can call them.
Marco:
They have a no-wait, no-hold, no-transfer phone support line so that when you call an actual human being,
Marco:
picks up the phone no menus none of that an actual human being picks up the phone and that person can help you there's no transferring you to five different departments no going through robot menus you just call them and a person picks up the way things used to be at every business hover is like that today so in less than five minutes you can find the domain name you want you can get it up and running
Marco:
All you have to do is search for a few keywords, and Hover will show you the best available options across all of the many, many domain name ending options out there.
Marco:
So there's .com, .net, all the old ones, and there's all the new ones like .diamonds, .plumbing.
Marco:
There's so many domain names now.
Marco:
Hover can search all of them for you.
Marco:
Now, if you've ever registered a domain name anywhere else, you know that at other places this can be an unpleasant experience.
Marco:
You might be confused.
Marco:
You might feel like you're getting ripped off or having the wool pull over your eyes.
Marco:
You might have these weird upsells that you didn't really think you needed, but they're charging you extra for.
Marco:
Hover does not believe in this stuff, and Hover is very well designed, very easy to use.
Marco:
They don't do heavy-handed upselling of weird packages and privacy things.
Marco:
No, they give you what you need at the base price.
Marco:
They even offer something called Valley Transfer Service, which is really cool.
Marco:
If you have names somewhere else that you want to migrate to Hover, you can do it yourself.
Marco:
It's fine.
Marco:
It's a little bit tedious and error-prone, though.
Marco:
So if you want, you can give them the login to your old domain name registrar, and they will do the move for you for free for any number of domains.
Marco:
So check it out.
Marco:
They have email.
Marco:
They have forwarding.
Marco:
They have all sorts of stuff you could use.
Marco:
Go to Hover.com.
Marco:
Check this out for yourself.
Marco:
Use promo code eggeverything.
Marco:
One word, that's eggeverything, which I believe is a canonical bagel flavor.
Marco:
For 10% off your first purchase.
Marco:
Thank you very much to Hover for sponsoring our show.
Casey:
So did you guys hear that Apple's doomed?
Marco:
Ugh.
Marco:
Doomed, I tell you.
Marco:
Oh, they're fine.
Marco:
They're going to be fine.
Marco:
They're going to keep generating tons of money.
Marco:
Who cares?
Marco:
Wall Street cares.
Marco:
I totally get why Wall Street cares about Apple's financial performance because that's their job.
Marco:
It's Wall Street's job to care about quarterly earnings and stuff.
Marco:
As an Apple user, and even as an Apple developer, I honestly don't care.
Marco:
It's worth hearing in broad strokes, oh, the iPad's down.
Marco:
Everything's kind of sagging for a quarter.
Marco:
Yeah.
Marco:
If everything sags for a year, let me know.
Marco:
That might be more interesting.
Marco:
But to have these little quarterly updates of, ooh, well, this year, this quarter was a little bit worse than last year this quarter, and that particular pattern hasn't happened in a long time, even though they made billions of dollars.
Marco:
It's like, okay, well, it's the kind of thing that if you're an analyst or if you're the kind of person who reads analysts, this matters to you.
Marco:
But if you are a user or a developer or a fan, I just don't see how the finance stuff matters.
John:
Well, I think Apple's reaction to the finance stuff might matter.
John:
Like not so much the results themselves, but what Apple says about them.
John:
Like, you know, that's why I listen to the earning calls or read transcripts of them or whatever is, yeah, you want to get the news and the news is, you know,
John:
trends are continuing and there are no surprises because apple gives guidance on its on what it thinks its financial results are going to be next quarter and the next quarter comes and thus far they've pretty much been within their guidance they gave a range like well we expect a low of this and high of that and they land somewhere in the middle of it and people still freak out about it wall street still freaks out but whatever like it's not it's not earth shattering but
John:
what apple says during those calls to i mean for the most part what apple's trying to during these calls is to if something seems bad apple says something to make it seem not so bad because apple doesn't like it when their stock price goes down right um and if things are good apple trumpets that they're good and and tells you why they're good and how amazing it is and you know how proud they are and blah blah um and that's the more interesting part of earnings is how the company reacts and
John:
this this recent one and in the lead up to this recent set of results uh the thing i've been noticing about apple is the emphasis on their services business they're talking about it uh you know every chance they get and during the earnings call they emphasize it as a growth you know as the part of their business that's growing and doing well um and that that bothers me a little bit well if
John:
it bothers me and it could be a good thing first let's say the optimistic side it could be a good thing in that all right services business is growing and apple you know what is the good news apple well iphone sales are down year over year but they're still doing really well but if you want a story about something that's growing hey we've got things that are growing too because that's what everyone's always looking for you know where is the growth going to come from next it doesn't seem like it's going to be the apple watch at least not for a little while or wearables or whatever but services are growing uh that's good
John:
uh and apple wants to emphasize that and maybe by emphasizing services and by making more and more money from it it will make apple invest more in it because if they see that as their next big growth opportunity they will you know they will invest in themselves and try to continue to make it grow and that will be better because historically speaking apple services have not been great on the flip side the pessimistic side i feel like apple can be proud of the growth of its services segment uh but also
John:
not really get any better at services like i don't know if you can turn apple into a services company they seem so far from we talked about before about them you know the cloud kit versus you know microsoft azure or aws or any of these other things they just don't seem like they understand what it takes to be really great there and
John:
and if that's going to become an important part of the business they need to get way better at it and it seemed instead what it seems to me is they they're finding ways to make more money from their existing customers and that's growing their quote-unquote services revenue hey we have all these people who buy these devices that they love can we find more ways to monetize them which i guess is fine as far as business models go even though it's kind of been the inverse of what it's always been which is
John:
Buy our hardware and the services just make our hardware more attractive.
John:
Now it's like all those people who have our hardware, they're a potential source of service revenue, so we should make services for them.
John:
But when I look at the services they offer, I don't feel like for the most part they're best in class in any category.
John:
And if your next big growth opportunity is as a services company...
John:
You're going to get way, way better at services.
John:
And I don't see I mean, maybe that's going on internally, but externally, Apple saying we love services.
John:
We have a lot of customers.
John:
We found, you know, we found ways to get money from them.
John:
Isn't that great?
John:
And I think, no, that's that's not really great.
John:
Like I don't monetizing your existing the existing customers of your hardware that we all love and even your operating systems that we all love.
John:
trying to make them pay for services that we tolerate or accept because of platform integration.
John:
That doesn't make me feel particularly good about Apple or its services.
John:
So I really hope my first scenario is what happens, that services end up being a growth business and that Apple gets much, much better at them.
Marco:
I mean, there's also option number three.
Marco:
This might have just been what they said to be spin on these calls that they knew were going to be down in hardware sales.
Marco:
This might have just been something they told Wall Street to just kind of spin it and frame it in a better way to try to soften the blow a little bit and to try to appear that they have major growth opportunities in the future in this other area.
Marco:
Let's face it, you're right.
Marco:
Apple is not really much of a services company.
Marco:
They are primarily a hardware company.
John:
Yeah, I mean, local applications, operating systems, platforms, hardware, but then services, I feel like they have not been strong.
John:
And I count that as separate from, hey, how good is the Mac operating system?
John:
How good are the applications available for your platform?
Marco:
Right.
Marco:
But so, you know, option one, as you said, option one is like Apple actually makes itself a really big services business.
Marco:
Option two is they just kind of tighten the screws and try to extract more money out of us in ways that are not so great.
Marco:
Option three is they kind of just keep doing what they've been doing.
Marco:
And that was just spin on the call to soften the blow of bad results.
Marco:
All three of them, I think, are probably equally likely.
John:
Well, but the reason that I don't think it's just been for this particular announcement is because the services push is not just this quarter, like Apple Music, the Apple TV subscription business that they've been trying reportedly, you know, rumored to be trying to get off the ground forever and just couldn't do and they launched the hardware without it.
John:
Yeah.
John:
Those are two potentially pretty big initiatives that predate, you know, a dip in iPhone sales year over year or, you know, whatever.
John:
Who cares?
John:
But, like, growth has been slowing in their other businesses.
John:
And I think the watch and everything is an attempt to find another big hardware product that can take, you know, and the iPad efforts.
John:
Like, can we find the next big hardware product line that's going to take off?
John:
But the services push, I feel like, has been brewing even longer, especially since these services take a long time to get off the ground.
John:
And the rumored revamp of Apple Music at WWDC just shows, like, they're serious about, like...
John:
you know, recurring revenue for network services for people who own our devices.
John:
I mean, you can even count iCloud and all of the storage, you know, charges for, you know, iCloud storage for your backups and for iCloud Drive, like...
John:
this has been a long time building like that service didn't come out of nowhere they've been slowly growing and apple has been inventing new ways for you to regularly give money to apple for the privilege of using their services that integrate with the hardware that you already bought from them uh and i don't see the number of those services going down if anything like again the apple the apple tv one i'm counting even though it doesn't actually exist just because there's been so much smoke around that that i feel like
John:
if apple could have got the content deals done in a way that they thought made an attractive product they would have launched a long time ago just seems like they can't get the deals done but um apple music is their most serious services offer uh you know effort to date and as a lot of articles have pointed out like for the for the size of the installed base that apple has for people who own apple devices and listen to music the penetration of apple music has not been great like maybe they were late with that because spotify has got too much of a uh
John:
a foothold in that market or whatever it could be the same thing with television maybe they're too late and netflix got netflix and hbo and hulu and everything else have got too much of a foothold in that um but it seems like there there is a real serious multi-year effort in size apple to maybe not the same way we're thinking of services like like dropbox or whatever but to
John:
It sounds bad to say to monetize their customer base, but to basically to offer network services to their customers because that is a fairly large and growing business.
John:
We'll provide you music or video or some other kind of entertainment.
John:
uh you know we'll give you content instead of you buying each one of these little items you just pay us a subscription fee and we will deliver it to you on all your devices and there's lots of those businesses and apple i think wants to be one of those businesses but thus far has just kind of been a middle of the pack also ran and everyone that's entered
Marco:
I think if Apple really wants to become a more serious services company, I think they have shown through the results through their actions that their current setup is just bad at that.
Marco:
It seems to me that they would have to somehow dramatically restructure the part of the organization that does services.
Marco:
Maybe that's something as dramatic as replacing Eddie Q. Maybe it's something less dramatic, like just having somebody else take some of those things out of the organization and make a new services stack, kind of like what just happened with Phil Schiller in the App Store.
Marco:
Something has to change there because whatever they have now just doesn't work that well to achieve those goals.
John:
Or they could, yeah, I was trying to think, or they could have a simpler service.
John:
But this is something I had in the potential topic notes for many months, and it's just been slowly pushed down.
John:
But it was an article that Jason Snell wrote a while ago about the idea of Apple launching...
John:
Yeah.
John:
why would netflix make a show and it seemed absurd but uh you know fast forward a few years and it's not so absurd and netflix and amazon pay for shows to be made and then they stream them exclusively on their services and hbo of course came from the other direction where they paid you know even even hbo used to be just home box office you would watch movies that other people made on hbo then hbo started paying for its own content that you could only get an hbo and then hbo decided to have a service that eventually divorced from the cable company so all these other companies are
John:
getting into the the funding of creative services and jason's article was like why you know why wouldn't that be something that apple would want to get into the obvious answer is you know apple's currently in the business of selling other people's content apple doesn't make music they sell other people's music apple doesn't make movies and television shows they sell other people's movies and television shows and give the money to the people who made them and they're just the middleman type of thing
John:
um but all those other companies i described started out in a similar place uh and eventually came to make their own content and it could be that if you want to be a successful at least video service for example that again table stakes is by the way you also have to have some exclusive content and the only way you can the best way to get exclusive content is to fund it yourself and apple's got tons of money and connections to
John:
People in the entertainment industry, why can't they fund their own, you know, Orange is the New Black or House of Cards or whatever and have it exclusively available on a theoretical subscription to Apple TV service?
John:
Is that the only way that they could ever be a serious player in the market for video other than being simply a platform for the Netflix app, a platform for the Hulu app, a platform for the HBO Go app?
John:
if that's what they want to be fine uh but i don't know if that is the real growth opportunity that they think it is um and think of simpler services even something like netflix and when i think about what netflix does like if you like this you might like that and just the basic uh you know polish of the application of automatically playing the next episode and keeping track of where you left off and everything even that i feel like is above the degree of difficulty that apple can handle based on
John:
Our past episodes are talking about simply trying to watch a season of television on Apple TV and the difficulty of navigating to what the next show is going to be and everything.
John:
I just don't feel like Apple is up to it.
John:
But one of the things Apple has that a lot of other companies don't is a humongous pile of cash.
John:
And one of the things a humongous pile of cash can buy you if you are smart and know the right people is original creative content, whether they be television, movies, or I suppose even music.
John:
But like I said at the beginning of all this,
John:
the big issue is uh how are do those other companies that sell music or television shows or movies through your services feel about you making movies or television or yeah uh they probably don't like that very much and so maybe apple would never do anything to sort of become non-neutral in that war but uh and as far as now it hasn't happened in music like i don't think like spotify is funding its own music music and you know starting its own record label and getting its own artists and all that stuff but
John:
in the video realm it's happening um and i don't know if it's helping or hurting i've heard like netflix's catalog has been shrinking i have no idea if there's any correlation between them making original content but it definitely makes the relationship more complicated spotify doesn't have original artists but it does commission original performances um i forget what they're the spotify sessions is i believe what they're called itunes does that too by the way
Casey:
Yeah, you're right.
Casey:
And they'll have artists come in and do a performance that's exclusive to Spotify or you're right, Marco, or iTunes.
Casey:
Not exactly what you were talking about, John, but not too far away either.
Marco:
I think what we've seen from the streaming services, both for video stuff and music stuff.
Marco:
Yeah.
Marco:
Amazon Prime Video, one of the reasons people want to watch that is because of stuff they have there that you can't watch in other places.
Marco:
Also, because a lot of times you're just getting it for free with your free fast shipping thing.
Marco:
HBO, of course, is probably the best example...
Marco:
where people paying for HBO, whichever one is it, Go, Now, I don't know.
Marco:
One of the HBO things, people paying for that are doing it not to get some kind of movie that HBO lets them see for a few weeks.
Marco:
No, they're doing it for the original content.
Marco:
So I think if Apple is serious about getting into that kind of business, I would say, if anything, the market is showing that Apple needs original content to really succeed there.
John:
I didn't watch Amazon Video at all.
John:
We have Amazon Prime.
John:
I could have been watching anything that was free for Prime Video people.
John:
The only reason I started watching it was Man in the High Castle, which was original content for Amazon.
John:
I suppose there are many shows that I could have watched on Amazon streaming that I also had available on Netflix streaming, just like the shows that everybody has or the movies that everybody has.
John:
But you kind of get into a habit, like my habit tends to be
John:
My first go to for like, where is this movie stream for free?
John:
I go to Netflix and only think about Amazon tangentially.
John:
But original content is what brought me to this.
John:
I already pay for HBO for my television.
John:
But if I didn't, I would definitely pay for HBO now to see Game of Thrones just for that one show.
John:
I have no idea what the hell else, you know, or whatever show Deadwood in the past or The Sopranos or whatever.
John:
original content is a huge driver now it still remains a question whether apple has to be in the content business to be viable at all because again apple tv has apps for all these services we just listed um
John:
I'm not sure how much money Apple sees from that.
John:
All these things are like, fine, we'll make people sign up for HBO outside of Apple TV so we don't have to pay you 30% or whatever.
John:
And people will buy an Apple TV, but Apple TV is a cheap device with fairly slim margins in the grand scheme of things.
John:
And once you buy one, you don't have a big urge to replace it.
John:
And meanwhile, we're all paying $10, $20 a month to all these different services.
John:
To get this video content, I feel like Apple would be their services business.
John:
They would be more happy getting a monthly small amount of money from the customers rather than you buying $150 Apple TV once every three years.
Marco:
Well, and the other problem is even if they do this and succeed relative to the growth that they're trying to make up for in hardware, it just isn't that much money.
John:
Well, that's Apple's problem.
John:
The bottom line problem is, is there anything that's ever going to be as big as the iPhone?
John:
And again, Tim Cook pointed this out, the other thing he was spinning in the call, which is, look, iPhone's not done.
John:
Yeah, almost every person in the world who can afford a smartphone has one, but not really, because people are still using dumb phones, and we only have 40% market share, so we have 60% that we can grow into.
John:
I think everyone feels like that the...
John:
the battle lines have been drawn and the fronts are kind of settled and it's like, yeah, yeah, Apple, you're right.
John:
You don't even have, you know, more majority market share, but we feel like you're never going to have majority market share.
John:
So unless you can suddenly start selling iPhones to, you know, you know, billion people in India who previously you couldn't sell them to or the middle class in China, you know, increase like all these things.
John:
Here's how we can sell more iPhones.
John:
But it seems like there's a lot of pessimism about the potential growth
John:
Both of the overall smartphone market, you know, in the short term anyway, and in Apple's ability to get more of that market.
John:
So everyone is looking for the next thing.
John:
What else can you sell that will make you iPhone kind of money or half iPhone kind of money or quarter iPhone kind of money?
John:
And again, I think wearables is a possible answer, but the Apple Watch is currently not a concrete implementation of that possible answer because I forget what category they lump it into.
John:
Other.
John:
But yeah, but it's not, you know, it's not setting the world on fire.
John:
And the Mac and the iPad don't look like they are on growth trajectories to be the next iPhones either.
John:
Maybe cars will be.
Marco:
I don't know.
Marco:
Even then, if you look at the market caps for big car companies, Apple has gotten so big and so successful.
Marco:
And the smartphone has been such a revolution that was accelerated both in speed and ubiquity and in profitability.
Marco:
Yeah.
Marco:
by a number of weird factors that like, you know, the way like people weren't really paying their direct prices in so many markets and the upgrade cycle and how many people need them, which is so many people and like the spread among the whole world, how quickly it happened.
Marco:
I mean, the smartphone was such a combination of fairly unique factors that it is unlikely during our lifetimes that we will see any other device that allows that level of insane fast growth and profitability.
Marco:
That's it's probably not going to happen again.
Marco:
That's not to say there isn't any other area of growth, but that I don't think there will be something that will provide quite this level and explosiveness of it.
John:
they don't need one thing like i mean they what there seems like they're trying to do you know in bits and pieces is diversification like they don't want to be the iphone company so if iphone slows down you gotta have a hedge against that right and if your hedge is not one other product then maybe it's four other products that together make up an iphone size lump and that if the iphone decreases if you could be ransoming those up at the same time you'll still stay above water like it's the if you look at all the little graphs you can see as you know
John:
as one thing rose to prominence and then faded something else came from out of nowhere to rise to prominence then fade and something else comes out of nowhere and as if the iphone is if not fading then at least leveling off uh you may need a bunch of other lines to come and together sum up to something that looks like a reasonable hedge because you don't want to be a company where like 95 of your revenue is coming from one product line uh and apple's not i forget what the iphone is i think it's like
John:
60 ish something like that or something like that which is still pretty good in the grand scheme of things but you got to get one of those other little pie wedges and the other 40 percent to be on a reasonable growth trajectory because i think the iphone will keep growing like more people will be able to afford smartphones the price of the product will eventually go down to let people more people afford it more people will be entering the middle class and
John:
uh if apple is lucky we'll be able to claw a little bit more market share percentage point here and there from its competitors so it's not like the iphone is done done but uh you know the the giant uh rocket sled ride to the the top of the the chart is probably uh in the past for the iphone
Marco:
One other quick thing I do want to tack on this topic before we wrap up.
Marco:
We're kind of basing this on the idea that Apple right now is really bad at web services, or we're not seeing them finding these major other growth areas quite yet, and maybe they'll do a car, but whatever.
Marco:
I think it's worth pointing out that companies can change and companies can gain new expertise.
Marco:
Years ago, before Apple launched the iPhone, the idea that Apple would have the in-house expertise to make a phone, to make a cell phone, all the crazy stuff like the baseband that has to go into that, and then even the idea that they'd be making their own processors or at least designing their own processors.
Marco:
These are the kinds of things that before Apple really set their mind to doing it, they couldn't do.
Marco:
And you would think at the time it would be hard to see a path they would get there.
Marco:
But because they really put their mind to it, they really made it a priority.
Marco:
They funded it.
Marco:
They gave it time.
Marco:
They gave these things, you know, the talent and the space to mature and the funds required to develop these things over time.
Marco:
They were able to become, to develop expertise in these other areas that they didn't have yet.
Marco:
Services could be one of those areas.
Marco:
They just have to do that process.
Marco:
They have to recognize that it's a problem that they don't do well now and then invest in it.
Marco:
Make changes.
Marco:
Invest money.
Marco:
Invest time.
Marco:
Get the right talent.
Marco:
Give them the space to grow.
Marco:
Give them the space to operate.
Marco:
Give them what they need to develop that talent in-house and to become great in-house.
Marco:
The main reason we haven't seen that yet from Apple is that there doesn't seem to be much opinion in the top ranks at Apple that anything in the way they do services really needs to change.
Marco:
At least we're not seeing it.
John:
Yeah, they think they're already good at it.
John:
They think they're already okay at it.
John:
Like, we've been doing that for years.
John:
It's not like a phone where we've never made a phone before.
John:
Boy, we really better bear down and work on this or whatever.
John:
Yeah.
John:
oh, we've been doing services like this for ages.
John:
I mean, remember eWorld?
John:
Wasn't that great?
John:
Anyway, we've done all these great things.
John:
We just need to get a little bit better.
John:
It's just a matter of tweaking, whereas I think you're right.
John:
The mindset going into a phone was kind of exactly what the Palm guy said, that the computer guys aren't just going to walk in.
John:
Apple was like, we don't know anything about making phones.
John:
I mean, we make computer devices, and smartphones are kind of computers, but like you said, we've never been in the phone market at all, so we really better...
John:
go head down on this and figure it out and work really hard on it.
John:
It would almost be better if you could wipe all history of Apple services from the earth and just say, starting from today, pretend you've got these iPhones and all these iOS devices out there and Macs and everything.
John:
but you've never made a network service before and you have all these billions of dollars uh make one and you know i think a lot of the icloud revolution and cloud kit and everything has been a step in the right direction but i still feel like because they're coming from a position of of okay you know they're not they're not coming from a position of of weakness as far as they're concerned they're not coming from a strength we're like we're okay right it's not great maybe mobile me was kind of crappy but
John:
All we need to do is just change a few things and it will be great.
John:
And I just, you know, from my perspective on the outside and seeing other companies that do similar things, I think they're far from average.
John:
I feel like there are these huge weaknesses that are not really, that don't seem to be resulting in the kind of radical change that I feel like is necessary to just get on the same playing field with everybody else who's doing the same stuff.
John:
Same stuff.
Marco:
All right.
Marco:
Thanks a lot to our three sponsors this week, Casper, Audible.com, and Hover.
Marco:
And we will see you next week.
Marco:
Now the show is over.
Marco:
They didn't even mean to begin.
Marco:
Because it was accidental.
Marco:
Accidental.
Marco:
Oh, it was accidental.
Casey:
Accidental.
Marco:
John didn't do any research, Margo and Casey wouldn't let him, cause it was accidental, it was accidental, and you can find the show notes at atp.fm.
Casey:
and if you're into twitter you can follow them at c-a-s-e-y-l-i-s-s so that's casey list m-a-r-c-o-a-r-m-n-t marco armen s-i-r-a-c-u-s-a syracuse it's accidental they didn't
Casey:
We didn't even talk about TiVo.
Marco:
So Apple bought Nintendo.
John:
No, we'll save it for next week.
John:
It's fine.
John:
I think we need to talk about bumper sounds.
Marco:
Is anybody going to remember TiVo next week?
Marco:
Yeah, I'll remember.
John:
Or we can talk about my mom getting hacked.
John:
Yeah, what's that about?
John:
Yeah, what is that about?
John:
It happens.
John:
It happens to people.
John:
It happens.
John:
Like, my mother is usually on the opposite side of the spectrum, constantly messaging me or emailing me or forwarding me messages or saying, I got this...
John:
message or text or email or whatever and it says this should i trust it is this a real thing is this a scam uh what should i do should i do anything and usually the answer is you know just delete it it's a scam you're right just delete it or like no that's a legitimate email from apple or that's a legitimate receipt for something you bought like uh but always uh erring on the side of just asking like if you're not sure what this thing is you're looking at
John:
ask ask one of your computer nerdy children uh what's the deal with this this is real or is it not real um and all you know it doesn't take much to ask just ask and if the answer is just delete the email then then you know fine uh this was the reverse case she had a problem with one of her devices a problem with her kindle
John:
and she does what i guess most people do when they have a problem with their kindle is like you type something into a web search box it says like kindle problem can't sync whatever blah blah blah and it turns out if you type a certain sequence of words involving kindle and problem or whatever into google one of the very top hits on the first page is a completely bogus kindle support website and phone number and
John:
Like, oh, you got a problem with your Kindle?
John:
Call this number and we'll help you with your Kindle.
John:
So she called the number, which is like a 1-855 number or whatever.
John:
And a nice person answered the phone and asked her about her problems with her Kindle and gave her instructions to download a Citrix client to her computer and then took over her computer.
John:
And then she said then terminal came up and a whole bunch of things started scrolling by.
John:
Yeah.
John:
Yeah.
John:
So eventually she figured out once her cursor started moving that I've, I've connected, you know, I've done screen sharing with her before and controlled her computer to solve problems.
John:
But she knew this was something that should not be happening with a stranger.
John:
Although she got a lot of backtalk from the stranger.
John:
The person on the phone was like, you know, she was saying like, how do I know you really from Amazon?
John:
And the person on the phone was like, you called me.
John:
And like, well, that doesn't mean anything.
John:
It was, it was, but you know,
John:
it just it just shows like if you get off on the wrong foot of like you're just googling you you think you you know it's actually it's kind of hard to find a phone number to call amazon my mom was insistent that you can't actually call amazon on a phone which is not true you can call them on the phone but anyway it's very easy to just think what the internet is is a giant search box where you type words and you click on the results and then you know of course it's trustworthy because i typed
John:
something problem with my kindle and i found the kindle support the official kindle support help desk that had a phone number and the person who picked up was totally helping with me with my kindle and she doesn't know what citrix is she doesn't know you know i'm amazed i'm kind of impressed that the person got her to successfully download install and launch the citrix thing because that is no small feat it must involve a frustrating series of steps trying to instruct people on how to download things and unzip things or whatever
John:
anyway uh bottom line is i had her just wipe her whole computer and erase the hard drive because like at that point you just have to assume every single thing on that computer is compromised right yeah this is kind of the i mean you know this this was not a burner computer but it wasn't like her main computer she had long since it was a very old like a white macbook so she had long since removed everything from it that she cared about so we could wipe everything on it
John:
um she was using dropbox on it so in theory there could be something evil shoved into her dropbox but hopefully that will be data and not executables i don't know i mean she could you know anyway and the other thing is because my mom eventually figured out that it was bad that the person did disconnect now do they disconnect after installing the ransomware botnet blah blah blah rootkit on their thing maybe
John:
uh maybe there was a one or two day delay on the on the rootkit thing or the key logger or whatever the house was going on there maybe it didn't get installed fast enough because i don't really know what the timeline is but you know you do what you can so we erase the entire hard drive but uh we reinstalled the operating system i read re-downloaded to reinstall the operating system
John:
uh reinstall the dropbox client it did resync all her files from dropbox so if those people snuck in something evil into dropbox that somehow finds a way to execute itself from within dropbox she could be reinfected but like what are we going to tell her to do delete everything in dropbox that's basically like all her files so i don't know this is just uh there's actually an ftc page about this specific thing like tech support scammers or whatever and what you're supposed to do if you've been scammed so hopefully
John:
uh, being old retired people, uh, who don't have anything better to do.
John:
They are doing everything that it says on that page, including reporting the phone number and, you know, whatever, get, you know, trying to get them, you know, the people who are doing this to stop them from doing it to other people.
John:
But, um,
John:
Be careful out there on the internet.
John:
It's dangerous.
John:
It sucks, man.
Marco:
It's not fun.
Marco:
This stuff makes me so sad.
Marco:
Not that people fall for it because people don't know any better with this kind of stuff.
Marco:
It looks official.
Marco:
You're searching for something.
Marco:
Computers suck at being clear.
Marco:
That's understandable.
Marco:
What makes me sad is that there are people out there in the world who every day do this for a living.
John:
and that they seem to be okay with that and and they don't get caught i don't understand how they don't get caught like i entered the phone number into google you find a million people who are like yes this totally happened to me like years old reports of like yep i called these people and they seemed a little bit shady and then weird things started happening on my computer and i think i might got a virus and blah blah like how do they how do they go on doing this how do we not like especially if they're calling from within the united states i feel like they should be arrested within like
John:
you know days or weeks of the first report but no they just go on for years and years and apparently this is just fine with everybody
Marco:
Yeah, I mean, we have two failures here.
Marco:
We have failure number one of these people doing this, like waking up every day and doing this and being okay with that, knowing what they're doing.
Marco:
And then failure number two is, I mean, assuming they're operating in the U.S., which is not a safe assumption, but if they're operating in a country that has laws, how is this continuing?
Marco:
But the reality is they're probably outside of the U.S.,
John:
I think the phone number was someplace in Atlanta or something.
John:
I don't know.
Marco:
It seemed like it wasn't... Well, where the phone number is doesn't necessarily mean where they... I mean, I get so much... In recent months, I've had a massive uptick in the amount of phone call spam I get now from robocalls.
Marco:
Not just people like Dun & Bradstreet who have humans spamming the crap out of you, but robocalls that come from U.S.
Marco:
numbers.
Marco:
Like Merlin's talking about, it'll come from...
Marco:
from a very close exchange to where I live so that I'm thinking, well, what if this is like somebody calling from my kid's school?
Marco:
I better pick up.
Marco:
Or I get calls from San Jose.
Marco:
It's like, well, if you're an Apple developer and you get a call from San Jose, you pick up that call.
Marco:
And so I've gotten so much phone spam recently, only in the last few months, because I think what's going on is there's all these virtual phone services where you can use some API online to generate local phone calls.
Marco:
These things have existed for a while.
Marco:
I'm guessing that spammers have finally figured out that these things exist and are automating the creation of a whole bunch of calls that are local to each person they're calling and spamming them that way.
Marco:
Anyway, like, you know, spammers and scammers, they find ways.
Marco:
They're very creative.
Marco:
They find ways to create new spam and new scams.
Marco:
And it just, oh, it's so sad.
John:
yeah and like this this long one eight five five whatever number like the fact that there are old google results for it shows they aren't even being so smart as to like change numbers all the time and keep hopping around or whatever like they're just using the same one over a long period of time still like you figure at the very least what they could do is like have the government or whoever disconnect that number for fraud and force them to come up with another number i mean maybe that maybe that would make it worse so they would be hopping around more but
John:
The only thing I feel like I have going for me in this situation is that these type of scans tend to be broad.
John:
And so they're not like specifically targeting my mother or anybody else.
John:
And what they mostly want to do is probably...
John:
scrape for credit card numbers turn your computer into a bot or install ransomware very generic stuff not like do they know where my specific secret files are do they want my photos or whatever no it's just it's like a one size fits all scam they connect to your computer they find out what operating system you have they put whatever malware they want on there and it's just and you know some percentage of it they just assume the malware is not going to work or they're
John:
Everything is going to be erased or whatever, but enough percentage hit that it makes them money.
John:
And for all I know, the person on the phone doing the thing gets paid some percentage for the number of people they install the software on.
John:
And then, you know, like it is in some ways better than being individually targeted for a hack.
John:
Like, you know, if you're a bank or something intact and hackers specifically target you.
John:
this kind of sort of generic uh i don't know like mass market scam is kind of reassuring in how how little it cares about you specifically so i have some dim hope that immediately erasing her entire computer has actually saved her from any sort of uh
John:
future problems but who knows who knows what they got i mean she was you know her keychain was unlocked when they took control of her computer uh she had an admin account though she swears she never did enter her admin password i'm hoping that's the case uh but at the very least her keychain was unlocked and yeah it's depressing it sucks but i'm glad she didn't really in the grand scheme of things it didn't seem like she really lost any data or she's really that much worse for wear
John:
yeah well it's just the question of like what do they get you know because yeah she there's i you know if you knew where to look on her computer there were plenty of things that people would want to steal you know because old people write things down fair enough uh what's your what's your beef with the completely flawless windows xp sounds
John:
I think we already covered all my beefs.
John:
I just want to add one thing to bring together the two discussions about them, which is the fact that I don't like the sounds because they're terrible.
John:
And the idea that no matter what sounds we use, eventually all listeners to the show, which includes me, will come together.
John:
to expect them as part of the show, that you will come to love the sounds.
John:
And it's kind of the reverse situation of the reason why you never set your favorite song to be, like, the alarm that wakes you up in the morning or your ringtone.
John:
Because you will come to hate it.
John:
Like, you would just make... Like, never do that.
John:
Never... If you like a song or anything, like, just...
John:
you can make yourself hate anything by making it wake you up in the morning or making it be a ring turn or whatever um so you should never do that you'll ruin things that you love this is the reverse this is taking something that i hate which is these windows xp sounds and trying to make me love it through repetition um so that that's what is the the real the real horror of this uh of this choice of sounds and yes lots of people tweeted they also hate the sounds too
John:
I continue to think that better sounds exist and I would like to find one and I'm thinking about it.
John:
And if I come up with ones, I will send them to you.
John:
In the meantime, I would encourage you to use different sounds on every show, just like you want to have different t-shirts every year.
John:
And in that way, none of us will be forced to come to expect and love Windows XP sounds.
Marco:
By that rationale, you would always hate every sound I ever used because you wouldn't have time to get acclimated and start loving any of them.
John:
it's a good point no they could just be you know they would just they could just be mediocre and who knows maybe you'll hit on one that we all think is great uh you know what i mean like for the purpose like the thing about the song is the purpose of the song is not to wake you up in the morning the purpose of the song is like oh i listen to it and i enjoy it and you ruin that by making it the thing that wakes you up what we're looking for is a purpose-built sound to be this is the beginning of the ad this is the end of the ad
John:
And if we find something that works like that, just like we found a theme song that we like, none of us hate the theme song because we played it repeatedly, because the theme song didn't exist outside the show and then was brought into it, especially in another context.
John:
So I feel like we could find a beginning of ad, end of ad sound that we all like, that we like in the beginning, that we like even more as it continues down the road.
John:
And in the meantime, you just pick a different one every episode.
John:
a different set on every ad even and uh it could be funny and who knows by just random chance we might hit on one that's awesome but i've been thinking about it i don't have any great ideas yet or i would have already uploaded the sound files for you all right it's just it's funny to me that um a lot of people came out of the woodwork to say oh those sounds make me think of the day the old days when i had to use these computers blah blah blah now i have ptsd blah blah blah
Casey:
PTSD came up a lot.
Casey:
Just relax, people.
Casey:
It's a computer.
Casey:
If you were getting PTSD from Windows XP, it's probably because you were in an office somewhere, probably air-conditioned, probably heated.
Casey:
You probably don't have PTSD.
Casey:
You probably are just getting yourself worked up for the sake of getting worked up and or because John said so, and apparently John can never be wrong.
John:
i think they're joking with ptsd i don't think they mean actual ptsd maybe it is a joke in poor taste but but there are could be there could be bad feelings associated with it like if you play a sound even if it's like say you worked like a drive-thru and there was a little sound when a car drove up and you worked there for like three summers and it was miserable if you heard that sound again it can make you kind of get a you know a cold shiver like you know it brings you back to a bad time in your life and for many people windows xp was a bad time in their life i guess
Casey:
I don't know.
Casey:
I mean, I understand what you're saying.
Casey:
It just it seems excessive for people to get that worked up over.
Casey:
Like, I didn't enjoy Windows XP.
Casey:
I didn't think it was that.
Casey:
Well, I mean, I did, I guess, briefly.
Casey:
But by the end of my time with it, which was many, many years, I freaking hated it.
Casey:
I hated it with a passion.
Casey:
And I hated those those little noises.
Casey:
But in this context, I think it works perfectly.
Casey:
And I think everyone just needs to chill out a little bit.
John:
yeah again it's not so much the origin of the sounds that's the problem although it doesn't help it at all because i didn't really like the max sounds that were chosen either and not them being from max didn't magically make them awesome sounds for the purpose i just i just feel like we haven't found the right fit yet is i'm continuing to think about it as as should we all