In short
The Changelog: Git with Your Friends (Remastered)
Episode Overview
- Podcast Title: The Changelog: Software Development, Open Source
- Episode Title: Git with Your Friends (Remastered)
- Original Recording Date: February 8, 2023
- Remastered Release: August 2023
- Description: A light-hearted conversation featuring Mat Ryer discussing various Git tooling, sprinkled with laughter, speculations, and even some songs.
Episode Highlights Introduction
- Hosts: Jared, Kyle Galbraith (Depot CEO), and guest Mat Ryer.
- Topics: Discussion revolves around Git tools and the challenges faced in software deployment and debugging.
Key Themes and Discussions GitHub Actions and Depot
- Kyle's Insights:
- GitHub Actions is popular but has significant shortcomings in debugging capabilities.
- Depot aims to improve observability for GitHub Actions, offering uncollapsed job logs, resource metrics, and aids for debugging failed jobs.
- Takeaway: A need exists for better debugging tools within CI providers like GitHub Actions.
Git Tools and Innovations
- Mat Ryer's Contributions:
- Discusses various Git tools and innovations that have emerged.
- Introduces the concept of using visual aids to understand Git repository interactions (e.g., Git heatmap).
The Heatmap Tool
- Functionality:
- Visualizes file changes over time in a Git repository.
- Helps developers see which files are most active and potentially need more testing coverage.
Simulating Git Operations
- Git Simulation Tool:
- Visualizes Git operations safely without affecting the actual repository.
- Provides a dry-run feature but with a more user-friendly interface.
Unpopular Opinions Segment
- Adam's Opinion: Advocates for habit stacking to improve productivity.
- Discussion: Using consistent habits to trigger other positive behaviors.
- Mat's Opinion: Critiques focusing too much on process over solving actual user problems.
- Discussion: Emphasizes the importance of understanding the user and their needs in software development.
- Jared's Opinion: Condemns the use of the term "automagically" in software discussions.
- Discussion: Argues it implies a lack of understanding and clarity in how software functions.
Conclusion
- Encouragement to engage with the Git community and to explore the innovative tools discussed.
- Reminder to support open-source projects and the importance of understanding the software development process.
Key Takeaways
- Observability and diagnostics in GitHub Actions are critical for developers.
- New tools can enhance Git usability through visual aids and simulations.
- Understanding user needs is paramount in the software development process.
- Beware of jargon like "automagically" which can obscure understanding.
Resources
- Depot: [depot.dev](https://depot.dev)
- Auth0: [auth0.com/AI](https://auth0.com/AI)
- CodeRabbit: [coderabbit.ai](https://coderabbit.ai)
Closing Remarks
- Encouragement to leave a review and participate in the Changelog community.
- Teaser for upcoming episodes and themes in software development.
Written by AI. May contain mistakes. Listen to the episode to check what was said.
Transcript
Automatic transcript. May contain errors.0:14Welcome to Changelog and friends, a weekly talk show about Dan Tan. Dan Tan. Dan Tan. Dan Tan. Dan Tan. Dan Tan. Dan. Dan. Dan. Dan. Dan. Dan.ん You might too. Learn more at fly.io. Okay, let's talk.
0:41What's up, friends? I'm here with Kyle Galbraith, co-founder and CEO of Depot. Depot is the only build platform looking to make your builds as fast as possible. But Kyle, this is an issue because GitHub Actions is the number one CI provider out there. but not everyone's a fan. Explain that. I think when you're thinking about GitHub Actions, it's really quite jarring how you can have such a wildly popular CI provider, and yet it's lacking some of the basic functionality or tools that you need to actually be able to debug your builds or deployments. And so back in June, we essentially took a stab at that problem in particular with Depot's GitHub Action Runners.
1:24What we've observed over time is effectively GitHub Actions, when it comes to like actually debugging a build, is pretty much useless. The job logs in GitHub Actions UI is pretty much where your dreams go to die. Like they're collapsed by default. They have no resource metrics. When jobs fail, you're essentially left playing detective, like clicking each little dropdown on each step in your job to figure out like, okay, where did this actually go wrong? And so what we set out to do with our own GitHub Actions observability is essentially you built a real observability solution around GitHub Actions.
1:58Okay, so how does it work? All of the logs by default for a job that runs on a Depot GitHub Action runner, they're uncollapsed. You can search them. You can detect if there's been out-of-memory errors. You can see all of the resource contention that was happening on the runner. So you can see your CPU metrics, your memory metrics, not just at the top-level runner level, but all the way down to the individual processes running on the machine. And so for us, this is our take on the first step forward of actually building a real observability solution around GitHub Actions so that developers have real debugging tools to figure out what's going on in their builds.
2:34Okay, friends, you can learn more at depot.dev. Get a free trial, test it out, instantly make your builds faster. So cool. Again, depot.dev.
2:50What up nerds? Jared here, bringing you a remaster during these dog days of August. This episode was originally recorded back in February of 2023 when Changelog and Friends was just a twinkle in our eye. In fact, this episode was the proof of concept for the format, so we are bringing it to the Friends feed as a remaster and for the first time ever in video on YouTube so you can see all the ridiculous faces that Matt makes along the way. Okay, let's Git with our friends. Recently, we've been overwhelmed by a lot of the crazy, super cool tools, innovation, and just stuff that people have been doing in and around Git, whether it's the Git project itself or tooling built around it.
3:31It feels like there's something new every single week in Changedog News. So we thought we'd get together with our friend, Matt Ryer, who also happens to be a co-host of the GoTime podcast and of Grafana's Big Tent podcast, which is an award-winning podcast. It is. Yeah, even though GoTime is an award-worthy podcast. And we thought we would just introduce some of these tools and ideas to everyone and just talk about them. So, Matt, thanks for being here. Oh, thank you very much. I use Git a lot, so I'm very keen to learn more about this. Would you say daily or weekly? It depends if it's every day or every week.
4:11Okay, explain. Well, if you want to say something happens once a day, you'd say daily. But if it only happens once every seven days, I'd probably opt for weekly. So is it daily or is it bi-weekly? One more time. Is it daily or is bi-weekly? Sorry, that should have been clear. Not at the same time. Gotcha. Well, the confusing one is bi-weekly. Yes. Because that can both mean twice a week and once every other week. Two different meanings. Who invented that phrase? Yeah, it's not good, is it? We have Fortnitely as well. I like Fortnite. I like the game with the phrase. The game kind of soiled the phrase, if you ask me, the word.
4:50Yeah. Because now there's two contexts. Yeah, Quake did that to me. I used to love Quakes. And then... Like Earthquakes? And now you're like, is it a game? It's like the oldest game in the world, though, isn't it? It's right up there with... dude noob on yeah we used to play on uh like in school we had a LAN party and Quake 2 was the game we played and then I used to make levels with my brother using world craft uh 3d world builder thing and it was so much fun yeah to be able to like build levels and then play them with your mates was just good you believe you could do that these LAN parties did you take a router with you or a router with you and did you pick up your entire gigantic tower pc and take it with you describe yeah well luckily these were in the school library so okay um yeah because we didn't yeah you wouldn't move your computer around back then it's not like now with your phone like you know can't you can't really believe the internet is your land yeah exactly so cloud that would be dangerous if the whole air net was all on one land wouldn't we be pretty exposed well yeah yeah Yeah, for sure.
6:05Nats are nice. Yeah. Again, two contexts for nats, especially when you're just saying the word out loud. Yeah. Let's loop back to Git. How often do you use Git, Matt? Daily or weekly. Well, this is interesting because you haven't been coding this much lately. This is a change for you. Don't ask him, Jared. Maybe not recently. Well, no offense. I want to ask him for permission first. No offense. Is that private information that you're more of a leader now? Well, I'm hoping to get one day promoted back to being an IC so I can do work again.
6:41Yeah, so I don't use Git. But honestly, I kind of like Git was always really complicated to me. And I was like, oh, there's so much you can do. And it's really quite complicated. So I try to always just use the absolute minimum that I could get away with with it. And so that's why I quite liked Git flow that used to give you like that. a workflow where you could you know give you a reason to create a branch you do your work and you merge it back in and um yeah so i always would err on the side of keeping it as simple as possible because there's so much you can do with git and so we're going to talk through some of these tools and as we go one of the things that's interesting to me obviously not do you use these tools because you know unlikely because there's so many things and you like to keep it simple but having looked at it, seeing what it does, thought about it a little bit, like are these things that we, you, me, Adam might adopt, might try, or is it just a cool kind of triviality that's neat to look at and then move on?
7:40So let's, let's dive into it a little bit. Let's look at the first one, which it's got that visual aid, it's called get heat map. And this, this immediately reminded me of like daisy disk or these tools where they they search your hard disk and they show you where the big files are and they kind of put a map out of wherever the big files are where most of your storage is across the the span of your disk only this is doing it on your git repo is it still file size that it's representing? It's based on diff activity. So it's using, like, it's showing you kind of like, what do you call it? Lines of code that churn a lot or like the hot files.
8:27So it's based on the history. And you can also do it to limit to certain users and stuff in the history. So the example that is out there in the image that's provided is on CPython, which is a you know a project that has a long history of commits and it's highlighting the files that guido van rossam changed the most and so it shows you a layout of that and like you know bright red is obviously the hottest which is configure and then the doc folder and then test and lib so some of these things are kind of i don't know they're the ones that you would guess but i wonder if there's actually insights that you'd find like holy cow this particular file which i found over time in certain repos there's like certain files that are the really active ones and lots of people touching that file and there's other ones that you know actually config is kind of surprising to me but maybe inside python it's different than what i'm thinking of so you've got the you've got two dimensions here though you've got the size of the box and you've also got the color of how red it is So do we know what they are?
9:35What's the size mean? And versus the, you know, the color's obviously the most changed, I guess. But what makes something bigger or smaller? Or is it also just the same thing? It might be by the look of it. Well, it says you can choose the hue that you want the chart to use for highlighting. Highlighting what? That's probably like the size of the, maybe the activity. Maybe this is something you can actually fine tune what it actually is representing. I find tools like this are like, exactly, how do you use them? What makes them insightful? Like, is it an individual using it? Is it an engineering manager sort of looking at, you know, to sort of get, because they're less in the code.
10:13Maybe you can speak to this, Matt, because you're less in the code lately. You're less in the details. And so maybe use something like this as a way to sort of like grok the bigger picture, you know. Or maybe this is great for a presentation to, you know, the Linux kernel, for example. And you're at Linux Conf. if I don't even know that's a real thing or not, but like some sort of conference focused on Linux. Like how fast is Linux moving? What is changing within the Linux kernel? Who's doing it, et cetera. Yeah, I can't imagine the amount of stress that goes on trying to do the presentations at LinuxConf though, like trying to just connect to the projectors with Linux machines.
10:47No thanks. But yeah, it's an absolute shame. We have to use the non-free packages and whatnot to do that. So that may be against the rules to the conference even. Like, yeah, somebody is like a super free software person. They're like, no way, man. Yeah, I'm going to use it. I went to Fosdem recently and that's obviously open source. They're kind of allergic to having anything that's not open source focused, of course, there. But it's pretty nice. But one use case I could think for the Git heat map is to make sure that you are you have good test coverage on the things that are changing the most.
11:22Because in a way, that's where you need more stability. right that where the way you're changing the most so i feel like a kind of mashup of that and test coverage could be very useful to see are we definitely covering these things that we are editing all the time yeah maybe i can also see it when you're coming to a new project that's existed for a long time and you're just trying to familiarize yourself with the project who's working on what yeah and which files are working on the most so i did look up the way that this thing works. And so it's a two-step process. So it basically scans through the entire git history using git log.
12:00And it takes that history and compiles a few database tables, which tracks files, commits, the author, and then the relationships between those things. And then the second step is taking that database, querying it to create the tree map. And the query is based on both the size of the file and then the total number of changes to the file so there's your two dimensions and so the color i think is based on how hot it is meaning how often it changes and you can limit that to certain authors like i said and the size of it in the actual tree map is how big the file is or the folder structure is i think i would only use it in that context context as i If I'm new to a team and I have a repo, maybe it has years of history, I want to quickly familiarize myself with it.
12:51Running the test is a good first start. And then maybe just throwing this thing in there, depending on how long it takes to operate, you can get a tree map real quick. I know I've also done like CLOC, C-O-L-O-C, count the lines of code. And that will spit out kind of a report on a project of how many lines of code there are in each kind of programming language, it's like how much HTML there is, how much CSS, how much is Python. And that also helps you familiarize yourself pretty quickly. Other than that, it just looks cool. And so it's probably fun to build. So on that then, how do you feel about the fact that it looks cool?
13:30Is that a good enough reason for you to have it in? Because to be honest, although it's maybe even if it was just an aesthetic thing, I feel like sometimes that's okay. It's like, no, this is nice to look. it's nice to have we we think it's cool if we i don't know we kind of like it we feel good about it is that a good enough reason jared or you're like no give me facts that's good enough for me i mean i put it on changelog news i'm like this thing's cool you know sometimes it's just like surely this person by the way uh written by jonathan forsyth so shout out to jonathan well done jonathan he's probably just you know scratches on itch he probably thought this doesn't exist it would be cool i always do enjoy popping open daisy disk or clean my mac x or whatever and seeing that layout of my system's hard drive and like where the big files are yeah and so it's like well can i take that idea and apply it to get it's cool yeah it's definitely cool i also do like doing that with daisy disk in fact i found lots of big audio files which were when we record these podcasts, we record our own audio locally.
14:33So I have lots of audio files of just my side of the conversation. Unfortunately, they also somehow make it into my iTunes. And so sometimes when I'm shuffling music, like I might be, I might be in the bath and I've got music on and then it's playing music and then it comes to one of these tracks and it's just my side of a conversation. And I just have to have like a greatest hits album. that ryer's greatest hiss right just talks just talks to himself because you know there's this interesting phenomenon now i don't know if you guys have been out on the streets at all but when you're out on the streets you know people just talk into the air and when they do it now you can no longer assume that they have some sort of a mental disorder or a problem right because a lot of times they're actually have like you know the tiniest little ear pod in that's right or something and they're not just being insane they're actually just having a conversation on the phone or something.
15:26And it's really strange. Yeah. This, this actually is really good for me because I am the person that walks around just saying things out loud. And I don't sometimes think like, sometimes like if I'm going to have a difficult conversation, I'll sort of like run it over in my head. And sometimes I'll say it out loud. And I've noticed a couple of times people looking and then I just like slowly put my hand up to my ear and just say, okay, thank you. Bye. And pretend I was on the phone. That's a pro tip right there. Yeah. That This is a pro tip. I like that. Good luck. A little speck of brain science for you.
16:00It is totally okay to talk to yourself, even out loud. In public? Yeah. Well, I mean, there's etiquette. So, I mean, pick your place. But you are not suffering from sort of any mental condition if you talk to yourself. Now, there are certain circumstances where it goes too far. But any normal person who speaks out loud to themselves, it's just a way that you sometimes process your thinking. Everybody's different with how they think. And so you may be a person who thinks out loud and has to say it out loud to really believe it's fact. And so I'm here to tell you it's okay. And I don't disagree with that, but I'm here to tell you that when you do it in public places, that you look like you're insane.
16:37Truth. Truth. Okay. And then you just say goodbye and you put your finger up to your ear and you look totally normal again. So I learned that today. That is a good pro tip, Matt. One thing I'm noticing is the time to generate the database. Linux is one of the repositories. CPython was one of the repositories used. And the commits on these repos are tremendous. I mean, more than a million on Linux, a little over 100 ,000 on CPython, and they timed to generate the git log, the git log size. And one of the things that Jonathan mentions is wanted features, which I think is pretty cool. It's like, obviously, faster database generations in there, sub-module tracking, rendering filters other things i think this is a it's one of those things you're like should this be in git probably not right like you don't want git to be money with like this kind of feature so this lives in userland and is this the best one in userland and if so like how does this kind of thing get support you know to like not die yeah i mean i think it's the only one i've ever seen i'm not saying it's the only one in user land i think with typical open source don't you just have to like inspire people to collaborate with you like it has to be interesting or good enough to get that grassroots support of like yeah sub-module tracking would be amazing i tried this my project has sub-modules and it completely ignores them but a lot of the stuff is in there so i would love to have that how can i help out i think that i mean that there's really no other way that these kind of projects which really are kind of like scratching an itch little there's no business around this like this is a small scoped thing that can really get support unless you inspire other people to just want more from it and then they help out yeah but look at daisy disc i mean that's i think a paid app or it has at least paid features doesn't it so yeah if there is a real business use case out of something like this then yeah maybe it does have a potential future but i kind of love that it's play it's like we play a lot and then sometimes there's opportunities that come out of that play.
18:46And this is the thing a lot of software teams forget about, I think. They get very serious and everything's sort of, you know, and you forget that actually, you know, you've got to be able to be creative and just try things and do things because you want to, or you just think it's cool. Just thinking something's cool is a great reason. If someone on one of my teams comes and says, I've got this idea, I don't know where it fits or anything. I just think it's cool. that's really compelling for me especially because they're so motivated to actually do it right it's harder than the other way around you going to them and saying you know what would be cool and then you telling them and they're like okay i'll do it because matt wants me to but sure less likely sure that's cool granddad they just think i'm their granddad right yeah and i haven't even got any kids so how can i be their granddad so i mean think inquiring minds want to know matt they do want to know yeah you can't do it i think that's a great point though the play aspect because a lot of things happen when you do play i mean obviously your mind is different it's in a different mode you know like sometimes you're as you said before wow that was actually i'm gonna be outing your your potential unpopular opinion i won't say it but um you know when you make a plan and it can be too rigid so i'm dropping hints there you know i'm not gonna ruin it okay you know when you play there's freedom right there's no constraints there's no guard rails necessarily it's like where can i go where can i explore what should i do and then you know maybe out of it comes fruits and maybe that can be a business if you really wanted to be but i mean i think there's examples of like large you know things in our world like flicker i think was a game at first before it was like the photo sharing you know 1.0 version of instagram was supposed to be a communication tool while they built a game.
20:40See? Same team. They were just playing. Are they ever going to make that game? Probably not. It's done. They're making very successful companies. They've let it go. But they may play The Sims, which is a good transition to simulating, which I think is pretty cool. This has actually sparked my interest because I was like, I love to have permission to mess up and get sim as the next one. visually simulate get operations in your own repos and i think that's pretty cool because you can think like what would happen if i branch what would happen if this happened here you know what would happen if i rebase that over here and it's like you you can sort of like have this fictitious world this potential future and just erase it but isn't that kind of like it does anyways but this gives it to you visually that's the difference yeah this visualizes it for you so you can understand what's gonna happen and also it's completely safe like it's with git you know that 99 of the time it's in there right like no matter what you do there are circumstances where you can lose data but most of the time even if you thought you've lost something it's in there because of the way it works but you have to find out how to get it back right and that's like a huge times sync right and can be very anxiety dangerous like it's like it's like running in production yeah but with this not only does it visualize it for you which is super cool but it also never does it right so it's it's it's kind of like a dry run in that way um the author of it did describe why it's better than dry runs but i've lost the blog post all i have is the repo I do a lot of r-syncing on my network.
22:23And in some cases, I do deletion through r-sync. You do a lot of r-sync. r-syncing. r-sync. Is that like tattoos on people's back-ars? Sure, sure. r-syncing. Yeah. r-syncing. Nice. Touche. Is this a hobby, or are you trying to get a new gig going? None of the above. None of the above. Can you do me right? Let's go to the flag I'm going to mention here, okay? So when you are sync, it's like, well, especially if you're going to delete, you're moving data to or fro from a place. And it's like, well, I can use dash N and just kind of see what it might do. And it will go and do that whole thing. And that's my favorite thing.
23:05Especially with that kind of dangerous tool, you need sort of a simulation zone so that you can simulate. Yeah. So this is interesting. like could you have this tool but for real as well what what like well once you do the tool then then you then you do it for real or you mean well i guess it as it goes is your question matt simulate it like the results and just say okay do it button yeah i guess is that what you're saying yeah yeah it's like commit it's like yeah that looks good yeah what's good probably it can so i did find the part where it says you know why aren't dry runs good enough because git does have a dry run feature which is like the rsync one that you described yeah true we're able to just tell you what it's going to do and the author of this which we should are sinking matt yeah i can't unharry now i know i do a lot of r sinking here on my land i'm picturing you know a tattoo artist are sinking yeah um so this tool by jacob stopak from the initial commit team, which is a team that does Git things.
24:12And he writes that there's a dry run flag in Git, which is dash N also. So maybe that's a standard or at least an idiom. It enables you to get some idea of how the command will affect the state of the repository. But he says these commands can be useful, but not all Git commands have them. So Git has all these subcommands and they don't all have dry runs. And he says, and the purely text-based output can be quite sparse as is typical of Git's command line interface. Moreover, many people out there are visual learners and could benefit greatly from a visual approach to simulating the impact of a Git command before running it.
24:48So imagine this tool, GitSim, as if it's a dry run that has complete coverage of the subcommands and visualizes it for you. Maybe, you know, this one I could argue, put it in the Git. Like, this is a better user experience for dry runs. Yeah, this would be very useful. probably would satisfy some of my fears here around Git commands just being too complicated, and I don't really have the confidence that I really know what it's going to do, because it's very abstract and can be quite surprising, the effects if you're not really au fait with Git. And this would give a level of confidence for sure.
25:29It'd be like, okay, so you've typed this in, and here's a picture. is this is this what you meant and you're like no absolutely not you've just saved me a lot of embarrassment thank you yeah we'll do the way around the dash dash animate is a pretty cool flag too like it animates what's going to happen like a presentation yeah that's pretty cool it looks good too they have gifs on the i don't know they might not be gifs actually but they have video animations on there um i just don't want to get letters of people saying that's not a gif he doesn't know what you pronounce it right good point so points for that thanks gerard seems to be a dot m uh dot mp4 just to be clear matt thank you we don't we have to be a bit pedantic because i do i do get letters when i say sometimes i'll say something like just being silly oh it's lots of them in different orders depending on what they want to write okay yeah Would you say you get those daily or weekly?
26:28Yeah, I would. I would say that. I wouldn't say moreover. Someone said moreover earlier. I don't think I've ever said. I was reading verbatim from a blog post. So you can take that up with Jacob Stovak. I'll let him know. Jason, just come here, Jason. Jacob. Jacob. Sorry, Jacob. All right, so that sentence had a bug in it, which leads us to our next tool, Gitbug. Oh, these links are brilliant. This is professional. Yeah, really working with pros here today. Yeah. This one, I absolutely love this concept. So Git bug written by Michael Muray, I think is how you pronounce his name. Basically, he's got a bug tracker in Git.
27:09It's fully embedded in Git. You only need your Git repo to have a bug tracker. So anywhere your repo goes, the bugs are right there. Works offline. No vendor lock-in. It's fast. I'm just reading his bullet points now. It doesn't pollute your project. It integrates with your tooling. Need a workflow. So that's what's cool about it is it bridges over to GitHub issues, to GitLab, whatever they call their issues, to Jira, if you're in hell already. Oh, boy. Jeez, Jared. Sorry. No. Say it like you feel it, man. Say it like you feel it. No, I've never liked that tool. I don't know anybody who does. I feel sorry for people building it.
27:50Send Matt a letter. Oh, yeah. Please. If you love Jira, let Matt know. Send it to Jason. He doesn't exist. I got his name wrong. But this is really cool. I mean, how do you track your bugs, Matt? I just don't write any. That's kind of the way I do it. Oh, that's clever. How do you do it? In Git. Sorry, in GitHub as issues. But actually having it in Git, and I assume there's like, it's a text file or something or some data file where they store this. And what's quite nice about this, I guess, is with a commit, you can also fix the bug and then that all gets pushed at the same time and because it's in the actual it's because it's in git it's always correct if you go back and check out an old branch you'll see the bugs that exist for that old well you know previous commit you'll see the bugs that existed at that time so i think that's really clever yeah it's super cool the way this built out it like models gets way of working uh it works like git works it's just inside of your git repo it has a cli so you interact with it from your cli both adding bugs reading bugs etc yeah and then it also has a little web ui built in that you can launch and just run locally which kind of gives it a github style issues list with filters and open and closed and i don't know i'm I'm pretty impressed by this tool, actually.
29:13I think Michael did a really good job with it. What about tracking in production, though? How does that happen? Like, where does it get the reports? Oh, error tracking? Yeah, like, is a bug an error? I mean, it's kind of like the same world, isn't it? No. Bug tracker, error tracker? Not really. How do you do it, Matt, over there in Grafana? Well, I was going to say, like, if there's an error or a bug or whatever, you just open it and, I guess, commit it, right? It exists at that point in the code base. Well, think about our error tracker, Adam, in Sentry. There's a ton of errors in there. And some of them turn into bugs that we open on GitHub issues.
29:54But if every error turned into a bug, then my no bugs command would be way off. There's so many errors. And thousands of errors can represent the same code deficiency as well. Well, one important thing that you do, though, with that is like you track commits to deploys to errors and I guess to bugs and I think I'm just wondering if you have that full circle there that comprehensive look because it seems it could be one-sided unless it gets that sort of like other source of truth right I'm not following say it again in different words make it mean a different thing as well if you can at grafana we do we have error budgets actually so this is a concept that uh okay if anyone's not familiar with it you really should be because it's so good it's basically like we're allowed to have a certain amount of errors and i've worked at a place before where we had a sort of non-technical that's the politest way i could say it as a non-technical cto um it's an idiot essentially and he said no shouldn't be any errors like why are there errors why are there bugs you shouldn't have any bugs and no errors right genuinely that was his position and neither of either okay yeah and like okay sure uh it's almost like you don't really know what you're talking about frankly if that's your position um and so in the real world errors happen all the time and you're allowed a certain level a certain budget that you can spend and that means you can be creative and flexible and do things and make mistakes so you have the flexibility to within within the slo thresholds yeah exactly you're allowed to take some risks because if you if you're too if you really don't want anything to ever break ever you have to do a lot more work and you can be a lot more free if you're allowed for there to be some errors as long as you jump on it and fix them when they happen um and so error budget how are those measured is it like errors per lines or is errors per week or how does that it'll be out yeah it'll be like failed like http requests depending on what it is so it's like a certain number of those could fail before i see um yeah before you've you consider you've got a problem a threshold sure yeah that is a cool idea i think the same applies realistic too right like it just accounts for reality and lets you move forward while still maintaining and not letting it get out of hand which is what you're trying to really fight against is like, are you saying GIT get out of hand or GET get out of hand?
32:27That's open interpretation. Okay. Well, that's the thing. Not in my accent. It's not because they're very different when I pronounce those two words. And I think, I think it's, I think the GIT, the, the, that project is a play on words in a U S accent. I think it's, it's like get, but it's like, isn't it? No, no. Is it not? No, it's good. It's good. What do you mean? No, it's because Linus wanted to make the joke on the term that it's a tool for gets. Like, isn't get kind of a pejorative? Yeah. Over there? Is that what it was? He pretty much said that, that it was supposed to be, I can pull up the quote.
33:05Oh. I thought it was like in a Texan accent. It was just like someone saying get. You want to hear something funny? Yeah. Adam is what I'm going to say. I'm a transplant Texan, okay? I wasn't born here. Now, I knew a guy, okay? I still know the guy, but I knew a guy. He was describing the parade going through downtown, and he was telling me that it was going Dan Tan. Okay? That's cool. And I'm serious with you. Okay, this is when I first moved here, so I had an excuse. And I was like, what are you talking about? What is Dan Tan? He's like, Dan. He kept saying it. It got louder. Dan Tan. Dan Tan.
33:44I'm like, can you please explain in different words? and he finally says downtown. I'm like, you can't say it. You can say downtown. Seriously, man, like Dan Tan for like three minutes here and I'm asking you, what are you talking about? I have the final word here and this is hilarious because it shows how small of a world it is. I googled it. Technically, duck, duck, goad it. If that's a thing. You duck, duck, went. I went there. And I found how git got its name and this article this historical article is written by none other than Jacob Stopak from Initial Commit yes he wrote this Jason is back he's done all this history here and he says when Linus Torvalds made his initial commit of Git April 7th 2005 he supplied this message initial revision of Git the information manager from hell that's the subject and then he provides the the deeper cut in the content yeah what do you call it the body the body of the commit message yeah sure it says get the stupid content tracker get can mean anything depending on your mood uh one random three-letter combination that is pronounceable and not actually used by any common unix command the fact that it is a mispronunciation of get may or may not be relevant hello it may not be relevant matt but it may be uh two stupid contemptible and despicable simple take your pick from the dictionary of slang amazing three global information tracker so it could be an acronym you're in a good mood and it actually works for you angels sing and a light suddenly fills the room and the fourth one oh i can't actually say the fourth one.
35:36We'll have to bleep it out like crazy. Beep. You have to look that one up, friends. He says, this is a stupid but extremely fast directory content manager. It doesn't do a whole lot, but what it does do is track directory contents efficiently. So there you have it. From the horse's mouth, the slang get may or may not be relevant. Wow. Okay, good. Yeah. Thank you. So thanks for that, Jason. Oh. I wonder what Dan Tan would think of that. Dan Tan. Hey, Dan, have you seen this? You're going to love it. Yeah, for example. That's pretty good. My other friend, I'll give you one more. My other friend, I like you just admit you've only got two.
Read the full transcript
36:20That's my other friend. My other friend. Wow. He also had an experience on his first entry upon Texas. He came from Montana. Okay. Now, Montana is, you know, Montana, as you may know. Is it? Now, he drove into town, and there was somebody power washing something at the gas station. And when he drove over the power wash, do you know what a power washer is, everybody? Yeah. Just confirming. I feel like I do. Power washer. He's power washing, you know, whatever it might be. And there's a lot of pressure in that line. And this person drives over the power washer's hose. And the guy yells at him. He says, there's 5 ,000 PSI in there, man.
37:03It'll blow up.
37:07To this day. Yeah, it's done. That's 5 ,000 PSI in there, man. It'll blow up. That's what he said. What is it? Like as if you drove over this pressure washer's hose because it had such pressure, it would blow up. That's a public service announcement if you ask me. Just so you know. No, it did not blow up. To this day, we laugh at that. Why is that? so the power you can cut this bit out but i just want to know just for my own sanity i'm gonna tell you why yeah because that was the first experience it wasn't like hey welcome to texas that's 5 000 psi it'll blow up okay it wasn't hello welcome good to see you get your gas here come get some snacks inside or whatever it was that's 5 000 psi it'll blow up i'm over here wondering how many times you can get him to say that two more times two more times i will say it on command of the future too amazing let's say do the bit i'll just do it well speaking of blowing up this git ui project sure is blowing up on the scene okay what is git ui git ui is a blazing fast terminal ui for git and it's written in rust which brings me to a subtopic that I want to ask you about, Matt, soon.
38:22But let's talk about Git UI first. Written by a guy whose handle is extraworst. So he's not just the worst, he's the extraworst. But maybe the sausage kind? It looks versity, doesn't it? It's versed. Extra versed. You know, it's like a normal versed. Yeah, but this is extra versed. So don't worry about it. By the way, I do that German accent to Germans and they go, what's that? it doesn't sound like it doesn't sound german to them no it's so bad that they don't even know yeah whereas everyone else is like oh that's a good german accent so i just think it's not to give it a compliment yeah because i don't know anyways all right so here's uh extraverst's description or why you gotta do it right jerry extraverst matt you want to read this in the german accent for us yeah it's in the doc there the i do i do most of my git work that one i do most of my gets work in a terminal but i frequently find myself using gets guise for some use cases like index commit diff stash blame and log unfortunately a popular gets guise or fail with giant repositories or become unresponsive i've lost the accent become unresponsive it went a bit french it did unfortunately it also sounds like the way you do it it sounds very condescending as well as if the person's like a complete idiot who's saying like you're definitely making fun so we should uh we should leave that in but we should back that out and say we this is totally cool extraverse we don't think that you're the way matt's portraying you right now no i'm just doing my german accent uh extra first well you know we have a we have like a there's a stereotype that german people don't have a good sense of humor and it it's one of those that i don't know where it comes from because every single person i've met from germany has like a extraversed kind of sense of humor like it's uber good i love it so hopefully i can't take it germany will appreciate that yeah but to read it in in terms that we can all understand here he's he does say that a lot of the git guis fail on giant repos and become unresponsive and usable so he built this it's in the terminal would you use it is the question it's written in rust i know matt it's not written in go but would you use it anyways because a lot of us say hey i like to keep it simple i like to stay in my terminal i'm in the same way i'm gonna shout out one you get gui here near the end but mostly i just use the git command line like you do matt but what if you had more at the command line you don't have to leave your terminal and it's not going to choke on you know the Linux repo, for example, would you use this?
41:06Because it looks pretty sweet. Well, I feel like I need to come out now and tell you that I actually use GitHub Desktop. What? You said that you didn't use the terminal. No, no, no. Or did you not say that? Yeah, because it's really complicated. I avoid complicated stuff. Okay. This I like because... Must have misheard you. Yeah, we can go back and check the recording, mate, if you're calling me a liar. Yeah, do that little rewind sound.
41:34hello now i'm back to doing this accent again
41:40but what i like about this is it reminds me of early early computer interfaces like really early ms-dos type i used to do q basic uh when i was a kid and stuff and so it has this real retro feel which I really like. But kudos to writing in Rust because I feel like for the times when you really need performance like this in this sort of case, I think Rust is a great choice. Okay, so you're not offended by that? No, no. Well, friends, I'm here with Damien Shingleman, VP of R &D at Auth0, where he leads the team exploring the future of AI and identity. So cool. So Damien, everyone is building for the direction of Gen.AI.
42:25artificial intelligence, agents, agentic. What is Auth0 doing to make that feature possible? So everyone's building Gen AI apps, Gen AI agents. That's a fact. It's not something that might happen. It's going to happen. And when it does happen, when you are building these things and you need to get them into production, you need security. You need the right guardrails. And identity, essentially authentication, authorization, is a big part of those guardrails. What we're doing at Auth0 is using our 10 plus years of identity developer tooling to make it simple for developers, whether they're working at a Fortune 500 company or they're working just at a startup that right now came out like Combinator, to build these things with SDKs, great documentation, API first types of products and our typical Auth0 DNA.
43:16Friends, it's not if, it's when. It's coming soon. If you're already building for this stuff, then you know. Go to Auth0.com slash AI. Get started and learn more about Auth4GenAI at Auth0.com slash AI. Again, that's Auth0.com slash AI.
43:39So, subtopic then. So language support or languages these tools are written in and therefore distributed in. We have two in Python. That was the heat map and the git sim. This git bug is written in Go. Git UI, written in Rust. The next one we're going to talk about if we get to it, git branch list, also written in Rust. I still can't tell if you're saying get to it or get to it. I mean, you're really getting me here. Did you see that? You're really getting me. you're really getting to me i'm sorry i had to punt it out there that's good fair enough install i think is all that matters right i mean in the end well that's the question for me it is for matt i wonder if you're feeling like maybe russ is starting to eat goes lunch for like command line tools well uh i mean first of all i think like yeah it's about what's the easiest thing to run and if it's python and i've got some weird balked python thing and i have to fix it or something then that's a big barrier for me but if if python's your bread and butter then i feel like that's okay i just i don't use it enough that i have any confidence in it so i do like that you get single binary you do the talking jared can you can you mention pip install your feelings about it yeah if it's pip install for me i just have anxiety even though it works most of the time it's the same way and hey old school rubyist but if if i see your tool and i see it's written in ruby i'm kind of like do i want to mess with this and that's how i am with python as well their stories are just fraught do you not use github then that's ruby in it well i don't mind the website i'm talking about a tool that i'm going to install with dependencies locally yeah i don't have a problem with ruby based things but if you say gem install this tool i'm like you know what i don't really trust my ruby environment over the course of years on my Mac and I'm the same way with Python.
45:35Whereas with Go and with Rust, it seems, and JavaScript's had the same bad story for me, but Dino is actually showing, you know, and with TypeScript is showing some new opportunities to have universal binaries, which is cool. I'm just way more likely to say, if you can just grab a binary, drop it in your path and execute it, I'm like, I will do that a hundred times a day. But if your tool says pip install or it says gem install or says NPM install, I'm kind of like, do I want to mess with this? That's just my sense. Does that resonate with you guys? Especially if you're on Linux proper. If you're on Mac, it's different because you kind of have to use Homebrew or PIP if that's the way you want to go or maybe vanilla straight up Ruby or a binary.
46:18But if it's on Linux, it should be an apt or whatever your flavor would be. Yum or Picker. It should be a package. you know or you should have to update your registry with whatever package directory you want to use and you know app update and get that and install that's my feelings i don't like to pip install anything if i don't have to yeah when i get a new computer which happens more than i can justify i uh i don't like it when i'm the first time i'm forced to just add all these tools to be able to install stuff like i feel like it's a nice clean machine and then and then i hold off and i hold off yeah at least if it's a go binary i can delete the file and it's gone and i know where it is when i install i don't know what happens when i npm install something sometimes i'll do that in the wrong folder and then i get a node modules folder on my desktop which is synced through iCloud so it uses you know what i mean like it could be a can of worms um i like so i am yeah into that simplicity thing but if i'm using if i'm already using that tool chain if it's a tool for say people who are writing node uh then it completely makes sense that it would be written if it's for sure yeah if it's a data tool that's going to be used mostly in python then i think you also can get away with it although you still have the version issues but yeah you can't i mean just a single general purpose tooling that wants to be used by people that are outside your particular ecosystem ideally what should be packaged in a way that we can just you know isolate it install it drop it in our path and execute it and delete it and uninstall it without worrying about it just like spreading files all throughout your desk i remember on windows i used to sometimes like you'd install something and then you're like oh i want to uninstall that and there's no way to obvious way to do it so you google it or you duck duck go it and it's like okay you have to uh you have to remove these files, then go and find these files and remove them.
48:17Then open the registry. If you want to remove these values from the registry, you know, like amazing. It scatters its changes throughout your registry. And you're like, ah, I have one global registry and I don't know all the places that it's been changed. Yeah. Yeah. It was, you actually had to do occasional, just reformat your computer to clean it all. Uh, and, and that used to bother me. I like on a Mac that you applications are mostly contained. inside that single zip. But not entirely though, right? Not entirely, yeah. With the M1, wasn't there more change? Like didn't Homebrew move to the opt directory, I believe, wasn't it?
48:52Oh, yeah. Yep, Homebrew installs into opt now versus user local. And I can't recall why that was, but that was a new change. I'm sure some sort of security enclave reasoning, right? Maybe. It's just challenging, yeah. I mean, you got plists that spread about. You've got something that might be in my application support folder Just, you know, it's, it's a, give me a good self-contained uninstaller with the thing. Please, please give me an eject button, whether it's an application that I, you know, install as a literal Mac app or, you know, a dev tool, give me an uninstall flow that is respects my system.
49:30Cause like, I'm sure you developer developing it care about your, your system, keep it pristine and with reluctance install new things when it's a new machine for sure. yeah i think the only upside of that style is that you do have preferences that persist if you uninstall and then reinstall or upgrade you don't always want that do you exactly but sometimes you're like oh actually oh i don't have to redo this that's nice it has pleasantly surprised me once or twice but most of the time i don't want it i want it to be completely gone yeah sometimes i'll uninstall something because i can't figure out how to change a setting back and then i uninstall it and then they reinstall it and it's just remembered the settings it's right there yeah it's right there for you and i have to like where's the registry is there a registry and that's what i'm on a mac so there isn't another culprit is installing something to dot local in your root directory or your home your your i get yeah your home i guess yeah and not removing it or putting it in like a hidden folder i mean obviously i'm going to do a LL or L depending upon what your flavor of LS you use if you got an alias or what not which I do because I use my ZSH I pay attention to these things I don't like to do LL why two when you just do one?
50:49it's a good question so quickly Matt respond to my second question which was as a gopher as a representative of the Go community do you feel like Rust is encroaching on your previously standalone domain of like these these command line installable tools like there's a lot of new tooling whereas go was like the thing for a little while where it's like and it's written in rust does that does that are you feel intimidated or no no no i remember when go was like becoming that and i would always say at the time like you know write it write it in whatever you want right it's like whatever's the right tool for the job so that's that attitude can't really like don't really deviate from that i think i think go i don't think rust will just defeat go because it's really hard to learn and that that you know that's the trade-off you make it's like much harder to learn much harder to write rust but but the trade-off is you get much more secure much safer execution and you and uh i guess if it compiles you've got a high chance it's going to be correct and so there's like benefits there um but i think yeah i think goes you know it's i don't know if it's just like we'll see how that trends happen it's definitely will there'll be trendy sort of things going around but um i don't know i think they'll coexist basically forever these two fair enough i was hoping for a less reasonable and nuanced position but you know okay so reasonable Okay, well, in that case, I could get my guitar and do an anti-rust song, if you like.
52:25Okay. Yeah. I do. Okay. Oh, we're in for a treat here. Matt has left his chair. His Mac display is tracking him throughout the room. He's back. Yeah, the Mac... He has a guitar. The Mac display is annoying because it follows you around when you move and you sometimes... Yeah, talk about surveillance capitalism, huh? Yeah. I try and sometimes move out of frame to pick my nose and then the blooming camera follows me Because everybody sees it. What's this song called? Anti-Rust song? Yeah, I don't know. I guess... Yeah, I guess so. It's going to be... What key do you want to... Let's call it Rust Away.
53:00Rust Away. Oh, yeah. Okay. Yeah. I should just do it. We can always cut this, can't we? No. It has to go in.
53:15Hey baby, what you typing in? I ain't never seen such crazy things What the heck is all this gonna do? I got some very bad news for you We're gonna rust away Gonna rust away You're gonna rust away
53:55Today
54:00Rust away, Matt Ryan can i critique yeah can i critique i don't want to hurt his feelings no do it because it won't hurt your feelings great so if it was if there was a version two let's say you go away and you think about sleeping or maybe you sleep a little bit and you dream yeah and you think this is actually a hit song i could probably do something with this i would just encourage you to put a little bit more rust lang specifics into it yeah i don't know enough to do that i was thinking that uh i was gonna mainly focus on like uh could have mentioned cargo or anything i mean really anything yeah my knowledge is really limited i was gonna focus on like um it's really it was really quite awful actually yeah i was gonna focus on uh like vulcanizing things and actually like you know to prevent rust like to actually like they use painting and stuff to protect the metals.
54:59Rusting metal. Why would you want that? It's red iron oxide. There's lots of ideas, but yeah, it just didn't happen. I'm sure if Dan Tan had done it, he would have done a much better job because I know he's particularly good at songs. So one quick hat nod to the Git UI project is that it seems to be easily installable, regardless of originating language, which is super awesome. just to bring it back. Great song, Matt. Thank you for sharing that. It was awesome. I was going to hop in and start singing with you, but my skills are a bit rusty. Oh. Sorry about that. All right. Let's move on. Git branch lists.
55:42This is our last one of the list here. High velocity, monorepo scale workflow for Git. This is like a grab bag of utilities. It's a weird name, Git branch list, because it doesn't have anything to do with branching, really. But it adds a bunch of cool stuff. Like, get undo. It's a good name, then, isn't it, Jared? There's no branching? Yeah, it's branchless. And you're like, I don't know why it's called that. It doesn't have anything to do with branches. But it's called branchless. Yeah, but why would you name yourself based on what you have nothing to do with? Like, I just feel like it's not the way to do it.
56:14Yeah. Maybe because they're against it. And so they didn't like it. You know, I don't call myself Jared Rustless, you know, because I don't write any rust. Good name, though. I like that. Sounds like a cool guy. I'll consider it. They call me Jared Rustless Santo. That's a cool name. That is pretty cool. I might pick that up, actually. All right, I revoke my argument. Point is, there's lots of cool stuff here. Smart log, undoing, yeah, written in Rust. So it's not Rustless by Waleed Khan. And been out there for a while. but not too much to say about this on the show for me necessarily except for that it's just a lot of like very nice user experience improvements in your command line.
57:03Git. So if you're not like Matt using GitHub Desktop and you're a real dev using the command line, then maybe check out Git Branchless. In terms of naming, you know, same song, different singer. Since we're talking about Rust Away and Matt's doing some jingles for us, I was thinking Git Utilities. I mean, it's a bunch of utilities. Why not make a standard utility library? So I googled it and there is a Git Utils, but it's not maintained. It's not maintained. You know, it's sort of like I would, I don't want to call it dead, but it's, I mean, the last commit was two years ago. It's probably either perfect software or unmaintained.
57:46Right? It's tough to tell the difference sometimes. I was just talking about this recently, I think on Changelog News on a post about quitting. What's the difference between quitting and being finished? You know, they're quite a bit different. But with open source, you can't tell, like, is this thing unmaintained or is it actually finished? Some things are just done. Other things are abandoned and you got to find out which is which. Yeah, this is always the problem that I have because people, one of the ways they decide if a project is worth using is the look, when was the last release or like, you know, and it's almost like we're almost to the point where we're just going to do releases regularly for the sake of it, even if nothing changes.
58:27And it sort of encourages bloat, encourages feature bloat as well. like when a tool kind of nails it then it doesn't you don't need to keep going on that but similarly like software's never finished and uh so it's not so simple but yeah tough one we almost need like a health meter or something like that like built into github or external like socket like they do a lot of security stuff externally from the repository regardless of its origin whether it's GitLab, GitHub, or whatever, it almost seems like a health meter or at least a democratized version of it that's like, okay, this may have had a commit two years ago, but it's still...
59:07Right. It's being used. Like, the downloads are still way up, for example, or this release is getting pulled constantly into other things. Yeah. There has to be a different metric than just simply... GitHub does have that pulse page, which they've kind of hidden that, but the pulse, which is kind of that, but it's kind of like what's been going on on this project recently and you can at least go there and see well there's been 17 new issues and no response like to me that's probably abandoned because it's it's generating issues for people but not even being responded to um generally finished software is at least i mean there's still going to be things that come up over time but uh kind of less bugs per response and then there's like you know pr has merged recently and it'll just show you like what's been going on It's not exactly health, though.
59:54It's more like recent activity, which can be a proxy for health, but not always. Yeah. Yeah. Well, I have good news for you, Jared. Doneorperfect.com is available. So, I mean, we can encourage somebody to build a tool called Doneor Perfect. So you got to pick which one of those. Not Dunder Mifflin. Done or Perfect. So I don't understand. I guess you're going to mark your project as Done or Perfect? Well, I just was, you know, on the whim here. I'm trying to create a Rust Away song for you, man. Come on, give me a dime. No, just some sort of, you know, I don't think that the insights tab is that insightful in this regard.
1:00:35So maybe there's something that could be done. Maybe it's just a fun project. Like Matt said, this is just a fun thing. And then maybe GitHub acquires you. And the next thing you know, you're a millionaire or a billionaire. Or you got some stock options in the juggernaut that's called Microsoft that's just like slaying. it out there you know all right i don't know that's getting one could dream right yeah so if you register done or perfect.com you're gonna be a billionaire with microsoft stocks if you do yeah if you execute well yeah okay yeah probably if you if you if you do it just do it all right should we hop down popular opinions or should we we have uh we have more things that we've shared that are Git related, but we can also just get on with it.
1:01:20Maybe a state of Git internally here. You're like, how do you Git, Jared? How do you Git, Matt? And Adam, how do you Git? Speaking of myself. Okay. Are you a simplicity person, Jared? I know that you just use terminal.app, not iterm or even fig. What else have we had on the show? I do use ZSH now versus bash. I can't believe you're having a go at me. I use it by force. I use it as if it's bash. Excuse me. I can't believe you were having a go at me for using GitHub desktop. And you just use the basic, the first, the only thing that's already installed when you get your first computer. You mean a terminal?
1:02:00Yeah. Like real developers do? I don't subscribe to that. I do have. I don't actually either. But I do use it. And I do use it almost exclusively. So now I like a Git GUI myself. so i can get uh graphical and the one that i prefer is called get x and get x has been a long long time project that's gone through multiple forks and abandonments and community pickups as mac os has changed dramatically over the years and so there was this rowan i think it was rowan j had a fork of Gitx that they maintained for a while after the original Gitx author didn't want to do it anymore, and then that went unmaintained.
1:02:48And I went searching, actually, for a GUI, specifically for a few things. I like to do staging and committing, especially like, what do you call it, chunk commits, like specific lines of a file and selecting all that. I like to do that in a GUI. and not from the command line because it's just clunky from the command line. That's the main thing I do inside of a GUI. And so GitX was gone for a while. It was just like abandoned. I was super sad. I started looking for a new one. And then it got revitalized in the last year or two by the community. That's like the best site of open source, right? Like people that loved it and wanted to use it picked it back up.
1:03:32And now it's under like the GitX GitHub org even. It's not some user's account. And it's an open source Git GUI for Mac OS. That's under active development once again. Mostly maintenance mode, but I'm happy in maintenance mode because it's a good GUI. And, you know, I don't need any new features, honestly. It does what I like, and I like what it does. And so that's what I use. I use the command line for most things, Git log, Git status, simple commits, It's like git commit dash all with a message, command line, push and pulls, command line, but staging, reviewing, that kind of thing from git X.
1:04:18So I would highly recommend that for macOS users. Let's give a little shout out since you mentioned the fact that this is being maintained. Thank you to, this is not sponsored, but I am a fan, Mac Stadium. in the footer of the readme it says get x is license oh that's the license never mind the one before the last not the very very end of the readme almost to the end of the readme so this project is supported by mac stadium open source developer program and they give them a free mac mini for their ci so they say thank you to mac stadium so i mean that's super cool like i think we should do like shout outs to like those that are supporting open source in some way shape or form just like giving services away to enable just no new features but just stability right just keeping the thing alive well shout out to me then i donated a m1 macbook uh to uh the wales project uh which is wales app you know you can build desktop apps using javascript um and they're great they feel like native apps and i wanted to support that project i don't talk enough about what a sort of open source hero I am, frankly.
1:05:28Really? Well, that's what we have here, man. Could you sing yourself a song about yourself, maybe? Matt is a hero in the open source world. Yeah, yeah, yeah. That's the course. Pretty good. Well, I did write Testify, which is Go's big. That's the testing framework everyone uses in Go. We had you on the show talking about your stuff. You had BitBar, XBar, right? So you got your open source. Yeah, but just because I'm so modest, I'm probably the most modest person in the world. You seem very modest. It's your greatest weakness. And it's a big weakness because, like, I don't know. I do myself a disservice.
1:06:05So this M1 MacBook Pro, it's being used by someone to maintain whales, I assume? Are they sharing it and mailing it around? I love the idea of that. But no, someone has it and they use it to test. Like a CI? No, no, they're using it to actually test because you're building desktop apps. And so M1 was very different and they wanted to do this work to do that. That's true. That's a great point too. I mean, when you do desktop or platform specific development and you don't have the latest rev of Apple Silicon, you know, you need that and maybe you don't have the cache to shell out or want to because this is just a fun thing to you.
1:06:44Right. You need supporters. That's cool. Yeah. And of course you can sponsor a lot of projects now on GitHub. so I recommend that and I don't think enough companies do that if you're a company and you use some open source project and you can sponsor it I feel like you just should we should make that more normal especially if you make money off that project directly or indirectly well again, maxstadium.com, shout out to them super cool so you're a pretty simplistic Git user then, Jared I mean, you mainly stay command line only except for visual specifics. Yeah. Keep it simple. Keep it simple. You're a simplistic git.
1:07:30That's what he just said to you. I love that. And I owned it. I agree. Well, I paused. Simplistic git user. Yeah, you did pause. And that's where we'll do the clip. Yeah, I had to do that. Yep. Just remember that I had to describe to you guys what git meant earlier in this show. So I'm not sure which one of us is simplistic. but that's just because you DDU better than we do. Or DDG. Sorry, DDG. I was going to say what? I thought you'd at least go DDW. I duck duck went faster than you guys. All right, Matt, your turn. How do you git? How do you git? I like to keep, I'm a simple git. Yeah, I like to, if it's complicated, if it's like, oh, there's a conflict in this file, I'm like, forget it, I'm out.
1:08:14I just put in the letter of resignation. uh no um yeah i tend to use github desktop as much as i can and then i'll go into the command line if i have to if things aren't um if things aren't working for me i'm not one of these like some people like jared's a couple of times hinted at being like um like i'm not a proper dev because i use desktop apps right i know jared you're joking um but uh i still have a song for I was a little serious. Are you a song for me? Look what I did. Gosh. Look what I did. Two songs in one show. Is this possible? Don't say that because hopefully the first one gets cut.
1:08:52No, it's not getting cut. What's the title of this song? Keyboard Wizard. Keyboard Wizard. Okay, good. Ooh. I feel like Howard Stern. You know, Howard Stern. Pause one second. Howard Stern does a great job of having awesome artists on his show to do, like, renditions of their song and live versions. I feel like Howard Stern right now. What's your song title? Okay, go ahead. All we need is an awesome artist. That's true. Well, meanwhile, you've got me. I don't care what you wear. Don't care if you swear. It doesn't mean that much to me. You can do what you need. Do as you please. You'll hear no argument from me.
1:09:34Except what's your ID? Your ID, please. I want to know so I can see. Are you a VS Code like me? Or are you one of those keyboard wizards that you see? Oh, speaking of which, I'm a keyboard wizard. I don't need no mouse. Get that trackpad away from me. I know combinations. It'll rock your foundations. I dare you screen share with me. Screen share with me. Screen share with me. I want to know so I can see. Are you a keyboard wizard? I don't need no mouse. A trackpad is just a rectangle as far as I'm concerned. Cause I'm a keyboard wizard
1:10:44Woo! That one's a keeper. Yeah, that's a keeper. That one I actually did read. That's a good one. Thank you. But also, very serious point there, which is, you know, let people just use whatever tools they want. Don't make us feel bad because we can't get out of vim. Just because we can't quit vim. you know we shouldn't yeah okay friends i'm here with a friend of mine hardjot gill ceo of code rabbit ai code reviews so awesome so the explosion of ai for developers is very real as you know some call it hype some call it the future hardjot either way code review remains the bottleneck for teams what do you think how does code rabbit fit into this new world my message developers is like ai is here to stay we have seen like great success with code generation tools especially the agentic architecture they're getting really good in terms of exploring your code and solving small issues and it's only going to get better from here this is like a time when you embrace ai otherwise like it's like about getting left behind and ai is not going to replace the developers is what we have been seeing i mean it's like just elevating the role of and it's like going from a tank battle to an air battle.
1:11:58Like earlier developers were struggling with syntax and all the mundane and the toil unit test cases, like all the boring stuff. But now we're seeing all of that is increasingly being automated with AI, fight the air battle as they say. And the same thing is happening on the code reviews. Now you're generating a lot more code and what's hitting you next is code review bottleneck. That's where we come in as CodeAbit, a generative AI based code review platform which reasons about your changes and elevates your role as a reviewer. Like you're not going and finding issues which are surface level at the code.
1:12:28I mean, it goes beyond static analyzers to understand those changes, but it does elevate your role as a reviewer to look at the high-level picture, whether these code changes are aligned with where this product has to be, whether these code changes are aligned with the overall architecture direction of your company. That's where we come and help. So how does CodeRabbit work? CodeRabbit, like the great thing about this solution, it works where you work. Like it's not like you have to now adopt a completely new habit or remember to use AI in this case. So it works it deeply integrates into your git platforms inside your github git lab and other git platforms and in addition like two weeks back we also announced a vs code extension which we have made pretty much free for all individual users so there's no reason not to try it out like if you're already using cursor and some of these like ai code editors it's a nice compliment like as you are done changing making your code changes just trigger the code rabbit after each commit and you'll be surprised at the quality of findings it will find and the issues it will find on top of your AI generated code.
1:13:24Very cool. Well, I'm a huge fan of CodeRabbit. As you know, we're using it here at Changelog and you can see it in action in our pull requests. You can get started today for free and it's also free for open source. Learn more at coderabbit.ai. Again, coderabbit.ai.
1:13:45Well, that leads me to a serious question though. As a VS Code user, have you done any of the VS? because VS Code has a bunch of Git stuff built into it. Have you tried any of that stuff? Do you like it? Are you just like, I'm happy with GitHub Desktop, don't care? Actually, yeah, for the simple, like, just stashing, committing changes, I'll just use that in the ID because it's right there. Exactly. And then if it's a little bit more complicated, I'll open GitHub Desktop. And then if I can't do that, I'll phone up one of my smart friends, like Jared, and ask him, what do I type in to make this fix, please?
1:14:19Debatable. Yeah. But Hostinger Tutorials mentions that GitHub desktop. It specifically says if your remote repository is on GitHub, they say, quote, this tool will be the most useful for you. So, I mean, that's a large tribe, right? I mean, a lot of people have software there. But I do agree that at some point you graduate. It's like, well, certain things can be done via the command line. I'm here. Why eject and go somewhere else? Certain things should be done if you're in VS Code. Why not use some of the visual aids inside VS Code? I do that. I might add a file to a commit that I'm staging up and whatnot and type the message in and along I go.
1:14:58Why go to a full-on GitHub desktop experience? Well, maybe you're visualizing or you're doing something with issues or maybe there's a PR going on and it's a bit more complicated and a bit more GitHub-specific. It makes sense. Yeah. Yeah, it does. Use whatever tools you like. Use whatever tools. So for me, thank you for asking. Adam very very simple I'm just using hang on Adam let me ask you Adam what's your favorite ever song
1:15:30sorry favorite ever song if you have to pick well I'm gonna go to your side of the pot I might say something from the Beatles I'd probably pick from yesterday I might I'm just actually I'm a big fan of the movie yesterday have you ever seen this movie have you seen the movie what a great premise amazing I have not amazing movie but it's a great song too so i'm a be the premise of yesterday is this guy just discovers that the beatles never existed and so no one knows them and but he knows all the songs and he's like a songwriter so he just pretends he writes the beatles songs and then they're all hits and he becomes a super famous chap uh that's right i love that i also love the beatles uh very much i have an original sergeant pepper's album in mono which is you do it's good i just listened to it in one ear because you did um and yeah it's just beautiful paul mccartney i think probably one of our greatest ever songwriters you know just amazing phenomenal phenomenal artist so that's so yeah my answer is that i mean i think uh the beatles is is on my list of top artists top songs like if i had to pick a song on replay forever i would say don't but if i had to if it was by force absolute force what's this hang on what's this what's the situation how i i don't know i don't want to expect under your head it's probably terrible they've got your kids the phone calls come from inside the house come on now you want to do a liam neeson situation here you want to go you want to go there matt oh matt loves liam neeson he doesn't leave i don't care who you are I want you to listen to the same song on repeat forever or I will find you yesterday yesterday no mercy oh gosh you played into that brilliantly Matt I knew you had a Liam Neeson up your sleeve and so you were just waiting for an opportunity I figured he could do that can't wait for someone to mention Jack Sparrow I think we've drained Matt of all of his talent on this one episode I think he actually has, I mean, do you have other bits?
1:17:36We know you have Jack Sparrow, but I mean, you're pretty much done. I have a German character, Hans. A German character. Hans. That's Hans. Yeah, I don't know. Speaking of other modern, famous singer-songwriter, Ed Sheeran, can you do an Ed Sheeran version? You also sing a lot, too. Do you like the guy? I think he's a great songwriter, actually. So, yeah, I think it's good. But no, I can't. I mean, he does singing, but... Yeah, for sure. I can do Beatles, though, if you like. I can do every Beatle. They're all different. Ringo? You can do Ringo? Of course I can do Ringo. He's very bouncy when he talks.
1:18:26That's Ringo. And it sounds like he doesn't know what he's saying, but he does. And Paul McCartney's a bit like that, too. bounces around but he's a bit more upbeat and also you know he seems to know what he's doing John Lennon's always very wiry in his voice you know when he talks so it's very different and then you've got George that's my favourite because George really doesn't sound like he's doesn't really sound like he's all there but he's really good he wrote so here comes the sun you know alright did you know that pretty good oh gosh look what you've done Adam open up this can of worms can't put the worms back in the can love it can you actually get cans of worms can you buy them for fishing or just eating for sure you can literally get them and you can figuratively get the version that's a simulation not really the can of worms you can buy the one for the kid like the prop oh yeah where the big snake flies out when you open it for sure yeah that's one worm though in it i wouldn't say i'd say that's a can of worm there's there's versions with many worms cans yeah it's like attorney's general it's been a get fun party so much get in this i've got one pick that i would like to also bring up that i learned about at first time unless i think is very cool it's reviewpad.com and this is like smarter prs and rules around prs so in a lot of my projects i like to have it such that pr goes up and then we automatically run all the tests and everything and only if all those tests pass and they can be back-end unit tests they can be integration tests sometimes they can be front-end tests end-to-end tests like whatever it is that gives you the confidence to release to production you can gate the pr on that so that it doesn't go into main.
1:20:25So your main is never broken, your main branch. Well, that can be sometimes a little bit too strict. And ReviewPad lets you actually create some more nuanced rules around this. So you can say, for example, markdown files, just let them go straight to main. You can say, like, in this case, I want to push to main, but I still want someone to review this at some point. So it's like still in there. It's low risk. So you want to progress. and later someone can check it. You can say things like for all Go files, you want to make sure the entire test suite runs because it's quick, so it's no big harm.
1:21:03But you can even do things like for new starters, for like different groups of people. You might say new starters, everything should run for them, but the more senior people have slightly more relaxed rules and they're allowed to push without all the checks happening. And even individual functions, You could mark a functioning code as critical. And if anything inside that changes, then it makes sure that all the tests will run all that whole pipeline executes before it's allowed to merge. I think this is the next level, the next generation of PRs. This is something that, I mean, I don't know who owns this.
1:21:43This is something that I would expect to have in GitHub at some point. Like this is really good. I haven't used it yet, but I do intend to. what do you think of that review pad i like all the words that you just said about it okay um it's it's brand new to me it sounds really cool a glowing review from you which which does mean a lot to me so i'll definitely look closer at it but i think that's too late to start being nice well no one's listening anymore we lost him that here comes the sun but But yeah, I mean, definitely we'll check it out. I think that PRs, as they stand, leave a lot of things on the table.
1:22:23And we know there's lots of teams building things like this in order to flesh out and improve the code review process. We had a show last year on Graphite, which is stacked diffs, which plays in the same ballpark as this, but it's not exactly the same. They're not tackling it the exact same way. And I know a lot of people are enthusiastic about that. Christopher Hiller, Bone Skull on JS Party, actually gave an unsolicited graphite shout out in his pro tip time because he's been using that and he has been loving it so that's another tool that maybe we'll just link to but that's my thoughts on the matter i have never seen this before this afternoon so i have to check out more of how it does what it does but yeah it makes sense i mean it's almost as if like this could even be similar to the way you have infrastructure as code it's almost like you know to main as code i don't know just like yeah something that says like we have to have a gate on this process and like you had said there there's certain things you can go through more nuanced rules and that totally makes sense and a one size fits all get pushed to main does not always fit yeah so i can i can see how this makes sense the thing i think i question though is less the tool itself more like like steve job said about dropbox is this just a feature or is it a product or a company you know i wonder if like in some cases this is a great stand-up of a of a feature that should just be get a proper if that's what the majority uses interesting i mean uh i wonder if their strategy is like an acquisition thing and sometimes that sometimes that's great strategy to have you know you've done a couple times right i mean it's a good yeah i don't know if that's been your strategy but you've done it yeah three times yeah but they weren't features i mean actually i think solving one problem and doing it really well is is well worth doing and yeah like maybe you'd struggle to build a business around it i don't know but well that's the hard part it's like here's this thing here's it's great it's useful but man it it died because there's no company it's just a feature so that's why we have to we have to sponsor open source if we want to keep it alive we can't just expect it to keep going and you know we have to we have to normalize that more we've got to do more of it it's hard to justify sometimes but it's important i think it's certainly becoming more normalized but i think as it becomes normalized it becomes the paradox of choice it's like well there's so much open source there's so much usefulness i can't possibly give to it all so i either do nothing or I just don't know where to put it.
1:25:01And I just am just guilty. I feel guilty. Yeah, so that's interesting. I wonder if we could get like a heat map of usefulness of your dependencies, actually. How often is that code executed? I would say a git heat map sounds pretty cool, honestly. Yeah. We could do it with observability tools. If you've got tracing and you've got like, you know, observability running in your code, you will have insights into the code paths and stuff. You probably could gather some stats on the most useful bits. That might just layer on the guilt, honestly. Why don't you just pay for the project then, if you're feeling guilty?
1:25:32Well, I mean, it's not me, man. It's somebody else, of course. No, I mean, I think that I just... It's Dan, Tam. Dan, Dan. It's back and forth. Dan, pay for your project. The point you're making is great, though. We should support open source more. I think I always want to see more clarification on the how. GitHub sponsors is one answer, but it's an avenue. It's not like what. The what becomes infinitely harder to define if you don't examine the open source you use that's useful to you. And then sometimes it might be corporate sponsors. It might actually be open source, but it's a company who's backing you.
1:26:14Well, you're going to support that thing? Well, maybe you might use it as a support, but they're already a company. Just buy the things that support them to make it. I like all the words that you just said. thank you I don't agree with your point that was a very Jared by the way just for future reference if someone's describing something and you like all those words I feel like you like the thing I think it's safe to say yeah I like that I'll check it out you will like it I don't like to give you too much credit I don't like to give you exactly what you're looking for because you beg for so much well let's close up with a light this has been a fun conversation a long one you know way more singing than expected or a lot less yeah or a lot less than i expected i was i'm really here to do songs and there's been a lot of talking about git spent a lot of time in between way too much spent a lot of time in between tracks talking about git we should have changed the premise to like matt sings a song interspersed with git conversations what a great you'd go to that gig wouldn't you well you have one more chance here because we're going to do a lightning round of your brain child on go time unpopular opinions and surely you can strum us out the theme song for the jingle for unpopular opinions can you not it's hard otherwise you'll have to splice it yeah we can splice it right here
1:27:49i'll just do a musical version gosh we're back to this again
1:28:03Yeah, splice it in. We'll splice it.
1:28:24so for those who don't listen to go time unpopular opinions that is a regular segment where people share opinions that they think or hope or expect to be unpopular with a listening audience and then we put those opinions out on the social medias to see if it's actually unpopular or not now what we found over time is that most unpopular opinions are actually popular when it comes to polling time. But there's been a few people who have been somewhat unpopular and a few who've managed to be incredibly unpopular with their opinions. I'm actually in the top five most unpopular opinions of all time.
1:29:02What was it? That JS Party's better podcast than GoTime. Phil's bad for JS Party. Which was unpopular, of course, with the Go audience. But we're going to do a lightning round real quick. So, Adam. Gosh, me first? Passing to you. First one. Do you have an unpopular opinion you'd like to share? I think my unpopular opinion is I don't have any unpopular opinions. I tried so hard to think about something that is unpopular, and all I can think about is popular things. Like what? Like what? I think if you're struggling to get something done consistently that you want to do, my unpopular opinion is that you should learn to habit stack.
1:29:41It's a superpower. Habit stacking is a superpower. That's right. Tell us more. But that's kind of a popular opinion if you know about habit stacking. Like if you learn the inner secrets of this dark secret basically. So you have habits, right? Let's say you make coffee. This is my example for me. A really simple example. I make coffee once a day when I'm at work at least. Maybe twice. And I wear glasses like you, Matt. I wear glasses. And as a glasses wearer, you must be upset or get upset when they're dirty. Yeah, I get furious. And especially upset if you have to have a special microfiber cloth to clean them because you can't just use your shirt.
1:30:18Your glasses will smudge. Yeah. Oh, I hate dirty glasses. Now that I have a point of empathy, he can understand what I'm saying. So my feeling is like if I'm going to have dirty glass all day, that's upsetting. Can't do that. Well, I forget. I get busy. I don't have this cloth in my pocket all the time. Well, I'm going to have a stack. I'm going to make coffee and leave my cleaning cloth when I have time. There's steps between the coffee making, right? You brew the coffee. You wait for the coffee to brew you or you drink it. Right. So you stack a habit near another habit that you do consistently, and then you do it.
1:30:57Right. Okay. It's a superpower. Yeah. If you can learn to do that in different ways, let's say more productively. Let's say, I don't know, whenever you're running tests and you've got a minute or two and you have like three emails, you can rapid fire off. Then you can do them. Stack up a habit of like you need to return these emails. But you've got that minute, minute and a half, or maybe you've got a couple of slack minutes just stacking up or something that can happen at three minutes. Stack a habit of good communication could be the habit. And the way you execute is a few simple emails, maybe a return slack message.
1:31:31Maybe it's a PR review or a one-liner or whatever it might be. Maybe a quick chat with Chad T. Who knows? Just do something. Yeah. Is this just multitasking or is this more than multitasking? It's not like you're just talking about multitasking. Well, I think in that case, no, no, no. Well, in that case, it might be blurred. But in my case, I'm like, I do have a habit. And so I stack certain habits around that thing. So not only am I doing those other things, but now I think, okay, when I make coffee, neurologically I'm thinking I gotta clean my glasses cause right here's the thing I just do it so it's a habit that forms other habits what about like when you realize they're dirty well the point is you don't always have that cleaning cloth unless you carry this cleaning cloth with you everywhere and I just don't so like if I'm deploying my code I can floss my teeth well I mean Jared pick your habit I'm just saying like if you got issues with flossing then maybe Maybe.
1:32:28Yeah, but I kind of liken this. I wonder if it also works with bad habits, because maybe you're a nose picker. D-stack. You can D-stack things. No, I don't mean so that you can do bad habits, Jared. That's mad. Every time you pick your nose, have a cigarette. Sure. That's redirection. Yeah, that's redirection. So if I understand you correctly, maybe you have a bad habit, and you don't want to do it. And so when you think about the bad habit, you do a healthy habit. I like that. Replace it with. Now I'm thinking that do a bad habit, like, you know, like don't brush my teeth. And while I'm not brushing my teeth, I can also be not wearing deodorant, for example.
1:33:16So it's like cascades, doesn't it? No, that's not. No, you want to do a positive. Second one should be positive. Well, I mean, it would have worked if you canceled it out. Let's say you did a bad habit. and you're like, well, since I'm bad here, I should be good. Yeah, that's what I was thinking. I should have tried to do that. I thought, yeah. Like actually double up on the other end or something like that. All right. Well, this one was going to be unpopular with me. I think it's a terrible idea. I think have a second to the worst. Sounds awful. Let's go to you, Matt. Do you have an unpopular opinion?
1:33:44Yes, I do. Yeah, I think when we're building software, we very often focus on the wrong things. like we we try i just think we always like we're constantly doing this we don't focus on um i mean really you got to solve a problem for somebody that's what you've got to do and we sometimes are so far away from that it's so abstracted from that because of process or just organization or whatever it is that we're doing the work kind of in isolation and not in the context of what we're actually where it ends up it's in in small tools and small projects that doesn't happen so much and especially if you're scratching your own itch then that's a great way for this to not happen um but when you get into bigger orgs you know it have understanding the why you're doing something is so important and everybody needs to know that everyone needs to understand it it can't just belong to just some people and they decide what everyone else is doing um so i think we yeah i think we often focus on the wrong things and we're just building the wrong things and usually like sometimes it's nice to to just do a cool project and i would never want to take that away from anybody but um if you're just doing cool complicated stuff because you love it or it's satisfying to do and it's a hard problem and you're solving it then that's one thing but but you can maybe if you can solve a problem for somebody with a script or just just have something much simpler if there's even just a tool already that kind of solves the problem like yeah i feel like we don't enough especially because we're we're there to build software we we should remember there are other things in our tool belt and try and just focus on solving the problem and do whatever it takes to to solve a problem for a person that and try and know who the person is try and meet them if you can if it's not you to try and meet the person so that's my own problem this just sounds like good advice man this doesn't sound like a popular opinion it's like i agree with everything you say there yeah who's gonna do well you agree with how you execute which you may not agree with is that we're you said what we're doing all wrong basically or something like that you or focus on the wrong things.
1:36:08Most people are doing it wrong. Most people. I think like 90 % of us are building software wrong because we aren't obsessed with that. So yeah, it needs a sound bite. That's a little stronger way of saying it. There's your sound bite. Yeah. Okay. Well, I agree with connection and meeting the people that you're solving the problem for. That's like key. You should do that for sure. Here's an actual unpopular opinion. Now that we've heard your guys' lame ones, here's a real unpopular opinion. And I know this is going to be unpopular, because I've said it before and people haven't liked it. So I'm going to say it again and see if people like it.
1:36:44Automagically, you know the word automagically. That's a dumb word. We shouldn't use it. I don't like that word at all. To me, it says, I have no idea how this works. Thankfully, nobody else does either. And I'm hoping the fact that nobody knows how it works is good enough to impress everybody. So you ask somebody, how does that work? and they say, well, it's automagical. And we're supposed to all be like, oh, okay, it's automagical. Yay. And then move on. No. It means you don't actually know. If you knew, you just explain how it worked. Counter. Because when you know how software works, it's not magic.
1:37:23No. But counterpoint, it means you don't have to know how it works. You can just use it, it works. And you don't have to know. Ah, you know what else means that? It's automatic. We already have a word for that. it just works automatically but oh okay it just has it automatically why does it have to be mad why do we have to pull magic into it no let's push back either one of you agree with me i'm telling you this is an unpopular opinion it's good okay uh message received got it so automagically describes a process that's too complex whereas automatically is just there's no complexity in there the magically with auto makes the thing that you don't know how it works that's too complex you explain it that way automatically doesn't simply describe something that's automagical that's too complex and you don't know how it works i disagree i disagree that explanation was not automagical enough it's just like um it's just a spin it's a bad spin on something that could be explained.
1:38:28Do you believe in magic? What kind of magic? Sleight of hand? Do you believe in magic? Are you going to break in a song here? No. I believe in sleight of hand. Like I'm in magic tricks. Yeah. You can't not believe in sleight of hand. Is there well, that's why I don't understand the question. Do I believe in magic? Is there a group out there like the flat earthers that are just like, no, we deny sleight of hand. If anything, they believe in magic, don't they? Because they think it's not sleight of hand. I just don't understand the question then well i was gonna bring his song but you ruined it but do you agree that magic exists to some degree like things happen that are very complex that we don't know how they work i mean not literal magic but like a version of things even the unexplainable absolutely okay so that's a version of magic do i believe that there's software that's completely unexplainable well it shouldn't be like if you know your system maybe it means i don't want to explain it to you What is the context of this word being used that you like?
1:39:24Engineers say it all the time. Who says it? Engineers. And we put it on our marketing. And then it automagically just works. And you're like, this is marketing lingo. You're spinning me. I don't like the dumb word. I don't like spin. Okay, don't spin me. There was actually a book about spin selling. I grew up in sales, right? My origination into professionalism was in sales. and there's a book called spin selling you can tell you about sales because you just said my origination into professionalism yeah that's my spin right there my first job my first job was in sales yeah that was an automagical saying that's funny yeah i know i mean matt i'm sure you've said it i used to say it as well and i was a younger person a lot of people love that term automagical and i've just gone i'm crying sour on it so it's not a popular opinion all right listener uh let us know do you agree there's three opinions here which one is the worst which one is the worst that's gonna be the worst it's gonna be mine can we clarify that was not matt you were making fun were you were you making fun no that's a standard german that's just you're being funny doing an accent right yeah what do you mean i wasn't okay well i just want to clarify there yeah i mean right here at the end of the show i want to clarify that because that just for a little while they're just set so wrong i'm sorry and i almost said something well you should I almost stopped the show yeah you should I almost stopped the show you should if you feel like that absolutely I mean I I celebrate like different accents I really love them yeah and so yeah impersonating accents is like a fun hobby but I was so close man my white towel was like we were like no one we're gonna throw in the white towel no one no one has a go at Liam Neeson on my watch
1:41:14alright we should end the show hang on hang on it's okay to do British accent isn't it? Everyone does a British accent. Like, you have a joke because I've heard you do it. I try not to. I don't mind. Because I'm not good at it. No, I think accents are all in good fun. I think just the length of that. It became more and more caricature. Well, that's all. I think we made it clear that it was in good fun. So I'm joking about any of the show, as you may know. I don't know if you knew that. I was kidding. I was just yes-ending. about stopping just yes and no i wasn't gonna stop the show we're just i was being funny in the yes and now but it's a nice point actually it's a nice because if somebody felt insulted by that i would i would be devastated genuinely yeah i want to clarify that like we were not trying to be insulting we're not trying to be just it was all natural just talent natural talent it's just who he is matt go clean your glasses um do you want a coffee while i'm there yeah please and pick your nose while you're at it is that what you do when you make your coffee jared you have a stack your your nose speaking then no i'm flossing you know one good thing bad thing you know hang on a minute you should you should clean your nose like i know it's like people are like oh you shouldn't do that well there's ways to do it in there you can pick your nose you can pick your friends but you can't pick your friend's nose that's i learned that in elementary school yeah that's stuck with me unless you're paying and they're having a nose job and by pick you mean select like i'm gonna pick your new nose uh and if you're a very dear friend they might allow you no i if i said to you jared i'll get you i'll sort your new nose out right i'll pay for it you but the i'm gonna design it right that's that's okay i'll do you a good job it'd be a little trunk as long as i go into it with my eyes wide open you know a little trunk like a little elephant's trunk for you then you could be like how do you talk like that like what makes you say trunk versus trunk i'm from the north i'm from the midlands so we have like yeah a hard u sound so i say like cook cook it sounds like john snow doesn't it like it's like a little bit yeah winter is how do you say router that winter is coming is he like a weatherman winter is coming a band of low pressures coming in from the east you want to wear you you want to get your big coats out on Thursday because it's going to be raining and we're expecting some sleet.
1:43:40Things will clear up at the weekend as the band of pressure blows out. Yeah, go on, you want to stop it? Fair enough. Well, he's got an application. I don't watch Game of Thrones, so he lost me with this one. I'll tell you what he's got, Matt. He's got an application. He's got geotracking on the Weight Walkers, and that's winter. Oh, he knows. Or has he got a tile on it? That's all part of it. I believe it's one part true weather and one part physical beings coming from the north so he combines those two things into it's you know a meter yeah right he lets us his countrymen know that they're coming it's coming he's right i mean winter you know it's every year john so it's not that impressive it's like winter is coming oh you're joking i mean you know it is september so we we know how seasons work winter will be here but that's Game of Thrones how and when do we end this?
1:44:35Never I'm thinking like five minutes ago probably probably when I try to say goodbye goodbye it's over now thanks for your we can play that song
1:44:52it's closing time tell me remember this yes Yeah, you know this, right? I saw them live. They were playing that song for us when we were trying to do Beyond Code the first season in that bar. We're like, we're trying to wrap up the last two interviews here. Come on, people. Yeah, so we were at an after party at a conference, Matt. And this was Keep Ruby Weird, maybe? Keep Ruby Weird, yeah. Keep Ruby Weird. At the after party, the DJ turned on closing time at 9.30. the party ended at 10 so you know naturally what you do then if you're a terrible DJ is you loop it so he started looping closing time at 9.30 it played literally for an hour maybe someone had his kids are you trying to leave me something in maybe someone had his kids yeah
1:45:43anyways we couldn't even record our video show because it was just closing time was too loud in the background it was terrible we're like why? that's so rude who?
1:45:54Closing time Open all the doors and let you Yeah, I don't know it. You don't have to go home, but you can't stay here. I don't remember that part. Closing time Turn all the lights on every boy, every girl
1:46:18Okay, so you can't stay here, but you can go join ChangeLog's worldwide community of software nerds for absolutely free. We hang out in Zulip and chat about all kinds of stuff. Join us there for the after party. Head to changelog.com slash community to sign up. And if you didn't listen to this episode the first time around, there's a bunch more Matt Reier filled episodes that followed. We even have a playlist of his impromptu songs on our YouTube channel. check that out if you like. Thanks again to our partners at Fly.io and to our awesome sponsors of this episode. Depot, get started at depot.dev.
1:46:52Auth0, head to auth0.com slash AI and CodeRabbit at coderabbit.ai. Next week on the pod, news on Monday, Travis Oliphant from NumPy talking Python on Wednesday, and Arun Gupta, he's no longer with Intel, but he will be with ChangeLog and Friends on Friday. Have yourself a great weekend, leave us a five-star review if you never have, and let's talk again real soon.
From the publisher
Our Changelog & Friends proof-of-concept with Mat Ryer has been remastered! Now with full-length video on YouTube. Originally recorded: 2023-02-08
Mat joins us for some good conversation about some Git tooling that's been on our radar. We speculate, we discuss, we laugh, and Mat even breaks into song a few times. It's good fun.

