The Changelog: Software Development, Open Source - Git with your friends (Interview)
Episode Date: February 10, 2023This week we invited our friend Mat Ryer to join us for some good conversation about some Git tooling that's been on our radar. You may know Mat from Go Time and also Grafana's Big Tent, which we help... to produce. We speculate, we discuss, we laugh, and Mat even breaks into song a few times. It's good fun.
Transcript
Discussion (0)
what's up friends this week on the change law we invited our good friend matt reyer to join us for
some good conversation about some get tooling that's been on our radar you may know matt from
go time and also grafana's big tent which we hope to produce we speculate we discuss we laugh and
matt even breaks into song a few times. It's some good fun.
A tremendous thank you to our friends and our partners at Fastly and Fly.
Our pods are fast to download globally because Fastly, they are fast all over the world.
Learn more at Fastly.com.
And our friends at Fly help us put our app and our database close to our users all over the world.
No ops required.
Check them out at fly.io.
This episode is brought to you by our friends at Fly.
Fly lets you deploy full stack apps and databases closer to users,
and they make it too easy.
No ops are required.
And I'm here with Chris McCord, the creator of Phoenix Framework for Elixir and staff engineer at Fly.
Chris, I know you've been working hard for many years to remove the complexity of running
full stack apps in production.
So now that you're at Fly solving these problems at scale, what's the challenge you're facing?
One of the challenges we've had at Fly is getting people to really understand the benefits
of running close to a user user because I think as developers,
we internalize as a CDN, people get it.
They're like, oh yeah,
you want to put your JavaScript close to a user
and your CSS.
But then for some reason,
we have this mental block
when it comes to our applications.
And I don't know why that is
and getting people past that block is really important
because a lot of us are privileged
that we live in North America
and we deploy 50 milliseconds a hop away.
So things go fast.
Like when GitHub, maybe they're deploying regionally now, but for the first 12 years of their existence, GitHub worked great if you lived in North America.
If you lived in Europe or anywhere else in the world, you had to hop over the ocean and it was actually a pretty slow experience.
So one of the things with Fly is it runs your app code close to users.
So it's the same mental model of like, hey, it's really important to put our images and
our CSS close to users.
But like, what if your app could run there as well?
API requests could be super fast.
What if your data was replicated there?
Database requests could be super fast.
So I think the challenge for Fly is to get people to understand that the CDN model maps
exactly to your application code.
And it's even more important for your app to be running close to a user because it's
not just
requesting a file.
It's like your data
and saving data to disk,
batching data for disk.
That all needs to live
close to the user
for the same reason
that your JavaScript assets
should be close to a user.
Very cool.
Thank you, Chris.
So if you understand
why you CDN your CSS
and your JavaScript,
then you understand
why you should do the same
for your full stack app code.
And Fly makes it too easy
to launch most apps
in about three minutes.
Try it free today at fly.io again fly.io 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 Reier, who also happens to be a co-host of the GoTime podcast and of Grafana's Big Tent podcast, which is an award-winning podcast.
And GoTime is an award-winning podcast. And GoTime's an award-worthy podcast.
And we thought we would just introduce some of these tools and ideas to everyone and just
talk about them.
So Matt, thanks for being here.
Oh, thank you very much.
I use Git a lot, so I'm very keen to learn more about this.
Would you say daily or weekly?
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 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.
The confusing one is bi-weekly.
Yes.
Because that can both mean twice a week
and once every other week.
Two different meanings.
Who invented that phrase?
Yeah, it's not good, is it?
We have fortnightly as well as a term to mean two weeks.
I like fortnight.
Not the game, but the phrase.
The game kind of soiled the phrase, if you ask me, the word.
Yeah.
Because now there's two contexts.
Yeah.
Quake did that to me.
I used to love quakes.
Like earthquakes?
No, no.
Wait, is it the game?
It's like the oldest game in the world, though, isn't it?
It's right up there with Duke Nukem.
Yeah, we used to play on, like, in school,
we had a LAN party, and Quake 2 was the game we played.
And then I used to make levels with my brother
using Worldcraft 3D world builder thing.
And it was so much fun to be 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 yeah because
we didn't yeah you wouldn't move your
computer around back then it's not like now with your phone like right you know come you can't
really believe that the internet is your land yeah exactly so the cloud that would be dangerous
if the whole internet was all on one land wouldn't we be pretty exposed?
I mean, NATs are nice.
Again, too context for NATs, especially when you're just saying the word out loud.
Let's loop back to Git.
How often do you use Git, Matt?
Daily or weekly.
Well, this is interesting because
you haven't been coding this much lately.
This is a change for you. Don't out him, Jared.
Maybe not recently. Well, no offense. I want to ask him for permission first no offense is this is that
private information that you you're more of a leader now um well i'm hoping to get one day
promoted back to being an ic so i can do work again um yeah so i don't use git but honestly i kind of like git was always really complicated to me
and i was like oh there's so much you can do and it's really quite complicated so i try to always
just use the absolute minimum that i could get away with with it and so that's why i quite liked
git flow that used to give you like that a workflow where you could you know give you a workflow where it gave you a reason to create a branch,
you do your work, then you merge it back in.
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.
Absolutely.
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 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 let's
look at the first one which it's got that visual
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 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, 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 as 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 certain files that are the really active ones.
Yeah.
And lots of people touching that file.
And there's other ones that, you know, actually config is kind of surprising to me, but maybe
inside Python, it's different than what I'm thinking of.
So you've got the, you've got two dimensions here though.
You've got the size of the box and you've also got the color of how red it is.
So do we know what they are?
What's the size mean?
And versus the, you know,
the color's obviously the most changed, I guess.
But what makes something bigger or smaller?
Or is it also just the same thing?
It might be by the look of it.
Well, it says you can choose the hue
that you want the chart to use for highlighting.
Highlighting what?
That's probably like the size of the div, maybe the activity.
Maybe this is something you can actually fine-tune what it actually is representing.
I find tools like this are like, 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, 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.
Or maybe this is great for a presentation to
the Linux kernel, for
example, and you're at LinuxConf.
I don't even know if it's a real thing or not, but like
some sort of conference focused on Linux.
How fast is Linux moving? What is changing within the Linux kernel?
Who's doing it? Et cetera.
Yeah, I can't imagine the amount of stress that goes on trying to do the presentations at LinuxConf, though.
Like trying to just connect to the projectors with Linux machines? No thanks.
Yeah, it's an absolute shame. Well, you 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.
They're like, no way, man.
Not going to use it.
Yeah, I went to FosDem recently.
And that's obviously open source.
And they're kind of allergic to having anything that's not open source focused, of course, there.
But it's pretty nice but one use case i could think for the git heat map is to make sure that you are you have good test coverage on the things that are changing the most
because in a way that's where you need more stability right the way you're changing the
most so i feel like a kind of mashup of that and test coverage could be very useful to see
are we definitely covering these things
that we are editing all the time?
Yeah.
Maybe.
I can also see it when you're coming to a new project
that's existed for a long time
and you're just trying to familiarize yourself
with the project, who's working on what,
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 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.
If I'm new to a team and I have a repo,
maybe it has years of history,
I want to quickly familiarize myself with it.
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 can get a tree map real quick i know i've also done like clocks the loc 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 uh it's probably fun to build so on that then how do you
feel about like the fact that it looks cool is that a good enough reason for you to have it in
because to be honest like although it's 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, we think it's cool. If we, I don't know, we kind of like it. We feel good
about it. Is that a good enough reason, Jared? Or 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, surely this person, by the way, written by Jonathan Forsyth.
So shout out to Jonathan. Well done, Jonathan.
He's probably just scratched his own itch.
He probably thought this doesn't exist.
It would be cool.
I always do enjoy popping open DaisyDisk
or clean my Mac X or whatever
and seeing that layout of my system's hard drive
and where the big vials are.
And so it's like, well, can I take that idea
and apply it to Git?
It's cool.
Yeah, it's definitely cool. I also that idea and apply it to git it's cool yeah it's definitely cool i
also do like doing that with daisy disk in fact i found lots of big audio files which were when we
record these podcasts we record our own audio locally right 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
like i might be i might be in the bath and i've got music on and then it's playing music and then
it comes to one of these tracks right and it's just my side of a conversation
and i just have to you could have a like a greatest hits album with that yeah iriar's
greatest hits right you know just talks to himself because you know there's this
interesting phenomenon now i don't know if you guys have been out on the streets at all
but when you're out on the streets you know people just talk into the air oh yeah and when they do it
now you can no longer assume that they have some sort of a mental disorder or a problem right
because a lot of times they actually have like you know the tiniest little ear pod in that's right or
something yeah and they're not just being. They're actually just having a conversation on the phone or something.
And it's really strange. Yeah. This, this actually is really good for me because I
am the person that walks around just saying things out loud. And I don't sometimes think
like, so sometimes like if I'm going to have a difficult conversation, I'll sort of like
run it over in my head. And sometimes I'll say it out loud. And I've noticed a couple of times people looking and then I just like slowly put my
hand up to my ear and just say, okay, thank you. Bye. And pretend I was on the phone.
That's a pro tip right there.
That is a pro tip. I like that.
A little speck of brain science for you. It is totally okay to talk to yourself, even out loud.
Thanks.
In public?
Yeah.
Well, I mean, there's etiquette.
So, I mean, pick your place.
But you are not suffering from sort of any mental condition if you talk to yourself.
Now, there are certain circumstances where it goes too far.
But any normal person who speaks out loud to themselves, it's just a way that you sometimes process your thinking.
Everybody's different with how they think.
And so you may be a person who thinks out loud and has to say it out loud to like really believe it's fact.
And so I'm here to tell you it's okay.
And I don't disagree with that,
but I'm here to tell you that when you do it in public places,
that you look like you're insane.
That's all I'm saying.
Truth, truth.
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, TIL.
That is a good pro tip, man.
One thing I'm noticing is the time to generate the database.
Linux is one of the repositories.
CPython was one of the repositories used.
And the commits on these repos are tremendous.
I mean, more than a million on Linux.
A little over 100,000 on CPython.
And 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 is pretty cool.
It's like, obviously,
faster database generations in there,
sub-module tracking,
remembering filters, other things.
I think this is a,
it's one of those things you're like,
should this be in Git?
Probably not, right?
Like, you don't want Git to be muddied with, like, this kind of feature. So this lives in New Zealand, and is this the best one of those things you're like should this be in Git? Probably not right? Like you don't want Git to be muddied with
like this kind of feature.
Right.
So this lives in user land
and is this the best one
in user land?
And if so
like how does this kind of thing
get support?
You know to like not die.
Great question.
Yeah.
Yeah I mean I think
it's the only one
I've ever seen.
I'm not saying
it's the only one
in user land.
I think with
typical open source
don't you just have to
like inspire people to collaborate with you? Like it has to be interesting or good enough to get
that grassroots support of like, yeah, sub module tracking would be amazing. I tried this. My project
has sub modules and it completely ignores them, but a lot of the stuff is in there. So I would
love to have that how can
i help out i think that i mean that there's really no other way that these kind of projects which
really are kind of like scratching an itch little there's no business around this like this is a
small scoped thing that can really get support unless you inspire other people to just want more
from it and then they help out yeah but look at daisy disc i mean that's i think a paid app or it has at least
paid features doesn't it so yeah if there is a real business use case out of something like this
then it does have a potential future but i kind of love that it's play it's like we play a lot
and then sometimes there's opportunities that come out of that play and this is the thing a lot of
software teams forget about i think they 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, you know, I don't know where it fits or anything.
I just think it's cool.
That's really compelling for me,
especially because they're so motivated to actually do it.
Right.
It's harder than the other way around.
You going to them and saying, you know what would be cool?
And then you telling them.
And they're like, okay, I'll do it because Matt wants me to.
Sure.
Less likely.
Sure, that's cool, granddad.
They just think I'm their granddad. Right. And I haven't even got granddad. They just think I'm their granddad.
Right.
And I haven't even got any kids, so how can I be their granddad?
See what I mean? Think.
Inquiring minds want to know, Matt.
They do want to know.
You can't do it, I think.
That's a great point, though, the play aspect,
because a lot of things happen when you do play.
I mean, obviously, your mind is different.
It's in a different mode.
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 and it can be no constraints. There's no guardrails necessarily. It's like, where can I go?
Where can I explore?
What should I do?
And then maybe out of it comes fruits.
And maybe that can be a business if you really want it to be.
But I think there's examples of large things in our world.
Flickr, I think, was a game at first before it was the photo sharing sharing right you know 1.0 version of instagram
essentially and slack was supposed to be a communication tool while they built a game
see the same teams yeah they were just playing are they ever going to make that game probably
not it's done too busy making very successful companies yeah they've let it go but they may
play the sims which is a good transition to simulating oh this is 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 like what would happen if i branch what would happen if this
happened here you know what would happen if i rebase that over here and it's like you you can sort of like have this fictitious world this potential future and just
erase it but isn't that kind of like 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 it's with git you know that 99 of the time 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.
And that's like a huge time
sink, right? And can be very
anxiety ridden and all that. And dangerous. It's like a huge time sink right and can be very anxiety ridden and all that and
dangerous like it's like it's like running in production 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 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.
I do a lot of rsyncing in my network.
And in some cases I do deletion.
You do a lot of rsync?
Do a lot of rs what?
Rsyncing.
Rsync.
Is that like tattoos on people's backs?
Sure, Matt, sure.
Yeah.
Rsyncing.
Nice.
Touche.
Is this a hobby or are you trying to get a new gig going?
None of the above.
None of the above.
Can you do me one?
Let's go to the flag I'm going to mention here, okay?
So when you R 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 you
know it will 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.
I see. Or you mean you want to visualize it as it
goes. Is your question, Matt,
simulate it, like the results
and just say, okay, do it button?
Yeah, I guess so. Is that what you're saying?
It's like commit. It's like, yeah, that looks good.
Yeah. Looks good. Do it.
Probably it can. So
I did find the part where it says,
why aren't dry runs good enough?
Because Git does have a dry run feature,
which is like the rsync one that you described there.
Yeah.
Where it will just tell you what it's going to do.
And the author of this,
which we should shout out as well.
rsyncing, Matt.
Yeah, I can't unhear it now.
I know.
I do a lot of rsyncing.
And then when you plant a flag,
I'm picturing, you know, a tattoo artist with a lot of rsyncing. And then when you plant a flag, I'm picturing a tattoo artist with a flag.
rsyncing.
So this tool by Jacob Stopak from the initial commit team,
which is a team that does Git things.
And he writes that there's a dry run flag in Git,
which is dash n also.
So maybe that's a standard or at least an idiom.
It enables you to get some idea
of how the command will affect the state of the repository.
But he says these commands can be useful, but not all Git commands have them.
So, 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 a Git. Like this is just a better
user experience for dry runs, potentially.
Yeah, this would be very useful and probably would satisfy some of my fears here
around Git commands just being too complicated
and I don't really have the confidence
that I really know what it's going to do.
Because it's very abstract
and can be quite surprising, the effects,
if you're not really okay with with git and so
this would give a level of confidence for sure they'd be like okay so you've typed this in
and now here's a picture is this is this what you meant and you're like no absolutely not you've
just saved me a lot of embarrassment thank you or the other way around yeah the dash dash animate
is a pretty cool flag too like it animates what's
going to happen like a presentation yeah that's pretty cool it looks good too they have gifs
on the i don't know they might not be gifs actually but they have video animations on there
i just don't want to get letters of people saying that's not a gif he doesn't know what a gif at
least you pronounced it right good point so points for that thanks gerard seems to be a dot mp4 just to be clear matt
thank you we do we have to be a bit pedantic because i do i do get letters when i say
sometimes i'll say something like just which one being silly oh it's lots of them in different
orders depending on what they want to write okay. Daily or would you say you get those daily or weekly?
Yeah, I would.
I would say that.
I wouldn't say moreover.
Someone said moreover earlier.
I don't think I've ever said that. Well, 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 come here, Jason.
Jacob.
Jacob.
Sorry, Jacob.
All right.
So that sentence had a bug in it,
which leads us to our next tool, Gitbug.
Oh, these links are brilliant.
This is professional.
Yeah, you're really working with pros here today.
This one, I absolutely love this concept.
So Gitbug, written by Michael Muray,
I think is how you pronounce his name.
Good name.
Basically, he's put a bug tracker in Git.
It's fully embedded in Git.
You only need your Git repo to have 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
works offline
no vendor
lock-in
it's fast
I'm just
reading his
bullet points
now
it doesn't
pollute your
project
it integrates
with your
tooling
so that's
what's cool
about it
is it
bridges over
to
github issues to git lab whatever they call their issues to jira if you're with your tooling. So that's what's cool about it is that it bridges over to GitHub issues,
to GitLab, whatever they call their issues,
to Jira, if you're in hell already.
I mean...
Oh, boy.
Jeez, Jared.
Sorry.
No love lost for Jira.
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.
I feel sorry for people building it.
If you do, 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.
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.
But how do you do it?
In GitHub, it has issues.
But actually having it in Git,
and I assume there's like,
it's a text file or something
or some data file where they store this.
And what's quite nice about this, I guess,
is with a commit,
you can also fix the bug
and then that all gets pushed at the same time.
And because it's in the actual,
it's because it's in Git,
it's always correct.
If you go back and check out an old branch
you'll see the bugs that exist for that old well you know previous commit you'll see the bugs that
existed at that time so i think that's really clever yeah it's super cool the way this is built
out it like models gets way of working uh it works like git. 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.
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.
I don't know.
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?
Where does it get the reports?
Oh, error tracking?
Yeah, is a bug an error?
I mean, it's kind of like the same world, isn't it?
No.
Bug tracker, error tracker.
How do you do it, Matt, over there in Grafana?
Well, I was going to say,
if there's an error or a bug or whatever,
you just open it
and, I guess, commit it, right?
It exists at that point in the code base.
Well, think about our error tracker, Adam,
in Sentry.
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, then we'd have
my no bugs command would be
way off. There's so many errors
that only end, thousands of errors
can represent the same code deficiency as well.
Yeah, depending on scale.
One important thing that you do though with that is you
track commits to
deploys to errors
and I guess to bugs. And I think think i'm just wondering if you had that
full circle there that comprehensive look because it seems it could be one-sided unless it gets that
sort of like other source of truth right i'm not following say it again in different words
make it mean a different thing as well if you can
at grafana we do we have error budgets
actually so this is a concept that if anyone's not familiar with it you really should be because
it's so good okay it's basically like we're allowed to have a certain amount of errors
and i've worked at a place before where we had a sort of non-technical, that's the politest way I could say it, is a non-technical CTO.
He's an idiot.
And he said, no, there shouldn't be any errors.
Like, why are there errors?
Why are there bugs?
You shouldn't have any bugs and no errors.
Genuinely, that was his position.
Neither have either.
And like, okay, sure.
It's almost like you don't really know
what you're talking about, frankly,
if that's your position. And so in in the real world errors happen all the time and you're allowed a certain level
a certain budget that you can spend and that means you can be creative and flexible and do things and
make mistakes so you have the flexibility to within within the slo's threshold yeah yeah exactly
you're allowed to take some risks. Because if you
really don't want anything to
ever break ever, you have to do
a lot more work. And it 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.
How are those measured? Is it like errors per
lines? Or is it
errors per week? Or how does that
play out? Yeah, it'll be like failed like http
requests depending on what it is so if it's like a certain number of those could fail before i see
yeah before you've you consider you've got a problem um a threshold sure that is a cool idea
i think the same applies for incident and it's just 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
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 that project, is a play on words in a US accent.
I think it's like get, but it's like, isn't it?
No.
No.
Is it not?
No, it's get.
What do you mean?
No, it's because Linus wanted to make the joke on the term
that it's a tool for gets.
Like, isn't get kind of a pejorative yeah over there
is that what it was yeah he pretty much said that that it was supposed to be i should 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 what your accent i'm a transplant texan okay i didn't i didn't i wasn't
born here now i i knew a guy okay i still know the guy, but I knew a guy.
He was describing the parade going through downtown,
and he was telling me that it was going Dan Tan.
Dan Tan.
And I'm serious with you.
This is when I first moved here, so I had an excuse.
And I was like, what are you talking about?
What is Dan Tan?
He's like, Dan.
He kept saying it.
It got louder.
Dan Tan. Dan Tan. talking about what is dan tan he's like dan he kept saying it he got loud dan tan dan tan i'm like can you please explain in different words and he finally says downtown oh so you can say
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 Well, that's amazing.
Okay, I have the final word here.
And this is hilarious because it shows how small of a world it is. I Googled it.
I technically duck, duck, goad it, if that's a thing.
You duck, duck, went.
I went there.
And I found how Git got its name.
And this article, this historical article is written by none other than Jacob Stopak.
What?
From Initial Commit.
Yes, he wrote this.
Jason, he's back.
He's done all this history here.
And he says, okay, when Linus Torvalds made his initial commit of Git, April 7th, 2005,
he supplied this message.
Initial revision of, quote, Git, the information manager from hell.
That's the subject and then he provides the the deeper cut in the uh the content yeah what do you call it the body the
body of the commit message yeah sure it says get the stupid content tracker get can mean anything
depending on your mood uh, random three letter combination
That is pronounceable and not actually used
By any common Unix command
The fact that it is a mispronunciation of Git
May or may not be relevant
Hello
It may not be relevant Matt
But it may be
Two, stupid, contemptible and despicable
Simple, take your pick from the dictionary of slang
Three, global information tracker
So it could be an acronym.
You're in a good mood and it actually works for you.
Angels sing and a light suddenly fills the room.
And the fourth one.
Oh, I can't actually say the fourth one.
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.
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.
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 anyone.
My other friend, I'll give you one more.
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 is, you know, Montana, as you may know.
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?
I do, I think.
Just confirming.
I feel like I do, yeah.
He's power washing
whatever it might be. And there's a lot of pressure
in that line. And this person
drives over the power washer's
hose.
And the guy yells at him.
He says, there's 5,000 PSI there, man.
It'll blow up.
Dan Tan said this? There's 5,000 PSI in there, man. It'll blow up. Dan Tan said this?
That's 5,000 PSI in there, man.
It'll blow up.
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.
That's a public service announcement if you ask me.
Just so you know.
No, it did not blow up.
To this day, we laugh at that.
Why is that?
I don't get this.
So the power, you can cut this bit out,
but I just want to know just for my own sanity.
I'm going to tell you why.
Because that was the first experience.
It wasn't like, hey, welcome to Texas.
That's 5,000 PSI.
It'll blow up.
Okay.
It wasn't hello, welcome, good to see you,
get your gas here, come get some snacks inside or whatever.
It was, that's 5,000 PSI.
It'll blow up.
I'm over here wondering how many times we can get Adam to say that.
Two more times, two more times.
I will say it on command in the future too.
Amazing.
Just 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.
What is Git UI?
Git UI is a blazing fast terminal UI for Git, and it's written in Rust,
which brings me to a subtopic that I want to ask you about, Matt, soon.
But let's talk about Git UI first.
Written by a guy whose handle is extra worst.
So he's not just the worst,'s the extra worst but maybe the sausage
kind i don't know it looks versity doesn't it it's it's verse extra verse you know it's like
it's normal verse yeah but this is extra first 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 just it doesn't sound
german it's just good no oh no it's so bad that they don't even know 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 yeah okay all right so
here's uh extra verse description or why he made this tool you gotta do it right jared extra verse
matt you want to read this in the German accent for us?
It's in the doc there.
The,
I do,
I do most of my get work.
I do most of my gets work in a terminal, but I frequently find myself using gets guis for some use cases like index,
commit,
diff,
stash,
blame and log.
Unfortunately, blame and log unfortunately popular gets quiz
will fail with
giant repositories
or become unresponsive
it's a little bit French
it did
it also sounds like the way you do it
it sounds very condescending as well
as if the person is like a complete idiot
like 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. In fact,
no, I'm just doing my German accent. That's right. Extraverse. 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 extra versed kind of sense of humor like it's
uber good i love it so hopefully our friends in germany will appreciate that but to read it in
in terms that we can all understand here he's he does say that a lot of the Git GUIs fail on giant repos and become
unresponsive and usable. So he built this.
It's in the terminal. Would you
use it is the question. It's written in Rust.
I know, Matt, it's not written in Go.
But would you use it anyways?
Because a lot of us say, hey, I like to keep it simple.
I like to stay in my terminal. I'm in the same way.
I'm 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
Well I feel like I need to come out now
and tell you that I actually use GitHub Desktop
Why do you say that you use the terminal?
No, no, no.
I said that because it's really complicated.
I avoid complicated stuff.
This I like because...
I must have misheard you.
Yeah, we can go back and check the recording, mate,
if you're calling me a liar.
Yeah, do that little rewind sound.
I used to...
Hello, now I'm back to doing this accent
again so
go back further
but what I like about this is
it reminds me of early
computer interfaces
like really early MS-DOS type
I used to do QBasic
when I was a kid
and so it has this real retro feel
which I really like.
But kudos to writing in Rust because I feel like for the times
when you really need performance like this
in this sort of case,
I think Rust is a great choice.
Okay.
So you're not offended by that?
No, no. this episode is brought to you by our friends at postman postman is an api platform for building
and using APIs.
They are most known for API testing, and you may already use them,
but they've built a full-featured API platform to help developers along each step of the API lifecycle.
But what does it mean for Postman to be an API platform?
Well, from API design, testing, monitoring, documentation, mocking, to the sharing and discoverability of APIs,
they've built a full suite of tools to help teams build APIs together faster.
Over 20 million developers use Postman
to deliver their APIs.
Plus, they have a generous free tier.
Start designing, developing, and testing APIs.
Organize all your API development into workspaces
and share those workspaces with other developers.
You can create public workspaces
to collaborate with the world's developers. You can back up your work to Postman's cloud. You get
their core tooling and collaboration for up to three users. Sign up and start using Postman for
free today at postman.com slash changelogpod. Or for our listeners already using Postman,
we encourage you to explore the entire API platform that Postman has to offer. Again,
postman.com slash changelogpod.
So the subtopic then, so language support,
where language is these tools are written in and therefore distributed in.
We have two in Python.
That was the heat map and the git sim.
This git bug is written in Go.
Git UI, written in Rust.
The next one we're going to talk about, if we get to it,
git branchless, also written in Rust.
And that got me thinking.
I still can't tell if you're saying get to it or get to it.
I mean, you're really getting me here.
If we do a Dan Tan.
Did you see that, Matt?
You liked that one, didn't you?
You're really getting me. You're really getting to me.
I'm sorry.
I had to punt it out there.
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 Go's lunch
for command line tools.
Well, I mean, first of all, I think,
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 Python's your bread and butter,
then I feel like that's okay.
I just don't use it enough that I have any confidence in it.
So I do like that you get single binders.
Yeah, the Python one gives me pause as well,
just because I don't know if it's going to go right.
Can you mention, 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 if i see your tool and i see it's written in
ruby i'm kind of like do i want to mess with this and that's how i am with python as well
their stories are just fraught do you not use github then that's ruby in it well i don't mind
the website i'm talking about a tool that I'm going to install
with dependencies locally.
As a dev tool. 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
JavaScript's had the same bad story for me,
but Deno is actually showing,
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 100 times a day.
But if your tool says pip install,
or it says gem install, or it says npm install,
I'm kind of like,
ugh, do I want to mess with this?
That's just my sense.
Does that resonate with you guys?
Especially if you're on Linux proper.
If you're on Mac, it's different
because you kind of have to use Homebrew
or pip if that's the way you want to go
or maybe vanilla straight up Ruby
or a binary.
But if it's on Linux,
it should be inapt
or whatever your platform would be.
Yum or pick your...
It should be a package.
Or you should have to update your registry
with whatever package directory you want to use
and 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, when I get a new computer,
which happens more than I can justify,
I don't like it when 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 I hold off and I hold off.
You're muddying it.
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.
Right.
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, I love it.
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 and delete it without worrying about it just like spreading files all throughout
your desk i remember on, 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, duck, go it.
Right.
And it's like, okay.
You went there. 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.
Yeah, and it scatters, it changes throughout your registry throughout your registry and you're like ah i have one global registry and
i don't know all the places that's been changed 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
but you applications are mostly contained inside that single zip. Mostly. But not entirely, though, right?
No, not entirely, yeah.
I'm going to think with the M1, there's more change.
Like, didn't Homebrew move to the opt directory, I believe, wasn't it?
Oh, yeah.
Yep, Homebrew installs into opt now versus user local.
And I can't recall why that was, but that was a new change in order to...
I'm sure some sort of security enclave reasoning, right?
Maybe.
It's just challenging, yeah.
I mean, you've got P lists that spread about.
You've got something that might be in my application support folder.
Give me a good self-contained uninstaller with the thing.
Give me an Eject button, whether it's an application that I install
as a literal Mac app or, you know, a dev tool.
Give me an uninstall flow that respects my system.
Because, like, I'm sure you, developer, developing it, care about your system.
Keep it pristine.
And with reluctance, install new things when it's a new machine for sure.
Yeah, I think the only upside of that style is that you do have preferences that
persist if you uninstall and then reinstall or upgrade yeah but you don't always want that do
you yeah exactly but sometimes you're like oh actually oh i don't have to redo this that's
nice it has pleasantly surprised me once or twice but most of the time i don't want it i want it to
be completely gone yeah sometimes i'll uninstall something because I can't figure out how to change a setting back.
And then I uninstall it and then reinstall it
and it's remembered the settings.
It's right there.
Yeah, it's right there for you.
It's waiting for you.
And I have to, I'm like, where's the registry?
Is there a registry?
I know that's, but I'm on a Mac, so there isn't.
Another culprit is installing something to.local
in your root directory or your home.
Yeah, your home yeah your home i guess
and not removing it or putting it in like a hidden folder i mean obviously i'm going to do a
ll or l depending upon what your flavor of how welsh you are lsu use i mean if you got a if you
got an alias or whatnot you know which i do because i use oh my zsh he doesn't have time to type l
twice yeah i don't like just one just one nobody has time for that. You're a busy man. Why two when you can just do one?
Good question.
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 these command line installable tools?
There's a lot of new tooling,
whereas Go was the thing for a little while where it's like and it's written in rust does that does
that are you feel intimidated or encroached upon no no i remember when go was like becoming that
and i would always say at the time like you know write it write it in whatever you want right it's
like whatever's the right tool for the job so that's that attitude can't really like don't really deviate from that i think i think go i
don't think rust will just defeat go because it's really hard to learn and that's the trade-off you
make it's like much harder to learn much harder to write rust but the trade-off is you get much
more secure much safer execution and i guess if it compiles
you've 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 there'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 so reasonable expect so much okay well in that case i could get my guitar and do an anti
rust song if you like okay i do oh we're in for a treat here matt has left his chair his
his mac display is tracking him
throughout the room.
He's back.
He has a guitar.
The Mac display is annoying
because it follows you around
when you move.
Yeah, talk about surveillance capitalism.
I try and sometimes move out of frame
to pick my nose
and then the blooming camera
follows me
because everybody sees it.
What's this song called?
Anti-Russ song?
Yeah, I don't know. I guess, yeah, I guess that's going to song called anti-rust song or what yeah i don't know i guess
um yeah i guess that's gonna be an anti-rush what key do you want to call it 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.
Hey, 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
Today You're gonna rust away Today
Rust away, Mike Reier.
Woo-hoo!
Yeah, that's really sweet.
Can I critique?
Yeah.
Can I critique?
You're gonna hurt his feelings.
No, do it, because it wasn't great.
It won't hurt your feelings.
So if there was a version two, no you're gonna hurt his feelings no do it because it wasn't great it won't hurt your feelings so
if it was if there was a version two let's say you go away and you think about sleeping
or maybe you sleep a little bit and you dream and you think this is actually a hit song i could
probably do something with this i would just encourage you to put a little bit more rust
lang specifics into it yeah i don't know enough to do that i was thinking that uh i was gonna
mainly focus on like i could have mentioned cargo or anything i mean really anything yeah
my knowledge is really limited i was gonna focus on like um it's really it was really quite awful
yeah i was gonna focus on uh like vulcanizing things and actually like, you know, to prevent rust. Like to actually, like they use painting and stuff to protect the metals
so they don't rust.
Anodized, yeah.
Rusting metal, why would you want that?
It's red iron oxide.
There's lots of ideas, but yeah, it just didn't happen.
I'm sure if Dan Tan had done it, he would have done a much better job
because I know he's particularly good at songs.
Dan Tan. it would have done a much better job because i know he's he's particularly good at songs tan tan
so one quick hat nod to uh the git ui project is that it seems to be easily installable regardless
of originating language which is super awesome great song matt thank you for sharing that with
us it was awesome i was gonna hop in and start singing with you, but my skills are a bit rusty.
Sorry about that.
Let's move on.
Git branchless.
This is our last one of the list here.
High velocity,
monorepo scale workflow for Git.
This is like a grab bag of utilities.
It's a weird name,
Git branchless,
because it doesn't have anything to do with branching really, but it adds a bunch of cool stuff. Like Git undo, like a very nice. It's a weird name get branchless because it doesn't have anything to do with branching really but it adds a bunch of cool stuff like get undo like a very nice it's a good name then isn't it jared oh there's no branching yeah it's branchless and you're like oh what's called
that it doesn't have anything to do with branches but that's it's called branchless that's not an
impression 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.
I don't call myself Jared Rustless, because I don't write any Rust.
Good name, though.
I like that.
Sounds like a cool guy.
I'll consider it.
They call me Jared Rustless Santo.
That's a cool name.
That is pretty cool.
I might pick that up, actually.
All right, I revoke my argument.
The point is, there's lots of cool stuff here.
Smart Log.
Get Undo, Get Restack, Get Sync, Get Move.
Lots of good stuff.
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 the command line,
then maybe check out Git Branchless.
Yeah.
In terms of naming,
you know, same song, different
singer, since we're talking
about Rustaway and
Matt's doing some jingles for us.
I was thinking Git Utilities. I mean,
it's 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.
Well, no wonder he didn't name it that.
It's not maintained.
And it's sort of like, I don't want to call it dead,
but 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 ChangeLog 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 finished?
Some things are just done. Other things are abandoned and you got to find out which is which.
Yeah. This is, this is always the problem that I have. Um, because because people one of the ways they decide if a project is worth
using is the look when was the last release or like you know and 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. 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.
We almost need a health meter or something like that,
built into GitHub or external socket.
They do a lot of security stuff externally from the repository,
regardless of its origin,
whether it's GitLab, GitHub or whatever.
We almost seem like a health meter
or at least a democratized version of it.
That's like, okay,
this may have had a commit two years ago,
but it's still, 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. You know, there has to be a different metric than just simply last
commit.
GitHub 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,
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 has 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.
Well, I have good news for you, Jared.
What's that?
DoneOrPerfect.com is available.
So, I mean, we can encourage somebody to build a tool
called Done or Perfect.
So you got to pick which one it is?
Not Dunder Mifflin.
Done or Perfect.
Done or Perfect.
So I don't understand.
I guess you're going to mark your project as done or perfect.
Wow, 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.
No, just some sort of, you know, I mean,
I don't think that the insights tab is that insightful in this regard.
So maybe there's something that could be done. Maybe it's just
a fun project. Like Matt said,
this is just a fun thing. And then maybe
GitHub acquires you. And the next thing you know,
you're a millionaire or a billionaire.
Or you got some stock options in the juggernaut
that's called Microsoft that's just like
slaying it out there.
You know?
I don't know.
That escalated quickly.
One could dream, right?
Yeah.
So if you
register
doneorperfect.com,
you're going to be
a billionaire
with Microsoft
stocks.
If you do,
yeah,
if you execute
well,
yeah.
Yeah,
probably.
If you,
if you,
if you do it,
just do it.
All right.
Should we hop to
unpopular opinions
or should we,
we have,
we have more
things that we've
shared that are
Git related,
but we can also
just get on with it.
Maybe a state of
Git internally here.
How do you Git, Jared?
How do you Git, Matt? And Adam,
how do you Git? Speaking of myself.
Are you a simplicity person, Jared?
I know that you just use terminal.app
not iTerm
or even Fig
or, you know,
what else have we had on the show?
I do use ZSH now versus Bash.
By force.
I use it as if it's Bash.
I can't believe you were having a go at me for using GitHub Desktop
and you just used the basic, the first,
the only thing that's already installed when you get your first computer.
You mean a terminal?
Yeah.
Like real developers do?
I don't subscribe to that.
I don't actually either.
But I do use it.
And I do use it almost exclusively.
So now I like a Git GUI myself.
So I can get graphical.
And the one that I prefer is called GitX.
And GitX 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 GitX
that they maintained for a while
after the original GitX 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 GitX was gone for a while.
It was just like abandoned.
I was super sad.
I started looking for a new one.
And then it got revitalized in the last year or two by the community.
That's like the best 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 Git GUI for Mac OS.
That's under active development once again.
Mostly maintenance mode, but I'm happy in maintenance mode
because it's a good GUI. once again. Mostly maintenance mode, but I'm happy in maintenance mode because
it's a good GUI
and I don't need
any new features, honestly.
It does what I like, and I like what it does.
And so that's what I use.
I use the command line for
most things, git log, git status,
simple commits,
like git commit dash all
with a message, command line, push and pulls, command commits, like git commit dash all with a message, command line, pushing
polls, command line, but staging, reviewing, that kind of thing from git x.
So I would highly recommend that for macOS users.
Let's give a little shout out since you mentioned the fact that this is being maintained.
Thank you to, this is not sponsored, but I am a fan, Mac Stadium.
In the footer of the readme, it says,
well, that's the license, nevermind.
The one before the last,
not the very, very end of the readme,
almost to the end of the readme.
It says this project is supported
by Mac Stadium open source developer program
and they give them a free Mac mini for their CI.
So they say thank you to Mac Stadium.
So I mean, that's super cool.
Like I think we should do like shout outs to like those that are supporting
open source in some way,
shape or form,
just like giving services away to enable just no new features,
but just stability,
right?
Just keeping the thing alive.
Well,
shout out to me then I donated a M one Mac book to the whales project uh which is whales app you know you can
build desktop apps using javascript 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 matt 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 well i did i
did write testify which is goes big that's the testing framework everyone uses in go well we
had you on the show talking about your stuff you had bit bar your x bar right so you got your open
source bona fides yeah but, but I'm just, because
I'm so modest, I'm probably the
most modest person in the world.
You seem very modest. Yeah.
And it's a big weakness. It's your greatest weakness
actually. I don't know.
I do
myself a disservice.
So this M1 MacBook Pro, it's being
used by someone to
maintain whales, I assume?
Are they sharing it and mailing it around?
I love the idea of that.
But no, someone has it and they use it to...
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...
Yeah, there was work to do there.
That's true.
That's a great point, too.
I mean, when you do desk
or platform specific development
and you don't have the latest rev of Apple Silicon,
you know, you need that
and maybe you don't have the cash to shell out
or want to,
because this is just a fun thing to you.
Right.
You need supporters.
That's cool.
And of course you can sponsor
a lot of projects now on GitHub.
So I recommend that. And I don't think enough companies do that.
If you're a company and you use some open source project
and you can sponsor it, I feel like you just should.
We should make that more normal, really.
Especially if you make money off that project,
directly or indirectly.
For sure.
Well, again, macstadium.comcom shout out to them super cool super cool so you're a pretty simplistic git user then jared i mean you
you mainly stay command line only except for visual specifics yeah yeah keep it simple you
know you're a simplistic git that's what he just said to you i love that and i owned it i do
i agree clip it well i paused simplistic git user yeah you did pause and that's where we'll do the
cut 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 so i'm not sure which one of us is simplistic, but. Well, that's just because you DDU better than we do.
Yeah.
Or DDG.
I thought you'd at least go DDW.
I duck, duck went faster than you guys could.
All right, Matt, your turn.
How do you get, how do you get?
I like to keep it simple.
I'm a simple get.
Yeah.
I like to, if, if there's, 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 my letter of resignation uh no yeah i tend to use github desktop as much as i can and then i'll go into the command line if i have to if things aren't 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
like i'm not a proper dev because I use desktop apps and stuff.
I know, Jared, you're joking, but I still have a song for you.
I'm also serious.
Oh, you have a song for me?
Uh-oh, look what I did.
Gosh.
Look what I did.
Two songs in one show, is this possible?
Don't say that because hopefully the first one gets cut.
What's the title of this song?
Keyboard Wizard.
Keyboard Wizard, okay, good 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 right live version i feel like howard
stern right now like what's your song title okay go ahead go go ahead go all we need is an awesome
artist and then we will be him well meanwhile you've got me i don't care what you wear don't
care if you swear it doesn't mean that much to me you can do what you need do as you please
you'll hear no argument from me
except what's your ID?
Your ID please I want to know so I can see
Are you a fizz coat like me area 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.
Screenshare with me.
Screenshare with me Screenshare with me
Screenshare with me I want to know so I can see
You a keyboard wizard
I don't need no mouse
A trackpad is just a rectangle as far as I'm concerned
I'm a keyboard wizard Woo!
That one's a keeper.
Yeah, that's a keeper.
That one I actually did write.
That's a good one.
Thank you.
But also, very serious point there, which is let people
just use whatever tools they want. Don't make us
feel bad because we can't get out of Vim
just because we can't quit Vim.
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 Git stuff built into it.
Have you tried any of that stuff?
Do you like it? Or are you just like, I'm happy with GitHub
desktop, don't care?
Actually, yeah, for the simple stashing, committing changes,
I'll just use that in the ID because it's right there, exactly.
And then if it's a little bit more complicated,
I'll open GitHub Desktop, and then if I can't do that,
I'll phone up one of my smart friends like Jared and ask him what do I type in to make this fix please debatable yeah Hostinger Tutorials mentions that GitHub desktop 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 have software there. But I do agree that at some point you graduate.
It's like, well, certain things can be done via the command line.
I'm here.
Why eject and go somewhere else?
Certain things should be done if you're in VS Code.
Why not use some of the visual aids inside of VS Code?
I'd do that.
Like, you know, I might add a file to a commit that I'm staging up and whatnot
and type the message in and along 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 and a bit more github specific
yeah it makes sense yeah it does use whatever tools you like use whatever so for me thank you for asking adam
what's your favorite ever song favorite ever song okay well i'm gonna go to your side of the pond i
might say something from the beatles i'd probably pick from yesterday i might uh yeah i'm just
actually i'm a big fan of the movie yesterday you've ever seen
this movie i've seen the movie yeah what a great premise amazing amazing movie but it's a great
song too so i'm a beatles fan the premise of yesterday is this guy just discovers that the
beatles never existed and so no one knows them and but he knows all the songs and he's like a
songwriter so he just pretends he writes the
beatles songs right and then they're all hits and he becomes a super famous chap yeah i love that i
also love the beatles very much i have an original sergeant pepper's album in mono which is which is
good i just listened to it in one ear because you might as well and yeah it's just beautiful paul mccartney i think probably one
of our greatest ever songwriters you know just amazing phenomenal phenomenal artist so that's
so yeah my answer is that i mean i think uh the beatles is is on my list of top artists top songs
like if i had to pick a song on replay forever i would say don't but if i had to if it was by
force absolute force what's this hang on what's this what's the situation how i say don't but if i had to if it was by force absolute force what's this hang
on what's this what's the situation how what i don't know i don't want to speculate but it's
it's probably terrible gun to your head or they've got your kids oh the phone calls coming from
inside the house come on now you want to do a liam neeson situation here you want to go you want to
go there matt oh matt loves liam he doesn't care. Gosh. I want you to listen to the same song on repeat forever.
Or I will find you.
Yesterday.
Yesterday.
No mercy.
Oh, gosh.
You played into that brilliantly.
Matt, I knew you had a Liam Neeson up your sleeve.
And so you were just waiting for an opportunity there.
I figured he could do that.
Can't wait for someone to mention Jack Sparrow.
I think we drained Matt 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.
German character.
Speaking of other modern, singer songwriter ed sheeran could you can you do an ed sheeran
version you also sing a lot too can are you do you like the guy i do i think he's a great songwriter
actually so yeah i think he's i think he's good but no i don't i can't i mean does he have a
distinctive voice i don't think i mean he does singing but yeah for sure but talking i don't know yeah i could do beatles
though if you like i can do every beetle okay sure they're all different ringo you can do ring
of course i can do ringo you know he's very bouncy when he talks you know that's ringo and it sounds
like he you know he 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, he 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,
he seems to know what he's doing.
John Lennon was always very wiry in his voice, you know, when he talks.
So it's very different.
Yeah.
And then you've got George, who's my favourite,
because George really doesn't sound like he's,
doesn't really sound like he's all there, but he's really good.
He wrote about, here comes the sun, know all right did you know that pretty good
oh gosh
look what you've done adam opened up this can of worms you can't put the worms back in the can
i love it can you actually get cans of worms like can you buy them oh of
course for fishing or something just eating for sure you can literally get them and you can
figuratively get the version that's a simulation or you know not really the can of worms you could
buy the one for the kid like the prop you know oh yeah where the big snake flies out when you're
right and it pops out that's one worm though in it i wouldn't say i'd say that's a can of worm well you buy more than one it's
cans of worm yeah it's like attorneys general exactly i've got one pick that i'd like to also
bring up that i learned about at fosdem 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-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 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 markdown files, just let them go straight to main. 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 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 like different groups of people. You might say new starters, everything should run for
them, but the more senior people have slightly more relaxed rules and they're allowed to push
without all the checks happening. And even individual functions,
you could mark a functioning code as critical.
And if anything inside that changes,
then it makes sure that all the tests
will run all that whole pipeline executes
before it is 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.
What do you think of that review pad?
I like all the words that you just said about it.
It's brand new to me.
It sounds really cool.
A glowing review from you which which does mean a
lot to me so i'll definitely look closer at it but i think that it's too late to start being nice to
me now jerry well no one's listening anymore we lost him at here comes the sun but but yeah i mean
definitely we'll check it out i think that prs 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 they're not tackling it the exact same way.
And I know a lot of people are enthusiastic about that.
Christopher Hiller, Boneskull on JS Party,
actually gave an unsolicited graphite shout-out
in his pro tip time because he's been using that
and has been loving it.
So that's another tool that maybe we'll just link to.
But that's my thoughts on the matter.
I have never seen this before this afternoon,
so I have to check out more of how it does what it does.
But yeah.
It makes sense. I mean, it almost as if like this could even be similar to the way you have infrastructure as code it's almost like you know to main as code i don't know just like yeah
something that says like we have to have a gate on this process and like you had said there
there's certain things you can go through more nuanced rules and that totally makes sense and a one size fits all get pushed to main
does not always fit so i can see how this makes sense the thing i think i question though
is less the tool itself more like like steve jobs said about dropbox is this just a feature
is it a product or a company you know 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, I wonder if their strategy is like an acquisition thing.
And sometimes that's a great strategy to have.
You've done it 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...
Yeah, three times.
Yeah.
Yeah, but they weren't features.
I mean, actually,
I think solving one problem
and doing it really well
is well worth doing.
And yeah, like maybe you'd struggle
to build a business around it.
I don't know.
Yeah.
Well, that's the hard part.
It's like, here's this thing.
It's great.
It's useful. But man, it died because there's no company. It's just a feature. Yeah. So that's why
we have to sponsor open source if we want to keep it alive. We can't just expect it to keep going.
And we have to normalize that more. We've got to do more of it. It's hard to justify sometimes,
but it's important
i think it's certainly becoming more normalized but i think as it becomes normalized it becomes
the paradox of choice it's like well there's so much open source there's so much usefulness
i can't possibly give to it all so i either do nothing or i just don't know where to put it
and i just am just guilty i feel guilty yeah so that's interesting i wonder if we could get
like a heat map of usefulness of your dependencies yeah how often is that code executed i would say
a git heat map sounds pretty cool honestly we could do with observability tools if you've got
tracing and you've got like you know observability running in your code you will have insights into
the code paths and stuff you probably could gather some stats on the most useful bits.
That might just layer on the guilt, honestly.
Why don't you just pay for the project then, if you're feeling guilty?
Well, I mean, it's not me, man.
It's somebody else, of course.
No, I mean, I think that I just...
It's Dan Tam.
Dan Tam.
Dan, pay for your project.
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, GitHub 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.
And then sometimes it might be corporate sponsors.
It may actually be open source, but it's a company who's backing you.
Well, you're going to support that thing?
Well, maybe.
You might use it as a support, but they're already a company.
Just buy the things that support them to make it.
There's no wrong way to support open source.
I like all the words that you just
said thank you i don't agree with your point all right it's a quiet compliment 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'd like the thing i think it's safe to say yeah i like that okay
i'll check it out yeah check it out you will like it i just don't like to give you too much credit you know i don't like to like give you exactly what you're looking for
because you you you beg for so much well let's close up with a lightning round this has been a
fun conversation a long one you know way more singing than than expected or hoped for or or
desired or appreciated but a lot less than i expected i was i was i'm really here
to do songs and there's been a lot of talking about it's been a lot of time in between a lot
of time in between tracks talking about git that's funny yeah 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 GoTime, Unpopular Opinions.
And surely you can strum us
out the theme song
for the jingle for Unpopular Opinions.
Can you not?
Otherwise we'll have to splice it.
It's hard.
We can splice it right here.
Gosh.
We're back to this again.
What's the alternative?
Yeah.
Splice it in.
We'll splice it.
I actually think she'd probably leave.
Unpopular Opinions
So for those who don't listen to Go Time,
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 found over time is that most unpopular opinions are
actually popular when it comes to polling time. But there's been a few people who have been somewhat unpopular and a few who've managed to be
incredibly unpopular with their opinions i'm actually in the top five most unpopular opinions
of all time what was it that js party's better podcast and go time phil's bad for js party which
was unpopular of course with the go audience but uh we're gonna do a lightning round real quick so
adam passing to you first one
do you have an unpopular opinion you'd like to share i think my unpopular opinion is i don't
have any unpopular opinions i tried so hard to think about like something that is unpopular and
all i can think about is popular things like what well i think if you're struggling to get something
done consistently that you want to do,
my unpopular opinion is that you should learn to habit stack.
It's a superpower.
Habit stacking is a superpower.
That's right.
Tell us more.
But that's kind of a popular opinion if you know about habit stacking.
Right.
Like if you learn the, you know, the inner secrets of this dark secret, basically.
So you have habits, right?
Let's say you make coffee.
This is my example for me, a really simple example. I make coffee once a day when i'm at work at least you know maybe twice and i wear glasses like you matt i wear glasses and as a glasses wearer you must be upset
or get upset when they're dirty yeah i get furious 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.
Yeah.
I hate dirty glasses.
Now that I have a point of empathy, he can understand what I'm saying.
So my feeling is like, if I'm going to have dirty glasses all day,
that's upsetting.
Can't do that.
Well, I'll forget.
I get busy.
I don't 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?
I see.
You brew the coffee.
You wait for the coffee to brew.
You pour it.
You drink it.
You stack this habit with a habit you're already doing. Right.
So you stack a habit near another habit that you do consistently, and then you do it.
Right.
Okay.
It's a superpower. If you can learn to do that in it right okay it's a superpower if you can
learn to do that in different ways let's say more productively let's say i don't know whenever you're
running tests and you've got a minute or two and you have like three emails you can rapid fire off
then you can do them stack up a habit of like you need to return these emails but you've got that
minute minute and a half or maybe you've got a couple of minutes just 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. Maybe it's a PR review or a one-liner or whatever it might be. Maybe a quick
chat with chat GPT, who knows? I mean, just do something. Yeah. Is this just multitasking or is this more than multitasking?
It sounds like you're just talking about multitasking because am I in a habit
of, well, I think in that case, no, no, no. Well, cause if, well,
in that case it might be blurred, but in my case I'm like,
I do have a habit and so I stack certain habits around that thing.
So not only am I doing those other things, but now I think, okay,
when I make coffee neurologically, I'm thinking,
I got to clean my glasses
because right here's the thing.
I just do it.
So it's a habit that forms around other habits.
Now, I don't wear glasses,
but I would think-
Show off.
What about like when you realize they're dirty?
Maybe you do it then.
Well, the point is,
you don't always have that cleaning cloth.
Oh, I got you.
You know, unless you carry this cleaning cloth
with you everywhere.
And I just don't. So like if I'm deploying my code, I got you. You know, unless you carry this cleaning cloth with you everywhere and I just don't.
So like if I'm deploying
my code,
I could floss my teeth.
Well, I mean,
Jared, pick your habit.
I'm just saying,
if you got issues
with flossing,
then maybe, maybe.
Yeah, but I kind of
like this.
I wonder if it also
works with bad habits
because like,
if you're like,
maybe you're a nose picker.
D-stack.
You could D-stack things.
I have a cigarette.
No, I don't mean
so that you can do bad habits, Jared. That mad thank you every time you pick your nose have a cigarette
that would work though you do sure it works with bad habits too i think it does yeah that's
redirection that's i mean so if i understand you correctly maybe you have a bad habit
and you don't want to do it and so when you think about the bad habit, you do a healthy habit. I like the bad habits.
Right?
Replace it with.
Now I'm thinking like do a bad habit, 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.
The 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.
You're like, well, since I'm bad here, I should be good over here.
Yeah, that's what I was thinking.
I should have tried to do that.
I thought I'd do something.
Like actually double up on the other end or something like that.
All right.
Well, this one was going to be unpopular with me.
I think it's a terrible idea.
I think habit stacking is the worst.
Sounds awful.
Let's go to you, Matt. Do you have an unpopular opinion?
Yes, I do. Yeah. I think, I think when we're building software, we very often focus on the
wrong things. 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'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,
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
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 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 you can maybe if you can
solve a problem for somebody with a script or 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 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, try and meet
the person. So that's my
unpopular opinion. This just sounds like good advice, meet the person. So that's my unpopular opinion.
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.
Who's going to disagree with that?
Well, you agree with how you execute,
which you may not agree with.
You said we're doing it all wrong, basically,
or something like that?
We're focusing on the wrong things?
I think most people are doing it wrong.
Most people?
I think like 90% of us are building software wrong
because we aren't obsessed with that.
It needs a soundbite, doesn't it?
Okay, that's a little stronger way of saying it.
There's your soundbite.
Well, I agree with connection and meeting the people
that you're solving the problem for.
That's key.
You should do that for sure.
Here's an actual unpopular opinion.
Now that we've heard your guys' lame ones, here's a real unpopular opinion now that we've heard your guys's 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 oh so i'm going to say it again here we go and
see if people like it automagically yeah 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, 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.
Because when you know how software works, it's not magic, is it?
No.
But counterpoint, it means you don't have to know how it works.
You can just use it.
It works.
And you don't have to know.
Ah, you know what else means that?
It's automatic we already
have a word for that it just works automatically oh okay it just does it automatically why does
it have to be mad why do we have to pull magic into it i don't know about that jared no let's
push back a little bit neither one of you agree with me i'm telling you this is an unpopular
opinion this could be okay because you guys don't like this message received got it so automagically
describes a process that's too complex whereas automatically is just there's no complexity in
there the magically with auto makes the thing that you don't know how it works that's too complex
you explain it that way automatically doesn't simply describe something that's automagical that's too complex and you don't know how it works i disagree
i disagree that explanation was not automagical enough
it's just like um it's just a spin it's a bad spin on something that could could be explained
do you believe in magic what kind of magic it's like a hand what do you believe in magic? What kind of magic? Sleight of hand? Do you believe in magic?
Are you going to break into song here?
No.
I believe in sleight of hand, like in magic tricks, yeah.
You can't not believe in sleight of hand.
Well, that's why I don't understand the question.
Do I believe in magic?
Is there a group out there, like flat earthers,
that are just like, no, we deny sleight of hand?
If anything, they believe in magic, don't they?
Because they think it's not sleight of hand. Right. That's believe in magic, don't they? Because they think it's not sleight of hand.
That's right. I just don't understand the question then.
I was going to bring in a song, but you ruined it.
Well, I did
everybody a service there.
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
happening. Okay. Do I believe in the unexplainable?
Absolutely.
Okay.
So that's a version of magic.
Do I believe that there's software that's completely unexplainable?
Well, it shouldn't be.
Like if you know your systems, maybe it means I don't want to explain it to you.
What is the context of this word being used that you, that you like loathe?
Engineers say it all the time.
Who says it?
Engineers.
And we put it on our marketing,
like, and then it automagically just works.
And you're like, nah, this is marketing lingo.
You're spinning me.
I don't like it.
It's a dumb word.
Gotcha.
I don't like spin.
Okay, don't spin me.
There was actually a book about spin selling.
I used to, I grew up in sales, right?
My origination into professionalism was in sales.
And there's a book called Spin Selling. Look it up.
You can tell you're in sales because you just said my origination into professionalism.
Yeah, that's some spin right there.
My first job. My first job was in sales.
Yeah, that was an automagical saying. That's funny. Yeah yeah i know i mean matt i'm sure you've said it
i used to say it as well when i was a younger person a lot of people love that term auto-magical
and i'm just going i'm growing sour on it so it's unpopular it's it's not a popular opinion i just
didn't know it was that popular of a word all right listener uh let us know it do you agree
there's three opinions here which one is here. Which one is the worst?
Which one is the worst?
It's going to be mine.
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 just standard German accent. That was just your being funny, doing an accent, right?
Yeah.
What do you mean?
I wasn't, well.
Okay, good.
I just want to clarify that.
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 with me.
Oh, I'm sorry.
And I almost said something.
I almost stopped the show.
You should if you feel like that.
Absolutely.
I mean, I celebrate different accents.
I really love them.
And so, yeah, impersonating accents is a fun hobby.
I was so close, man.
My white towel was like...
You're going to throw in the white towel?
It was so close.
No one has a go at Liam Neeson on my watch hang on though hang on it's okay to do British
accent isn't it everyone does a British accent I don't I can't like you have Joe because I've
heard you do it I try not to because I'm not good at it I think accents are all in good fun
I think just the length of that
the length of the read
as you went on it became more and more caricature
well I think we made it clear that it was in good fun
if not
so I'm joking about any of the show
as you may know I don't know if you knew that
I was kidding around about stopping the show
I wasn't going to stop the show
I was just being funny but it's a nice point actually it's a nice point because if
somebody felt insulted by that i would i would be devastated genuinely right yeah yeah i want
to clarify that like we were not trying to be insulting no we're not trying to be just just
natural just talent natural talent it's just who he is how how and when? 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, Matt.
It's over now.
Thanks for joining us for your final episode.
You know what we could do, Jared?
We can play that song.
It's closing time.
Tell me you remember this. Yeah, Semisonic.
Semisonic.
Of course. i saw them live
you don't have to go home but you can't stay here right they were playing that song for us
oh yeah when we're trying to do beyond code the first season in that bar we're like we're trying
to wrap up the last two interviews here come on people yeah so we were at an after party
at a conference matt and this was this was Keep Ruby Weird, maybe?
Keep Ruby Weird, yeah.
Keep Ruby Weird.
2014.
At the after party, the DJ turned on closing time at 9.30.
The party ended at 10.
So, you know, naturally what you do then,
if you're a terrible DJ, is you loop it.
So he started looping closing time at 9.30.
It played literally for a half an hour.
Maybe someone had his kids.
Are you trying to leave me somethingan again 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 ah it was it was terrible that's so rude oh my god
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
Yeah.
Closing time
You don't have to go home, but you can't stay here.
Well, you do not have to go anywhere.
You can stay right here.
I allow you.
I want you to.
I want you to stick around to the very end of the show because, hey, this was a fun show.
It was fun to have Matt
back on the Change Law podcast. It has literally been too long. So, Matt, thank you for dousing us
with all of your song, all of your humor, all of the fun. Thank you for being a friend. It was fun
having you. And to you listeners, thank you also for being a friend. Thank you for listening to the show.
It is an awesome experience to produce this show for you all every single week.
And I thank you.
I thank you.
And speaking of thanks, a big, massive thank you to Fastly, Fly, and also a new partner of ours coming out very soon, TypeSense.
Yes, we are using TypeSense Cloud to power our search.
We have some fun plans planned with Jason and team from TypeSense.
So stay tuned for that.
And a big, big thank you to the Beatmaster in residence, Breakmaster Cylinder.
Those beats are banging, banging, banging.
Thank you, BMC.
Thank you very much.
But that's it.
It is officially closing time.
But hey, we got about 45 seconds of song left.
So stick around, enjoy those beats, and we'll see you on Monday. Thank you. Outro Music