The Roman Mars Mazda Virus

[REPLY ALL THEME MUSIC]

ALEX GOLDMAN: Fom Gimlet, this is Reply All, I’m Alex Goldman.

PJ VOGT: And I’m PJ Vogt.

ALEX: And this week PJ, we’ve have a Super Tech Support.

[MUSIC]

PJ: Super Tech Support is a segment on our show where listeners come to us with their weird, unsolvable tech problems, and one of us, usually you, goes out and tries to solve it for them.

ALEX: Ummhmm.

PJ: And you have one.

ALEX : I do.

PJ: Tell me about it.

ALEX: So we got an email from a guy named Ben. He lives in Houston, and Ben is a huge fan of podcasts. He has his own podcast. He said he listens to over 100 podcasts, which, like, I don’t even know how that’s possible. He said that the one complaint he has about his podcast app is that it tallies how much time he spends listening to podcasts.

BEN: It tells me how many overall days of podcasts I’ve listened to, and it’s just more and more depressing.

ALEX: You know —

BEN: Would you like to guess?

ALEX: Sure. Yes. Uh…

BEN: Alright.

ALEX: Forty days.

BEN: One hundred and thirty three.

ALEX: Oh my God.

ALEX: And recently he started having this very strange podcast-related problem.

PJ: Which is what?

ALEX: So, Ben not too long ago got a new car, it was a 2016 Mazda 6. And the thing that he was most excited about was that he could pair his phone using Bluetooth, so he can listen to podcasts.

PJ: Oh, before he was an aux-in guy?

ALEX: Yes. Anyway, for some reason, the radio in his new car refuses to play one podcast and one podcast only.

PJ: Which is?

ALEX: Uh, the Radiotopia podcast, 99% Invisible.

PJ: Really?

ALEX: Yes. And it’s driving him absolutely insane.

PJ: His car bluetooth has rejected Roman Mars and his stories?

Alex: Yes.

PJ: Um, like, obviously for people who don’t know, 99% Invisible, hosted by Roman Mars. It’s like this really great non-fiction podcast. They tell all these stories about design, like how things work in the world and why they’re made the way they’re made, like the stories behind those things. Um, and- and apparently it’s the one podcast that doesn’t work on his car?

ALEX: That’s right. So I asked Ben to play 99% Invisible through his car stereo while he was on the phone with me.

ALEX: Can you tell me exactly where you’re sitting at the moment?

BEN: Alright, I’m sitting in the driver’s seat in my 2016 Mazda 6.

ALEX: Okay. Um, and…Let me know when you press play?

BEN: Alright, so, I’m going to press play right now.

ROMAN MARS: This is 99% Invisible, I’m Roman Mars…

ALEX: The show does start playing, but like the display screen on the radio freezes immediately, the buttons on the car stereo stop working, he doesn’t have any control—it’s just playing on it’s own.

ROMAN: …in particular dominated the room. The tour guide…

ALEX: And then after about a minute…

BEN: Hold on, the screen just went black. And now it’s cut off and restarted…And I’m not playing 99% Invisible anymore because every time I’ve done that if it’s still playing, it will freeze again.

[MUSIC]

PJ: How could you have a tech problem where the trigger was like content?

ALEX: I know it’s weird, right?

PJ: It’s very weird. It’s like, it would make more sense to me if like, it broke down anytime he tried to listen to like podcasts that weren’t–if it didn’t work for Car Talk, it’d be like, okay, maybe his car doesn’t want to hear stories about sick cars, maybe that’s like upsetting or something like that or–

ALEX: I really like that you’ve immediately (PJ LAUGHS) gone to like the car has achieved sentience.

ALEX: Do you have any theories about what’s going on?

BEN: I don’t know. My, my best guess is that–because I looked at the file sizes, And I listen to things like Hardcore History and, and Blank Check which have big file sizes. Um, and it’s not that. My best guess is maybe he’s using some sort of weird audio codec that interacts strangely with my system, but I really couldn’t tell you. So I don’t know.

ALEX: he thinks that because Roman’s voice is so whispery and close in the podcasts—maybe he’s doing some specific and technical to the files to achieve that?

PJ: That would be my actual guess is like it’s like..something about actual kind of file, like the way Roman is putting-is converting his podcast to an mp3, that’s just too complicated for Ben’s car system.

ALEX: And I was thinking about it, and I was like, these are two constants in his problem: one is the podcast. It’s always the same podcast. And the other is that it’s always the same radio. I was like maybe he just has like a bad radio.

PJ: But even if it’s a bad radio, it’s still interesting because like why is this radio bad only with 99% Invisible?

ALEX: Not only that.

PJ: But?

ALEX: We got another email. From another person experiencing exactly the same problem. With exactly the same podcast.

PJ: That is so weird.

[MUSIC]

ALEX: Um, alright, so I have to figure this out.

PJ: Okay, cool.

[PHONE RINGING]

ROMAN MARS: Hello?

ALEX: How’re you doing?

ROMAN: I’m good. How’re you doing?

ALEX: I’m good. Um, (ROMAN: Good.) it is a pleasure to hear your voice, not on a podcast.

ROMAN: Yes. Yeah, I’m- I’m–me as well. I was very delighted to get your email.

ALEX: Uh, are you- are–are you totally in the dark as to why I would reach out to you?

ROMAN: Totally.

ALEX: So, I told Roman why I was calling him, and I told him about what was going on with Ben’s car.

ALEX: There is one that causes his car stereo to freeze, shut down, and restart.

ALEX: And Roman had actually heard about this problem from other listeners.

ROMAN: Yeah, I don’t know what it is, and we got some details for it a few times from a few different people, but um, I’ve never really figured it out.

ALEX: All Roman knows is that in some cars, Bluetooth plus car radio plus 99% Invisible causes everything to break. But he has no idea why, so I ran Ben’s theory by him.

ALEX: And he was like, “Well, Roman obviously cares about the, uh sort of, texture of the sound. Maybe he’s doing something very specific to his files.” And I’m curious like–

ROMAN: No (LAUGHS) no.

ALEX: Like, what is your (ROMAN: No.) setup like? Do you have a strange microphone of some kind?

ROMAN: No. I mean we have, um, a couple. I use like a shotgun mic in the studio.

ALEX: But you’re not using some kind of special encoding settings that are different from the rest of Radiotopia?

ROMAN: No. No.

ALEX: But Roman said he had a theory that’s he’s actually pretty confident about, which is that the thing that makes our podcast different unusual is that we use the percent sign.

PJ: The percent sign, as in the percent sign in 99% Invisible?

ALEX: Yeah.

PJ: Oh.

ALEX: He was like, “It must just not play well with the stereo for some reason.”

PJ: So it’s like, because the stereo can also display the name of the podcast there’s something about just there being a symbol, where it doesn’t expect there to be a symbol, where it breaks.

ALEX: Yeah. And it really bums Roman out honestly. He’s been hearing about the problem for years from other people who are not Ben, but like, what can he do about it? He not gonna change the name of the podcast.

ROMAN: You know, like, I would love it to be fixed and I really, if someone is a fan of the show, I really hate for them not to be able to hear it. Like, I wish it could be better, but I think I recognize the futility of me fighting it, I think is the thing.

ALEX: I feel like a primary fundamental tenet of Super Tech Support is realizing (ROMAN: Mhm.) that something is futile (ROMAN LAUGHS) and well over–well outside of our capability, and putting on a football helmet and (ROMAN LAUGHS) running headfirst into it anyway.

ROMAN: Well I mean if you solve it, I would be really grateful. It’s just that- it’s just like when it–it just seemed there’s- these–this is one of those things where all of these technologies are butting up against each other.

[MUSIC]

And all I am is some little bit of grit that gets caught between the gears of, you know, tech companies, you know, not knowing how to pass things off and talk to each other. That’s what I feel like I am.

ALEX:
The irony of this was of this was crazy-making. Like 99% Invisible, a podcast dedicated to explaining the beauty of good design– that is the one podcast that breaks when you try to play it on Ben’s Mazda? It just felt like an imbalance in the universe that I had to correct.

ALEX:
And Roman’s theory about the percent sign, it felt really plausible to me. So, I figured I’d start there, if the percent sign is giving the car trouble because it’s a special character, other special characters should break the car, too. I wanted to test that theory.

PJ: Because basically you’re thinking like classic tech support problem, like you have to replicate the glitch to understand it, to solve it.

ALEX: Exactly. So I started thinking about other special characters, like you know what about the carrot or the curly brackets or whatever.

PJ: The curly brackets?

ALEX: You know, the curly brackets–

PJ: Oh, yeah, yeah, yeah–

ALEX: That are right next to the p?

PJ: Yeah, they look like they’d be music notation?

ALEX: Mhm.

PJ: Okay.

ALEX: So, we wanted to make a podcast that would break his stereo. And to do that, we devised a test.

PJ: Uh huh. Who’s we?

ALEX: Me, uh, most of the team, to be honest.

PJ: Okay.

ALEX: It was me, Tim, Anna, Phia, Emmanuel, Sruthi, Damiano.

PJ: I was about to make fun of you guys, because I was like, “Oh, why does it take that many people to make a podcast?” But it’s like literally (laughing) it takes that many people to make this podcast, so why wouldn’t it?

ALEX: Also…we didn’t make one podcast.

PJ: How many podcasts did you make?

ALEX: Well, let’s just start at the beginning.

PJ: Okay.

ALEX: So the first, first podcast we made is called, uh, “Carrot Space Carrot.” You know the carrot which is above the six–

PJ: The carrot, the up, the little pointy, the pointy upwards arrow?

ALEX: Yeah.

PJ: Okay, it’s called “Carrot Space Carrot.”

ALEX: Mhm.

PJ: Whose job was it to make the podcast art?

ALEX: Oh, it was mine.

PJ: Okay. Oh that’s pretty nice. It’s like a child’s drawing of like a Bug’s Bunny carrot, and then in the background, there’s a planet. Oh I get it, it’s like, carrots and space.

ALEX: I’m just going to play it for you.

PJ: OK.

[MUSIC PLAYS]

PJ: Oh god, we are in Alex Goldman territory.

ALEX: (LAUGHS)

PJ: That synth.

ALEX: Hello, Carrot Space Carrot podcast…podcast…podcast.

ALEX: I recorded this in my attic

PJ: (LAUGHS) I feel like this is the ASMR that like printers listen to when they’re trying to when they’re trying to go to sleep at night.

[MUSIC CONTINUES]

ALEX: The atomic red carrot has slim roots that travel forward through time.

PJ: You’re describing what?

ALEX: The atomic red carrot.

PJ: I hate this.

ALEX: Time produces daucus carota or Queen Anne’s lace.

ALEX: Don’t you just feel like, relaxed?

[MUSIC CONTINUES]

PJ: No, I don’t feel relaxed.

ALEX: How do you feel?

PJ: I feel like a robot’s trying to mug me. Like, a robot’s trying to hypnotize me to go to sleep so it can mug my data.

ALEX: Queen Anne’s lace annihilates negative Queen Anne’s lace.

PJ: I think I’ve had enough of this podcast.

ALEX: Okay. So, we made this podcast. We uploaded it to podcast apps, and to an RSS feed.

PJ: Uh huh.

ALEX: We gave it to Ben.

PJ: Uh huh.

ALEX: And I asked him to try it in his car.

ALEX: Go ahead and listen… And we’ll see if it breaks your-uh, car stereo.

BEN: Alrighty let’s do it. And play.

[MUSIC STARTS]

ALEX: Hello. Welcome to the “Carrot Space Carrot” podcast.

BEN: (LAUGHS)

ALEX: Can you look at your screen and see how this is affecting your stereo?

BEN: So I have to tell you, it’s, uh, it is functioning completely normally.

PJ: Interesting. It also means it’s not filtering for the quality of podcasts.

ALEX: (LAUGHS) So, then we wanted to make a podcast to test the less than symbol, the tilde, which is like the symbol that means approximately, and the greater than symbol.

PJ: Okay.

ALEX: And I’m just going to play you the beginning.

PJ: Okay.

[MUSIC]

PJ: Oh, that’s jaunty.

[MUSIC]

SAMIN NOSRAT: Hi! This is Samin Nosrat. Welcome to Greater Than–

PJ: You got Samin Nosrat to make your fake podcast!

ALEX: Yes.

PJ: Jesus.

ALEX: Samin wrote the book Salt Fat Acid Heat and uh she has a Netflix show by the same name.

PJ: Such a waste of talent (LAUGHS).

[MUSIC]

SAMIN: Today, I’m joined by a cooking newbie, Alex Goldman.

ALEX: Hey! Thanks for having me!

SAMIN: Oh, I’m so glad you could be here!

PJ: You got her to teach you cooking! I’ve been trying to learn cooking from her book for like a year.

SAMIN: A berry clafoutis —

PJ: Aw, I hate you.

SAMIN: is basically a pancake with berries in it. But instead of being cooked on the stove, it’s cooked in the oven.

ALEX: OK.

SAMIN: Do you feel like you can do that with me today?

PJ: She taught you this?

ALEX: Well.

PJ: For a Mazda?

ALEX: What you have to understand about this is this isn’t your average cooking show. Because the only way that she could give me instructions is by telling me the ingredients were less than, approximately, or greater than an eighth (LAUGHS).

PJ: I, ha – my heart is so– it’s just such a waste.

ALEX: Uh, less than, approximately, or greater than some other thing. So let me find an example here.

SAMIN: The measurement for the sugar should be about, do you, have you ever had one of those toys that you, you know, those stress-balls?

ALEX: Uh, yes.

SAMIN: Okay. You should put about a stress-ball amount of sugar into the bowl.

ALEX: So you’re saying like, greater than one of those super balls.

PJ: This is…

SAMIN: Yes, great–greater than a super ball, but less than a softball.

PJ: This is so stupid (LAUGHS).

ALEX: Okay.

SAMIN: Okay. For the eggs, can you add an amount of eggs that’s greater than the number of nipples you have?

(PJ LAUGHS)

ALEX: So, you’re saying like, less than the sides of a square?

SAMIN: Correct.

ALEX: (LAUGHS) Anyway, the berry clafoutis I made, as you might imagine–

PJ: Didn’t turn out good?

ALEX: Was not edible.

PJ: Yeah. So did this break the Mazda?

ALEX: He popped it in his podcast player.

BEN: Alrighty.

SAMIN: Hi, this is Samin Nosrat. Welcome to Greater Than, Less Than, Approximately.

BEN: It seems to be working just fine.

ALEX: Okay.

ALEX: So at this point we have tried the carrot, the tilde, the less than sign, the greater than sign—we even made another podcast to test the the plus sign, the equals sign, the curly brackets and none of them are replicating the problem.

PJ: Have you ever had the thing happen where you go to get like an object repaired, and the people in the repair shop care about the object differently than you care about it? (ALEX: Mhm.) Do you know what I mean? Like they’re like, “Oh what this guitar really needs is like to be like a double-neck guitar.” And you’re like, “No it doesn’t.” But then they’re just like, doing it and they’re off and doing it and you realize like they have more of a relationship to the work they want to do than to helping you?

ALEX: I don’t know what you’re talking about.

PJ: Yeah me neither. Okay.

ALEX: But, of course, at this point, we were definitely going to test the percent sign, right?

PJ: Right.

ALEX: So–

PJ: Some would have argued you could have just started by testing the percent sign.

ALEX: Some would.

PJ: Some would argue you seem to just want to make a bunch of garbage podcasts.

ALEX: How dare you call these garbage. So, we made a podcast that was called, “100% Related?”

[MUSIC]

ALEX: Hi, my name’s Alex Goldman, and you’re listening to 100% Related?

ALEX: The premise of this is a couple days ago, I was talking to our editor Tim Howard, and he insisted that I was only 50% related to my dad because I only have 50% of my dad’s genes.

PJ: And, so you’re 50% related to your dad and you’re 50% related to your mom?

ALEX: I’m a hundred – my opinion is I’m 100% related to both of my parents.

PJ: But in Tim’s worldview.

ALEX: Yes. And so what we did is we got my dad, who–a former judge, to adjudicate this argument.

TIM HOWARD: What should I call you? Should I call you Judge Goldman, or should I call you…?

MARC GOLDMAN: No, you can call me Marc.

TIM: Mark. OK.

PJ: Okay. He seems very biased in this, but whatever.

ALEX: Now I’d like for you to lay out your case, Tim, because what you’re saying is insane.

TIM: (LAUGHS) Well.

MARK: (LAUGHS)

TIM: It really just seems to me that if you were 100% related you would, you would be Mark.

ALEX: (LAUGHS)

MARK: (LAUGHS)

TIM: And you are not. You’re 50% related.

ALEX: So, okay. What–

MARK: Go ahead Alex–

ALEX: All I’m saying is like, I’m 100% related to anyone who’s my relative.

TIM: So you are as related to your father as any other human being. That’s what you’re saying–

PJ: Me and Tim are on the same page.

ALEX: Spoiler alert. So was my dad.

PJ: Oh, Tim–your dad took Tim’s side?

ALEX: Yes.

PJ: Good man.

ALEX: So.

PJ: Why is this the podcast I like? Because I like arguing with you? It’s like for fans of arguing with you?

ALEX: Yeah.

PJ: Oh, I don’t feel good.

ALEX: (LAUGHS) So, the percent sign. We–

PJ: Oh, right. There’s a point to this.

ALEX: There’s a point to this.

PJ: He listened to the thing. I feel like I’ve fallen into your vortex.

ALEX: (LAUGHS) So, clearly we were wrong about all those special characters breaking the radio which surprised me, but I just wanted to confirm the one thing we were actually confident was true, which is the percent sign will break the radio.

ALEX: So, I give Ben the podcast.

BEN: Alright let’s do it.

ALEX: Alright. [PODCAST STARTS] I have to know, is it freezing your stereo?

BEN: Alex, I’m really sorry to say no.

[MUSIC]

(ALEX GASPS)

BEN: It is totally normal.

ALEX: But how is that–how is that possible?

ALEX: So, clearly, this caught me off guard.

PJ: So Roman’s whole theory that he found so obvious does not seem to be founded.

ALEX: It doesn’t seem to be founded. And so at this point I started thinking that it has to be something within the file itself that they are uploading that is busted—that it doesn’t actually have anything to do with the percent sign.

PJ: Interesting.

ALEX: But then Ben tells us something that again, befuddles us.

PJ: Okay.

ALEX: Which is, Ben found a copy of a 99% Invisible episode on YouTube and tried playing that over his car stereo.

PJ: Yeah. So he was like, “I’m gonna see if it works–if pirated 99 PI works?”

ALEX: Yeah.

PJ: And?

ALEX: It breaks the car.

PJ: It breaks the car?

ALEX: I mean it breaks the stereo–

PJ: It does the same thing.

ALEX: Yeah.

PJ: Which is weird, because it just means like, it’s not something anything about the file itself because when someone is uploading a podcast to Youtube, that’s like, that’s a totally new file.

ALEX: Yes.

PJ: It’s like the content.

ALEX: Right.

PJ: It’s like the car is sentient and doesn’t like Roman Mars.

ALEX: And so Ben was like, “The only option is that there must be some–some sonic frequency that is breaking the car.” And I was like–

PJ: There’s like a note in Roman’s voice that if he were just sitting in a Mazda and started talking too loud–

ALEX: The car would explode–

PJ: The car would just explode. That’s wild. Also when I was a kid, there was a rumor that there was one note that would make you poop your pants.

ALEX: Oh yeah, the brown note.

PJ: Yeah.

ALEX: I’m very familiar.

PJ: Is that–that’s not real.

ALEX: I don’t think it’s real.

PJ: We both know that’s not real.

ALEX: But–we both know it’s not real, but I’m glad you brought it up.

PJ: Okay.

ALEX: I’ve been thinking about it this whole time–

PJ: I could hear you thinking about it (LAUGHS).

ALEX: I’ve been thinking about it, I’ve been thinking about it since this story began. And I’ve been like, “I’m in mixed company. I can’t bring this up.”

PJ: I can’t believe you stopped yourself from saying something one time (PJ & ALEX laugh). Do you think Roman was thinking about it? Do you think everybody was thinking about it the whole time?

ALEX: The Brown Note?

PJ: Yeah.

ALEX: I hope so.

PJ: Okay.

ALEX: Uh, so, we’re–we’re like, okay, we have no idea. We’re like totally back to square one.

PJ: You gotta find the brown note.

ALEX: Oh boy. (PJ LAUGHS) Oh boy. And the other reason this doesn’t make any sense is because Roman has another podcast.

PJ: About Trump. And constitutional law.

ALEX: Yeah. it’s called “What Trump Can Teach Us About Con Law.”

PJ: And what happens with that one?

ALEX: It plays fine. Roman’s voice doesn’t break the radio when it’s that podcast. Only when it’s 99% Invisible.

PJ: Huh. So what happened? You called John Mazda?

ALEX: We called the company that makes the radio. We called Ben’s Mazda dealer.

ALEX: And we are specifically dealing with a Mazda tech problem from a person who’s
in your service area, and I was wondering if I could ask you a question or two about it.

CAR DEALER: Okay let me…

ALEX: They weren’t familiar with this issue. We called Andrew Kuklewicz, the CTO of PRX — The public radio exchange.

ANDREW KUKLEWICZ: Hello this is Andrew.

ALEX: Hi Andrew. This is Alex Goldman, how are you doing?

ANDREW: Oh hey Alex. How are you?

ALEX: I’m good…

ALEX: He’s in charge of how the show gets uploaded to podcast apps and RSS feeds.

PJ: So you’re just calling everybody being like, “Have you heard of this?”

ALEX: Yeah. And Andrew said that he’d heard of it, and that he’d always figured that like Roman, it was the percent sign, but I told him about the tests we’d done.

ALEX: And all of them worked including 100% Related.

ANDREW: No.

ALEX: Yeah.

ANDREW: Crap. That’s–ugh, these are like so painful, these kinds of bugs.

ALEX: No one knew what was going on. And then–

PJ: I wanna solve this ahead of you.

ALEX: Uh, so did Ben, he actually got back in touch with us and said I have been doing some testing on my own. I’ve been uploading a couple of podcasts, and what I found is that it’s not the percent sign alone that is causing this issue. It’s the percent sign followed by an uppercase “I” that shuts down the radio.

PJ: So, Lowercase “i”, it doesn’t?

ALEX: Uppercase “I”, it shuts down. That’s all we know. We don’t know why.

PJ: Uppercase “I”, your car doesn’t fly. Lowercase “i”, podcast in the sky–

ALEX: You’re a great guy. (PJ LAUGHS) That’s exactly right. So I mean, so we’re getting closer. And then, you know our pal Kurt Melby who–

PJ: Works at Gimlet?

ALEX: Works at Gimlet

PJ: Who I play Fortnite with most weekends.

ALEX: Who does coding at the–at the office?

PJ: Yeah.

ALEX: He had an idea

[MUSIC]

ALEX: Kurt?

KURT MELBY: Alex.

ALEX: Thank you for coming into the studio today.

KURT: Thank you, glad to be here.

ALEX: Um, so the reason that we–I have you here is because you’re the person who actually uploaded the, uh, podcasts that we made.

KURT: Yeah. That was fun.

ALEX: (LAUGHING) And I don’t know if you know this, but none of them worked.

KURT: I listened to them also, and they were, they were pretty entertaining. But yeah, no, I’m, I’m not surprised that that didn’t work. (LAUGHS)

ALEX: Alright smart guy.

ALEX: Kurt says, “I have a theory. And the theory is that in the programming language C”–

PJ: Uh-huh. Oh, I know what it is. I know what happened. Literally 99% means something. It means turn off your stereo (ALEX LAUGHS) in the programming language C.

ALEX: You’re close, but not exactly. In the programming language C, um, basically in some scenarios the percent sign means, “Hey, the character immediately after me ..the character immediately after the percent sign, think about me like code rather than, like text.”

PJ: Oh.

ALEX: And–and start parsing that as though it–it’s asking you to run commands.

KURT: And there’s a thing called printf in C that’s like used very, very commonly and heavily. And other languages have copied this feature to interpolate, is the technical term, (LAUGHS) interpolate the number into the string.

ALEX: And he said percent “I” in um–

PJ: C.

ALEX: In C, is a command whereas percent r, which would be 100% Related, question mark, is not. So like–

PJ: What’s the command? What does percent i tell a computer to do?

ALEX: So, I have it up here. It has to do with, basically the percent in, in C has to do with displaying integers in C. I know, this is very confusing.

PJ: Oh my brain’s mathing.

ALEX: Yeah, I know. So percent and then a bunch of different letters tell it to display integers in a certain, in a certain way.

PJ: But basically what’s happening, it sounds like, is the car stereo, it gets what it thinks is a audio file, what is an audio file. And it’s like, “Okay this part of the information I have is just for the humans. This is like the title to display.”

ALEX: Yeah 99, and then it–there’s the percent–

PJ: And then it’s like, “Okay now here is some stuff for you, the robots, to understand.”

ALEX: Mhm.

PJ: And it gets a bunch of gobbly gook and it gets confused and it shuts down.

ALEX: Yes.

PJ: Wow.

ALEX: So there’s a bunch of different commands in C that would cause this to happen.

PJ: Okay.

ALEX: And so, we were like, “Ok, if Kurt’s right, we should be able to test this with other commands and those should also mess up the car stereo.” And so, we made one more podcast.

PJ: Oh no. Okay.

ALEX: With another one of the–another one of the recognized pieces of syntax which is, um, the letter–which is the letter “p,” which when it follows the, uh, percent sign becomes the pointer address, whatever that means.

PJ: Okay. But whatever, as long as it’s going into code it should shut down the stereo–

ALEX: Mhm–

PJ: If that’s what’s happening.

ALEX: So we made a podcast that’s called 88% Parentheticals.

PJ: Uh huh.

ALEX: Here you go.

[MUSIC]

SARAH KOENIG: This is Sarah Koenig.

PJ: Oh no.

SARAH: You’re listening to 88% Parentheticals.

PJ: This is so wrong.

[MUSIC]

SARAH: I’m going to tell you about this document I’d been waiting for.

PJ: (LAUGHING) No!

SARAH: This one piece of paper that was going to change everything I thought I understood up to now. It arrived on a Monday. Monday began like a normal day. I was walking to work with my dog, his name is Bruno by the way.

SARAH: He didn’t come with that name. I named him Bruno. He’s a rescue dog. He came with the name like Bradley or something, which I really didn’t like, so I changed it to Bruno, which by the way is the name I also wanted to name my son. But my husband nixed that.

PJ: We’re in a parenthetical. I understand. I understand what you’ve done.

SARAH: Anyway, I’m walking to work, with Bruno, and we get there. It’s a short walk like maybe ten minutes, which is crazy–Because people are always like, “What podcasts do you listen to? What podcasts do you listen to?” SARAH: “Because you made podcasts.” And I’m like, “Not that many because I have such a short walk to work.” Anyway, so I like–

PJ: (WHISPERS) This is just wrong. OK, I’ve heard enough.

ALEX: OK!

PJ: I don’t want to live in a world where you can take up (ALEX LAUGHS) Sarah Koenig’s time with this.

ALEX: (LAUGHS)

PJ: Also there’s like people that are like, “Oh, when’s the next season of Serial coming out?” Like twenty minutes later than it would have.

ALEX: (LAUGHS)

PJ: So what happened?

ALEX: Well, we sent it to Ben, and it didn’t break the car stereo.

PJ: So, what happened?

ALEX: It didn’t break it.

PJ: So that screws up the whole theory.

ALEX: Absolutely.

ALEX: I mean we didn’t just try percent p…we tried a whole bunch of different things that should have broken the car stereo in the same way that percent ”i” does, and none of them caused a problem.

PJ: So what then? Is Kurt’s theory is bunk?

ALEX: Kurt’s theory appears not to work. The only combination that did anything was percent followed by an uppercase “i”.

PJ: Okay. But we don’t know why.

ALEX: No, we don’t, and it is driving me nuts.

[MUSIC]

ALEX: After the break… we finally find an answer for Ben.

BREAK

ALEX: Welcome back to the show. OK, so here’s where we stand at this point. All we know is that % uppercase “I” is the one command that can possess a car stereo, and Roman Mars just had the terrible luck of embedding that command in the name of his podcast. We don’t know why, and we don’t know how to fix it. And this is the point in the story where Andrew Kuklewicz comes to the rescue.

PJ: Andrew Kuklewicz?

ALEX: Remember, he’s the CTO at Public Radio exchange–the company that distributes 99% Invisible.

PJ: Uh huh.

ALEX: He really dove–like he really invested himself in this.

PJ: What does that mean that he really invested himself in it?

ALEX: Well, you know, we were trying to figure out a way to diagnose this properly without actually having access to the code.

PJ: And you’d done everything you could. You made a bunch of nonsense podcasts for no reason. You talked to somebody who worked at a Mazda dealership, and one guy at work.

ALEX: We also called Mazda.

PJ: (LAUGHS) Uh-huh.

ALEX: Um, Andrew was on–got onto like a Mazda-owners message board and found the actual code–

PJ: What?

ALEX: For the Mazda Connect Infotainment System.

PJ: Really?

ALEX: And within the code, found the name of one of the original authors of the original code, which he then gave to us.

PJ: The author of the code for the Mazda car stereo program?

ALEX: Yes.

PJ: Wow.

ALEX: His name is Brandon Goozman. And–

PJ: Is it embarrassing that I don’t know–that I didn’t already know that you can look in code and see the code’s author? Like I didn’t know that?

ALEX: There’s a way to write your authorship in your code and it’s been done forever.

PJ: And is it always like that? Like a signature on a painting?

ALEX: Mhm. It’s a little–a lot of times it’s harder to find. You have to have access to the code to see the authorship.

PJ: Yeah.

ALEX: And my favorite story about this is, early in the development of Atari games, Atari would not allow the author of the game to put their name on it.

PJ: Because they were just being a company about it?

ALEX: Yeah. And so the author of the game “Adventure” created this incredibly arcane set of things that you had to do in the game so that you would find a secret room that just flashed his in the center of the screen.

PJ: That’s brilliant and sad. Like it’s just sad that they had to go to that much work to just be like, “I made this.” Anyway, so you got in touch with Brandon.

ALEX: Yes. He uh, works on exercise technology now.

BRANDON GOOZMAN: I work for a company called Shapelog. We develop, uh, connected strength products.

ALEX: As a person who’s terrible at exercising, uh, I’m not your target audience.

BRANDON: Yeah, the irony is the entire office, most of us working on this are not either. We’re more like, stay up late and sit at our computer longer people.

ALEX: So, we told Brandon what was going on with Ben’s car and he told us that he was pretty sure he knew what was going on.

PJ: Which is?

ALEX: So, what he said was:

BRANDON: One thing that caught my eye immediately is that there’s a percent symbol in the name.

ALEX: Mhm.

BRANDON: And that has some special meanings in things like a URL.

ALEX: Right.

BRANDON: In a URL, certain characters are allowed and certain characters are not.

ALEX: So, our operating theory was that percent “I” was breaking the radio because the percent sign followed by the letter I meant something in the programming language C. But what Brandon told us was, no, that program wasn’t even written in C. It was written in a totally different programming language.

PJ: OK.

ALEX: And to the radio, the %I doesn’t actually mean anything. And what Brandon thinks the problem is, is that the code should tell the radio to ignore things that it doesn’t understand or don’t mean anything, but in this case, for whatever reason, it’s not. So, the radio sees the %I and keeps trying desperately trying to figure out what it means.

PJ: So it’s like it’s having a panic attack.

ALEX: Kind of.

PJ: It’s like, “I–percent–percent I? Percent I? I don’t–percent I?”

ALEX: And so then I said, “Okay so why is the stereo restarting?” And Brandon told me that when they designed the car, they made it so that the radio was regularly sending a little message to the rest of the car saying ”I’m working, I’m working, I’m working.” Brandon called it a heartbeat.

PJ: Uh-huh.

BRANDON: And the hardware layer is listening for that. And as long as it gets it, it’s happy. If it doesn’t get it, it will assume that the UI has frozen, and it will restart it to a known good state.

ALEX: It’s, it’s saying,“It’s not communicating with me.”

BRANDON: Yeah–

ALEX: “Something is wrong.” And, and it just start–starts over.

ALEX: So if it freezes up…

PJ: Then, it doesn’t send the heartbeat.

ALEX: It–it is trained to automatically shutdown and start back up–

PJ: Got it. Got it.

ALEX: So that is why the computer is–that’s why the stereo is restarting–

PJ: So it has a panic attack, and then it takes a nap, and then it wakes up and tries again.

ALEX: I really like how much effort we’ve put into personifying these cars.

PJ: I just understand that they’re sentient. I feel like this doesn’t actually go against my original theory. Like everybody else, they freak out when they don’t have the right answer.

ALEX: Right. There is one other thing that was suggested to us several times along the way. Ben’s car stereo firmware is a few generations out of date (PJ LAUGHS). So the theory is that if–

PJ: If he just updated the firmware.

ALEX: If you updated the firmware, it might fix this problem. Um, according to Mazda, it will.

PJ: Huh.

ALEX: But, Ben looked into getting his firmware updated, and it was just too expensive for him.

ALEX: However, that doesn’t mean we don’t have a more permanent solution for Ben and Roman. Because, Andrew Kuklewicz from PRX had a very sweet idea.

ANDREW: Maybe we’ve got to publish a version of 99% Invisible with some slightly different titles or something. I’d be willing to create the- the Mazda version of the feed.

ALEX: That would be great! That’d be super cool.

PJ: There’s just like a 99% Invisible for Ben and other Mazda owners’ feed?

ALEX: Well, I can say that people in Nissans have also reported having this problem, but yes, for Mazda owners and Nissan owners who are having problems with this specific infotainment system.

PJ: That’s a very niche podcast.

[MUSIC]

ALEX: So I called Ben up one more time.

ALEX: Just let me know if uh, if uh, when you’ve got it set up and ready to roll.

BEN: Will do.

ROMAN: This is 99% Invisible. I’m Roman Mars. Tim Hartford is a master at picking out the perfect little story…

ALEX: And everything’s working fine?

BEN: Yep. So, this totally works. It’s playing normally, not freezing at all. It’s perfect.

ROMAN:
Find the link to the Mazda-safe 99pi feed on our website. It’s 99pi.org.

Comments (36)

Share

  1. Mike Dunn

    You were on the right track, but you didn’t quite reach the right conclusion.

    First off, don’t call this a virus. A virus is malware. This is just a bug.

    The bug is that the car’s code is calling “printf(str)” where “str” is untrusted and unsanitized data. It should be calling “printf(“%s”, str)” or even just “puts(str)”. This is a really basic security bug; the code should never have been checked in, let alone shipped.

    “%I” is not the problem. “%n” is the problem. “%In” means [paraphrased from https://en.wikipedia.org/wiki/Printf_format_string#Type_field%5D “read the next pointer-sized parameter from the stack and write the number of characters successfully written so far to that address”. Since there is no parameter on the stack, the code reads random stack garbage, tries to write to that address, and crashes. “%s” would also exploit this bug, because that also causes printf to read stack garbage, treat it as a pointer, and dereference it.

    “%i” and “%p” don’t crash because those format specifiers don’t dereference pointers. They read stack garbage, but they just print the value of that garbage.

  2. Mabel Plasencia

    Hi!

    This happened to me as well but not in my car, but with my iphone. I coudn’t play any other podcast because the episode will remain in play.

  3. I must admit, I’m super curious what language that software was written in. The podcast seemed a little vague on the specifics of the language and what exactly was going on? Just something with URL parsing?

  4. Erin L

    I work in technical support and this was easily the most interactive I have ever been with my radio! I listened to (and yelled at) this episode on the way into work, and as soon as I got there my boss and I had a great laugh at the frustrations we felt with the story-driven-but-terrible-for-problem-solving approach and all the things we would have done differently (99% Interior, anyone?!). Then a coworker from the other side of the building happened to walk by, and said he had just listened to the episode as well! He theorizes the code was probably written in Java, since it’s so URL focused that something like a percent symbol would definitely give it a panic attack.

    Also, I’m 100% with PJ; I can’t believe you got Samin Nosrat and Sarah Koenig to do those offshoot podcasts!! I did, however, listen to and thoroughly enjoy the full versions. :)

    Anyway, this was the most fun I’ve had not being able to directly solve someone’s technical problem. I’m going to be talking about this one for a long time.

  5. Eric F

    I have the same problem with my 2015 Nissan Versa Note. Whenever 99pi came on, the whole audio console would crash and restart – then try to place again, then crash again. Took me awhile to hone in on the ‘%’ being the cause (troubleshooting while driving a car on the highway is difficult.)

    I looked around and other models of Nissans have the problem too, mostly 2015-2016s it seems.

    My work around is to keep close eye on the playlist so 99pi doesn’t play in the car. is the Mazada safe feed going to be updated going forward?

    1. Mat Weller

      Same problem in my ’14 Altima. I’m glad to see the feed is updating, I’ll try it in my car again now. I had just given up on 99PI in my car altogether before this episode. This is great news, thanks!
      Now, can you figure out why when I listen to podcasts on iTunes on my Mac, sometimes it randomly stops playing an episode and moves on to the next show as if I switched it? It’s killing me not being able to listen to Revolutions or any of several other shows this happens with.

  6. Anjuli

    After listening to more than 300 99pi podcasts, THIS was the first one that genuinely annoyed me no end. Checking other special characters, whilst it might have been a fun exercise, won’t necessarily give you the answer.

    You need to look at the history of what certain characters were initially used for. Other than its use as a modulo operator, the percent sign is most commonly used to indicate non-executable text within the body of a program. Just look at the URL! It’s spelt in full for that exact reason.

  7. Greg Kolanowski

    Of course I HAD to try listening in my 2018 Mazda MX-5! It has the most recent info-tainment system, upgraded with Apple CarPlay this year. I started 99% Invisible on my iPhone and got in the car. Normally the system will automatically connect via Bluetooth and play whatever I was listening to before I got in the car. This time I just got a message saying “Unable to connect to Bluetooth audio source.” As soon as I stopped the podcast and switched to music, it connected and worked as usual. Pretty sure it would work fine if I connected to CarPlay with USB, but I’ll try that next time. Thanks for a great Podcast!

  8. Jeremy Epstein

    Interesting piece, and like many technogeeks I mostly figured it out by the end of the second sentence. Did a great job explaining some of the challenges in modern software.

    But where I hoped you would go, but didn’t, is the cybersecurity angle. Problems like the %I issue you identified are frequently harbingers of software bugs that can be exploited by hackers. So instead of locking up the MP3 player in the car, they could reprogram the car or render it unusable, simply by convincing a Mazda owner to play the podcast. It’s a well understood principle in cybersecurity that if you can accidentally cause something to go haywire (as in your example), you can probably make it happen on purpose, and exploit it for nefarious purposes.

    If you’re interested in a followup, would be happy to help you.

  9. David Stern

    THANK YOU!!!!

    This has been so frustrating for the last couple of years that I have been listening to podcasts. I have a limited amount of time, so I am picky and having to play 99%I on my phone while it sits in my breast pocket is annoying. Thank you!!!

  10. Sarah Buckley

    This episode has it all. Hilarity, Roman’s voice, a mystery. Loved it. Thank you.

  11. Fred Leonard

    This episode reminded me of a glitch in the old radio Emergency Broadcast System (EBS) during the cold war. One station in a region was the designated EBS station. They would get an alert and relay it to all the other radio station (and TV stations). Each station had an EBS box that would be trigger by a tone of a certain frequency. And then, seemingly at random, the EBS boxes in the region would all go off with no alert being sent. After the same kind of investigation reported here, they found the issue. Whenever the designated station played Shirley Bassey’s recording of “Goldfinger,” she hit the exact note that triggered the alert signal. So designated stations had to stop playing “Goldfinger.”

  12. I find it ironic that I was just reading the chapter in Ready Player One that was talking about the Adventure game that they spoke of in the podcast. Super entertaining and interesting !

  13. JMS

    I have to agree with Anjuli. This episode has brought me very close to unsubscribing.

    Really? This was maybe a 15 minute episode at best.
    Then, we get the whole gamut of fake podcasts.

    ~55 minutes I can’t get back. even at 2x speed, and doing other things while listening, I get the full time penalty for listening to the whole thing.

    1. Mims

      I feel your pain too! This was so rambling and drawn out….but I guess it was a good contrast to how compact and well designed the 99PI podcasts are. This was more like a five minute story, these guys like to hear themselves talk way to much.

  14. doug

    Out of curiosity, why not start naming the files with “99percent” or” 99pi” or something with out the “%I” in the file name, and only keep one podcast feed? Would that change the way iTunes or other podcast apps deal with them?

  15. Ultrawoman

    For crying out loud! Use an analog cable to plug into the car’s stereo system!!! It’ll sound just fine. You’d avoid this problem altogether!!! It’s cheap and it works!!!

    I enjoyed the show. They sounded like they were having a good time. Use an analog cable.

  16. Tim

    The Podcast Addict app added a work around for this in their most recent update. I don’t have a Mazda, so I can verify success.

  17. Jimmy W

    I have not had this issue with my 2017 Mazda 3. I guess it must be specific to certain firmware versions.

  18. Marina

    I have exactly the same problem with my 2017 Nissan Altima…so mysterious and frustrating.

  19. Mo_Martz

    I agree with Roman. This episode was fantastic. I had a feeling that the percent sign was causing the issue. I have a similar issue with my Toyota stereos but they don’t shutdown. Looks like I’ll be listening to Reply All now. Congrats you’ve got a new subscriber!

  20. Camille

    Loved this episode because I had the exact same problem in my Mazda 3! I never connected it to being a 99pi problem, but I listened to a lot of 99pi so it probably was. Mine actually got so bad that it seemed to corrupt the hardware. After doing the software updates and the issue continuing to get worse, Mazda ended up replacing my entire infotainment system under warranty. I was told that Mazda requested the local dealer send the corrupted unit back to headquarters for testing. Everybody involved seemed confused about how a software issue seemed to cause a hardware problem.

  21. Simmo

    As a software developer, I’m deeply disappointed in the conclusion and was hoping for a deeper explanation than “it’s probably URL encoding” because there’s multiple issues with that explanation:

    1. There’s a space between the % and I, so they’re not even related.

    2. The I isn’t the only letter that has meaning in URL encoding, so do other characters. In fact only hexadecimal numbers are allowed.

    3. Why would the podcast title, which is normal text, even being parsed as an URL for the percent encoding to matter? This is the big confusing aspect, which could’ve easily been answered using the source code and its original author.

  22. josh

    I agree with several others that say this episode was annoying. The problem itself was very interesting, but there was way too much fluff to dredge thru. I love 99PI specifically for its lack of fluff.

  23. alexander hornof

    That was super frustrating, all of those tests and theories to still not figure out the cause of the bug. Sure you know it’s the %I, but you still never determined what that triggers in the code.

  24. Martin Merritt

    If you want to control your audio using voice commands or the head unit, you may not just be able to use an aux in cable. Additionally if you connect using USB, this may create other strangeness with nav system conflicts, auto play of various apps, etc. Modern car audio systems are notoriously finicky about random things. Frankly, I’m a little surprised that the issue of the percent sign (and the space in a file name) wasn’t obvious. As a previous poster mentioned, the percent sign has a long history in programming (as does the number sign, the question mark, and a few others.). Why Ben or the Reply All guys didn’t use an audio editor to change the podcast metadata (not just label but other file attributes) is beyond me. I’m nobody’s tech expert and it occurred to me right away. And yes, the “test” podcasts were vaguely cute on the first short listen, but we got it and didn’t need to hear it again.

  25. LostInTheTrees

    You needed better software people on this. Within the first few minutes of the podcast I was thinking that the % and what followed it was probably the problem. I would have looked at the podcast file and edited it to alter the strings including the % and the I. Could have been solved and fully characterized in a few hours.

  26. Luann

    I have the same problem w/my Nissan. It’s such a problem that I have to wait till I have a backlog of 99% stored up and listen at home – hence my just hearing this podcast! I use the podcast APP on my iPad to listen but I don’t see the other (safe) version. How do I locate it so I can put 99% back into my normal feed?

  27. Eric F

    If anyone uses PocketCasts, the lastest version 7.3 (at least for iOS) has a built-in fix for this.

    Per change log:
    “Added a workaround for a truly bizarre but affecting some car stereos (coverd on Reply All and 99% invisible. If you’re a 99% Invisible fan you should nowbe able to listen over bluetooth in your car without fearing that it might freak out on you”

  28. DLeonard

    Holy shit, this episode was good. I’m still not totally convinced this wasn’t a super-elaborate April Fool’s prank, but I enjoyed it enough that I honestly don’t care.

  29. Jessica Wilcox

    This happens to me on my 2016 Nissan Frontier too! I thought it was just my car.

  30. Josh Lyman

    Just checking in from the UK to say that this happens on my Nissan Juke, which is why I’m a few weeks behind on 99pi. I’ve even taken my car back to the dealer to demand a new sound system. Didn’t help. Thought it was a fault in my car only.

Leave a Reply

Your email address will not be published. Required fields are marked *

All Categories

Playlist