Two Jabrons Shooting the Shit: Source management, change management, version control — is there a better, more modern way to track changes in software? This week, Paul Ford and Rich Ziade hash it out. For decades, change management has been a huge part of computing, but how has it developed over time? What works, what hasn’t, and where are we heading?
Rich Ziade It’s like listening to jazz guitar.
Paul Ford Yeah.
RZ Hearing you talk about version control.
PF That’s pretty much kinda, you know, what I’m about.
PF But more like bass I think [makes bass sounds with mouth].
RZ [Chuckles] A little slap bass.
PF Jazz slap bass! [Music plays alone for 16 seconds].
RZ [Music ramps down] Hi, Paul, it’s nineteen ninety . . . three.
RZ And we’re both working on a —
PF [Chuckles] We’ve just been born.
RZ We’ve just been born. We’re both working on a piece of software [yeah]. It’s a note taking app for the Microsoft Windows 93 [laughs] [music fades out].
PF Did you know there was a — there’s an art project called Windows 93 where somebody like makes a fake Windows 93.
RZ That’s a cool art project.
PF It’s pretty cool. Yeah.
RZ Paul, close the file!
RZ I’m going to edit it and as soon as I’m done cuz I have an idea of how it should work, you can go back in.
PF Right but honestly [stammers] what are we on? Like a work group folder? Like I can’t even email it to you.
RZ No, no, we’re on a network. Windows [ok] 3.1 for networks.
PF For work groups.
RZ For work groups.
PF Windows 3 — yeah.
RZ You can see the file.
PF We’re using Novell NetWare.
RZ [Laughing] We’re using Novell NetWare! As soon as I make — finish it, you can — and I hit — just wait for me. Wait for me, alright? I need like 15 minutes — I end up taking 45.
PF Yeah and then you’ll call me on the conference [Rich laughs] — on the — on the desk phone.
RZ [Laughs] I was thinking we were in the same room.
RZ Alright we’re on the desk phone, I’m like: “Alright, Paul, you can go in.”
PF Yeah, you call my extension.
RZ We’re making a joke out of it but this is a really nasty problem.
PF Oh no. [Slowly] Version control.
RZ This is you and me. Imagine a team of 50.
PF Here’s what you do. Well, there’s a prob — The problem is the hand off but if you get the hand off right then you name it, you take it, and you go, “File — ”
RZ Underscore one.
PF File underscore — no, no you put. It’s always three padded: zero, zero, one. Zero, zero, two. And everybody’s like, “Haha! We’ll never get up to a hundred!” But you do.
PF You do like a deck in 1998 [yeah], a PowerPoint deck? You could see 107 versions. You could see Word Docs, strategic deliverables. So many versions.
RZ So wait you’re working — when you’re on version 38, you’re making a set of assumptions about the code but I’m on another file and I’m on version 22 — [well now we have to] and I broke up your world.
PF Now we have to merge them together and it is — you do it by hand torturously by looking at both.
RZ Looking at both.
PF God help you when you have two large PowerPoint files open at the same time.
RZ Right. And then . . . a brilliant invention shows up [mm] Visual SourceSafe.
PF Oh god!
RZ What is Visual SourceSafe?
PF Alright well —
RZ Well, first off: what is this problem? What is it called?
PF Source management or change management or the [stammers] I mean it gets articulated inside of Microsoft Word as . . . track changes, it’s the name of our podcast.
RZ Mm hmm.
PF But version control, there are different version of software, and different people work on them, and really what it’s about is that life is not linear, work is not linear. Two people need to work on one thing at the same time.
PF Now, we were talking about documents earlier and they’re particularly hard cuz they’re blobby and full of pictures and binary and all sorts of garbage. Code tends to be simple text files.
PF And version control and change management of code has been a huge part of computing for decades and decades and decades.
RZ How can teams work together?
PF That’s right. Because it used to be, I mean when they were doing like, you know, at Bell Labs back in the day I think you would just be like, “Hey, here I am!”
RZ “Close the file!”
PF [Stammers] “Here’s the tape!” Right? [Yeah, yeah, yeah] Like [chuckles] I mean you just, “I’m gonna write that to tape.” But then actually — and then there was a whole world where like lots of people were working one computer at a time and doing time sharing and then they figured some stuff out there but it — it rapidly, as more and more people worked on digital stuff it became very clear that you needed ways to — to manage change over time.
RZ You think about the internal network, the shared network [mm hmm] was a pivotal point cuz you wanted that productivity of having a shared network.
PF Right or yeah or the time sharing system where you’re all using one computer instead of the different computers having to merge because I could come in, take your stuff, and mess with it.
PF So there’s two reasons, right? One is that if two people are working on something at the same time and putting those things back together is hard. The computer can look at the two different files and be like, “I see these differences. What do you wanna do with it?” And you can go like, [right] “Well take that one, don’t take that one, we need to edit that one,” and then you smush ’em together into one file [right]. In a good world, you don’t lose the old versions.
RZ They’re somewhere.
PF Cuz if you make a mistake, you can go back.
RZ Correct [and — ] and most source control does that.
PF Well and then the side — the thing that here also matters is you kinda know who did what when. And so like [sure], you know, I can be like, “Rich! Why did you do that to my file? Everything was working well with the API and then you came in this morning and screwed it all up!” And you’re like, “I had to move the pixelton things to the right.”
RZ Alright. So this is a big deal. You’re spewing out the key requirements of what’s gonna make decent version control.
PF That’s right.
RZ Keep versions!
PF Mm hmm.
RZ Huge! Don’t just overwrite.
PF That’s right.
RZ Absolute requirement.
PF But you can save the whole file or you could just save the changes. Up to you.
RZ Right. Mark who did what.
PF That’s right. Who did what.
PF Mm hmm.
RZ Right? Like in a — in a very basic way Word does this if I — if they send it to me marked up in red, track changes.
PF “Rich added this,” and —
RZ And I think Word just picks another color. Like all of a sudden I’m blue.
PF Yeah, that’s right, you get the different colors and well Word has gone through many versions of this, right? But there’s like the big balloon on the right that’s like, “Rich made this change,” and then they track the deletions and —
RZ Yes. It got intense at one point!
PF Oh yeah.
RZ I — I — I’m inside legal documents sometimes. It is something else.
PF Oh my lord. Yeah, yeah, yeah.
RZ It is something. Ok. So, know who did what, keep versions.
PF Keep versions around. Keep some — don’t lose your history.
RZ Are we good? Solved?
PF That alone is plenty.
RZ Ok. Can I work on the same file that you’re working on at the same time?
PF Yeah see here’s what tricky to remember: we need to track lots of files. We’re not just talking about one. It might be a [ok] — a big directory with lot of sub-directories and lots of files.
RZ When I take out file seven [yeah], can anyone else edit file seven? Or is it in my hands?
PF That depends. That’s locking, right? So you could lock a file and say, “No one else can get this.”
RZ “Don’t touch this.”
PF Yeah, some — some different kinds of version control systems, especially in like publishing workflows, [yup] that’s the primitive version. That is like you’re in a world of pain. Everytime someone tries to do —
PF Yeah. Every time somebody tries to do locking in version control it just means everyone’s like, “Can I get the file?!?”
RZ “Can you please [laughs] unlock?”
PF Yeah, “Can somebody unlock — ”
RZ So locking’s not a good idea. You would think, rationally, that it would be a good idea.
PF Just be like, “Hey, Rich is gonna work on this for awhile then Paul’s gonna take it.”
RZ Yeah! Nobody’s stepping on anybody. So why isn’t that the best way to do it?
PF Because humans. Because humans lock the file and work on it and then walk away.
RZ And leave it locked.
PF It’s just so hard for people to do. It never has worked.
RZ Also serializes work.
PF It does. It does. So it means that like person A can’t work on — locking now shows up, you still see it in like marketing content management tools [yeah]. Like where it’s like, “I’m gonna go in and edit that file, only I can edit it, you know? And then — then — ”
RZ Content management generally has a lot of this.
PF They like to lock.
RZ They like to lock. Yeah.
PF One of the reasons they like to lock in content management is the content’s often really kind of arbitrary and if I give you two text files, it’s actually pretty easy for a computer to be like, “Oh this line isn’t in this file but it is in this one,” and it can — they’re more — they’re just simpler to process.
PF But like a word processing document is very, very complicated and it’s very hard to tell — It — it’s sorta hard to tell what’s different. Not on like the bite level but at a level where it kinda makes sense.
PF So it’s all very blobby and weird over in that world. So we’re gonna — let’s keep talking about code for a minute.
RZ Alright. So, locking’s bad.
PF Locking is dangerous.
RZ Locking’s dangerous. So, let’s — let’s leave it unlocked. So I open file seven, I add ten lines [ok], I add lines 12 to — to 22, and I have it on my local IDE, my local editor [mm hmm], and then you open file seven three minutes later, I had no idea cuz it’s not locked [mm hmm mm hmm] and you edit lines 27 to 31 and then add lines 46 to 53 [ok]. Now I have it on my desktop but I didn’t see your changes [mm hmm]. So, you push it back in and you’re feeling like a hero.
PF Well, so push it back in is really key.
RZ Hold on. You hit save.
PF I hit save on my local drive.
RZ You hit save —
PF It works.
RZ — on your local drive. It works on your local drive [mm hmm] cuz that’s — you’re checking your work [mm hmm], and then you decide to push it back to this central location.
PF That’s right. So that — that’s a key thing is that a lot of version control systems rely on this sort of central authority.
RZ Ok. Lemme — lemme cause chaos here.
RZ Push it back in, I finish my work ten minutes later, and I push it back in [mm hmm], and I overwrite yours.
PF That’s really bad. You don’t want that to happen.
RZ It’s gonna happen.
PF Ok. Well it doesn’t have to happen.
RZ It must happen!
PF [Sighs] You know —
RZ You saved it at 12:03 pm, I saved it at 12:10 pm [crosstalk].
PF So I used CVS, Visual SourceSafe, and SVN back in the day and I can tell you I wasn’t a good programmer back then. It was about 12, 13 years ago. I managed to shoot my — Sometimes it would be just me using them, keeping track of my changes.
RZ You would step on yourself.
PF I would ruin whole projects more times than I could tell you [Rich laughs]. I’d have to just erase the whole thing and start over. I don’t know why. I just used to shoot myself in the foot. And over time I realized these were very common experiences [ok] and like people just had a lot, the systems that were around for tracking files [yeah] were very — they — they tended to be centralized, they were hard to use, um they didn’t make it easy to have lots of versions of things [sighs]. Oh we gotta introduce a concept.
RZ Ok. You know what? We could go through this history’s messy.
RZ And we could go through history and we could break this up into five podcasts [yeah]. There is a good way —
PF It’s a brutal five podcasts on version control.
RZ [Chuckling] It’s a rough five part podcast. There’s a good way [ok] and there’s the modern way.
PF That’s right.
RZ Let’s talk about that.
PF Well the modern way — now people will argue this, of course, but the modern way is decentralized version control systems. And what makes them decentralized is that you have a copy of the code, and you have a copy of all the changes that came before.
PF You download everything. And that sounds like it would be huge but actually it’s not. It all gets sorta squeezed together [ok]. So, I’ll give you an example. I have a text editor I use called Emacs [ok]. You can get the source code for Emacs um from a variety of sources and it goes back about 30 years.
PF So I can just copy that onto my hard drive and then I can build that software and run it [ok]. That’s actually how I — because I’m a little bit of an obsessive, that’s how I run my text editor. I compile my text editor on a pretty regular basis.
RZ Because you want the latest version?
PF I want the latest version; I enjoy reading the source code; I have a — I have a 20 year relationship with this piece of software at this point.
RZ Alright, well that’s sweet.
PF Yeah. It’s nice. One of my better, closer relationships in life. [Rich laughs] So I get everything. Now let’s say I was a programmer —
RZ Hold on when you say you get everything, you get not just the latest version, and when you say everything, you don’t mean one file.
PF No, I get thousands and thousands of files.
RZ That make up an entire discreet piece of software.
PF That’s right and I get the ability to time travel to any major set of check-ins in the past.
RZ Ok. So show me what this piece of software looked like in January 1999.
PF No problem.
RZ And it’ll go back in time and you have it all.
PF No prob — it’s actually a little harder like getting to a date is — is — but around then, yes.
RZ Ok, let’s say if there’s 800 versions, you can go back to version 526.
PF That is correct.
RZ Very easily.
PF Now there might be other branches off of that main version where people copied and did something else and — you don’t necessarily get every change that was ever made except that if there was a change that led to the current state of that software, like, “Here’s what it took to get us to today,” you are basically guaranteed to have that version, like all those versions going backwards. So if there was like some splinter where somebody was like, “I’m gonna make Kazoomacs!”
RZ Ok. So, why is this a better to work?
PF Well [exhales sharply] the nice thing about having everything you can make your own changes, and you can compile your own software, and that’s all good, and if you wanna go back — if they do something that you don’t like, you can roll back and work from the old version.
RZ Ok so —
PF Or if they break it.
RZ Let’s go — let’s run that scenario again. You and I [mm hmm] are working on the same piece of software [right] in this new world. Let’s give this world a name.
PF Um, well we’re in DVCS World. Decentralized Version Control Systems but we could call this planet GitHub at this point. Like this is — this way of working got really popular [ok] with GitHub.
RZ So we’re using GitHub, you and I, programmer one and programmer two.
PF So what GitHub provides — the thing about version control systems like that is there actually is no canonical version. And this is really hard for people to understand. I had my copy of the software, you had your copy, you made a change.
RZ Of all the software?
PF Yeah, yeah.
RZ You didn’t just grab your file.
PF No, that’s right. You got the whole thing.
RZ You took the whole thing.
PF The whole thing that makes your text editor, including the icon, right? [Yeah] [coughs] That’s all in a folder that I got from somebody and I made a copy.
RZ You’re in Kansas.
PF Now, see, I could’ve made a copy from Rich. I could’ve said, “Rich, hey, I like your version of Emacs. It works better on the Mac than mine [uh huh]. So give me yours and then I could make a change and I could be like, “Hey, Rich, check out this change.” And you could be like, “Oh, that’s a cool change, lemme merge it in.”
RZ Ok. So wait, there’s an owner.
PF The opposite. There’s no owner. You and I are just sharing.
RZ Hold on. I took a copy [yup], it’s on my computer.
PF You took it. Yeah.
RZ You took a copy, it’s on your computer [mm hmm], ok? I make a bunch of changes, ok? [Mm hm] and then I push it back anywhere?
PF Well, see, this is where — this is what people forget about Git. Yes. You can just give it to me and I can merge it. You don’t actually need any central repository except that one — if you have a central repository, it makes life a lot easier.
PF Because then everybody’s like, “Oh! When I make a change I’m gonna send it on back to the GitHub version of the file —
RZ The very top of the pyramid.
PF Of the — of the version control repository. I’m gonna — I’m gonna send it. Yeah.” But it’s like even when you think in pyramids, you kinda screw it up. Basically there can be any version of any software at any time controlled by anybody and you can — if they have a common ancestor, they can eventually merge back together.
PF Ok. So, basically —
RZ Who decides what can — what’s allowed in?
PF Well, see this is what’s wild again about Git is that truly anybody does but if someone [stammers]. With GitHub what happened is [stammers] that just doesn’t work. It works for organizing the Linux Colonel and it works for a couple of other things but for the most part —
RZ Here we go with the name dropping.
PF No, no, I mean the Linux Colonel Git — actually the — this version control software that everybody talks about that is the sour — the root of GitHub was created by Linus Torvalds who created the Linux Colonel [ok]. He did it because there were all these political problems and uh licensing problems around their source control and so he was like, “I’m gonna make my own.”
PF Ok. So, but it’s — it was designed in this way where everybody can have their own version of reality and then occasionally they can kinda get together and be like, “Let’s make one version of reality.” GitHub basically said, “Hey, you own this account. This’ll be kinda canonical.” Let’s say you and I made a piece of software, what should it do? A new chat app [ok]. Ok called Track Changes Chat App [ok] [sucks teeth] and um now I could create a GitHub repository and like zip it up and email it to you and you could be working on it, and we could be — we could be meeting regularly, like exchanging floppy disks. Like there’s always that this could work but the way that’s easiest is for me to go, “Hey, Rich, uh I made a new GitHub repository for Track Changes Chat App. Go ahead and clone that onto your hard drive. Do whatever the hell you want and then tell me about it.
PF And push it back up to GitHub so I can get your changes [ok]. So it becomes a clearing house.
RZ Alright but you’re gonna just let my changes in? [Music fades in]
PF No, no, not at all. I don’t have to [music ramps up, plays alone for six seconds, ramps down]. Hey, Rich?
PF This is a podcast that some guy on Twitter called “Just two jabrones shootin’ the shit.”
PF Yeah [laughs] I just — I love that review.
PF I know. So but it’s more than that because it’s the official marketing podcast of a product studio called Postlight.
RZ Postlight. Where is Postlight, Paul?
PF 101 5th Avenue in New York City, Rich.
RZ Uh —
PF Good address.
RZ A lovely, lovely shop made up of a — an incredibly talented group of people. Designers. Engineers.
PF Talented and disciplined. People very serious about their — their disciplines [yes]. Engineers, Product Managers, and Designers.
RZ We pump out quality stuff. Call it like it is, man.
PF We don’t just pump it out. We don’t pump [well]. We — we carefully craft and release.
PF [Laughs] Hold on, I gotta pump some stuff out.
RZ So reach out to us. Uh we’d love to talk.
PF Yeah, firstname.lastname@example.org [music fades in].
PF And uh that email goes straight to me and Rich [music ramps up, plays alone for six seconds, ramps down]. So look, if we go [music fades out] too far in the weeds here, everyone’s gonna throw their podcasting radio out the window.
PF All that we gotta know is that GitHub gave us this nice centralized way to keep track of changes that anybody might make, keep track of who made them, but most critically because changes tend to kinda come in conflict with each other . . . like let’s say I change line ten and you change line ten. We have two line tens now. What are we gonna do?
RZ Who decides?
PF Well, there’s an old version of the software and I upload my version in what’s called a branch . . . let’s say the main version is called Master. I get a copy and I call it Paul’s Version [mm hmm]. And I — I send Paul’s Version up to GitHub and then I say, “Hey, I’d like to merge this back into Master.” [Ok] We got two copies of the same software, there’s one line difference between them [ok]. That’s called a pull request.
RZ Pull request which isn’t very intuitive.
PF No, but this is the big deal like all day long people at Postlight do pull request. That’s what building software is these days.
RZ Pull requests means —
PF I went and made some changes and then in a special version of my — of the software that I [mm hmm] named. I just gave it a name, any name [yeah] then I put up to GitHub, and I said, “Hey, whoever controls this account, can you go ahead and take a look at the changes I made? I just need a pull request.” And that’s basically what that implies.
RZ Got it.
PF And they look at it and they go, “Ok, it looks like you changed line ten.”
RZ “Looks pretty good.”
PF “Looks good. I don’t think it’s gonna break anything. You wrote some tests and they passed. Mmm. I’m gonna merge it.” [Right] And they hit a button and the new world and the old world combine [mm hmm] and the old world and the new world are now one.
RZ This is almost this like hierarchy. There’s ownership at the top.
PF That’s right. It’s a tree.
RZ Yeah. Exactly.
PF It’s funny when you look at how — when they visualize this stuff it looks weirdly like a railroad, like you’re kinda moving along and every now and then like a car will veer to the right [sure]. That’s a branch and then that’ll keep going for awhile and then it’ll merge back in. It’ll go — it’ll go left and suddenly you all — you have one big forward motion again.
RZ So, in a way, the — the revelation here, like the big change, is policing. At the top. Let everyone work [that’s right]. Nobody can step on anyone else but to maintain order up at the top, as you go up —
PF Very, very low coordination, right? Like you can [very low coordination] just kind of — “Everybody go work and, you know, check back in.”
RZ “Check back in and I’ll — I’ll worry about whether this deserves to upgrade up into the master.”
PF And we’re just gonna assume that there’s this one canonical version on GitHub.
RZ Wonderful. There’s actually something very social in GitHub’s architecture.
PF Well and what Git does is allow for lots and lots of different cultural patterns for building software. That’s what Git as a piece of open software did. GitHub as a closed platform and service that people can pay to use or use sometime for free as well provided one clear path for getting lots of different kinds of things done.
RZ Right. You know who should buy GitHub, Paul?
PF Hmm. Adobe?
RZ Mmm. They tried. It didn’t work out.
PF [Laughs] Did they? Probably.
PF I think Google did.
RZ Surprised Google didn’t end up buying GitHub but Microsoft bough GitHub.
RZ And it just put it up on the shelf next to LinkedIn.
PF That’s true.
RZ It makes the den look so much nicer.
PF [Sighs] I mean, honestly, LinkedIn is rough. Do you know the — The Marlin Stadium?
RZ Yeah, that crazy —
PF There’s a — there’s an artist named Red Grooms who I love but —
RZ Yeah it’s the crazy carnival like —
PF [Chuckles] When there’s a homerun dolphins flying around in this enormous sculpture.
RZ Yeah, it’s really cool.
PF I love it. It’s a giant piece of glorious American trash and it’s intended to be and it’s just this like huge — people hate it [right]. It’s like the most hated sculpture. Who is it? Is it Derek Jeter who’s now investor? Somebody’s invested . . . deeply and wants to get that thing out.
RZ Oh really?
PF Well, LinkedIn looks like that sculpture [laughs] in the den.
RZ A little bit. It’s starting to clean up a little though.
PF No but you’re sitting there watching Netflix and then suddenly those dolphins [oof!] are running around.
RZ Yeah. Yeah.
PF That’s what LinkedIn looks like. GitHub is like a Bose stereo.
PF Like it’s a little like —
RZ It’s cooler.
PF Yeah it’s not truly high end audiophile but it’s [yeah] pretty cool.
PF You know?
RZ Growing up my parents had this huge lacquered photo of a rose in our living room.
PF Mmm! That’s good.
RZ It was like on wood.
PF Oh yeah!
RZ Kinda shiny but it was essentially a photograph [yeah] of a rose that was poster size [right] and uh it probably created a more anxious household, frankly [laughs].
PF Just that big rose.
RZ Just the big rose hanging over us.
PF I do feel like shellacking and laminating things was a real part of culture that doesn’t — I’ve never shallacked in my life.
RZ There is a product manager at LinkedIn who said, “No more shellacking.”
PF That’s right.
PF That’s right.
RZ Right. Paul, we could create more and more versions of this and ask for pull requests but [well I mean, why did Mi — ] but I think —
PF Why did Microsoft buy GitHub? I think that’s what people need to understand . . .
RZ [Sighs] To reconnect Microsoft to a new way of working.
PF That’s right and I think first of all Microsoft has always been great about developers.
PF Like for all of their faults and their justice department shen — shenanigans, no one ever doubted that they truly cared about giving people a good experience writing software.
PF And so this is very in keeping with the core ethos of the company [yeah] like they — they want people to be more productive making and doing things with computers at a low level. That’s always been part of them and so it just aligns culturally and it’s a truly . . . well respected, well regarded, fundamental piece of infrastructure related to how people use computers. It — it — it ties into a lot of workflow [yes] and a lot of sort of the way we do things now. We must do a hundred pull requests a day, sometimes. I mean just we’re constantly using this thing.
RZ Sure. Sure.
PF So it makes sense along those lines. 7.5 billion’s a lot of money but then again they issued stock for it [eh!] and their stock price went up so they kinda got it for free.
PF They can — you can —
RZ When it gets into that abstract view of money.
PF It’s a nation state. It’s like asking, you know, what Greece thinks about, you know, Algeria?
PF Yeah [Rich laughs] or water.
RZ Alright, well I say we keep this version, Paul.
PF My thing — what do people need to know? I think they just need to know that there’s thing’s out there that are absolutely fundamental to the digital world that track the changes that large teams make.
RZ Yes, and also these tools used to be inside of enterprises and now they’re democratic.
PF They’re relatively decentralized and could be truly decentralized if you want to. We actually kind of — everyone opted into GitHub because it took some pain away.
RZ Yeah. Exactly.
PF Uh! It’s a tough one. Everyone should have a GitHub account.
RZ Everyone should! And you don’t have to code to have one.
PF No. You really — it’s not necessary.
RZ If you like to write, put it in GitHub.
PF You can — you can learn how things work just by messing around with text files, and it is — it is a piece of the infrastructure so go check it out. Alright, Rich, [music fades in] that was fun. I like talking about version control. I — I feel that we had to kinda keep it — I had to keep some of my passion at bay just to —
RZ Yeah you were gettin’ — you went off the rails a couple times but that’s ok.
PF It’s brutal. It’s a brutal subject [it’s ok] but when you get really into it, you start to think like what if the whole world was under version control?
RZ Yeah, I mean we just gotta get a hold of ourselves at that point.
PF No, I know we do [yeah] but I still love the te — you know technology does that to you [yeah]. We need to rearrange society around this. Uh email@example.com.
RZ Uh five stars on iTunes. We’d love you to.
PF If you want, if you want. We like that and —
RZ We were on a roll there. There’s a lot of love there.
PF Yeah, we really appreciate the kindness that people show towards this podcast.
PF Um it’s very sustaining.
PF So, we’ll talk to you soon.
RZ Have a great week.
PF firstname.lastname@example.org. Let’s get back to work [music ramps up, plays alone for five seconds, fades out to end].