Git With Your Friends ![rw-book-cover](https://wsrv.nl/?url=https%3A%2F%2Fcdn.changelog.com%2Fstatic%2Fimages%2Fpodcasts%2Fmaster-original-3922a5ce5ede81d973adc3cd618f7e64.png&w=512&h=512) ## Metadata - Author: [[Changelog Master Feed]] - Full Title: Git With Your Friends - Category: #podcasts - URL: https://share.snipd.com/episode/019f9f31-3c18-4465-8daa-6d15d3580244 ## Document Notes ## Highlights - **Make CI Debugging Observable** - Depot built observability around GitHub Actions to make logs uncollapsed, searchable, and show resource metrics per process. - Better build debugging reduces time spent playing detective on failed jobs. Transcript: Mat Ryer 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 Jerod Santo Out what's going on in their builds. Adam Stacoviak Okay, friends, ([Time 0:02:21](https://share.snipd.com/snip/fedaca6f-c0d8-406b-81f6-10731bee1954)) - **Visualizing Hot Files With Git Heat Map** - Git Heat Map visualizes repo history as a treemap showing file size and churn (color = change frequency, size = file size). - Jerod uses it to orient new contributors and find hot files to prioritize tests. Transcript: Jerod Santo It's called Get Heat Map. And this immediately reminded me of like daisy disk or these tools where they they search your hard disk and they show you where the big files are and they kind of put a map out of wherever The big files are where most of your storage is across the span of your disk. Only this is doing it on your Git repo. Is it still file size that it's representing? It's based on diff activity. So it's using, like, it's showing you kind of like, what do you call it, lines of code that churn a lot, or like the hot files. 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 there in the image that's provided is on CPython, which is a project that has a long history of commits, and it's highlighting the files that Guido Van Rossum Changed the most. And so it shows you a layout of that, and bright red is obviously the hottest, which is configure, and then the doc folder, and then test and lib. So some of these things are kind of, I don't know, they're the ones that you would guess. But I wonder if there's actually insights that you'd find, like, holy cow, this particular file, which I found over time in certain repos, there's like certain files that are the really Active ones. And lots of people touching that file. And there's other ones that, you know, actually config is kind of surprising to me, but maybe inside Python, it's different than what I'm thinking of. Mat Ryer So you've got the, 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? What's the size mean? And versus the, you know, the color is obviously the most changed, I guess. But what makes something bigger or smaller? Or is it also just the same thing? It might be by the look of it well it says you can choose the hue that you want the chart to use for highlighting highlighting what that's probably like the size of the maybe the activity Adam Stacoviak Uh 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, 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, Matt, because you're less in the code lately. You're less in the details. And so maybe use something like this as a way to sort of, like, grok the bigger picture, you know? Yeah. Or maybe this is great for a presentation to you know the linux kernel for example and you're at linux conf i don't even know it's a real thing or not but like some sort of conference focus On linux like how 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 Mat Ryer At linux conf though like trying to just connect to the projectors with Linux machines? No thanks. Yeah, it's an absolute shame. Adam Stacoviak We have to use the non-free packages and whatnot to do that. So that may be against the rules to the conference even. Somebody's like a super free software person. Mat Ryer They're like, no way, man. You're not going to use it. I went to Fosdem recently, and that's obviously open source. They're kind of allergic to having anything that's not open source focused, of course, there. But it's really 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 Jerod Santo Yeah maybe i can also see it when you're coming to a new project that's existed for a long time and you're just trying to familiarize yourself with the project who's working on what yeah And which files are working on the most so i did look up the way that this thing works and so it's a two-step process so it basically scans through the entire git history using git log and It takes that history and compiles a few database tables which tracks files commits the, 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 of 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 there, depending on how long it takes to operate, you know, you can get a tree map real quick. ([Time 0:07:45](https://share.snipd.com/snip/dd81cb6b-643e-4ca2-acf2-2a42d9700d9d)) - **Prioritize Tests Where Code Is Hottest** - Use a heat map of file churn to focus test coverage on the files that change most. - Prioritize stability where code churn and people touch overlap to reduce regressions. Transcript: Mat Ryer 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. Adam Stacoviak We have to use the non-free packages and whatnot to do that. So that may be against the rules to the conference even. Somebody's like a super free software person. Mat Ryer They're like, no way, man. You're not going to use it. I went to Fosdem recently, and that's obviously open source. They're kind of allergic to having anything that's not open source focused, of course, there. But it's really 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 0:10:38](https://share.snipd.com/snip/7bb76eb5-7273-4a56-b1b2-a5175e22c589)) - **Simulate Git Commands Visually** - GitSim visually simulates git operations across many subcommands to show expected effects before running them. - Visual dry-runs lower anxiety and save recovery time from surprising git outcomes. Transcript: Jerod Santo This visualizes it for you so you can understand what's going to happen. And also it's completely safe. Like it's with Git, you know that 99% of the time it's in there, right? Like no matter what you do, there are circumstances where you can lose data. But most of the time, even if you thought you've lost something, it's in there because of the way it works. But you have to find out how to get it back. Right. And that's like a huge time sink. Right. And can be very anxiety. Dangerous. It's like running in production. Adam Stacoviak Yeah. Jerod Santo 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 Adam Stacoviak It's better than dry runs but i've lost the blog post all i have is the repo i do a lot of r syncing in my network and in some cases i do deletion through r-sync you do a lot of r-swat r-syncing R-sync putting like tattoos on sure sure man sure inking yeah r-syncing nice touche or are you trying to get a new gig going none of the above none of the above can you do me the flag i'm going To mention here. When you are sync, it's like, well, especially if you're going to delete, you're moving data to or fro from a place and it's like, well, I can use dash n and just kind of see what it might Do. And it will go and do that whole thing. And that's my favorite thing. Mat Ryer Especially with that kind of 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 Jerod Santo 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 Mat Ryer Do it button yeah i guess is that what you're saying yeah yeah it's like commit it's like yeah that looks good yeah looks good probably it can so i did find the part where it says you know Jerod Santo Why aren't dry runs good enough because git does have a dry run feature which is like the rsync one that you described true. We're able to just tell you what it's going to do. And the author of this, which we should. Adam Stacoviak R syncing Matt. Yeah, I can't unharry now. I know. I do a lot of R syncing here on my land. Jerod Santo I'm picturing, you know, a tattoo artist. R syncing. Yeah. This tool by jacob stopak from the initial commit team which is a team that does get things and he writes that uh there's a drive dry run flag in git which is dash n also so maybe that's a standard Or at least an idiom it enables you to get some idea of how the command will affect the state of the repository but he says these commands can be useful but not all Git commands have them. So, 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, GitSim, as if it's a dry run that has complete coverage of the subcommands and visualizes it for you. Maybe, you know, this one I could argue, put it in the git. Like, this is just a better user experience for dry runs. Mat Ryer Yeah, this would be very useful and probably would, like, satisfy some of my fears here around, you know, Git commands just being too complicated and I don't really have the confidence That it's going to, that I really know what it's going to do. ([Time 0:21:28](https://share.snipd.com/snip/9dbd4dce-1bc6-4c9f-b576-b363466ea2b4)) - **Bugs Tracked Inside The Repo** - git-bug embeds a bug tracker directly in your Git repo so bugs travel with the code and work offline. - Mat and Jerod note you can commit a bug fix and the bug state persists across branches and history. Transcript: Jerod Santo I absolutely love this concept. So Git bug written by Michael Muray, I think is how you pronounce his name. Basically, he's got a bug tracker in Git. 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. Mat Ryer Oh, hello. Works offline. Jerod Santo No vendor lock-in. It's fast. I'm just reading his bullet points now. It doesn't pollute your project. Good job. It integrates with your tooling. Need a workflow. So that's what's cool about it is it bridges over to GitHub issues, to GitLab, whatever they call their issues, to Jira, if you're in hell already. Oh, boy. Jeez, Jared. Sorry. No. Say it like you feel it, man. Say it like you feel it. No, I've never liked that tool. Mat Ryer I don't know anybody who does i feel sorry for people building send matt a letter oh yeah please if you love jira let matt know send it to jason he doesn't exist i got his name wrong but this Jerod Santo 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 but how do you do it? In Git. Sorry, in GitHub as issues. Mat Ryer But actually having it in Git, and I assume there's like, it's a text file or something or some data file where they store this. And what's quite nice about this, I guess, is with a commit, you can also fix the bug. And then that all gets pushed at the same time. And because it's in the actual it's because it's in git it's always correct if you go back and check out an old branch you'll see the bugs that exist for that old well you know previous commit Jerod Santo 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 gets way of working um uh it works like git works It's just inside of your git repo it has a cli so you interact with it from your cli both adding bugs reading bugs etc yeah and then it also has a little web ui built in that you can launch and Just run locally which kind of gives it a GitHub style issues list with filters and open and closed. And I don't know. I'm pretty impressed by this tool, actually. ([Time 0:26:58](https://share.snipd.com/snip/ecc5a2e6-0972-4f47-81d3-45b6afc81952)) - **Turn Errors Into Bugs Deliberately** - Connect error trackers to your issue workflow selectively rather than auto-creating issues for every error. - Use error budgets and thresholds to prioritize which errors become tracked bugs. Transcript: Adam Stacoviak What about tracking in production though? How does that happen? Like where does it get the reports? Oh, error tracking. Yeah. Like is a bug in the air? I mean, it's kind of like the same world, isn't it? No. Bug Bug tracker, error tracker? Jerod Santo Not really? How do you do it, Matt, over there in Grafana? Mat Ryer Well, I was going to say, like, if there's an error or a bug or whatever, you just open it and, I guess, commit it, right? It exists at that point in the code base. Jerod Santo Well, think about our error tracker, Adam, in Sentry. There's a ton of errors in there. And some of them turn into bugs that we open on GitHub issues. But if every error turned into a bug, then my no bugs command would be way off. There's so many errors. And thousands of errors can represent the same code deficiency as well. Adam Stacoviak 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, I'm ([Time 0:29:16](https://share.snipd.com/snip/c3ac4109-13bb-4272-8558-68419fc29ca0)) - **Fast Terminal Git GUI In Rust** - GitUI is a fast terminal Git GUI written in Rust that handles giant repos without choking. - Mat admits he often uses GitHub Desktop but appreciates performant terminal GUIs for heavy repos. Transcript: Jerod Santo Okay. Where is Git UI? 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 a guy 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? It's versed. Extra versed. Mat Ryer You know, it's like a normal versed. Yeah, but this is extra versed. So don't worry about it. By the way, I do that German accent to Germans, and they go, what's that? It doesn't sound German to them. No, it's so bad that they don't even know. Yeah. Whereas everyone else is like, oh, that's a good German accent. So I just think it's not. I was about to give it a compliment. Yeah, because I don't know. Anyways. Jerod Santo All right. So here's Extraverse's description or why. You got to do it right, Jerry. Extraverse. Matt, you want to read this in the German accent for us? Yeah, do you. It's in the doc there. I do most of my Git work. That one. Mat Ryer I do most of my Git work in a terminal, but I frequently find myself using Git GUIs for some use cases like index, commit, diff, stash, blame, and log. Unfortunately, popular Git GUIs fail with giant repositories or become unresponsive. I've lost the accent. Become unresponsive. It went a bit French. Jerod Santo It did. Unfortunately. It also sounds like the way you do it, it sounds very condescending as well as if the person's like a complete idiot. You're definitely making fun. So we should leave that in but we should back that out and say we this is totally cool extraverse we don't think that you're the way matt's portraying you right now no i'm just doing my german Mat Ryer 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 an extroversed kind of sense of humor. Jerod Santo Like it's uber good. I love it. So hopefully our friend in Germany will appreciate that. Yeah. 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. 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 Git GUI here near the end, but mostly I just use the Git command line like you do, Matt. But what if you had more at the command line? You don't have to leave your terminal and it's not going to choke on the Linux repo, for example. Would you use this? Because it looks pretty sweet. ([Time 0:38:10](https://share.snipd.com/snip/005ad906-65d5-41c4-86ad-a39ea70901c2)) - **Packaging Trumps Language For Tool Adoption** - Language choice affects adoption: single binaries (Go/Rust) lower install friction compared to pip/gem/npm. - Jerod and Mat favor tools that are easy to install, isolate, and remove from the system. Transcript: Jerod Santo So subtopic then, so language support or languages these tools are written in and therefore distributed in. We have two in Python. That was the heat map and the git sim. This git bug is written in Go. Git UI, written in Rust. The next one we're going to talk about, we get to it. Git branch list, also written in Rust. Adam Stacoviak I still can't tell if you're saying get to it or get to it. I mean, you're really getting me here.'re really getting me you're really getting to me i'm sorry i had to punt it out there that's good fair enough install i think is all that matters Jerod Santo 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 Mat Ryer Of all i think like yeah it's about what's the easiest thing to run and if it's python and i've got some weird balked python thing and i have to fix it or something then that's a big barrier For me but if if python's your bread and butter then i feel like that's okay i just i don't use it enough that i have any confidence in it so i do like that you get single binary you do the talking Jerod Santo Jared can you can you mention pip install your feelings about it yeah if it's pip install for me i just have anxiety even though it works most of the time, it's the same way in old school Rubyist. But if I see your tool and I see it's written in Ruby, I'm kind of like, do I want to mess with this? And that's how I am with Python as well. Their stories are just fraught. Do you not use GitHub then? Mat Ryer That's Ruby, isn't it? Jerod Santo Well, I don't mind the website. I'm talking about a tool that I'm going to install with dependencies locally. Yeah, I got no 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 whereas with go and with rust it seems and javascripts 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 yeah i'm just way more likely to say if you can just grab a binary drop it in your path and execute it i'm like i will do that a hundred Times a day but if your tool says pip install or it says gem install or says npm install i'm kind of like do i want to mess with this that's just my sense does that resonate with you guys especially Adam Stacoviak If you're on linux proper like if you're on mac it's different because like you kind of have to use homebrew or pip if that's the way you want to go or maybe vanilla straight up ruby or a binary But if it's on linux it should be an apt or whatever your flavor would be yum or pick your it, 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, apt 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. Mat Ryer When I get a new computer, which happens more than I can justify, uh i don't like it when i'm the first time i'm forced to just add all these tools to be able to install stuff like i feel like It's a nice clean machine and then and then i hold off and i hold off yeah at least if it's a go binary i can delete the file and it's gone and i know where it is when i install i don't know what Happens when i npm install something sometimes i'll do that in the wrong folder and then i get a node modules folder on my desktop which is synced through icloud so it uses you know what I mean like it could be a can of worms um i like so i am yeah into that simplicity thing but if i'm using if i'm already using that tool chain, if it's a tool for, say, people who are writing Node, then it completely makes sense that it would be written. 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. ([Time 0:43:40](https://share.snipd.com/snip/30e452db-2d55-4769-8e42-b151a0122c54)) - **Go And Rust Will Coexist** - Go and Rust will likely coexist: Rust brings safety and performance but has steeper learning costs. - Mat expects both ecosystems to thrive and each to be chosen by fit rather than one replacing the other. Transcript: Mat Ryer No i remember when go was like becoming that and i would always say at the time like you know write it write it in whatever you want right it's like whatever's the right tool for the job so That's that attitude can't really like don't really deviate from that i think i think go i don't think rust will just defeat go because it's really hard to learn and that that you know That's the trade-off you make it's like much harder to learn much harder to write rust but but the trade-off is you get much more secure much safer execution and you and uh i guess if it Compiles you've got a high chance it's going to be correct and so there's like benefits there um but i think yeah i think goes you know it's i don't know if it's just like we'll see how that Trends happen it's definitely will there'll be trendy sort of things going around but um i don't know i think they'll coexist basically forever these two fair enough i was hoping for Jerod Santo A less reasonable and nuanced position but you know okay so reasonable ([Time 0:51:16](https://share.snipd.com/snip/e04878d4-3c03-4bfa-b36b-1d195867f98c)) - **Songs Break Up Technical Talk** - Mat performed impromptu 'Rust Away' songs during the episode and joked about anti-Rust sentiments. - The hosts used music interludes to keep the conversation playful while discussing tooling. Transcript: Jerod Santo Matt has left his chair his his mac display is tracking him throughout the room he's back yeah the mac he has a guitar the mac display is annoying because it follows you around when you Mat Ryer Move and you sometimes yeah talk about surveillance capitalism huh yeah i try and sometimes move out of frame to pick my nose and then the blooming camera follows me because everybody Jerod Santo Sees it what's the song called anti-rust song or what yeah i don't know i guess um yeah i guess so it's gonna be what key do you want it's called rust away rust away oh yeah okay yeah i should Mat Ryer Just do it we can always cut this can't we no it has to go in Baby, what you typing in? I ain't never seen such crazy things What the heck is all this gonna do? I got some very bad news for you You're gonna rust away Gonna rust away You're gonna rust away Rust away, Matt Ryan. Speaker 4 Can I critique? Mat Ryer Yeah. Can I critique? I don't know. You're going to hurt his feelings. Adam Stacoviak No, do it. It won't hurt your feelings. It wasn't great. So 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, this is actually a hit song. I could probably do something with this. I would just encourage you to put a little bit more rust lang specifics into ([Time 0:52:30](https://share.snipd.com/snip/237de552-853f-4ea8-86bd-d09430e2d790)) - **Improve CLI Workflow With Branchless** - Try Git Branchless for UX improvements like smarter logs and undo at monorepo scale. - The tool adds helpful commands (smart log, undo) that enhance daily CLI workflows. Transcript: Mat Ryer There's no branching yeah it's branchless and you're like i don't know what's called that it doesn't have anything to do with branches but that's it's called branchless. Jerod Santo 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 Sounds like a cool guy. I'll consider it. They call me Jared Rustless Santo. Mat Ryer That's a cool name. Jerod Santo That is pretty cool. I might pick that up, actually. All right, I revoke my argument. Point is, there's lots of cool stuff here. Smart Log, Undoing, yeah, written in Rust. So it's not Rustless by Waleed Khan. And been out there for a while. But not too much to say about this on the show for me necessarily, except for that it's just a lot of very nice user experience improvements in your command line git so if you're not like Matt using github desktop and you're a real dev using ([Time 0:56:00](https://share.snipd.com/snip/73c27f37-9640-410f-9b37-d7a92bf305eb)) - **Activity Is Not The Same As Health** - Project activity isn't a perfect health metric; releases can be periodic even if a project is 'done'. - Jerod and Mat note we need better signals than last-commit dates to judge maintenance health. Transcript: Mat Ryer This is this is always the problem that i have um because people that one of the ways they decide if a project is worth using is the look when was the last release or like you know and 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 you don't need to keep going on that. But similarly, software's never finished, so it's not so simple. But yeah, tough one. ([Time 0:58:07](https://share.snipd.com/snip/055903bf-4f4a-4cbb-8f40-89ba813b4bad)) - **Community Revived GitX For macOS** - Jerod prefers GitX on macOS for chunked staging and visual review while still using CLI for simple commits. - GitX was revived by the community and is back under active maintenance with Mac Stadium support. Transcript: Jerod Santo And git x has been a long long time project that's gone through multiple forks and abandonments and community pickups as mac os has changed dramatically over the years and so there was This rowan i think it was rowan j had a fork of 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 gui specifically for a few things i like to do staging and committing especially like what do you call it chunk commits like specific lines of a file and like Selecting all that i like to do that in a GUI and not from the command line because it's just clunky from the command line that's the main thing I do inside of a GUI and so get X was gone for A while it's just like abandoned I was super sad I started looking for a new one and then it got revitalized in the last year or two by the community that's like the best 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 git x github org even it's not some user's account and it's an open source git gui for mac Os that's under active development once again mostly maintenance mode but i'm happy in maintenance mode because it's a good gooey and we're you know i don't need any new features honestly It does what i like and i like what it does and so that's what i use i use the command line for most things get log get status uh simple commits, like git commit-all with a message, command Line, pushing pulls, command line, but staging, reviewing, that kind of thing from git X. So I would highly recommend that for macOS users. ([Time 1:02:22](https://share.snipd.com/snip/b0fa9a2c-35f6-424c-878c-9b4fe2af300d)) - **Sponsor Critical Open Source** - Sponsor the open-source projects you rely on to keep them healthy and maintained. - Provide CI hardware, money, or engineering time when projects are critical to your stack. Transcript: Mat Ryer No new features, but just stability. Right. Just keeping the thing alive. Shout out to me then i donated a m1 macbook uh to uh the wales project uh which is wales app you know you can build desktop apps using javascript um and they're great they feel like native Apps and i wanted to support that project i don't talk enough about what a sort of open source hero I am, frankly. Uh, so really, well, that's what we have here. Jerod Santo Yeah. Could you sing yourself a song about yourself? Adam Stacoviak Maybe Matt is a hero in the open source world. Yeah. Yeah. Yeah. That's the course. Pretty good. Right. Mat Ryer Well, I did, I did write testify, which is goes big. That's the testing framework everyone uses in go. We had you on the show talking about your stuff. Jerod Santo You had BitBar, XBar. So you got your open source. Mat Ryer Yeah, but just because I'm so modest, I'm probably the most modest person in the world. You seem very modest. It's your greatest weakness. And it's a big weakness because, like, I don't know. Adam Stacoviak I do myself a disservice. So this M1 Mapper Pro, it's being used by someone to maintain whales, I assume? Mat Ryer Are they sharing it and mailing it around? I love the idea of that. But no, someone has it and they use it to test. Like a CI? No, no, they're using it to actually test because you're building desktop apps. And so M1 was very different and they wanted to for sure work to do that uh that's true that's a great point too i mean when you when you do desk or platform specific development and you don't Adam Stacoviak Have the latest rev of apple apple silicon you know you need that and maybe you don't have the cache to shell out or want to because this is just a fun thing to you right you need supporters That's cool ([Time 1:05:00](https://share.snipd.com/snip/44f0ddd1-f724-461f-8e24-78a4a5396cda)) - **Gate PRs With Contextual Rules** - Use ReviewPad to create nuanced PR gating rules per file, team, or critical function. - Customize checks so low-risk changes flow and high-risk code triggers full pipelines before merge. Transcript: Mat Ryer Oh yeah, please do. And this I think is very cool. It's reviewpad.com. And this is like smarter prs and rules around prs so in a lot of my projects i like to have it such that pr goes up and then we automatically run all the tests and everything and only if all Those tests pass and they can be back-end unit tests they can be integration tests sometimes they can be front-end tests, end-to 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 your main is never broken, your main branch. Well, that can be sometimes a little bit too strict. And ReviewPad lets you actually create some more nuanced rules around this. So you can say, for example, markdown files, just let them go straight to main. You can say, like, in this case, I want to push to main, but I still want someone to review this at some point. So it's like still in there. It's low risk. So you want to progress. And later someone can check it. You can say things like for all Go files, you want to make sure the entire test suite runs, because it's quick, so it's no big harm. But you can even do things like for new starters, for different groups of people. You might say new starters, everything should run for them, but the more senior people have slightly more relaxed rules and they're allowed to push without all the checks happening And even individual functions you could mark a functioning code as critical and if anything inside that changes then it makes sure that all the tests will 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. Like, this is really good. I haven't used it yet, but I do intend to. ([Time 1:19:51](https://share.snipd.com/snip/4cd013fc-101e-4fba-b173-f29237a94097)) - **Feature Or Product Determines Longevity** - Many small tools start as features that could be absorbed by platforms, raising sustainability questions. - Mat and Adam highlight sponsorship or acquisition as common paths for niche tooling to survive. Transcript: Mat Ryer Majority uses. Interesting. I mean, I wonder if their strategy is like an acquisition thing. And sometimes that, sometimes that's great strategy to have. Adam Stacoviak You've done a couple of times, right? I mean, it's a good, yeah. I don't know if that's been your strategy, but you've done it three times. Yeah. Mat Ryer 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 you'd struggle to build a business around it i don't know but well that's Adam Stacoviak The hard part it's like here's this thing here's it's great it's useful but man it it died because there's no company it's just a feature so that's why we have to we have to sponsor open Mat Ryer Source if we want to keep it alive we can't just expect it to keep going and you know we have to we have to normalize that more we've got to do more of it it's hard to justify sometimes but it's Important i think it's certainly becoming more normalized but i think as ([Time 1:23:50](https://share.snipd.com/snip/12ef2f43-a446-4ce3-b5b7-d23be8c4a580)) - **Solve Real Problems, Not Clever Ones** - Software teams often focus on the wrong things when detached from the actual problem or user. - Mat urges meeting users and solving their problems, not just engineering clever solutions. Transcript: Mat Ryer Like, we try. I just think we're constantly doing this. We don't focus on what's important. I mean, really, you've 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 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, understanding the why you're doing something is so important. And everybody needs to know that. Everyone needs to understand it. It can't just belong to just some people and they decide what everyone else is doing um so i think we yeah i think we often focus on the wrong things and we're just building the wrong things And usually like sometimes it's nice to to just do a cool project and i would never want to take that away from anybody but um if you're just doing cool complicated stuff because you love It or it's satisfying to do and it's a hard problem and you're solving it then that's one thing but but you can maybe if you can solve a problem for somebody with a script or just just have Something much simpler if there's even just a tool already that kind of solves the problem. Like, yeah, I feel like we don't enough, especially because we're, we're there to build software. We, we should remember there are other things in our tool belt and try and just focus on solving the problem and do whatever it takes to, to solve a problem for a person that, and try and Know who the person is, try and meet them if you can, it's not you to try and meet the person so that's my input this ([Time 1:33:54](https://share.snipd.com/snip/d5dc7176-53f8-4164-bdad-8b3b682b01cd)) - **Avoid 'Automagically' As A Crutch** - Avoid using 'automagically' in explanations because it hides complexity and shirks responsibility. - Describe how systems work plainly so users and teammates can understand and trust them. Transcript: Jerod Santo Now that we've heard your guys' lame ones, here's a real unpopular opinion. And I know this is going to be unpopular because I've said it before and people haven't liked it. So I'm going to say it again and see if people like it. 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, I have no idea how this works. Thankfully, nobody else does either. And I'm hoping the fact that nobody knows how it works is good enough to impress everybody. So you ask somebody, how does that work? And they say, well, it's automagical. And we're supposed to all be like, oh, okay, it's automagical yay and then move on no it means you don't actually know if you knew you just explain how it worked counter because when you Mat Ryer Know how software works it's not magic but counterpoint it means you don't have to know how it works. You could just use it. It works. Jerod Santo And you, and you don't, you know what else means that it's automatic. We already have a word for that. It just works automatically, but, Oh, okay. It just has it automatically. Why does it have to be mad? Why do we have to put magic? Let's push back. ([Time 1:36:31](https://share.snipd.com/snip/29396d65-af55-4d71-921a-f63bdcd00951))