The Changelog: Software Development, Open Source - Git with your friends (remastered) (Friends)

Episode Date: August 22, 2025

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 G...it 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.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to ChangeLog and Friends, a weekly talk show about Dan Tan. Dan Tan. Thanks, as always, to our partners at Fly to I.O, the public cloud built for developers who ship. We love Fly. You might too, learn more at Fly to I.O. Okay, let's talk. What'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.
Starting point is 00:00:51 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
Starting point is 00:01:23 GitHub Action Runners. What we've observed over time is effectively GitUp Actions, when it comes to like action, debugging a build is pretty much useless. The job logs in GitHub Actions UI is pretty much where your dreams go to die. They're collapsed by default. They have no resource metrics. When jobs fail, you're essentially left playing detective, like clicking each little drop down 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 get up actions of observability is essentially we built a real observability solution around kit of actions. Okay, so how does it work? All of the logs by default for a job that runs on
Starting point is 00:02:01 a depot kit of 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. Okay, friends, you can learn more at depot.dev. Get a free trial, test it out.
Starting point is 00:02:40 Instantly make your builds faster. So cool. Again, depot.dev. What 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
Starting point is 00:03:07 the Friends feed as a remaster and for the first time ever in video form on YouTube. So you can see all the ridiculous faces that Matt makes along the way. Okay, let's get 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. It feels like there's something new every single week in ChangeLog News. So we thought we'd get together with our friend, Matt Ryer, who also happens to be a co-host of the Go Time podcast and of Grafana's Big Tent podcast, which
Starting point is 00:03:45 is an award-winning podcast. It is. Yeah. Even though and Go-Time is an award-worthy podcast. 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? Depends if it's every day or every week. Okay. 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 weekly? One more time?
Starting point is 00:04:23 Is it daily or bi-weekly? Sorry. That should have been clear. Not at the same time. Gotcha. Well, the confusing one is bi-weekly. Because that can both mean twice a week and once every other week. Two different meanings.
Starting point is 00:04:37 Who invented that phrase? Yeah. It's not good, is it? We have fortnightly as well as a turn. I like four-nights. I do like a game with the phrase. Right. The game kind of soiled the phrase, if you ask me, the word.
Starting point is 00:04:49 Yeah, 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, it's the oldest game in the world, though, isn't it? It's like, it's right up there with Duke Nugong. Yeah, we used to play on, like, in school we had a land party
Starting point is 00:05:10 and Quake 2 was the game we played. And then I used to make levels with my brother using Worldcraft, uh, 3D, world build. the thing and it was so much fun yeah to be able to like build levels and then play them with your mates was just couldn't believe you could do that these land 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 like 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
Starting point is 00:05:48 you know can't really believe the internet is your land yeah exactly so cloud that would be dangerous if the whole internet was all on one land wouldn't we be pretty exposed well yeah yeah for sure that's are nice yeah again two context for nats especially when you're just saying the word out loud yeah let's loop back to get how often do you use get matt daily or daily or weekly Well, this is interesting because you haven't been coding this much lately. This is a change for you. Don't out him, Jared.
Starting point is 00:06:24 Maybe not recently. Oh, no offense. I don't 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 that I can do work again. Yeah, so I don't use Git. But honestly, I kind of like, Git was always really complicated to me.
Starting point is 00:06:47 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 like to get flow that used to give you like that a workflow where you could give you a reason to create a branch, you do your work,
Starting point is 00:07:07 you merge it back in. 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. So let's, let's dive into it a little bit.
Starting point is 00:07:41 Let's look at the first one, which it's got that visually. It's called get heat map. And this immediately reminded me of like daisy disk or these tools where 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 storages across the span of your disk. Only this is doing it on your Git repo. Is it still file size that it's representing? is 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 are that churn a lot or like the hot files so 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
Starting point is 00:08:36 there and the image as provided is on c python which is a you know a project that has a long history of commits. And it's highlighted in the files that Guido Van Rossum 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 lips. 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've found over time in certain repos, there's like certain files that are the really active ones. and lots of people touching that file.
Starting point is 00:09:16 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?
Starting point is 00:09:35 What's the size mean? And versus the, you know, the color's obviously the most changed, I guess. So, 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 this is probably like the size of the diff, maybe the activity.
Starting point is 00:09:56 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. Maybe you can speak to this Mac because you're less in the code lately. You're less in the details. And so maybe you use something like this as a way to sort of like grok the bigger picture, you know? Or maybe this is great for a
Starting point is 00:10:24 presentation to, you know, the Linus kernel, for example. And you're at LinuxConf. I don't even know that's a real thing or not, but like some sort of conference focus on Linux. Like how fast is Linux moving? What is changing within the Linux kernel? Who's doing it? etc. Yeah, I can't imagine the amount of stress that goes on trying to do the presentations at Linux Conf, though, like trying to just connect to the projectors with Linux machines, no thanks. Yeah, it's an absolute shame. We have to use the non-free, you know, packages and whatnot to do that. So that may be against the rules to the conference even. Like somebody's like a super free software person. They're like, no way, man. I'm not going to use it. I went to FOSDEM
Starting point is 00:11:03 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 have good test coverage on the things that are changing the most. Because in a way, that's where you need more stability, right, where 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.
Starting point is 00:11:41 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, 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. And it takes that history and compiles a few database tables, which tracks files, commits,
Starting point is 00:12:07 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 as I would if I'm like new to a team and I have a repo maybe it has years in history I want to quickly familiarize myself with it you know running the test is a good first start and then maybe just throwing this thing in
Starting point is 00:12:55 there depending on how long it takes to operate you know you can get a tree map real quick I know I've also done like clock, C-O-C-L-C-L-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, 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, is how do you feel about like the fact that it looks cool,
Starting point is 00:13:30 is that a good enough reason for you to have it in? Because to be honest, like, although it's maybe even if it was just an aesthetic thing, I feel like sometimes that's okay. Like, it's like, no, this is nice to look. It's nice to have. We think it's cool. I don't know.
Starting point is 00:13:44 We kind of like it. We feel good about it. Is that a good enough reason, Jared? Or are you like, no, give me facts. That was 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,
Starting point is 00:13:57 surely this person, by the way, written by Jonathan Forsyth, so shout out to Jonathan. Well done, Jonathan. He's probably just, you know, scratch his own itch. He probably thought this doesn't exist. It would be cool. I always do enjoy popping open daisy disk
Starting point is 00:14:11 or clean my MacX or whatever and seeing that layout of my systems hard drive and like where the big vials 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.
Starting point is 00:14:23 I also like doing that with Daisy Disc. In fact, I found lots of big audio files, which were, when we record these podcasts, we record our own audio locally. So 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,
Starting point is 00:14:44 like 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 of that. Ryan's greatest his right just talks just talks to himself
Starting point is 00:15:01 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
Starting point is 00:15:13 that they have some sort of a mental disorder or a problem right because a lot of times they actually have like you know the tiniest little ear pod in or something and they're not just being insane they're actually just having a conversation
Starting point is 00:15:25 on the phone or something and it's really strange Yeah, 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
Starting point is 00:15:41 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. That is a pro tip. I like that. A little
Starting point is 00:15:57 A little speck of brain science for you. It 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 taught yourself. Now, there's certain circumstances where it goes too far.
Starting point is 00:16:16 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 all 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
Starting point is 00:16:35 in public places, that you look like you're insane. Truth. 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
Starting point is 00:16:50 to generate the database. Linux is one of the repositories, C-Python 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 C-Python, and the time to generate the Git-Log, the Git-Log size, and one of the things that Jonathan mentions is wanted features, which I think that's pretty cool, is like, obviously, faster database generations in there, sub-module tracking, remembering filters, other things.
Starting point is 00:17:24 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 New Zealand and is this the best one in New Zealand? 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.
Starting point is 00:17:44 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, submodule tracking would be amazing. I tried this. My project has submodules and it completely ignores them, but a lot of the stuff is in there. So I would love to have that.
Starting point is 00:18:09 How can I help out? I think that, I mean, there's really no other way that these kinds of projects, which really are kind of like scratching an inch 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 if there is a real business use case out of something like this, then 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
Starting point is 00:18:45 of that play. And 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. 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.
Starting point is 00:19:22 And they're like, okay, I'll do it because Matt wants me to, but less likely. Sure, that's cool, granddad. They just think I'm their granddad. Right. Yeah. And I haven't even got any kids.
Starting point is 00:19:35 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.
Starting point is 00:19:48 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 may be outing your, your potential unpopular opinion. I won't say it, but, you know, when you make a plan, you know, it can be too rigid, so I'm dropping some hints there. You know, I'm not going to ruin it.
Starting point is 00:20:08 You know, when you play, there's freedom, right? There's no constraints. There's no garrails 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.
Starting point is 00:20:22 But, I mean, I think there's examples of, like, large, you know, things in our world, like Flickr, I think was a game at first. Before it was like the photo sharing, you know, 1.0 version of Instagram. And Slack was essentially a communication tool while they built a game. See? The same guy, same teams. They were just playing. Are they ever going to make that game? Probably not.
Starting point is 00:20:47 It's done. It's done. 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, you know, I love to have permission to mess up and like get sim is the next one, visually simulate, get operations in your own repos. And I think that's pretty cool because you can think of 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?
Starting point is 00:21:16 And it's like, you can sort of like have this fictitious world. this potential future and just erase it. But isn't that kind of what Git 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 going to happen. And also, it's completely safe. Like, with Git, you know that 99% of the time it's in there, right?
Starting point is 00:21:42 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 time sync right and can be very anxiety dangerous 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 at this time.
Starting point is 00:22:21 I do a lot of R syncing in my network. And in some cases, I do deletion through R sync. You do a lot of ars what. R syncing. R sync. Put in, is that like tattoos on people's bar syncing? Yeah. R sinking.
Starting point is 00:22:38 Nice. Tush. Is this a hobby or are you trying to get a new gig going? No, the above. No, the above. Can you do me right? Let's know the flag I'm going to mention here. Okay.
Starting point is 00:22:46 So with, with, with, when you. 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 in and just kind of see what it might do. And it will go and do that whole thing. And that's my favorite thing, like, especially with that kind of, like, dangerous tool, you need sort of a simulation zone so that you can, like, simulate. Yeah. So that's, 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
Starting point is 00:23:29 it button yeah i guess is what you're saying yeah yeah it's like commit it's like yeah that looks good yeah let's good do it 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 r sync one that you describe yeah true we'll just tell you what it's going to to do. And the author of this, which we should shout out. Ars-inking, Matt. Yeah, I can't un-here it now. I know. I do a lot of R-sinking here on my land. I'm picturing, you know, a tattoo artist. Arsinking. Yeah. So this tool by Jacob Stopak from the initial commit team, which is a team that does get things. And he writes that there's a dry run flag and get, which is
Starting point is 00:24:16 dash in 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, you know, 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. So imagine this tool
Starting point is 00:24:49 Getsim 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, it's just a better user experience for dry runs. Yeah. This would be very useful and probably would like satisfy some of my fears here around, you know, get commands just being too complicated. And I don't, don't really have the confidence that it's going to 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 O-Fay with with Git and so this would give a level of confidence for sure I'd be like okay so you've typed this in and here's a picture is this what you meant and you're like no
Starting point is 00:25:36 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 it's pretty cool it looks good too they have gifs on the i don't know then it 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 you doesn't know what you can pronounce it right good point the points for that thanks gerard seems to be a dot m uh mp4 just to be clear Matt. Thank you. 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
Starting point is 00:26:22 depending on what they want to write. Okay. Yeah. Would you say you get those daily or weekly? Yeah, I would. I would say that way. Yeah. I wouldn't say moreover. Someone said moreover earlier. I don't think I was reading. I was reading verbatim from a blog post. So you can take that up with Jacob Stopak. I'll let him know. Jason, just let's just come here, Jason. Jacob. Jacob. Sorry, Jacob.
Starting point is 00:26:46 All right. So that sentence had a bug in it, which leads us to our next tool. Oh, these links are brilliant. This is professional. Yeah, you're really working with pros here today. Yeah. This one I love that. I absolutely love this concept.
Starting point is 00:27:00 Yeah. So Gitbug written by Michael Muray, I think is how you pronounce his name. Basically, he's got a bug tracker in Git. Hmm. It'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
Starting point is 00:27:16 Oh Works offline No vendor lockin It's fast I'm just reading as bullet points now It doesn't pollute your project Good job It integrates with your tooling
Starting point is 00:27:26 Need of workflow So that's what's cool about it Is that bridge is over to GitHub issues To get lab Whatever they call their issues To Jira If you're in hell already
Starting point is 00:27:36 Oh boy Geez Darren Sorry No. Say it like you feel it, man. Say it like you feel it. Oh, I've never liked that tool. I don't know anybody who does.
Starting point is 00:27:48 I feel so for people building... Send Matt a letter. Oh, yeah. Please. If you love Jira, let Matt, no. Send it to Jason. He doesn't exist. I got his name wrong.
Starting point is 00:27:57 There you go. 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.
Starting point is 00:28:08 Sorry, in GitHub, it has issues. 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 is built out, it like models Gits way of working. It works like Gitworks. It's just
Starting point is 00:28:51 inside of your Git repo. It has a CLI. So you interact with it from your CLA, 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 thinking I'm pretty impressed by this tool actually I 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 the reports oh error tracking yeah like is a bug in the error I mean it's kind of like the same world isn't it no bug tracker error tracker not really and how do you do it Matt over there in grafana well I was going to say like um if there's a
Starting point is 00:29:37 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 at it in Century. Right. There's a ton of errors in there. And some of them turn into bugs that we open on GitHub issues. But if every error turned into a bug,
Starting point is 00:29:57 then we'd have my no bugs command would be way off. Like, there's so many errors that only, 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 a following say it again in different words make it mean a different thing as well if you can at Grafano we do we have error budget
Starting point is 00:30:36 actually. So this is a concept that 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
Starting point is 00:30:53 where I could say it as a non-technical CTO. It's an idiot essentially. And he said no, it shouldn't be any errors. Like why are there errors? Why are their bugs? You shouldn't have any bugs and no errors. Generally, that was his position.
Starting point is 00:31:06 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 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.
Starting point is 00:31:49 And so error budgets. How are those measured? Is it like errors per lines or is errors per week or how does that way 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. Yeah, before you consider you've got a problem. A threshold, sure.
Starting point is 00:32:08 Yeah. That is a cool idea. I think the same applies. And it's realistic too, right? Like, it just accounts for reality and it 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 all of a sudden. Are you saying GIT get out of hand or GET get out of hand? That's open interpretation. Okay.
Starting point is 00:32:29 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.
Starting point is 00:32:49 It's get. What do you mean? No, it's because, uh, because Linus wanted to make the joke on the term, that it's a tool for gets. Like, isn't Git kind of a pejorative? Yeah. Over there. Is that what it was? He pretty much said that that, that it was supposed to.
Starting point is 00:33:03 to be, I can pull up the quote. Oh. I thought it was like a, in a Texan accent. It was just like someone saying, get. You want to hear something funny. Yeah. Adam's what you're saying. I'm a transplant Texan, okay? I didn't, I didn't, I wasn't
Starting point is 00:33:17 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 was going Dan Tan. Okay? That's cool. And I'm serious with you. Okay, this is when I first
Starting point is 00:33:33 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 he got louder dan tan tan tan I'm like can you please explain in different words and he finally says downtown oh I'm like you can't finally you can say downtown seriously man like Dan tan for like three minutes here and I'm asking you what are you talking about well that's the final word here. And this is hilarious because it shows how small a world it is. I googled it. Technically, duck, duck, goad it. If that's a thing. You duck, d'gwent. I went there. Yeah. And I found how Git got its name. In this article, this historical article
Starting point is 00:34:21 is written by none other than Jacob Stopak. What? From initial commit. Yes, he wrote this. Jason. He's back. He's done all of this history here. And he says, okay, when When Linus Torvald made his initial commit of Git, April 7, 2005, he supplied this message. Initial revision of, quote, get, the information manager from hell. That's the subject. And then he provides the deeper cut in the content. Yeah, what do you call it? The body.
Starting point is 00:34:55 The body of the commit message, yeah. Sure. It says Git, the stupid content tracker. Git can mean anything depending on your mood. One, random three-letter combination that is pronounceable and not actually used by any common Unis command. The fact that it is a mispronunciation of get may or may not be relevant. Hello. It may not be relevant, Matt.
Starting point is 00:35:16 But it may be. 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.
Starting point is 00:35:27 You're in a good mood and it actually works for you. Angels sing and a light suddenly fills the room. on the fourth one. Oh, I can't actually say the fourth one. We'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.
Starting point is 00:35:44 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.
Starting point is 00:35:59 I wonder what Dan Tan would think of that. Dan Tan. Hey, Dan, have you seen this? You're going to love it. You know, for example. That's pretty good. I don't want to insult me. My other friend, I'll give you one more.
Starting point is 00:36:17 Other friend, I like you just admit you've only got two. That'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's, you know, Montana, as you may know. Is it?
Starting point is 00:36:32 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.
Starting point is 00:36:54 And this person drives over the power washer's hose. And the guy yells at him He says There's 5,000 PSI there, man It'll blow up To this day That's 5,000 PSI in there man It'll blow up
Starting point is 00:37:12 That's what he said Like as if you drove over this Pressure Washer's hose Because it had such pressure It would blow up Now that's a public service announcement If you ask me Just so you know
Starting point is 00:37:24 Now it did not blow up To this day We laugh at that why why is that so the power you can cut this bit out but I just want to know just for my insanity 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 Two more times.
Starting point is 00:37:59 Two more times. I will sit 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. Who is get UI?
Starting point is 00:38:12 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. But let's talk about Git UI first. written by guys whose handle is extra worst so he's not just the worst he's the extra worst but maybe the sausage kind it looks versity doesn't it
Starting point is 00:38:36 it's versed extra versed you know it's like it's 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
Starting point is 00:38:52 yeah whereas everyone else like, oh, that's a good German accent. So I just think it's not. I was about to give it a compliment. Yeah, because I don't know. Anyways. All right. So here's extra versed description or why.
Starting point is 00:39:06 You got to do it right, Jerry. Extra versed. Matt, you want to read this in the German accent for us? Yeah, it's in the dock there. I do most of my get work. That one. I do most of my get work in a terminal, but I frequently find myself using get queries for some use cases.
Starting point is 00:39:23 like index, commit, diff, stash, blame and log. Unfortunately, popular GITS quiz, or fail with giant repositories or become unresponsible. I've lost the accent. Become unresponsible. It went a bit French. It did.
Starting point is 00:39:42 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, we should leave that in, but we should back that out.
Starting point is 00:39:53 say we this is totally cool extraverse we don't think that you're the way mad'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 a extraversed kind of sense of humor like it's uber good I love it. So hopefully our friends in Germany will appreciate that. Yeah.
Starting point is 00:40:29 But to read it in terms that we can all understand here, 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.
Starting point is 00:40:44 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 going to shout out one, get gooey here near the. the end. But mostly I just usually get 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? Because it looks pretty sweet. Well, I feel like
Starting point is 00:41:08 I need to come out now and tell you that I actually use GitHub desktop. What? You said that you need the terminal. No, no, no. I said that. Yeah, because it's like really complicated. I avoid complicated stuff. Okay. This. I like because it reminds, yeah, we can go back and check the recording, mate, if you're calling me a liar. Yeah, do that little rewind sound. I used to, I'm just, you know, hello, now I'm back to doing this accent again. So, no, no, go back further. Go back further.
Starting point is 00:41:39 Okay. But 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 when I was a kid and stuff. So it has this real retro feel, which I really like. But kudos to writing it 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.
Starting point is 00:42:11 Well, friends, I'm here with Damien Schengelman, VP of R&D at Oz Zero, 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, artificial intelligence, agents, agentic. What is Off Zero doing to make that future possible? So everyone's building Gen. A.A.A.A.A.A. Agents. That's a fact. It's not something that might happen. It's going to happen.
Starting point is 00:42:38 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 cardrails. And identity, essentially authentication, authorization, is a big part of those cardways. we're doing at OTH0 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, and they're working just at a startup that right now came out of Y Combinator, to build these things with SDK's, great documentation, API first types of products, and our typical OTH0 DNA. Friends, it's not if it's when, it's coming soon. If you're already building for this stuff,
Starting point is 00:43:20 then you know go to off0.com slash a i get started and learn more about off for gen ai at off zero dot com slash ai again that's off zero dot com slash ai so subtopic then so 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 GitSim. This Git bug is written and go. Get 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.
Starting point is 00:44:02 And that's what I can't tell you're saying get to it or get to it? I mean, you're really getting me here. Did you see that bet? You're really getting me. You're really getting to me. I'm sorry. I had to pun it out there. That's good.
Starting point is 00:44:14 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
Starting point is 00:44:42 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 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 I see your tool and I see it's written in Ruby, I'm kind of like, eh, do I want to mess with this?
Starting point is 00:45:12 And that's how I am with Python as well. Their stories are just fraught. Do you not use GitHub, then? That's Ruby, isn't 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 know 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.
Starting point is 00:45:35 Whereas 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 Jem install
Starting point is 00:46:00 or it 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 is different because you kind of have to use
Starting point is 00:46:12 HomeBrew or PIP if that's the way you want to go or maybe vanilla straight up Ruby or a binary but if it's on Linux, it should be an app or whatever your flavor would be, yum, or pick your, 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 to 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 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
Starting point is 00:46:53 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 don't I mean, like, it could be a can of worms. Right. 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, then it completely makes sense that it would be written. If it's, for sure.
Starting point is 00:47:31 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 version issues, but yeah, you can't, I mean, just a single binary. General purpose tooling that wants to be used by people that are outside your particular ecosystem, ideally, which 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. 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 then you Google it or you duck,
Starting point is 00:48:09 Dock, go it. And it's like, okay, you have to remove these files, then go and find these files and remove them. Then open the registry if you want to remove these values from the registry. You know, like, amazing. Scatters, it changes throughout your registry. And you're like, ah, I have one global registry. And I don't know all the places that has been changed.
Starting point is 00:48:30 Yeah. Yeah, it was, you actually had to do occasional, just reformat your computer to clean it all. And that used to bother me. And I like on a Mac that applications are mostly contained inside that single Zit. But not entirely, though, right? And they're not entirely, yeah. With the M1, wasn't there more chains? Like, didn't Homebrew move to the Opt directory, I believe, wasn't it?
Starting point is 00:48:52 Oh, yeah. Yep, Homebrews installs into Opnow versus User Local. And I can't recall why that was, but that was a new change. I'm sure some sort of, you know, security enclave reasoning, right? Maybe. It's just challenging, yeah. I mean, you think, I mean, you got P. that spread about you've got something that might be in my application support folder or just
Starting point is 00:49:13 you know it's it's uh give me a good self-contained uninstaller with the thing yes please give me an eject button whether it's an application that i you know installs a literal mac app or you know a dev tool give me an uninstall flow that is respects my system because 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
Starting point is 00:49:48 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.
Starting point is 00:50:01 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,
Starting point is 00:50:13 I'm like, where's the registry? Is there a registry? I know, but I'm on a Mac, so there isn't. Another culprit is installing something to dot local in your root directory or your home,
Starting point is 00:50:22 your, your, I get, yeah, your home, I guess. Yeah. And not removing it or putting it in like a hidden folder.
Starting point is 00:50:29 I mean, obviously I'm going to do a LL or L, depending upon what your flavor of, how many else you use. I mean, if you got an alias or whatnot. You know, which I do because I use oh my ZSH. You know, I pay attention to these things.
Starting point is 00:50:44 Yeah, I don't like to do LL. Just one. I don't know. I don't have time for that. No, no. You're busy mind. Why, too, when you can just do one. It's good question.
Starting point is 00:50:49 All right. 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 tool? 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 feeling intimidated or approached upon? No, no.
Starting point is 00:51:16 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. 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 and rust but but the trade-off is you get much more secure much safer execution
Starting point is 00:51:50 and you and I guess if it compiles you got a high chance it's going to be correct and so there's like benefits there 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 they'll be trendy sort of things going around. But 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, I can only. Okay. So reasonable. Okay. Well, in that case, I could get my guitar and do an anti-rust song, if you like. Okay. 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.
Starting point is 00:52:36 Yeah, that might be. He has a guitar. display is annoying because it follows you around when you move and 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 and because everybody sees it. What's this song
Starting point is 00:52:51 called, anti-rust song or what? Yeah, I don't know, I guess, um, yeah, I guess so. It's going to be an anti-ruth. What key do you want to? It's called Rust away. Rust away. Oh, yeah. Okay. Yeah. I should just do it. We can always cut this, can't we? No It has to go in
Starting point is 00:53:09 Hey baby What you're typing in I never seen such crazy things What the heck is all this going to do I got some very bad news for you. We're going to rust away. Gonna rust away. You're going to rust away.
Starting point is 00:53:55 Today. Rust away, Matt Ryan. Critique? Yeah. Can I critique? I can't hurt his feelings. No, do it because it won't hurt your feelings. It wasn't great.
Starting point is 00:54:12 So if it was, if there was a version two, let's say you go away and you think about sleeping, maybe you sleep a little bit and you dream. Yeah. And you think, well, this is actually a hit song. I could probably do some with this. I would just encourage you to put a little bit more rust laying specifics into it. Yeah, I don't know enough to do that. I was thinking that.
Starting point is 00:54:32 I was going to mainly focus on like. Could have mentioned Car. ago or anything. I mean, really, anything. Yeah, my knowledge is really limited. I was going to focus on like, um, it's really, it was really quite awful, actually. Yeah, I was going to 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, right, detect the metals. And it dies. Yeah. Rusting metal, why would you want that? It's red iron oxide. There's lots of ideas, but, um, 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
Starting point is 00:55:09 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. Sorry about that. Let's move on. Git branch lists. This is our last one of the list here.
Starting point is 00:55:46 High velocity, monorepo scale workflow for Git. This is like a grab bag of utilities. It's a weird name, get branch list because it doesn't have to do anything to do with branching, really. But it adds a bunch of cool stuff. It's a good name, then. Very nice. There's no branching. Yeah, it's branchless.
Starting point is 00:56:03 And you're like, oh, I don't know what's cool. called that. It doesn't have anything to do with branches. But that's, it's called Brentless. 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. Yeah. 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. Yeah. 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.
Starting point is 00:56:34 All right, I revoked my argument. The point is, there's lots of cool stuff here, smart log, undoing, yeah,
Starting point is 00:56:41 written in rust. So it's not rustless by Walid Khan and been out there for a while. But not too much to say about this
Starting point is 00:56:54 on the show for me necessarily, except for that. It's just a lot of like very nice user experience improvements in your command
Starting point is 00:57:03 line Git. 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, this is a bunch of utilities. Why not like make a standard utility library? Right. So I googled it. And there is a Git Utils, but it's not maintained. I'm not maintained. It's not maintained. You know, it's, it's sort of like I would, I 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. Right. It's tough to tell the difference sometimes. I was just talking about this recently. I think on change log news on a post about quitting. What's the difference between quitting and being finished? You know, they're quite a bit difference. But with open source, you can't tell, like, is this thing unmaintained or is it actually? actually finish. 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
Starting point is 00:58:13 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. And 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,
Starting point is 00:58:41 like software's never finished and 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
Starting point is 00:58:55 regardless of its origin, whether it's GitLab, GitHub or whatever. I almost seem like a health meter or at least a democratized version of it. It's like, okay, this may have had to commit two years ago, but it's still. Right. It's being used. Like the downloads are still way up, for example. Or the, you know, this release is getting pulled constantly into like other things.
Starting point is 00:59:15 You know, yeah. There has to be a different metric than just. You know, does have that pulse page, which they've kind of, 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 generating issues for people,
Starting point is 00:59:37 but not even being responded to. Generally, finished software is at least, I mean, there's still going to be things that come up over time, but kind of less bugs per response. And then there's like, you know, PR is merged recently. And it'll just show you like what's been going on. It's not exactly health, though. It's more like recent activity, which can be a proxy for health, but not always.
Starting point is 00:59:58 Yeah. Yeah. Well, I have good news for you, Jared. Dun or Perfect.com is available. So, I mean, we can encourage somebody to build a tool called Dunner Perfect. So you got to do with one of this. Not Dunder Mifflin. Done or perfect.
Starting point is 01:00:15 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. You know, I'm trying to create a, you know, rust away song for you, man. Come on. Give me a dime. Now, just some sort of, you know, I, I mean, I don't think that the Insights tab is that insightful in this regard.
Starting point is 01:00:35 So maybe there's something that could be done. Maybe it's just a, maybe it's a fun project. Like Matt said, like, this is just a fun thing. And then maybe GitHub acquires you. And then 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.
Starting point is 01:00:55 I don't know. One could dream, right? Yeah. so if you register done or perfect.com you're going to be a billionaire with Microsoft stocks if you do it yeah if you execute well yeah okay yeah probably if you if you if you do it just do it all right let's we hop down popular opinions or should we we have we have we have more things that we've shared that are get related but we can also just uh get on with it maybe a state of get internally here you're like how do you get
Starting point is 01:01:25 Jared. How do you get Matt and how to Adam? How do you get? Speak of myself. Okay. Are you a simplicity person, Jared? I know that you just use terminal. Dot app, not I-term or even fig or, you know, what else will we have on the show? I do use ZSH now versus Bash. I can't believe you are having to go at me. I use it as if it's Bash. Excuse me. I can't believe you were having to 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?
Starting point is 01:02:00 Yeah. 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 gooey myself. So I can get graphical.
Starting point is 01:02:17 And the one that I prefer is called GitX. and i get x has been a long long time project that's gone through multiple forks and abandonments and community pickups as macOS has changed dramatically over the years and so there was this rowan i think it was rowan j had a fork of get x that they maintained for a while after the original get x author didn't want to do it anymore and then that went unmaintained and i went searching actually for a gooey 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 like selecting all that.
Starting point is 01:03:06 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.
Starting point is 01:03:25 This is like the best side of open source, right? Like people that loved it and wanted to use it, picked it back up. And now it's under like the GitX, GitHub org even. It's not some user's account. And it's an open source get 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 we're, you know, I don't need any new features, honestly.
Starting point is 01:03:53 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, get status, simple commits, like get commit dash all with a message, command line, push and poles, command line. But staging, reviewing, that kind of thing from GitX. so I would highly recommend that for MacOS users and a link to a little shout out since you mentioned the fact that this is being maintained thank you to this is not sponsored
Starting point is 01:04:27 but I am a fan Mac Stadium and the footer of the read me it says get X is Lice oh that's the license never mind the one before the last not the very very end of the read me almost to the end of the read me it says this project is supported by Mac Stadium Open Source developer program
Starting point is 01:04:46 and they give them a free Mac Mini for their CI. So they say thank you to Max Steam. So I mean, that's super cool. Like, I think we should do like shout-outs, Jared, 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 to the Wales project, which is Wales app. You know, you can build desktop apps using JavaScript and they're great. They feel like native apps and I want to support that project.
Starting point is 01:05:24 I don't talk enough about what a sort of open source hero I am, frankly. Really? 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.
Starting point is 01:05:39 Well, I did write Testify, which is Go's big, that's the testing framework that everyone uses in Go. We had you on the show talking about your stuff. You had bit bar, X bar, right? So you got your open source. Yeah, but I'm 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, actually.
Starting point is 01:05:58 And it's a big weakness because, like, I don't know. It's a disdemeanor myself a disservice. So this M1 Mapbook Pro, it's being used by someone to maintain whales, I assume? To build. Are they sharing it and mailing it around? I love the idea of that. But no, they, someone. one has it and they use it to
Starting point is 01:06:17 test. No, no, they're using it to actually test because you're building desktop apps and so M1 was very, M1 was very different and they wanted to for this work to do there. That's true. That's a great point too. I mean, when you do desktop-specific development
Starting point is 01:06:34 and you don't have the latest rev of Apple Silicon, you know, you need that and maybe don't have the cash to shell out or want to because this is just a fun thing to you. Right. You need supporters. that's cool yeah and of course you can sponsor a lot of projects now on GitHub um so i recommend that and i don't think enough companies do that if you're using if you're a company
Starting point is 01:06:56 and you use some open source project and you can sponsor it i feel like you just should like that we should we should make that more normal um really you know especially if you make money off that project in directly or indirectly well again maxdiam.com shout out to them Super cool. Super cool. So you're a pretty simplistic Git user than Jared. I mean, you mainly stay Cameland only except for visual specifics. Yeah.
Starting point is 01:07:27 Keep it simple. You know. Keep it simple. You're a simplistic Git. That's what he just said to you. I love that. And I owned it. I do.
Starting point is 01:07:33 I agree. Well, I pause. 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, you know, I had to describe to you guys what get meant earlier in this show.
Starting point is 01:07:45 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 thought you'd at least go DDW. I duck, duck went faster than you guys. All right, Matt, your turn. How do you get?
Starting point is 01:08:02 How do you get? I like to keep a simple, I'm a simple get. 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. I just put in the letter of resignation yeah I tend to use GitHub desktop as much as I can
Starting point is 01:08:23 and then I'll go into the command line if I have to if things aren't 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 I'm not a proper dev because I use desktop apps and stuff
Starting point is 01:08:37 I know Jared you're joking but I still have a song for you I was a serious Yeah. No. Are you a song for me? Uh-oh. Look what I did.
Starting point is 01:08:47 Gosh. Look what I did. Two songs in one show. Is this possible? Don't say that because hopefully the first one gets cut. No, it's not getting cut. What's the title of this song? Keyboard Wizard.
Starting point is 01:08:56 Keyboard Wizard. Okay, good. Oh. 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 version. I feel like Howard Stern right now.
Starting point is 01:09:09 What's your song title? Okay, go ahead. All we need is an awesome artist. And then we will be. That's true. Well, meanwhile, You've got me. I don't care what you wear.
Starting point is 01:09:18 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. Except what's your ID? Your ID, please. I want to know.
Starting point is 01:09:43 Oh, I can see, are you a vis-corder 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 Screenshare with me Screenshare with me
Starting point is 01:10:22 I want to know so I can see Are you a keyboard wizard I don't need no mouse A track pad is just a rectangle As far as I'm concerned Because I'm a keyboard Wizard Woo!
Starting point is 01:10:47 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 a very serious point there, which is, you know, let people just use whatever tools. They want, don't make us feel bad
Starting point is 01:11:00 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, Harjot Gill, CEO of CodeRabbit, 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 hard job.
Starting point is 01:11:22 Either way, code review remains the bottleneck for teams. What do you think? How does CodeRabbit fit into this new world? My message to developers is like AI is here to stay. We have seen 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
Starting point is 01:11:51 developers is what we have been seeing I mean it's like just alleviating the role of and it's like going from a tank battle to an air battle like 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 Code Abbott,
Starting point is 01:12:18 generate a AI-based code reviewer, which reasons about your changes, and elevates your role as a reviewer. Like, you're not going and finding issues which are at surface level at the code. I mean, it goes beyond static analyzers to understand and those changes. But it does elevate your role as a reviewer
Starting point is 01:12:34 to look at the high-level picture, whether these code changes are aligned with where this product has to be, where there is 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, is a great thing about this solution. It works where you work.
Starting point is 01:12:49 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, GetLab, 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 right complement. 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.
Starting point is 01:13:24 Very 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 poll requests. You can get started today for free and it's also free for open source. Learn more at Codrabbit.aI again, codrabbit.aI. Well, 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 get stuff built into it. Do you, have you tried any of that stuff?
Starting point is 01:13:55 Do you like it? Are you just like, I'm happy with the GitHub desktop, I don't care? Actually, yeah, for the simple, like, just stashing, committing changes. like I'll just use that in the ID because it's right there exactly. So it's 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?
Starting point is 01:14:19 Debatable. Yeah. Hostinger tutorials mentions that GitHub desktop, it specifically says if your remote repositories 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
Starting point is 01:14:37 you graduate. It's like, well, certain things can be done via the command line. I'm here. Why ejecting go somewhere else? Certain things should be done if you're in VS code. Why not use some of the visual aids inside of VS code? I do that. Like, you know, I might add a file to a, you know, to a commit that I'm staging up and whatnot and type the message in and the long I go. Why go to a full-on GitHub desktop experience? Well, maybe you're visualizing are you doing something with issues or maybe there's a PR going on and it's a bit more complicated
Starting point is 01:15:08 and a bit more GitHub specific. It makes sense. Yeah. Yeah, it does. Use whatever tools you like. Use whatever tools you like. So for me, thank you for asking. Adam, very, very simple.
Starting point is 01:15:21 I'm just using Git. Let me ask you. Adam, what's your favorite ever song? Favorite ever song. Okay. Well, I'm going to go to your side of the point. I might say something from the Beatles. I'd probably pick from yesterday.
Starting point is 01:15:40 I might, yeah, I'm just actually, I'm a big fan of the movie yesterday. You've ever seen this movie? Yeah, what a great premise. I have not. Amazing movie, but it's a great song, too. So I'm a beautiful. The premise of yesterday is this guy just discovers that the Beatles never existed. And so no one knows them, but he knows all the songs.
Starting point is 01:16:00 And he's like a songwriter. So he just pretends who 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 beetles uh very much i have an original sergeant pepper's album in mono which is you do which is good i just listen to it in one ear because you do it's nice um and yeah it's just beautiful paul mccartney i think probably one of our greatest ever songwriters you know just amazing Phenomenal, phenomenal. So that's, so yeah, my answer is that. I mean, I think the Beatles 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 the situation? How I, I don't know. I don't want to expect it under your head or? It's probably terrible. They've got your kids. The phone calls come from inside the house.
Starting point is 01:16:56 Come on now. You want to do a Liam Mason situation here? You want to go, you want to go there, Matt? Oh, Matt loves Liam Neese. He does a Liam Neeson. I don't care who you are. Gosh. I want you to listen to the same song. Unrepeat forever. Or I will find you.
Starting point is 01:17:13 Yesterday. Yesterday. No mercy. Oh, gosh. Yes. 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 there.
Starting point is 01:17:26 Always keep it. I figured he could do that. Yeah. Can't wait for someone to mention Jack Sparrow. I think we've drained mad of all of his talent on this one episode. I think he actually has, I mean, do you have other bits? We know you have Jack Sparrow, but I mean, you're pretty much done. German character, Hans.
Starting point is 01:17:43 Hans. That's that. Yeah. Yeah. Speaking of other modern, famous singer-songwriter, Ed Shearin, could you do an Ed Shearhan version? You also sing a lot, too. can, are you, do you like the guy? I think he's a great songwriter, uh, actually. Um,
Starting point is 01:18:04 so yeah, I think is, I think it's good. But no, I don't, I can't, I mean, you can have a distinct emily. You have a distinctive voice. No, I mean, he does singing, but. Yeah, but shocking, I don't know, yeah. I could do beatles, though, if you like. I can do every, I can, I can, I can do every beetle. They're all different. Ringo, you can do Ringo. Of course I can do Ringo, you know, he's very bouncy and he talks, you know, uh, that's Ringo. And it sounds like he, you know, you know, doesn't know what he's saying but he does you know and you know paul mccartney's a bit like that too bounces around but he's a bit more upbeat and also you know it 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
Starting point is 01:18:43 and then you've got george is my favorite because george really doesn't sound like his doesn't really sound like he's all there but it's really good he wrote so here comes the sun you know all right did you know that pretty good Oh gosh Look at you done Adam Open up this can of worms Can't put the worms back in the can I love it
Starting point is 01:19:11 Yeah Can you actually get cans of worms Like can you buy them? Yeah For fishing or something Or just eating For sure You can literally get them
Starting point is 01:19:21 And you can figurely get the version That's a simulation Or you know Not really the can of worms Is it like... You could buy the one for the kid, like the prop. Oh, yeah, where a big snake flies out when you open it. For sure.
Starting point is 01:19:33 That's one worm, though, in it? I wouldn't say. I'd say that's a can of worm. There's versions with many worms. Yeah, it's like attorneys general. It's been a get fun party. So much get in this house. I've got one pick that I would like to also bring up that I learned about at FOSM.
Starting point is 01:19:52 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 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. So you never, your main is never broken.
Starting point is 01:20:27 your main branch. Well, that can be sometimes a little bit too strict. And review pad lets you actually create some more nuanced rules around this. So you can say, for example, mark down files, just let them go straight to Maine. You can say, like, in this case, I want to, 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, files, you want to make sure the entire test suite runs because it's quick, so it's no big harm. But 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
Starting point is 01:21:12 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. This is something that I would expect to have in GitHub at some point. This is really good. I haven't used it yet, but I do intend to. What do think of that review pad? I like all the words that you just said about it. Okay. It's, it's brand new to me. It sounds really cool. A glowing review from you, which, which does
Starting point is 01:22:03 mean a lot to me. So I'll definitely look closer at it, but I think that. It's too late to start being nice to be now, Jared. 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, and 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
Starting point is 01:22:46 in his pro tip time because he's been using that and it has been loving it. 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's code.
Starting point is 01:23:07 It's almost like, you know, to main as code. I don't know. Just like something that says, like we have to have a gate on this process. And like you had said, there are certain things that can go through, more nuanced rules. And that totally makes sense. and a one-size-fits-all get pushed to Maine does not always fit. So I can see how this makes sense.
Starting point is 01:23:30 The thing I think I question, though, is less the tool itself, more like Steve Jobs said about Dropbox, is this just a feature or is it a product or a company? I wonder if, like, in some cases, this is a great stand-up of a feature that should just be GitHub proper, if that's what the majority uses. Interesting. I mean,
Starting point is 01:23:54 I wonder if their strategy is like an acquisition thing. And sometimes that, sometimes that's great strategy to have. 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, you know, three times.
Starting point is 01:24:08 Three. 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 died because there's no company it's just the feature so that's why we have to we have to sponsor open source
Starting point is 01:24:34 if we want to keep it alive we can't just expect it to keep going and you know 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,
Starting point is 01:24:53 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. And I just am just guilty. I feel guilty. Yeah,
Starting point is 01:25:04 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 executing? I'll say it. A Git heat map sounds pretty cool,
Starting point is 01:25:14 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. He 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?
Starting point is 01:25:32 Well, I mean, it's not me, man. It's somebody else, of course. No, I mean, I think that I just... It's damn, Tam. Dan, Dan. It's back again. Pay for your project. The point you're making, though, is...
Starting point is 01:25:46 The point you're making is great, though. We should support open source more. I think, you know, I always want to see more clarification on the how. You know, get up sponsors is one answer, but, you know, it's an avenue. It's not, well, it's not like what. You know, the what becomes infinitely harder to define if you don't examine the open source you use that's useful to you. You know, and then sometimes it might be corporate sponsors. It may actually be open source, but it's a company who's backing you.
Starting point is 01:26:14 well, you're going to support that thing. Well, maybe, you know, you might use it as a support, but, like, they're already a company, just buy the things, you know, that support them to make it, you know. I liked the words in, I liked all the words that you just said. Thank you. I don't agree with your point. It's a quiet argument.
Starting point is 01:26:34 That was a very, yeah. 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 thing. I'll check it out. You will like it.
Starting point is 01:26:48 I just don't like to give you too much credit, you know. I don't like to give you exactly what you're looking for because you you beg for so much. Well, let's close up with a lightning round. This has been a fun conversation on a long one, you know, way more singing than expected or hope for. A lot less, yeah. A lot less than I expected. I was, I'm really here to do songs and there's been a lot of talking about gits. It's spent a lot of time in between...
Starting point is 01:27:15 We 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.
Starting point is 01:27:43 Otherwise, you'll have to splice it. Yeah, we can splice it right here. I'll just do a musical version. Gosh. We're back to this again? See, I'll turn it. Yeah. Splice it in.
Starting point is 01:28:05 We'll splice it. actually think you should probably leave. Unpopular opinion. So for those who don't listen to GoTime, Unpopular Opinions, 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've found over time is that most unpopular opinions are actually popular when it comes polling time. But there's been a few people who have been somewhat
Starting point is 01:28:53 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 times. What is it? That J.S. Party's better podcast than Go Time. Phil's bad for JS. Which is unpopular, of course, with the Go audience. But we're going to lightning round real quick so adam gosh me first do you first one do you have an unpopular opinion you like to share i think my unpopular opinion is i don't have any unpopular opinions i tried so hard to think about like something that is unpopular and all i can think about is popular things 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 learned a habit stack.
Starting point is 01:29:40 Hmm. It's a superpower. What is 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, you know, the inner secrets of this dark secret basically. So you have habits, right?
Starting point is 01:29:56 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, you know, maybe twice. And I wear glasses like you, Matt. I wear glasses. And as a glass is where you must be upset. or get upset when they're dirty
Starting point is 01:30:10 I get furious especially upset if you have to have a special microfiber cloth to clean them because you can't just use your shirt your glasses will smudge I hate dirty glasses now that I have a point of empathy he can understand what I'm saying
Starting point is 01:30:27 so my feeling is like if I'm gonna if I'm gonna have dirty glass all day that's this upsetting can't do that well I forget I get busy you know I have this cloth in my pocket all the time. 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
Starting point is 01:30:48 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. Right. 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
Starting point is 01:31:15 these emails but you've got that minute minute and a half or maybe you've got a couple slap minutes to stacking up or something that can happen that 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
Starting point is 01:31:31 maybe it's a PR review or a one liner or whatever it might be maybe a quick chat with chat. Who knows? Just do something. Yeah. It's just multitasking or is this more than multitasking? It's not like you're just talking about multitasking.
Starting point is 01:31:45 Well, I think in that case, no, no, no. Well, because in that case, it may be blurred.
Starting point is 01:31:49 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,
Starting point is 01:32:00 neurologically, I'm thinking I got to clean my glasses. Because right here's the thing. I just do. it. So it's a habit of the forms of other habits. I would think what about like when you realize they're dirty? Well that's,
Starting point is 01:32:12 well, the point is that you always have that cleaning cloth. Oh, I got you. Unless you're clean, you know, unless you care that this cleaning cloth with you everywhere. And I just don't.
Starting point is 01:32:20 So like if I'm deploying my code, I could floss my teeth. Well, I mean, Jared, pick your habit. I'm saying, you're like,
Starting point is 01:32:25 if you got, if you got issues with floss and then maybe, maybe. Yeah, but I, I kind of liking this. I wonder if it also works with bad habits. Because like,
Starting point is 01:32:33 if they're like, maybe you're a nose picker. D-stack. You can de-stack things. No, I don't mean so that you can do bad habits, Jared. That's math. Every time you pick your nose, every time you pick your nose, have a cigarette.
Starting point is 01:32:46 Sure. Because you do, that's redirection. Yeah, that's redirection. That's, I mean, so if I understand you correctly, maybe you have a bad habit
Starting point is 01:32:54 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. Right. Replace it with. Now, I'm thinking that, do a bad habit.
Starting point is 01:33:05 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. So 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.
Starting point is 01:33:25 You're like, well, since I'm bad here, I should be good. Yeah, that's what I was thinking. I should. I was tried to do that. I thought, yeah. Like actually double up on the deodorant. So I'm not. All right.
Starting point is 01:33:34 Well, this one was going to be. unpopular with me. I think it's a terrible idea. I think half a second is immersed. Sounds awful. Let's go to you, Matt. Do you have an unpopular opinion? Yes, I do. Yeah, I think when we're building software, we very often focus on the wrong things.
Starting point is 01:33:54 Like, we try. I just think we always, like, we're constantly doing this. We don't focus on what's important. I mean, really, you guys, 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. In small tools and small projects, that doesn't happen so much. And especially
Starting point is 01:34:29 if you're scratching your own itch, then that's a great way for this to not happen. But when you get into bigger orgs, you know, 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. 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 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
Starting point is 01:35:21 somebody with a script or just a just 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 in enough, especially because we're there to build software, 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 solve a problem for a person. 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 input. 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. Well, you agree with how you execute, which you make.
Starting point is 01:36:02 may not agree with us that we're, you said what we're doing it all wrong, basically, or something like that? You, or focus on the wrong things, most people are doing it wrong. Most people. I think, like, like, 90% of us are building software wrong, because we aren't obsessed with that. So, yeah, it needs a sound bite. Okay. That's a little stronger way of saying it.
Starting point is 01:36:20 There's your sound like. Yeah. Okay. Well, I agree with connection and the, you know, 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.
Starting point is 01:36:31 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
Starting point is 01:36:40 and see if people like it. Automagically, 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,
Starting point is 01:36:53 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.
Starting point is 01:37:12 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. No.
Starting point is 01:37:23 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 what else means that it's automatic we already have a word for that it just works automatically but oh okay it just does 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 yeah it's good be uh okay uh message you guys don't like got it so automatically describes a process that's too complex whereas automatically is just there's no
Starting point is 01:37:59 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 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 Could be explained. Do you believe in magic? What kind of magic? Slyde a hand. Do you believe in magic? Are you going to break in a song here?
Starting point is 01:38:35 I believe in Slight of Hand. Like, I'm in magic tricks, yeah. You can't not believe in Slight of Hand. Is there a... Well, that's why I don't understand the question. Do I believe in magic? There's a group out there, like, Flat Earthers that are just like, no, we deny slight of hand.
Starting point is 01:38:49 If anything, they believe in magic, don't they? Because they think it's not slight of hand. I just don't understand the question, then. Well, I was going to break in a song, but you're ruined it. but do you if you can somewhat 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 happen 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
Starting point is 01:39:16 if you know your systems what about i i mean's i don't want to explain it to you what is the context of this word being used that you that you like engineers say all the time they Who says it? They, engineers. And we put it on our marketing, like, and then it automagically just works. And you're like, this is marketing lingo. Okay, well, you're spinning me. I don't like it.
Starting point is 01:39:37 I don't like spin, okay, don't spin me. It was actually a, there was actually a book about spin selling. I used to, I grew up in sales, right? Like, my origination into professionalism was in sales. And there's a book called spin selling. You can take it in sales, because you just said my origination into professionalism. Yeah, that's my spin right there. My first job.
Starting point is 01:40:00 My first job was in sales. Yeah, that was an auto-magical saying. That's funny. Yeah, I know, Matt, I'm sure you've said it. I used to say it as well, and then I was a younger person. A lot of people love that term, auto-magical. And I've just gone, I'm gone sound on it. It's unpopular.
Starting point is 01:40:17 I just didn't know. It's not a popular opinion. All right, listener, let us know. Do you agree? There's three opinions here. Which one is the worst? which one is the versed it's going to be mine
Starting point is 01:40:28 it's going to 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 accent that's just your being funny doing an accent right yeah what do you mean
Starting point is 01:40:39 I wasn't okay well I just want to clarify there yeah right here at the end of the show I wanted to clarify that because that just for a little while they're just set so wrong I'm sorry
Starting point is 01:40:47 and I almost said something I almost stop the show yeah you should if you should if you feel like that absolutely I mean I celebrate like different accents. I really love them. Yeah. And so, yeah,
Starting point is 01:40:59 impersonating accents is like a fun hobby. But I was so close, man. My white towel was like, we're like, no one. We're going to throw in the white towel. No one has a go at Liam Neeson on my watch.
Starting point is 01:41:14 All right. We should end this. Hang on. It's okay to do a British accent, isn't it? Everyone does a British accent. Like, you have Joe, because I've heard you do it.
Starting point is 01:41:24 I try not to Because I'm not good at it No I think accents are all in good fun I think I think Well as you went on It became more and more caricature
Starting point is 01:41:35 Well That's all I think we made it clear That it was in good fun So I'm joking about You know Any of the show As you may know
Starting point is 01:41:43 I don't know if you knew that I was kidding I was just yes ending About stopping the show I was just yes and I wasn't to stop the show We're just being funny To yes
Starting point is 01:41:50 And now But it's a nice point Actually It's a nice point Because if somebody felt insulted by that, I would, I'd be devastated, genuinely. Yeah, I wanted to clarify that. Like, we were not trying to be insulting.
Starting point is 01:42:00 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?
Starting point is 01:42:16 You have a stack your, your nose speaking then? No, while I'm flossing. You know, one good thing or 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 the whole winter school.
Starting point is 01:42:35 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 going to pick your new nose. And if you're a very dear friend, they might allow you. No, if I said to you, I'll sort your new nose out, right? I'll pay for it. But I'm going to design it, right?
Starting point is 01:42:57 That's okay. I'll do you a good job. It'll be a little trunk. As long as I go into it with my eyes wide open. I do a little trunk, like a little elephant's trunk for you. Then you could be like, how do you talk about that? What makes you say trunk versus trunk? I'm from the north.
Starting point is 01:43:13 I'm from the Midlands. So we have like, yeah, a hard you sound. So I say like, cut, cut. Trunk. It sounds like John Snow, isn't it? like, it's like, a little bit, yeah, winter is. How do you say router then? Winter is coming. Is he like a weatherman? Winter is coming. A band of low pressure is coming in from the east. You want to wear, you want to get your big coats out on Thursday because it's
Starting point is 01:43:37 going to be raining and we're expecting some sleet. Things 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 geotranking on the White Walkers. And that's winter. Oh, he knows. Well, he's got like 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, you know, a meter. Yeah. Right. He lets his, this countrymen know that they're coming. It's coming. He's right. I mean, winter, you know, it's every year, John. So we're not
Starting point is 01:44:21 It's not that impressive. It's like, winter is coming. Oh, you're joking. I mean, you know, it is September. So we know how seasons work. Winter will be here. But that's Game of Thrones, it's it. How and when?
Starting point is 01:44:34 How and when do we end this? Never? I'm thinking like five minutes ago, probably. Yeah. Probably when I try to say goodbye. Goodbye. I don't know. Thanks, man.
Starting point is 01:44:45 It's over now. Thanks for your, thanks for, well, you know, we could do, Jared. We can play that song. We can play the final episode. What? we can play that song it's closing time
Starting point is 01:44:53 tell me remember this yes is closing yeah you know this right I saw them live right they were playing that song
Starting point is 01:45:01 for us when we were trying to do Beyond Code the first season in that bar and we're like we're trying to wrap up the last two interviews
Starting point is 01:45:08 here come on people yeah so we were at an after party at a conference mat and this was a keeper be weird maybe Keeper be weird yeah 2014
Starting point is 01:45:19 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 930. It played literally for an hour. Maybe someone had his kids. Probably. Are you trying to leave him?
Starting point is 01:45:38 Maybe someone had his kids, yeah. Anyways, 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? Who? Oh, my God. Closing time. Open all the doors and let you...
Starting point is 01:46:00 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. Okay. So you can't. stay here, but you can go join
Starting point is 01:46:21 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 dot 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
Starting point is 01:46:37 Ryer-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 to I.O. and to our awesome sponsors of this episode. Depot, get started at depot.dev. OTHZero, head to OthZero.com slash AI and CodeRabbit.com at codrabbit.com.
Starting point is 01:46:57 Next week on the pod. News on Monday. Travis Olafont from Numpai talking Python on Wednesday. And Arun Gupta, he's no longer with Intel, but he will be with change log 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. Game on

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