The Changelog: Software Development, Open Source - Keep a CHANGELOG (Interview)

Episode Date: August 8, 2014

Adam and Jerod talk with Olivier Lacan about keeping a `CHANGELOG` and his passion for keeping a human facing, readable history, for software projects....

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome back everyone. This is The Change Log. We're a member supported blog, podcast, and weekly email covering what's fresh and what's new and open source. Check out the blog at thechangelog.com. Our past shows at 5by5.tv slash changelog. And you're listening to episode 127. And Jared and I talked to Olivier Lacan about keeping a changelog, just keeping your source in check so that everyone else knows what's going on.
Starting point is 00:00:38 Changelogs are important. We obviously think so because we're called the changelog, but that's beside the point. Today's show is sponsored by Top Tile ship and rack space we'll tell you a bit more about coach ship and rack space later in the show but our friends at top towel i gotta say something personal just for this spot here because um and many of you might know i work i have a full-time job just like many of you have a full-time job and that full-time job is purecharity.com. We do fundraising for nonprofits. Really cool thing we're doing.
Starting point is 00:01:11 We've been doing that for the past three years. But we recently had a need for a higher engineering push. And it kind of had to happen quickly. We didn't have a lot of solutions in place to go and find new engineers. We didn't have time to go and hunt people down and find the right people. So because of working with Top Top for so long here at the Change Log, I knew that they were the people we can trust to get some good answers. And so we put a couple of different job applications into top top for rails engineers and within days literally within days we had interviews with some of the best and brightest minds available for us um and we couldn't have been more blessed because we just finished shipping um in the next episode actually
Starting point is 00:01:57 you'll hear this harry mentioned how we were shipping and we we shipped this large project over a month and a half um after we hired guys from TopTile, two different engineers to come in and help out our current development team to add that extra oomph to our output. And we could not have been more happy. We could not have been more saved because of the great work and awesome abilities that TopTile has for matching up, basically. They're a matchmaking service. They match great developers with great opportunities and that's just how it goes so we came in and had a need those developers who had a need for for a position they had top title look to and we had top title look to for
Starting point is 00:02:37 finding the best and that's exactly what they do and they want you if you're an awesome engineer out there looking to freelance and do all sorts of cool stuff with cool technologies, and you want to find some really, really awesome opportunities, go to topside.com slash developers and tell them that Changelog sent you. Enjoy the show. Today we're joined by Olivier Lacou. Did I do good? Was it close close you did better in a in a in practicing i did yeah so long story short our guest is french so obviously his name is a little
Starting point is 00:03:13 difficult to pronounce um i'm here jared's here we're here to talk about change logging which is sort of meta in a sense and if if you know the voice of olivet then you probably heard it on ruby 5 you're prolific in ruby and you do things at code school so i'm sure you got your voice out there all over the place right sadly yes i talk a lot well in any case welcome to the show thank you and it's happy to be here it is sort of meta because um i stumbled upon this project of yours um which is Keep a Change Log. And the subtitle is Don't Let Your Friends Dumb Get Logs Into Change Logs, which I thought was pretty cool because we're the change log. And everybody who does open source or any sort of software really is to some degree keeping change.
Starting point is 00:04:02 Even proprietary software has change logs, right? So, I mean, this isn't just open source this is sort of software uh you know as you see it this is what see this is why i wish people would do but i realized in recent months as i was actually going through upgrading a lot of old apps a lot of apps that we have internally that people actually don't do that. People actually tend to think that their software maintains itself or as long as they contribute it then it's done and you don't really have to do the side work because it's kind of boring you know to keep a changelog and actually write down like a journal like
Starting point is 00:04:40 okay we did this this week and that week. Because it's just tedious. And people would rather be as impactful as they want to be. Even think about those who are shipping apps to the App Store, like Apple's App Store or Play Store. Even those apps, they actually, a lot of the developers have a lot of fun with these. I don't know if they're called changelogs there or not. Release notes? Release not, but. Release notes, I think they call them. Right. I actually have a folder.
Starting point is 00:05:10 But it's still the same thing. Yeah, I have a folder of screenshots that every time one of those developers makes an amazing changelog where they're either really funny or they actually go through insane lengths to explain, by the way, watch out, like, this is the new stuff that's in this version. You might want to stick to this version. So much thoughtfulness and a few developers. But the rest are just minor bug fixes. Minor bug fixes. Improvements. Speed improvements.
Starting point is 00:05:35 Bug fixes. All these releases. What bug are you fixing? Tell me. Maybe I had that bug. The issue number or something. Yeah. Give me some context. Yeah.
Starting point is 00:05:43 And especially for iOS stuff, so many little subtle bugs that you could make people happy if you just mentioned what bug you fixed. It seems so obvious, but people don't do it. So is there a semantic difference between changelog and release notes, or maybe just the audience? It seems like when I think of a changelog, I think of the audience being technically sound
Starting point is 00:06:07 and maybe even developers. When I think of release notes, maybe it's just in the app store. Obviously, you're speaking to your end users. Maybe it just depends on who your end user is. Right. I realized that while I was doing this project, as soon as I put it up, someone came up and said to me, hey, so you're
Starting point is 00:06:26 calling this a change log and there's actually a different thing called history or uh news and in the in the git or the new community there's apparently a differentiation between those two so there's one that's more release note oriented and i think that's the news yeah so it's the news text file that you leave in your repo. And that one's more generally like if you want to parse it really quickly. And the changelog, they contend, and I'm kind of not super happy about that.
Starting point is 00:06:54 They contend that the changelog is just, it's okay if it's just a git diff dump. And I think there's no value in that. If we use git and we can use git log, why would you ever... You can do the same thing on GitHub. You can do a compare between two tags or two specific release commits,
Starting point is 00:07:13 and you will see that diff. You will see those commit messages, and you can go through every single one. Sometimes there's just an angry developer going, ah, I faked this super annoying thing. There's no context. There's no semantics. It's, it's very strange to me. I liked your, um, you say, so the homepage for this project is keeping, or sorry, it's keep a changelog.com. So if you're listening live, you want to follow along. If you're listening, obviously this is a podcast, you are listening.
Starting point is 00:07:42 If you're hearing this, but keepachangelog.com. And one of the questions down there says, is there a standard – to Jared's question there, is there a standard changelog format? And your answer is sadly no, but you hope to make this particular one you're making as part of this project become the standard changelog file for all open source projects. And I would assume maybe others to follow along. And it's got this idea of added, deprecated, removed, fixed, which I think is really important because it kind of gives you a rhythm to follow, at least, you know? Yeah, and this is something that I noticed, that a lot of people just say what was added and say what was removed, but they don't say, okay, was something not deprecated? Because usually when you parse things, it's also
Starting point is 00:08:26 as important to you to know that nothing was deprecated in this version, and you can safely upgrade. Because if it's not mentioned, maybe it's not there, but maybe they forgot. And it happens a lot in open source projects because, you know, you get some, you merge a contribution, and you forget
Starting point is 00:08:41 that person didn't make a changelog commit, and boom, you're suddenly breaking all these installs from people. And it's just a lot of friction and pain that I think we could easily remove with a little bit of forethought. I love the dog you have in the background too. You warned us, but the dog is still there. He's going nuts. I don't think so. He's having fun right now. He's actually never done that. But I think he can sense that I'm talking. So he's like, okay, let me screw with him.
Starting point is 00:09:09 It's giving your side of the audio a little character, so to speak. Yes. So let me read your definition here of a changelog back at you. And then we can kind of discuss the difference between this and other things that may exist. You say that a changelog is a file which contains a curated, chronologically ordered list of notable changes for each version of an open source project. And so I'm guessing that, I'm reading the tea leaves here,
Starting point is 00:09:37 that you're emphasizing curation, chronologically ordered and notable as kind of the key differentiators between this and what might be a history file, which maybe is all the commit logs. Is that fair? That's very fair. And I think the difference is clear in the same sense.
Starting point is 00:09:57 So if you think of an API, a public-facing API, when you change things on the API, you want to make sure that everybody understands what they are. They don't not really the low level stuff that you changed, but the actual public API stuff. So the private API stuff is nice to know, it's good, but it's not as crucial for you to know. So this is basically the same differentiation. It's like, this is the for the outward world, not the people who work on the project, necessarily, the people who work on the project necessarily. The people who work on the project know that there were things added privately, that they did some groundwork for a new release, for instance, but that's not necessarily notable for the people using the software.
Starting point is 00:10:36 And I think that actually, we talked earlier about release notes for iOS apps or just Android apps. I feel like I wish open source developers would basically crank up the empathy on their open source end users the same way that iOS developers sometimes do with their paid customers. Because yes, people don't pay, but if you keep such a well-curated list
Starting point is 00:11:00 of all the changes, first of all, it encourages people to do the same. It makes it easier for people to jump in and contribute. Because, for instance, I think Hamill was an example. I was waiting for a feature in Hamill or a feature in Red Carpet, one of those things. And I was about to start working on it. And I thought, OK, so it's not listed in the readme.
Starting point is 00:11:21 I can't find it anywhere. And I went through the chain log real quick. And boom, there you go. Footnotes were added, I think't find it anywhere. And I went through the chain log real quick and boom, there you go. Footnotes were added, I think recently in red carpet. And I was super excited because for my blog, it's just little footnotes and you could do that very easily. And I didn't have to go any further. And of course you can improve your feature descriptions on your library, but it's also great for people to just jump in and see, wow. So yeah, when you jump in a project, you, you always assess how well maintained is this project?
Starting point is 00:11:52 What better way to see how well maintained a project is then show, you know what, every, every month, every week, every year, we have this, these incremental changes, and this is all the things we carefully change and add yeah absolutely i think man as a user of open source software and somebody who's written a lot of software over the years you know i used to get really excited for like every single project update and i was like oh i can't wait to just integrate you know upgrade and get this in there and and you kind of as you get scar tissue to the process of software development and realizing that your regression test suite is not as awesome as as you thought it was and there's still bugs you know affect you and trickle down i get to the point where i am very weary of upgrading uh dependency that's so sad. I know. But let me just say,
Starting point is 00:12:45 a solid change, like a release notes or a change log that actually provides me the information of here's the value in upgrading to our newest release, like high-level bullet points,
Starting point is 00:12:58 kind of what you're advocating for here, of like, here's why it's worth it for you. Here's the new stuff that is, you know, of value. Goes a long new stuff that is of value. It goes a long way. This is exactly that.
Starting point is 00:13:09 Okay, this is worth me actually going through the process of upgrading this dependency. Well, that process you talk about too, I think that to your point, that you say that you wish more software developers, more open source developers took some, I'm not sure what your exact words were, but I'll think of it like just making social, it's gotten harder and harder to take care of these staples, so to speak, like changelog, readme, history. All these files are like staples in software. And I feel like it's just more added overhead to deal with. It's a good point. And I think the word I used was empathy.
Starting point is 00:14:02 And it's a difficult thing because when you when you're drained you know when you've worked so hard and i know that a lot of people get a lot of flack uh on their issues and you know people come in and just crap all over their project even though they've worked for years and years to make it uh but i feel like in a way if you think of it uh as a preventive measure preventative preventive Preventive? I don't know. You can basically, okay, let me carpet bomb, in a way, this information to make sure that less misunderstanding and less confusion will happen. To me, if you keep a change log and you do that often and regularly, you're actually saving yourself the hassle
Starting point is 00:14:46 of having to deal with people who misunderstand or who are having upgrade issues. Basically, you're just saving yourself a lot of time. And it's hard to see, of course, because just writing down little things like that means that you have to take some time to reflect after a release or just as you're about to release. Or you have to find out like,
Starting point is 00:15:04 oh, what pull request did I merge in and did they put a changelog item, stuff like that. But if you do, then you're actually allowing your project to be more lightweight in a way. Because stuff is down and it's written down. You're not the central repository of, will this break my software? The file is. Yeah. software. The file is.
Starting point is 00:15:27 Well, let me just kind of... This might be hard for a listening audience, but kind of just go through your version on keepachangelog.com. Just kind of describe the format that you've laid out. This is sexy. Let's read the changelog together. I'm going to do it really slowly. So you have kind of... Should I slow the music down and everything?
Starting point is 00:15:44 Mm-hmm. Get some Barry White rolling put your put your bassy voice on jared markdown format i don't have a bassy voice i just said the word format i just said mark yeah markdown format is that everybody getting excited already everybody's excited so you're you're advocating for markdown format yep Yep. And so the first thing you have, okay, the title, we'll get past that. But for each changelog entry, you have a version number, kind of a well-formatted date, which you kind of, you have a section all about dates in here. And then you have four sections, added, things added, things deprecated, removed, and fixed. And in this example you give, your added has three bullet points, but they're hyphenated, the things added.
Starting point is 00:16:36 And then your deprecated, removed, and fixed are all empty, but you don't just leave them empty. You actually explicitly state nothing. Can you just go through the thought process behind this format and why you decided and think that this is, you know, I know you say it's not the truth at the bottom of the page, but is this something that you're advocating that people use? There's a ridiculous amount. So this is where we get really nerdy because every single thing you said, I had, like, thoughts going, okay, I have to explain this.
Starting point is 00:17:03 So the date format is a big deal because Brits are super this is great i hope you have brits listening i'm french so this is igniting a war and you know yet generations of war between us brits have the stupidest date format they put the number they say 8 april 2014 and they pronounce it april 8th that's it's just mind-boggling. So basically they have the wrong writing. So if they write it in an article, if you go to the Guardian and read an article in the Guardian, they often do that. Americans have an also stupid way to write dates where they put the month, and then they put the day, and then they put the year.
Starting point is 00:17:44 Just because, you know, why have a logical order ever? Yeah, I thought ours was surely the worst. Right. You're saying that the Brits is actually worse than ours. It is actually worse. So this is what I do. I basically, I anger people, and then I say, no, no, I hate, let's hate on these guys more.
Starting point is 00:18:00 You're just tearing us down over our date formats. Right. I'm just, you know, making making people, it's a strategy. Hear me out. I like it. So the last one is the slightly international date format, which to us is the MySQL database format, where you put the year, then the month, then the day.
Starting point is 00:18:18 Makes way more sense because, one, it's sortable easily. So if you have files in a folder and they're names with the 2014-05-31, you can sort that. They will never go out of whack when you're sorting it. So that's one reason. But the other reason is you can figure it out because it's different enough from the English and the American one that you can say, okay, this is clearly the year.
Starting point is 00:18:42 And I mean, why would the next thing be the day? Unless you really have the backwards American way of thinking. It's like you actually inverse that thinking. Let me just say that I use this format personally. Year, year, year, year, dash, month, month, dash, day, day. I use that on everything.
Starting point is 00:18:59 I could always just consider it the nerdy format. I don't know if it's like international format. Because only nerds would use this. People who who think about like oh it sorts naturally in a directory which i do think about and i use that on checks and i use it and people you know use that on checks yeah you know you put the day on the check and you use it i mean i just i like consistency so i'll just use the same like everywhere i'm not gonna i'm gonna do that well this this is my check context so i'm gonna switch to american date format now i'm just gonna use the same everywhere. I'm not going to... I'm going to do that now. Well, this is my check context, so I'm going to switch to American date format. No, I'm just going to use the nerdy version.
Starting point is 00:19:27 And people here in America, they get mad at me for this. They're like, what? What's up with your date format? And I'm like, it makes the most sense. Biggest to smallest. It's unambiguous. So I'm totally in with you
Starting point is 00:19:42 on your sensible date format. I just think we just use it even outside of changelogs like let's just get everywhere let's start a revolution so you see you have to make you have to make another website like single page website like this where you're talking about let's uh let i don't keep a date format i don't know what you want to call it but basically that the the thing that scares me and what you say is that i don't really i didn't realize being outside of well having grown up outside of the American culture mostly, I don't know what's super weird. I just know what doesn't make sense to me.
Starting point is 00:20:12 But there are things that I say or do that shock people and that surprise me because it's just not a big deal in Europe or in France. So anyway, so the date is one super important thing. The other part actually is it's like headings. So the first heading, and this is something I've been criticized for, and I'm completely okay discussing it because as you mentioned, it's not the truth. It's just an idea for a convention. We can agree or disagree.
Starting point is 00:20:36 We can improve it, be better. But the first heading, so like Markdown has pound signs for headings. So header one is changelog. So the title is changelog just because what if you discover this file and you have no idea what it is? If you're a beginner to open source and you jump into this text file that says changelog, what is this? Do you see changelog?
Starting point is 00:20:56 And then there's a subtitle was a little paragraph underneath that says all notable changes to this project will be documented in this file. Self-explanatory. I have context now i don't need to be a nerd like us to to understand that why is the did format like that now you know okay i can sort of this decipher what's this thing about and then i use header two header level two for every single version because uh well one of the reasons is that GitHub added to, I think, GitHub-flavored Markdown,
Starting point is 00:21:27 the auto-linking anchors on these headers. Yes. Which is great because that means you can automatically, if it's parsed as Markdown, you can link to the release by clicking on the little paragraph sign that shows up next to the anchor level 2. It's kind of hard to demonstrate. And finally, there's the third one, which is the individual grouped.
Starting point is 00:21:51 Why individual group? No, the groups of changes. So the added changes, deprecated changes and stuff like that. And the dashes are simply because now in marked, I think it's a GitHub flavor markdown format, but a dash makes an unordered list item so it just looks better well yeah it's marked down unanimously that they did the the star or the dash right you're right because so many people use that in email format and whatnot so the idea was to translate from like normal way of writing words to something you can actually mark up without
Starting point is 00:22:22 trying to which is a great idea. Yeah. Or I guess mark down. Right. Yeah, I didn't realize that the dash also did unorder list. I thought that was just the asterisk. Yeah, so I'm the guy on open source projects that actually goes and submits pull requests through Uri and me and then sneakily changes all the stars to dashes.
Starting point is 00:22:40 I'm that guy. Your PR is just nothing but stars to dashes. What's up with that change no I know I sneak it in with other things so people go alright sure I guess whatever do you ever get your PRs rejected and be like this was a great change except for the whole stars to dashes thing
Starting point is 00:22:56 you try to sneak in there so now that it's public it will happen but no it's never happened and actually my evil plan worked every single time alright let's pause the show for just a minute give a shout out to our sponsor CodeShip. CodeShip is a hosted continuous deployment service that just works. We've been working with CodeShip for quite a while now we really really enjoy not only the product they've built but the people behind it. You can easily set up continuous integration for your app today
Starting point is 00:23:23 in just a few steps. And CodeShip has great support for lots of languages, all the test frameworks, as well as notification services. They easily integrate with everything you can think of, GitHub, Bitbucket. You can deploy to cloud services like Heroku, AWS, Nojitsu, Google App Engine, or even your own service because that's the way you want to do it sometimes too. Setup only takes three minutes. It's so quick. It really is just so quick. Get started today with their free plan and make sure you use the code THECHANGELOGPODCAST.
Starting point is 00:23:55 That's really important. Use THECHANGELOGPODCAST. And when you do that, you can get 20% off for three months on any plan you choose. Head to codeship.io and tell them the changelog sent you. Another thing I like about this format, too, is that there's a debate in your GitHub issues for this, to some degree, at least, talking about what the format should be.
Starting point is 00:24:21 And I think there was some other sort of unusual format that you kind of bulked at, and I think it's a closed issue right now, but you might recall that one. Some sort of other um i don't even know what the file format was but it was something weird i think markdown reads well because you can read it as you would not marked up to html you know precisely but you can read it just like it would be without like reading html you know it's just easy to read on its own but at the same time if a if the parser is smart enough it can take that same format and like you said earlier put the anchor tags on certain headings and allow you to like deep leak within
Starting point is 00:24:58 the same document so it has a lot of added benefits regardless if it's plain text markdown or actual kind of like markdown. I don't know what you would call that. Parsed, I suppose. That would be the better word. HTMLize. No matter how you get the file, whether it's the dumb version text or the smart version parsed, you get the same user experience or at least a similar user experience. Right.
Starting point is 00:25:23 So it's portable basically. Yeah. same user experience or at least a similar user experience right so it's portable basically so the the idea is that you can you can have it on your local machine even if it's not you don't have a markdown power parser it'll look fine and then it'll look even better on github or on bit bucket or anywhere because they will parse it and you'll see it what i what i've is again against the the idea is just try to keep it as accessible as possible um and that kind of that i don't want to go talk about that right like i don't know if you guys want to talk about that right now but that stems from kind of what my original open source uh i don't know uh
Starting point is 00:25:56 what's the religious thing where you just go convert people um anyway evangelism evangelism my previous thing was uh shields and shields was about github metadata badges and the idea was again keep things accessible because there might be people who don't use your project who will see it and then just get turned off immediately because they don't know what it's about what version it's on and stuff like that so it's the same mindset basically just making things as accessible as possible. And the format you mentioned is org mode, which I didn't know about. Yes, that's fine.
Starting point is 00:26:31 I was like, so what was that? Did you dig into it more? A little bit. So basically, it's Emacs. In the Emacs community, they use org mode for stuff like this. So they use org mode for everything that I think is metadata about the open source project. I might be completely butchering this, but this contributor talked about it.
Starting point is 00:26:50 It's nice that the Emacs community has this, but again, org mode seems so obscure. I think there was some syntax issues with the way I think it could parse Markdown. But yeah, again, make a great case for it. What I'm trying to achieve is not to please everybody.
Starting point is 00:27:07 It's this idea, I guess, that I take from the Ruby community in a way, because I'm a Ruby developer, is to, it's great to have opinions, everybody. And I certainly have them. But right now we're in a state that's not good, I think. And I think first we should achieve a modicum of consensus, like just have a little bit of a convention on at least this basic format. And then we can evolve it if you want.
Starting point is 00:27:34 But let's have that first. So that way, at least every project you can think of, you can go and click on a changelog file and see what's in it. Sadly, of course, the naming is an issue. There's a lot of projects that don't have any changelog whatsoever, so something would be a huge step up, right? Right.
Starting point is 00:27:54 And so what I encourage listeners to do is basically what I've been starting to do in the last few months. So I've put this page up, and I've used this page as argument bullets to go inside of a project that I use. And that basically when I do an upgrade, there's a shock and I don't know why something doesn't work. And I say, okay, let's see the change log. If there's no change log, I'll say, okay, do you want me to make a change log for you?
Starting point is 00:28:17 This is what I offer. This is the format. Are you cool with that? And at least two, three or four or more actually people have been like yeah sure you can do it uh just send a pr and we'll make i think um uh set um one of the contributors for discourse uh really great uh british guy i can't remember his name but yeah if you go to discourse um they use something to mini profiler yeah profiler, which is a rack mini profiler. Right.
Starting point is 00:28:46 So this is really cool profiling thing that you can use in Ruby apps. Sam Safran. And his change log was strange because it was backwards. So the oldest changes was at the top, which is kind of counterintuitive. And the date format was a little strange because he's British. No, we can't judge, but yeah. So I started just basically – A little jab there.
Starting point is 00:29:08 Yeah. But he's, again, an amazing contributor. But because of his cultural background – It's that one thing, the date, you just can't like it because of that? Yeah. It's not just that. It was more stuff. So if you look at the history of that file, you see kind of what I'm trying to do.
Starting point is 00:29:21 First, it's like reorganize and use Markdown. And people get hung up about Markdown, but Markdown, as you said, is accessible. It's very portable, yeah. Right. You don't need to know Markdown to understand what Markdown's about. And then the chronological thing was the second change.
Starting point is 00:29:34 So basically, I'm going to use this as an example of a template for how you would improve an existing change log and or create a new one. I'm trying to create one for a Rails a gem called strong parameters, which is hugely important to anyone who's using older versions of Rails than the current one. And sadly, there's no, it's very hard to find out what was added to this stuff. And some of it
Starting point is 00:30:04 really is, again, crucial because if you don't know exactly the difference between version X and Y, then it's suddenly very frustrating. And I don't want that. I want to remove as much as I can as far as frustration. What are the other culprits of frustration? Like in your notes, or at least on the homepage
Starting point is 00:30:22 of Keep It Changed Law, you got dumping a diff.'ve got these kind of lazy ways to like do a change law but not do a change log that right sort of upsets everyone so what are what are some of the ones that like really get you angry so the the one thing if you ever do a change log uh having a section about added and removed is fine if If you ever change, you make a backward incompatible change and you don't put it in your change log, that should just be the only thing you put there. So really, if you hate change logs and you think I'm silly,
Starting point is 00:30:55 just put one line for every single time where you change your API and you bump it up. If you use semantic versioning, then I will bless you. You're the best person in the world. That's great. But some people don't understand semantic versioning. Some people think you follow it, but you don't really follow it, things like that. So if you're going to change your API, your public API so radically, just make a little line that says, okay, now this doesn't work. You have to use this. That's it. That's the only thing i'm asking so so again like a huge generator of heat and like rage on the on
Starting point is 00:31:33 the open source world is that just basically breaking the uh the api and you're like oh there's a new version of this thing let's upgrade and then you turn into adam you just get really sad and bitter about upgrading which is what happened happened to me this everything i've contributed for this basically is fueled by by mostly anger and yeah it's all fueled by anger so i take the anger and i try to turn into something positive because i was upgrading this old app and all this was happening over and over and over again as you said test suite green nope not working oh why that's why and you figure it out and that whole little kind of maybe as a listener listening back like four or five minutes you mentioned shields which Chad Whitaker has been on the um has been on the show before he's you know I saw y'all do a virtual high five whenever
Starting point is 00:32:25 that moved over to badges that was super cool um and so that's that's a cool project for just for one so just to make sure you know we think that's an awesome project and we haven't had you on the show i never really knew who did it i just knew that it was a cool thing and then now it's part of badges and i think there's a org behind it and they're all kind of collected to one org now on GitHub, which is good across the board because it's like the UN for badges, basically. Okay, I'm going to steal that because that's a really good description.
Starting point is 00:32:56 New tagline. I have a blog post that I wrote about this called An Open Source Rage Diamond and that's exactly what it's talking about. Shields is... I like that we went there because Shields is exactly the response called an open source rage diamond and that's exactly what it's talking about shields is the it's i like that we went there because shields is exactly the the the response to why is everybody doing it wrong so you could rant about it make a blog post first and be on hacker news and everybody hates and likes you i don't know or you can take the approach of get what what's the lowest amount of effort I can exert to fix this.
Starting point is 00:33:27 And to me, so I was originally a designer, which is weird, and graphic designer and then web designer. And so I have Photoshop skills. They're rusty as hell, but I have them. So it was like, okay, there's this Travis badge and this dependencies badge from, I think, Gemfury. No, Gemnasium. Then there's Code Climate badge at the time,
Starting point is 00:33:49 which was like a blue badge that just said Code Climate. And I was just mind-boggled by that. Because I didn't have any other additional info. No, just like, okay, so we're doing the forum. Well, it's not badges, it's marketing. Yeah, right. Which I can sort of understand you're trying to you know market your business but and then it's kind of like what the phpbb signature era you know like
Starting point is 00:34:12 let's put animated gifs in our readmes so that teachers are flashing super cool um that sounds pretty awesome to me no no no no stop it let's do it Let's get them into our changelogs. People have done that, though. It's kind of funny when you put one gif and it's just, okay. You see it at the bottom and it's really funny. One gif per release, maybe? Can we get that? I think you should make one gif
Starting point is 00:34:37 per release for the emotion the release is supposed to instill in people. There you go. Jared, that should be your thing. Release GIF. I'll open a pull request on your changelog. Oh crap, we're live. Somebody probably registered that website.
Starting point is 00:34:53 So basically, I just made a template. I just made a simple template. The idea of badges, of shields, is simple. So it's called Shields because of one of the best TV shows of all time, The Shield. And you should watch that, by the way. Just a side note. It's a great show. The idea is a key and a value.
Starting point is 00:35:10 Just like we know. It's just like JSON or any format that has a key and a value. The key is, what is it about? And then the value is, for an example, simple example, build, passing, or failing. Dependencies, up-to-date or not up- or not up to date gem version what is the
Starting point is 00:35:27 gem version it's just like uh the good climate we'd show i've actually talked to uh brian helmkamp from from code climate and a bunch of other people from other third-party vendors that did those badges and i said uh would you be would it be cool you have this gpa thing on code climate which is really cool why not put that on the badge instead of your name? And he was like, yeah, actually we wanted to do that, but we were super busy with our startup that, so now you know why they did that because it was just a stopgap.
Starting point is 00:35:55 So you end up like getting in touch with all these really great people who just meant to do well, but either didn't have the graphic skills to make a badge that looks exactly the same as I think the Travis badge was the first. So I made this thing and I talked to the Travis people and I talked to the Good Climate people and a bunch of other, Gemnasium was really cool too. And I said, okay, how about we make badges for you and they're all consistent and similar color tones and similar
Starting point is 00:36:21 font and the font is more legible so people don't have to squint. They're like, what is it, Gem version? And then we make sure that every time you put a badge on these, we just recommend people link to that thing you do instead of trying to use the badge as an ad platform. You provide value and then we link to you and people will see, oh, Gemnasium is really cool. Oh, Travis is awesome. And that took off like crazy.
Starting point is 00:36:48 People started using the original P&G version of those badges all over the place, even before we actually had figured out a sustainable way to make them. So it was just me and my friend Nick, Nick Acker, just making them manually or generating them manually for everybody, which ended up taking a lot of time. But a success story nonetheless. And eventually, so open source did its magic.
Starting point is 00:37:17 After a year, a few people created APIs. I think we had a Go API. We had a Node.js API. We had a Ruby API to generate them on the fly. And this is what shields.io is. If you go to shields.io, you'll see tons of examples of things you can just simply pass a URL to, and the URL will generate a badge for you, which is now used by a bunch of services. And what's even greater is that you can do that for your license. You can show easily what your license is, what your donations, how do you take donations for your open source projects if you do.
Starting point is 00:37:51 And finally, they're all SVGs. So they're scalable. They work great. You can zoom in. They're easy to update. So, yeah. So you're trying to bring bring up another a conversion convert conversion a convergence similar to that around change logs right that's kind of the idea like we can all just converge
Starting point is 00:38:13 on this one format we can all decide that change logs are important things that we need to try to do well so let's assume that you've talked me into that and I'm like, okay, I'm a developer. I want to keep a good change log. I'm down with this format, um, that he's proposed. There's still a few things that I think are difficult and maybe you can help navigate that. Um, the first one being, when do I, uh, add to my change log? Is it every release? Is it just, uh, minor releases? Is it patch releases? Is it just major releases? So that's question one is like, when do you make a change log entry? And then question two is,
Starting point is 00:38:51 you say it's a curated list of things. So how do I decide what's worth putting in there and what's just noise? So the first part is every single release. If you don't have something notable, you can say notable changes. This is something that I'm glad you asked because this is something I hadn't really answered yet
Starting point is 00:39:11 on the site, so I'll probably add that. So when should I do that? All the time. It's very unlikely that you're going to make a release or cut a release or push a release if you don't have any notable changes. It's extremely rare. There might be some bug fixes,
Starting point is 00:39:27 but even those bug fixes, you can say, okay, we had a few bug fixes about what? That's it. It just takes you just really quickly, quickly parsing through. If you're the release manager, or if you're the main contributor, the lead contributor, or something like that,
Starting point is 00:39:43 it takes just asking in your contribution. So there's a GitHub added support for contributing.md or contributing that you can add in your repo to say, this is what we want you to do when you contribute. So start here first. And they're linked to in every issue. If you start an issue, it's linked to. So as a maintainer, why not put
Starting point is 00:40:05 that in there and say, hey, if you're going to fix a bug, please make a changelog entry. And a bunch of open source projects do that. And then there you go. Every minor release now has a symbol, a changelog entry that says, okay, we fixed this bug. Nothing else was added. So you can be relaxed. We didn't screw up your thing in the background. The second part of your question was, can you remind me? Because I lost your second part. Deciding what goes in and what's not worthy of going in to the actual entry.
Starting point is 00:40:36 So I think we discussed it a little bit earlier. It's if this is something that people as end users will send you packages with poop inside, if they find out and you didn't do it, then it's such a simple check. Are you speaking from experience there? No, but I would do it. I like how you went there. If they send you hate mail, that's cool, but packages with poop in it, bad.
Starting point is 00:41:07 Imagine your GitHub profile, imagine your profile on open source projects had your address in it. Would you be cool with that? Well, that's another issue that might be really creepy. Yes, Chad would. But imagine that people could actually send you mail, physical mail,
Starting point is 00:41:24 and it could be dangerous because they could put poop in it. Would that happen with this release because you forgot to mention something? I think the poop test is a great test. I think your idea, though, of putting stuff in it that breaks it because I'm thinking of when I upgrade WordPress plugins for the site or different sites that are still in WordPress or whatever, whenever I've got to bump up that plugin, I mainly don't care about the new features they add. I mainly care if it's going to break WordPress because it's database-backed and I've got to keep this database back up. And if something does go crazy, I've got to do a re-import of the old database to fix things or something that gets crazy. So I've had plugins totally break a WordPress theme, and all i want to know is like you know what is it breaking what what bugs were fixed that might break my theme right regressions it's people are acting as if
Starting point is 00:42:16 bug fixes are just this holy thing that never ever create regressions on anything but if i know if i knew you fixed a bug in the language parser and suddenly I update and language parsing doesn't work for some thing, then I can tell, oh, okay, let me roll back. This is probably what happened. So again, you're lessening the frustration level and you're allowing people using your software who know it's open source so they know it comes without a warranty basically in a. To self-diagnose easier, more easily. Yeah. Release notes is a good word for it. I mean, they tend to be – I like the idea of the fact of being changelog, right? The changelog.md even, or just a plain old flat, no extension changelog file in there.
Starting point is 00:43:03 That's cool with me too, as long as that format stays the same, because that's, I think, what's been the way for so long. But they basically are release notes. It's a way for you to communicate to those using it about the notable things, as you mentioned before, the most important things. Yep. There's something that worries me with...
Starting point is 00:43:23 Well, it doesn't really worry me. So GitHub released something called Releases, and that was me with, well, it doesn't really worry me. So GitHub released something called releases. And that was about a year ago, I think. There's a blog post for it. And their idea was, let's be smart. So I think they were thinking really hard about how to improve that too, on their end. And releases is fueled partially by Git tags. I want to mention that because what I don't like about the way changelogs are made right now, and a lot of people don't like them either, is that you can't really base them off of releases. Or if you actually tag your releases, so you say, okay, this commit is the point at which this is version 1.0.
Starting point is 00:44:02 In that git tag, which contains, which is great, like a lot of people don't know, you could put a message on a Git tag. So if you do gittag-m, you could put a message. And not a lot of GUIs allow you to see those messages, which is kind of crappy. And I don't know if GitHub and other open source repositories allow you to see that.
Starting point is 00:44:21 But you could basically put those entries, the added, removed, deprecated stuff in those git tags. And that would be great, except nobody knows how to do that. So they've added support for automatically pulling, when you create a release, when you try to create a release on GitHub,
Starting point is 00:44:38 it will actually try to finally tell you what is the git tag? Do you have a git commit or a git tag we could use? And if you have a message on that git commit or the git tag, you have a git commit or a git tag we could use and if you have a message on that git commit or the git tag it will pull that and say do you want to use that as your release note and that's great except that it's very rare that people actually it's even more rare that that people keep up-to-date Git tags for every version they release than it is for them to even have a change log in the first place.
Starting point is 00:45:09 So it's a little like, I wish people, it's asking even more than I'm even asking from open source developers, it seems. It's time to pause the show just one more time for our friends at Rackspace. We've been working with Rackspace for quite a while. Love this hosting platform. They continue to dedicate themselves to support the open source and developer community with their developer discount. And now you can go make something awesome on them. You are the makers.
Starting point is 00:45:39 You're the people with the ideas. Along with me too, sure. Why not? But each day we get up thinking of new awesome things we could do, new ways to change the world, and they want to help you put your imagination and your skills to work. And Rackspace would like to give you something special just to say thank you. Sign up today for their developer discount,
Starting point is 00:45:59 and you're going to get $300 in free cloud services on your Rackspace cloud account. This discount applies to new products like their performance cloud servers as well as cloud queues. You're even eligible for early access to new features and products as they roll out. So make sure you sign up. $300, that's a lot of money. Make something awesome. Get started today. developer.rackspace.com slash devtrial.
Starting point is 00:46:28 I think we might be kind of talking around this issue that you have on the project. Why not use GitHub release notes? And you got a couple chimes in from GitHubbers, TechnoWeenie, Beekeepers. Yeah. And I almost feel like GitHub muddied the water, so to speak, by having this concept of releases. Yeah. which is why GitHub is blown up the way it has because they took what used to be hard to commit to a project or fork it or add to it and they made it so much more accessible socially why not do the same thing for this idea
Starting point is 00:47:12 of what a changelog is and represents for a project it's true but at the same time I've had conversations with them I don't work for GitHub and I just have a few people I know that work for GitHub and every time I talk to them, it's a really good conversation,
Starting point is 00:47:29 and I can tell they care. I can tell they're trying to do, let's say, contributing that contributing file, for instance, a good example of what you're saying. Why not just parse that changelog file and then display it somehow in the Open Source Projects dashboard, like in a sidebar or, don't know something but in that way it would be lower as you said easier to do and it
Starting point is 00:47:52 wouldn't add one more entry point for for releases but i'm thinking maybe they have a point in the releases i think something that i've noticed gith GitHub doing is just trying to make Git more accessible in general for every possible way. And releases is kind of saying, okay, well, you have tags, but tags don't really mean anything to most people. It's just like, what is a tag? It could be a lot of things.
Starting point is 00:48:15 A release is a tag that has a specific kind of meaning because you could have tags that just say experimental, right? Or like Rails 4 or whatever. You have this little branch that you tag that. That's not really a tag, actually. That's confusing. That's just a branch called that. But in this instance, I think you could see tags.
Starting point is 00:48:36 Yeah, if you go to releases on GitHub, you can see all the tags that a project has. And there's not a lot of metadata there. There's not a lot of context. They were basically trying to say, okay, we know that Rails and jQuery and all these projects have tags in their releases and stuff like that.
Starting point is 00:48:51 What if we just use that? So I guess they had a way to do that. And I think it's really interesting how they make it, the flow of creating a new release as an open source maintainer. Just, okay, you pick a tag version or you make a tag version or you make a tag version and
Starting point is 00:49:05 you target a branch or a commit yeah recent commit you put a title on it which is kind of for me because way okay so what's the title it's just uh a new day uh hope we already know naming's hard so right so you're you're like making it harder on them uh but at the same time what's more that overhead that that prevents you from doing in the first place right so you're you're like making it harder on them uh but at the same time what's more that overhead that that prevents you from doing in the first place right so this is why conventions are useful because it means less thinking and more you could so what i like about their approach is the git tag stuff i think if we can down the line if tools if git tools or git itself makes it easier for this is more like a three-year
Starting point is 00:49:46 vision than right a in six months i can fix this if they made it easier to manage and deal with tags then it would be very simple for us to generate a change log on the fly based on the git tags and that would be to me the best possible paradigm because now instead of managing this file you could have any service parse your Git tags and generate a change log on their own and display it the way they want. And it would be portable by virtue of being in your Git history. Yeah, the only time it would be lost
Starting point is 00:50:18 is if someone downloaded a bundle of your files or something. Right. Without the Git hidden directory. Let's say you could have a little generator, whatever your make tool is to make your release, you could have it just actually dump an actual changelog file, and that would be really cool.
Starting point is 00:50:37 We've got to find a way. And I'm glad you're on this mission because you seem very passionate about it, plus I don't think we got this in the show, but you're into linguistics, so you seem like you've got some passion around the right words to say in the right ways. That's why you use the word notable, not just important or something like that.
Starting point is 00:50:53 I think notable is an even more clarifying word to what you should put in your change log. To close the show out, though, we always ask a couple of cool questions, which we tend to get some neat answers to, so we're hoping that you deliver here as well. But Jared and I both and the listeners are also wondering, too, but who is your programming hero? See, I've thought a lot about this question because you sent me that a little earlier and um i think it's not really so much programming as just the way to think of
Starting point is 00:51:28 what's the smallest thing i can do that can have the greatest impact right now my hero is aaron swartz uh just because uh through him there's so much great change and important chain has been affected uh and i hope i'm using affected right because if I'm calling myself a linguist, I guess that would be terrible. But he's – if you guys know, he sadly killed himself I think last year while he was being investigated by the FBI and through basically just this assorted affair of just trying to release information that the public owns and should have access to.
Starting point is 00:52:07 So research, basically, to all the public research that is funded by the American government and you, your tax dollars. Being French, it's weird for me to care about this, but there's even less care in France for that. So to me, people like him, I don't want martyrs. I want people like him who just passionately try to make things right and don't accept that because it's the way it is, then it should stay the way it is. Like when people say, oh, it's the law, it doesn't mean you have to break it, but that doesn't mean you can't change it.
Starting point is 00:52:41 If there's a bad law or Congress is trying to make the internet less good, then maybe you should do something about it and could start with a tiny little thing. If you help bolster the open source community by making an open source project that allows for people to seek campaign contributions, or I have a friend called Tim Faust, and he's this crazy, super Excel genius guy,
Starting point is 00:53:10 and he's currently parsing through the Texas, I think, gubernatorial, or one of those, like basically the campaign spending on each parties to see what parties waste money on, which is super important information. So it's basically civic hacking type stuff. And yeah, people like that inspire me a lot. Beyond technical, it's just like,
Starting point is 00:53:33 okay, so why are you doing this? What is your purpose? Because your technical prowess is great. And he created RSS. I think it's nice when you marry those two, right? The socially aware to the technically capable, you know? Right. And that's...
Starting point is 00:53:48 A lot of people really, you know, were behind his... I mean, he was a big proponent of, like, the free internet and the freedom in internet of this, you know, of our data, data security, data portability. So I think he kind of stood for a lot of that, and I can totally see why you feel that way. Yeah.
Starting point is 00:54:06 So I recommend anybody listening to this, try to get a copy or see The Internet's Own Boy, which is a documentary that was made about him. And it's very sad. You will cry. There's no way you can come out of this like, yay. But it might actually spark some, you know uh care for you and and just it doesn't have to be as epic or as dangerous as some of these things are it could be something simple like this so yeah that's my that's my hero we'll put uh we'll put a link out to Aaron and then we also linked out to the video you're talking about it was was a teaser. It was an interview of him as a teaser to the documentary. We linked that out in the Change Law Week,
Starting point is 00:54:49 their weekly email that we were sending regularly. We took a hiatus and we're relaunching it. So if you're sending us hate mail, I'm going to keep ignoring it for the next few weeks and then I'll let you know what's going to happen with it. But we linked out to that video because, like you said, it's pretty powerful. And I think it's important to just be mindful of at least what his life represented and then what internet freedom is for us. Because I think he really – he was the cheerleader, so to speak, for that. Is it the SOPA video? I believe so, yeah. It was – I think he was at a conference and he was being interviewed and it was sort of like happenstance. But the questions and the interview I think was just – I can't recall the scenario, but it was a trailer for that documentary you mentioned.
Starting point is 00:55:36 Yeah, it's basically the story of how they destroy SOPA by just working hard and he just basically ranted about what's in a good way obviously sometimes the word rant can be used in a bad way but in a good way he was ranting about his beliefs on why we should care about this and why it's important and sometimes people just are oblivious to things and they just don't see and then you got the one outlier that's like whoa hang on a second there's
Starting point is 00:56:00 bright spots here no one's paying attention to and here's what they mean for us 10 or 5 years from now and I think that's a really important you know internet freedom is is important to give you a quick uh person to admire that is sadly not dead that hopefully not dead uh larry lessig that's weird that was backwards let me just we got a linguist on the call that said he's... I'm just kidding. So, Lawrence Lessig was a mentor of Aaron Swartz, and he's currently running a campaign called May 5th, or I forget the total name of it, but it's basically he wants to create a super PAC to stop
Starting point is 00:56:39 and basically disable super PACs. So, super PACs being big political action committees that can raise tons of money, even though basically skirting campaign contribution laws in the US, which is also a problem anywhere else. Like there's tons of issues with campaign contribution. Basically, if you have money, you can buy enough stuff so that you can get your friends elected to do things like,
Starting point is 00:57:03 say, internet neutrality. Not necessarily that important. So things like that. He's a great example of the kind of spirit of Tim Berners-Lee, Aaron Swartz, Lawrence Lessig. Boom. I got three for you. Well, those are
Starting point is 00:57:20 good heroes. We'll put links in the show. So for those of you who those may be new names for you, a couple of them are for me, at least one of them. The last one you mentioned.. We'll put links in the show notes. So for those of you, those may be new names for you. A couple of them are for me, at least one of them, the last one you mentioned. So I'll put notes in the show notes for that. Another question I'd like to ask is what's a call to arms? For this project, we talked quite a bit about the importance of keeping a change log and what that means and what you put in there and what you don't put in there in the right format and the markdown and all these different notes of this but you know what is the overarching call to arms right now for keep a change log if you're gonna make a change keep it i was that
Starting point is 00:57:54 just came to me as you were talking so if you're going to try to make things better because open source developers generally kind of have this urge to some of them change the world i'm like okay well what if you make it a little better first before you want to change it uh because change the world it doesn't have a clear angle it's like what are you changing it to is it bad or is it good so what if you fix a little problem and then another and then another and when when you do that, remember that other people can help you and that you're not this island. So I think shields for me was the best example of that. I was this island. I was, it was one in the morning with like 11 PM and I was pissed off. And I thought this, I was the only person who cared and I wasn't. And because I documented my project, because I spoke
Starting point is 00:58:41 about it, because I talked about it with friends, people came in and they, they multiplied my, you know, the, the lever effect, basically that it's just, I was this one guy at the end of a huge stick in a boulder. And then a bunch of people showed up and we just like lifted this gigantic boulder out of nowhere. And this is why I'm so excited about open source in general. It's just like source in general if you care if you pay attention to the details that you think maybe won't matter then people will come and help you and make what you're trying to do even more powerful and impactful so I hope people can take that out of that awesome
Starting point is 00:59:19 our next question, our last question if you weren't doing what you're doing now which is working at code school and podcasting and your open source contributions, if you weren't doing all that, what would you be doing? Photography. So I started, I sold my camera when I was getting into programming a lot because I had so much stuff to learn and so much money to spend elsewhere. I sold all my rigs and I had, I've been taking photos since my mom, I think, had a camera when I had so much stuff to learn and so much money to spend elsewhere that I sold all my rigs and I had I've been taking photos since my mom I think had a camera when I was a kid and I
Starting point is 00:59:50 and I've always loved taking pictures of landscapes and stuff like that but recently I purchased a Sony RX1R which has blown my mind it's a full frame small format non interchangeable lens camera.
Starting point is 01:00:05 So you can't pop it off and put another lens in, but it's a 35 millimeter great camera, full frame and everything. And I've started doing a thing that I've been terrible at all my life is trying to take pictures of people. So trying to take portraits of people and try to capture not their good angle, not their sexy looks, not their, I don't know. But trying to capture their essence and try to see,
Starting point is 01:00:29 if I show this picture to somebody else, if I put it on Facebook, for instance, will the people who know this person say, this is so you? And it's a completely different kind of creativity thing that you have to do in your head to figure that out because you have to talk to people. And I think that's actually really helpful for open source and we're just programming in general because we tend to do that in a slightly in a vacuum that having to uh either either trick people into trusting you or like having people trust you enough to get close to them and take
Starting point is 01:01:02 a picture of them and have them be genuine to you that's it's really really exciting i've been doing that so i've had this i think instagram thing i hope i wish instagram had public okay big rant if anybody who knows anybody at instagram okay they have tags they have these like hashtags and none of them are available on the internet you can see my profile on instagram.com slash me and you'll see them and you can find them, but you can't have a hard like permalink to, and it's not public data.
Starting point is 01:01:32 I know they own it, but please someone on Instagram make those tags public because sure there's some really crappy ones, but there's something great called People of Orlando. So I'm, that Kutzko's in Orlando and I used to live in Orlando and there's so many great people,
Starting point is 01:01:47 so much crap from being in Florida, of course, but there's so many great people and there's this photographer called Patrick Chin that started this thing where he basically goes up to people
Starting point is 01:01:56 and asks them about their life, their story, and then takes a picture and he tells that story on Instagram, which I think, I think a really cool thing that a lot of people do in other cities, but they're strangers.
Starting point is 01:02:06 He's never met them, and they all have great stories. So that's what I'm trying to do, basically. I'm just checking out their API docs while you're talking, because I'm thinking, man, you've got to be able to get them somehow. And there's definitely tag endpoints
Starting point is 01:02:18 in the Instagram API, so someone could build this. But you have to be authed. So I think Staticram, or whatever Staticram is now called, you can see tags, but you have to be authenticated as yourself. It's not a public endpoint, I think. That might be the problem. Anytime I get interested in something new, too.
Starting point is 01:02:35 So let me give you a half a second, I guess my half a minute rant. Like for a bit there, I was like really into learning about drones, right? So you got the Phantom 2 and you got several others. And it's really easy to kind of dig deep into what's the pulse of something going on visually and even like I guess the 10-second video they offer by just kind of browsing tags on Instagram. You know, droning, Phantom 2, pick your name. Like even if you're somebody who's an audio geek researching a new mic, you can go on there and see like bourbons if you're into bourbon, mics if you're into mics. And just kind of like look at the tags and get a snapshot of what the community around that interest is doing, saying, using, how it looks in their environment. I make product decisions sometimes based on what I see people using. I mean, I'm a foodie.
Starting point is 01:03:28 I go to restaurants, and I do that all the time. I go to the restaurant's Instagram, or I look at their tag, like whatever tag you can find for that restaurant, and I look at the food, and I see how good their presentation is, and I'm like, hmm, I'll go there, because Yelp sucks at that. Their photos are terrible. Yeah. The last question we asked, we do have kind of a – not so much a hard stop.
Starting point is 01:03:47 We just try to keep it to a certain range here so we don't lose people and people don't listen anyways if it's too long, is what would you be doing if you weren't doing what you do? So I guess we really didn't learn much. Adam, I already asked that one, man. Did I miss that? Yeah. Because you do photography. Yeah, yeah. So we just talked about it.
Starting point is 01:04:06 That's how we got onto that topic. Oh, my lord. I stood away for just a quick second and asked Jared to take over, and I totally missed it. So since you're listening live, you'll get this. The people who listen on the podcast will not get that. I will keep my comments to myself and just roll on out. Leave it in. Oh, that's awesome.
Starting point is 01:04:24 Well, you know, it was – in any case, it was a good show. Just roll on out. Leave it in. That's awesome. Well, you know, it was, in any case, it was a good show. I think this is an important topic, so I want to thank you for doing this on the show today. It was a pleasure. Let us know however we can help. You know, we obviously like to keep a change log on our own, so we're definitely into this. You're not fighting the fight alone. To trail off the call, I want to thank three of our sponsors,
Starting point is 01:04:48 Toptile, CodeShip, and Rackspace for helping make this show possible. That's it for this week. We'll be back next week. I think we've got... Justin Searles with Lyman. Yes, yes. I love that guy.
Starting point is 01:05:02 That's actually who you were referencing or who actually put the... Which one was it? He opened the issue about using GitHub's release notes. That's right, yeah. And he uses it for linemen. We'll probably extend this conversation a little bit there just because.
Starting point is 01:05:19 That's it for this week. Let's everybody say goodbye. See ya. Goodbye. you

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.