Python Bytes - #433 Dev in the Arena
Episode Date: May 26, 2025Topics covered in this episode: git-flight-rules Uravelling t-strings neohtop Introducing Pyrefly: A new type checker and IDE experience for Python Extras Joke Watch on YouTube About the show Sp...onsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: git-flight-rules What are "flight rules"? A guide for astronauts (now, programmers using Git) about what to do when things go wrong. Flight Rules are the hard-earned body of knowledge recorded in manuals that list, step-by-step, what to do if X occurs, and why. Essentially, they are extremely detailed, scenario-specific standard operating procedures. [...] NASA has been capturing our missteps, disasters and solutions since the early 1960s, when Mercury-era ground teams first started gathering "lessons learned" into a compendium that now lists thousands of problematic situations, from engine failure to busted hatch handles to computer glitches, and their solutions. Steps for common operations and actions I want to start a local repository What did I just commit? I want to discard specific unstaged changes Restore a deleted file Brian #2: Uravelling t-strings Brett Cannon Article walks through Evaluating the Python expression Applying specified conversions Applying format specs Using an Interpolation class to hold details of replacement fields Using Template class to hold parsed data Plus, you don’t have to have Python 3.14.0b1 to try this out. The end result is very close to an example used in PEP 750, which you do need 3.14.0b1 to try out. See also: I’ve written a pytest version, Unravelling t-strings with pytest, if you want to run all the examples with one file. Michael #3: neohtop Blazing-fast system monitoring for your desktop Features Real-time process monitoring CPU and Memory usage tracking Beautiful, modern UI with dark/light themes Advanced process search and filtering Pin important processes Process management (kill processes) Sort by any column Auto-refresh system stats Brian #4: Introducing Pyrefly: A new type checker and IDE experience for Python From Facebook / Meta Another Python type checker written in Rust Built with IDE integration in mind from the beginning Principles Performance IDE first Inference (inferring types in untyped code) Open source I mistakenly tried this on the project I support with the most horrible abuses of the dynamic nature of Python, pytest-check. It didn’t go well. But perhaps the project is ready for some refactoring. I’d like to try it soon on a more well behaved project. Extras Brian: Python: The Documentary Official Trailer Tim Hopper added Setting up testing with ptyest and uv to his “Python Developer Tooling Handbook” For a more thorough intro on pytest, check out courses.pythontest.com pocket is closing, I’m switching to Raindrop I got one question about code formatting. It’s not highlighted, but otherwise not bad. Michael: New course! Polars for Power Users: Transform Your Data Analysis Game Apache Airflow 3.0 Released Paste 5 Joke: Theodore Roosevelt’s Man in the Arena, but for programming
Transcript
Discussion (0)
Hello and welcome to Python Bites, where we deliver Python news and headlines directly to your earbuds.
This is episode 433, recorded May 26th, 2025. I am Brian Ocken.
And I'm Michael Kennedy.
And this episode is sponsored by us. So please check out offerings at the courses at Talk Python Training and at PythonTest.com, of course, to learn your PyTest goodies.
And also thank you to the Patreon supporters, you rock.
If you'd like to connect with us, of course,
check out the links in the show notes
for both Michael, myself, and the show
at Blue Sky and at Mastodon on Fostedon.
And if you'd like to listen to the show,
if you listen to the show, thank you.
If you'd like to watch it also live,
check out pythonbites.fm slash live,
usually Monday at 10 a.m.
Even when we forget that it's a holiday today.
But yeah, also if you'd like to get,
if you're listening to this,
you kind of want to check out some of the stuff
that we're talking about, but you can't remember the link,
sign up for our newsletter on at Python by set FM, really easy to find the link there.
And you'll get an email every week with all of the links and everything we talked about plus
extra goodies to help you if you help you get up to speed if you want to. So that's wonderful.
What do we have to start with Michael? Let's start with a throwback. Okay. to. So that's wonderful. Um, well, what do we get to start with Michael?
Let's start with a throwback. Okay. Okay. So did you ever watch the movie fight club?
Brad Pitt, Edward Norton? Yeah. It was, it was a cult classic, right? It was definitely
a first rule of fight club. First rule fight club. Don't talk about fight. Second rule
of fight club. You do not talk about fight
club so what are we doing that what are we talking about because up next are get
flight rules fight rules I want to call fight so what are flight rules they're a
guide for astronauts or programmers who use get who now do things when stuff
goes wrong with Git.
So they're hard earned, they're not fight club rules,
they're hard earned body of knowledge,
recorded in manuals that like,
if this goes on, what do you do?
If you stir the tanks and there's an explosion
and a lot of the oxygen shoots out of the spaceship,
what do you do?
And so on, okay?
All right?
So this is actually pretty cool.
I think this is going to be super helpful for a lot
of people.
So it talks about, well, what do you
do with Git when things go wrong, basically?
I mean, source control is awesome until you're like,
it says there's a merge conflict and I
don't know how to merge it, or I don't
know how to do that correctly.
Or I've created the repo here, but I
want to push to a different origin there.
And how do I do that?
So this is like, uh-oh.
OK, so it's grouped by sort of category or something, I guess.
So repositories.
I want to start a local repository.
I want to clone a remote one.
These are pretty standard, right?
But as you go down, you'll see.
I set the wrong remote repository.
I want to push to a different origin and so on.
There's edit rules, there's staging,
and they're pretty interesting.
There's discarding changes.
I want to discard specific unstaged changes,
or I want to discard all of my untracked files,
but not the tracked ones, and so on.
Or maybe if I am staging let's
see I staged too many edits and I want to break them into a separate commit what
do I do I want to unstaged my edits and unstaged my staged right so all these
things have sort of here's the scenario rebase emerging I need to update the
parent commit of my branch when I'm rebasing or whatever
There's a bunch here like I even called out a few in the show notes
I gotta check out the rebasing stuff because that always stresses me. I know me too. One is like what did I just commit? I
Want to restore a deleted file?
I want to discard a specific and she and stage changes not all of them, just one of them and so on.
Isn't this cool?
Yeah, this is great.
Yeah, well, I think you're letting me stretch the fight rules a bit, but I had to.
It was fun.
But I think this will be super helpful.
It's sort of how to deal with stuff when, how to deal with Git when Git stuff goes wrong.
Oh, and sub modules, man.
Oh boy.
That's a whole nother. That's a whole nother.
That's a whole nother.
No, it's good.
Okay.
So let's talk about T-strings a little bit.
We've already covered T-strings on the show before,
I believe they came in with pep750,
but they're very new.
So to play with them, I think it's just 3.14.0 beta one
has them, I don't know if anything before.
So I was just playing with them this morning a little bit,
but I'm really happy with this article from Brett Cannon,
Unraveling T-strings.
And what I really like about it is because I really kind of
wanted to play with T strings or just understand them more, but I didn't want to actually require,
you know, it'd be great if you didn't have to have the latest 3.14 beta one to do this.
And so that's really with this article. So even though T strings come in with the 3.14, this article talks about
going through all the details of kind of how T strings work without actually using T strings.
So Brett starts out with this idea of like, let's say you've got a, this little converter
thing of converting take this function called F yeah, that takes a T string.
But here it says T string, but it's just a variable name.
Takes something and returns something.
And right off the bat, it's just an identity.
And what we want and what he's showing is like
with F strings, F strings do a lot of things.
Like they can replace variables,
they can do what are those formatting stuff. they can do, um, what are those formatting
stuff? They can do format specs, specifiers, and then there's conversions. Like this is
a raw string conversion thing. Um, and, uh, and, and so he walks with that, with that,
with an example of just, you know, the, if once you pass the SF string into the function,
what do you get out? But then he talks about, like, basically, it starts out simple, but then he goes into, well, what if we wanted to pass in the
parts, all the different parts passing into our function, and then he passes in, uses, like,
the representation or conversions and format specifiers to walks through those. So basically we've walked through so far
evaluating Python expressions, applying specified
conversions and then format specifiers.
And then goes into to like just dives into it further
of like, let's keep track of all this stuff.
And then let's, you know, let's make,
we've got a lot of stuff we're keeping track of.
So let's put some of the things that were
like the all of the conversion stuff, we'll put that into a an
interpolation class. And, and I was a bit lost here. So I
actually walked through all of this. And it was really helpful
to actually run the code, like copy it into into into their
walk through it, and then a template class and basically,
walking through
all the different parts and then at the end he shows you says basically we've just built up
something that would be like t-strings even though we don't have t-strings yet and then
gave an example of what it would look like what it looks like 3.14 the example in the in the pep
750 is is right there You can run that too.
All really good.
So if you really want to get a handle,
get your brain around what T strings are,
this is a great article.
But I was a little frustrated that it was all in
like just command, like just files.
So I went ahead and rewrote the,
all of his examples as Python test or PyTest tests. So you can just have
one file and run them all. Also get to show off near at the end because the last example
you actually have to have a Python version, Python beta 1, 3.4 beta 1. So I'll show you
to show people how to use skip if to skip that if you don't have that Python version
installed.
Yeah, that's cool.
I really had fun walking through all of this article from Brett, so thanks, Brett, for
putting it together.
Yeah, very cool.
Real-time follow-up.
This was not what I was expecting to talk about, but I just had Paul Everett, Jim Baker,
and Dave Peck all on Talk Python just a little bit ago talk about T-strings.
So if you wanna dive into the internals
with some of the folks that worked on that as well.
Keep a list in there.
Yeah, that's not my next topic.
My next topic is like a hacker version,
cyberspace version of H-top, Neo-top, H-top, matrix version.
No, Neo-H-top, a blazing fast system
for monitoring your desktop, which I think is super cool.
And I'm pretty sure it's cross-platform, a modern cross-platform system monitor built
on top of whatever doesn't matter.
But Rust is in there somewhere.
So we look at the features.
It has real-time process monitoring, CPU and memory usage tracking.
This is a GUI, by the way, modern UI with dark and light themes.
Cool filtering, you can pin processes,
you can kill processes, very nice.
So I actually have it running,
I'm gonna pull it up here,
you can see whatever's happening on my computer right now.
Apparently, guess what?
The Vivaldi helper for StreamYard
is grinding away using 50% CPU.
But there's all sorts of cool stuff.
You can get these little informational things here.
No, it's the pen.
Hit the informational things.
It actually shows you stuff like how much CPU and memory
is that process using exactly, what is its ID,
but also what is its parent ID, has graphs for the memory.
Also, what command was used to launch it. I
think this is super cool. Oh that's neat. So if you see oh here's a there's this
why is this process running you know it's a sub process but what is it doing
it actually shows you then if you go to the parent this is I think even cooler
maybe you go to like say Vivaldi in this case and it shows all of the different
sub processes that Vivaldi has created and how much CPU they're each using,
how much memory they're using, what their IDs are.
Isn't that cool?
Yeah, actually, I think I might,
a lot of these are useful for servers,
but I think I'd use this to restore it on the desktop.
Yeah, exactly.
I'm thinking this is really nice for the desktop
because Windows has Sysinternal stuff.
What is it?
Sysmon, I think it is, which is incredibly good.
It's way better than this.
But it's Windows only, right?
And on the Mac, we've got system and iStats menu, rather,
which are really nice.
But it doesn't give you the look inside the processes
quite like this.
You also get stuff about network, about storage,
about memory, all these things.
So I think that's pretty cool. And of course, look, it looks like you can kill things from here.
Yes, you can definitely kill them. You can be malicious. Anyway, that's my my item here. If
you want some nice gooey desktop monitoring tools that are cross platform, Check out this Neo H-top thing. It's pretty cool. Rift Top. All right.
Where are we at?
Remove.
OK, next, I think we just talked about TY, or thank you,
or Ty, or whatever that was last week or something recently.
Yes, we did.
Yeah, so Ty was the astral type checker.
And so this week, why not do another?
So Pyrefly is a new type checker from,
it's from Facebook Meta.
So there's an article, a new type checker, yeah,
introducing Pyrefly.
And one of the things I think is interesting about this,
so it talks, I played with it just a little bit.
This is also based on Rust, so it's super fast.
And the, one of the reasons why they built it apparently,
the principles behind it are performance of course,
but also IDE first.
So I guess that totally makes sense,
but I think a lot of things are built, you know,
not like not thinking about the IDE right away, maybe,
but this is thinking about the ID right away, maybe. But this is, this is thinking about
making sure that integrates with the ID really well and have a command line and an experience
command line interface experience as well as good. So IDE first performance inference, having this
work well with Python programs that are not typed yet. They're not annotated at least,
but they might still be, you know,
have consistent with types, so it infers types.
And open source, of course.
So this is not a, even though it's
from the Facebook engineering group,
it's not closed source, open source stuff.
So that's good.
There's some talk about what they're gonna do in the future,
but really slick-looking website,
of course, with a VS Code extension.
And I made a mistake, though.
So I downloaded this, and I thought,
yeah, I just want to run it on one of my projects
to see how well.
And the project I chose was the PyTestCheck plugin,
and it blew up.
It didn't blow up.
It worked fine.
It just told me a whole bunch of stuff that was wrong
that's not really wrong.
But since, so I probably shouldn't have chosen
the one project that I work on that completely abuses
the dynamic nature of Python.
There's a check object. So I do often from PyTest check import
check. This check object is both the interface into the system, plus it's a context manager,
and it overloads a whole bunch of stuff. So, yeah. Maybe. But having all those warnings
might be a hint that maybe I should redesign this. We'll see. Anyway, Pyrefly, another faster type checker.
Yeah, neat. Interesting. Yeah, two things that I'd like to add. It's a good find. I was
considering covering this as well. Pyrefly is a replacement for the existing Pyre, P-Y-R-E,
from Facebook.
Okay.
So, or from Meta. So they had had that previously
and I guess this is like a rewrite or something like that.
And the other thing is comparing it to T-Y,
AKA Redknot from Astral.
This looks more MyPy-like,
which is somewhat the goal of T-Y as well.
But T-Y I believe is meant to be more forgiving.
So maybe it would scream at you less, right?
It's meant to work on less typed code, I guess.
But the other, the main difference that I,
I haven't looked in this deeply,
so maybe it's in there somewhere.
But one of the big deals of TY
is in addition to making a type checker
that comes with an L um, an LSP,
a language server.
And one of the challenges with Pylance, the one built into VS code is when you
get to extremely large code bases, basically it falls apart and sometimes
can't even keep up or work with it.
So like things like your auto-complete or go to definition should start to shut
off because the language server can't deal with ginormous amounts of files and so
they're trying to build a rust based language server that flies on even
millions of lines of code so when you compare TY to Pyrefly
they're not exact just like well one is from Facebook and one is from
Astral right they're they're slightly different as well.
So do you know if Pyrefly is doing
like a replacement language server also?
Or are they using, I don't know that either.
They do have LSP as one of their tags,
but I don't see any more words than that.
Let's see.
Okay.
On their website they don't.
Do you plan to build an LSP? Yes, see a roadmap.
Okay. And what does the roadmap say about LSPs? It doesn't appear on it. So you know,
it's closed maybe? LSP? Okay. Yeah, I can't tell. It's an infinite scroll thing so it's like
sort of hard to get there. I mean you kind of need an LSP to understand it.
You need something that parses into something
like an abstract syntax tree,
then you start asking type-based questions about it, right?
That's how a lot of these work.
And one of the frustrating things though,
with the limited, I'm looking forward to having
some of these Rust-based language servers come online
because it's the large projects
that I really need all the help with.
The smaller projects, I don't really need,
I mean, I kind of can get my head around it already, but.
So, anyway.
I'm just gonna be using chat to write on my codes,
I don't care.
No, just kidding.
Just kidding, people.
Just stick with the vibe.
Yes, speaking about stuff running on platforms I worked on,
talk about it on training.
Let me tell you about a new course that we have over here.
Polars for power users, transforming your data analysis game.
So this is a super fun course put together by Christopher Trudeau.
And it's, it's super fun.
If you want to learn Polars and you know, a little bit of pandas, or you know,
tools like Excel and others, it kind of walks you through like, Hey, you know how to do this in other tools, but here's the advantages, here's the different API.
Yeah, really fun if you want to get started with Polars or see it compared to various
tools like I mentioned.
Definitely worth checking out.
29 bucks, you can get going there and it's three hours, I think.
Not a lot of your time, not a lot of your money,
but you'll have a nice new skill set at the end.
Nice.
And let's see what else have we got here.
A couple of announcements.
Airflow, the workflow framework,
has its biggest release,
the most significant release in the project's history.
They describe it as Airflow 3.0,
builds on two,
adding a new service-oriented architecture,
modern React-based UI, enhanced security,
host of long-quested features such as
DAG versioning, directed acyclic graph versioning,
improved backfills, event scheduling,
and remote execution.
In this case, I guess that's a good version,
good thing, a lot of times remote execution's bad,
but when you ask for it, it's good.
Anyway, if people do Airflow, check it out.
It's pretty cool.
There's a new one there.
And my last one, this came in just yesterday, I think,
is when I first saw it.
Paste, Brian, do you use some kind of clipboard manager?
Yeah.
Other than just the clipboard itself, obviously.
Oh, clipboard manager.
No, I don't.
Okay, so once you start using one of these things, you will never ever want to go back to working without it.
Here's the thing. Have you ever done this? Have you ever gone and said, oh, I need to copy this?
And then you go over and accidentally copy something else.
Or I don't know about you, but I use Bitwarden for my 2FA stuff. And by default, it has a copy.
In addition to pasting the 2FA code,
it'll just copy it because sometimes the paste fails.
But if I didn't have this clipboard thing
and I copied something important and went over
and I tried to want to paste it, someone, oh, I got to log in.
I hit my Bitwarden thing.
And I'm like, no, it's gone.
Where did that go?
You go back and find it.
This thing called Paste for Mac.
I know there's similar things for other platforms,
but my recommendation in this little extra is Paste.
So super, super nice thing.
They just released FIVO, which is like a big improvement.
So what it does is it'll keep track of three months,
a year, one month, whatever, of clipboard history.
So you can copy three, four things, go back, hit a button, go back, find them, you get little
thumbnails of them. Or you can even search, you're like, just I want to see what
did I copy. You can just type Firefox, and I'll show you everything you've copied
from Firefox in the last month. And you copy from that, or reuse it, or whatever.
And it'll like synchronize across Mac and your iPhone
and so on.
So super cool thing.
Anyway, they just had a big release.
Works much nicer.
If you only use something like this.
I think I would do it in just like five minutes,
but you know.
Yeah, you can do five minutes.
I mean, you can do, you can change however you want,
but I think you'd be surprised.
You're like, oh yeah, I know I copied that yesterday.
Or I have the same,
whenever I'm creating a new Python Bytes stream, I have the same description, but the software won't remember the same description from so I got to copy it or retype a paragraph
Right like no, okay
So I just hit the the hotkey to pull this up and I type join us and then boom
That's the join us to be part of the show and come to the live stream better better than I just paste it
And so from last week, I just get that back in like three keystrokes.
Oh nice, okay.
So, if you're on Mac OS, check out this pace.
They had a new release, super nice.
If you're on something else, maybe send us recommendations.
We'll give them a shout out or something.
All right, those are all my extras, how about you?
I got a couple, let's see, where are we at?
So, Python, the documentary,
I've gotta look forward to this.
There's a trailer out, official trailer
for the Python documentary.
It's just a couple minutes,
but looks like it might be fun.
This looks great, Brian.
This looks really good.
And I know they did this like joke thing
about Guido coming back
and the empire strikes back sort of thing and all that.
But if you click on cult repo the username of this
Yeah, right there and go to their videos and look through it
Like if you look at all the things they've done you can see by the way that video I talked about but they have
From node.js to Dino and they've got the angular the official documentary and so on
They've got a bunch of cool in-depth highly produced Ruby on rails the documentary and so on a They've got a bunch of cool, in-depth, highly produced
Ruby on Rails, the documentary and so on.
A lot of programming-based, framework-based documentaries,
like really nice storytelling there.
So I think that is what's coming
with the Python documentary.
I'm gonna have to check out life advice
from Bjorn Struestrup.
So.
Pointers, always use pointers in your life. Never duplicate.
Yeah, interesting. Yeah. No, some good stuff there. Okay. So that was one was the documentary.
Documentary. Also, quick errata. I mentioned that when I was talking about T-strings,
I mentioned like the raw conversion.
It wasn't the raw.
Henry corrected me.
It's the wrapper conversion.
Thank you, Henry.
So the next step, so, okay.
So the new Python, oh, Tim, Tim Hopper.
We covered this already,
the Python developer tooling handbook.
And one of my comments was,
where's the testing? So anyway, he added a testing intro also, setting up testing with
PyTest and UV. And actually combining the two is kind of fun to show how you do add PyTest to your
dev environment with UV. Pretty fun. Very simple example. A little calculator,
short thing. Add, subtract, multiply testing. So shameless plug. If this isn't enough intro
to PyTest that you'd like, I suggest going over to courses.pythontest.com where you can pick up
any course you want on PyTest, uh, couple others, I guess,
the last thing is, uh, I got the, I've been using pocket for a while to keep
track of things I want to read pockets going away. Um, it's a shutting down,
I think as of July, July 1st or anyway, I don't know when it's shutting down,
but, um, but it's shutting down. So you gotta move off onto, if you're using Pocket,
don't use Pocket anymore.
What do you should use instead?
Obviously you can check whatever, try out your own things out.
I tried a few things and I landed on a Raindrop.
So I've been liking Raindrop so far.
And somebody, I posted this on social media.
Somebody said, well, what does the code look like?
Cause sometimes these bookmark sort of apps
aren't that great at code highlighting.
And I'll show you an example.
This is of Brett's T-string article.
Stop bad.
So the web view had, this is the normal view had,
oh, it doesn't show highlighting this.
The other, the other version I had, had, had syntax highlighting on Brett's art
Brett's site, but it doesn't show syntax highlighting.
It's just code blocks.
So it's not bad.
Anyway, I've been enjoying raindrops so far and that is all of my extras.
Awesome.
Yeah.
I started using Raindrop and I love it.
I moved all my, I, I went on a journey, Brian. Not only did I started using raindrop and I love it. I moved all my, I went on a journey, Brian.
Not only did I start using raindrop, I said, I'm going to go to all my various browsers I've used throughout the years.
Firefox, Vivaldi, and others. I'm going to clean up all of their bookmarks because they'll be like, just cruft.
You know what I mean? From like 10 years of something like, nope, nope, nope, nope, nope, nope, nope, nope,
keep these 100 or whatever.
Then I imported all of those into Raindrop
and now I have the extension in all of my browsers
so on any computer, any browser,
I have all the same history, it's really nice.
So I definitely second that.
Also-
You're a beast, I just started off clean.
I got like three things in there so far.
I not only migrated, I cleaned it up.
One other option, if you're a self-hosting person,
this appeals to me, but I did not do it
because I just don't want more things
to babysit at the moment.
But this thing that used to be called Hoarder,
now named KaraKeep, looks super cool.
Looks like it's like a self-hosted, read it later,
bookmark service, which is cool
Automatically tag your bookmarks with AI and etc. Etc. Looks pretty cool. So hmm. Yeah, but I'm not using it
Are you ready for a different kind of joke? Yeah
Have you seen this yet? No, okay. Well, here we go
So I was sitting around thinking I don't know why I came across this, but I'm like,
what if we had like historical quotes that are like well known, but they were reframed
for programmers, right?
So I said, I set out to make this just the joke for the show.
And then I ended up like, you know what, why don't I just publish this and then we'll still
make it the joke for the show.
So you know, the Roosevelt's man in the arena speech?
I love this speech.
I'll read it, it's a little bit long, but not very long.
I'll read it for people.
Says, it's not the critic who counts,
not the man who points out how the strong man
and woman stumbles, or where the doer of deeds
could have done them better.
The critic belongs to those who are actually in the arena,
whose face is marred by dust and sweat and blood,
who strives valiantly,
who errs, who comes up short and again and again because there is no effort without error
and shortcoming, but who does actually strive to do the deeds, who knows great enthusiasms,
great devotions and who spins oneself in a worthy cause, who at best knows in the end
the triumph of high achievement and who at the worst if they fail, at least they fail
while doing greatly so that their place shall never be with those cold
and timid souls who never know either know victory nor defeat right so that's
the famous quote what if what if theodore was speaking about programmers
so I came up with a couple versions I think these are more fun all right it is
not this I kind of gave him title. This is a legacy code warriors
It's first one it says it is not the keyboard warrior of comment threads who elevates the craft
But the engineer whose IDE still glows at midnight whose mind is seared by stack trace here graphics and whose
resolve endures failed build after failed build the honor rests with those who weighed into legacy code knee-deep in technical debt
Emerging grimy, but try and fit with a cleaner architecture or if defeated bear the proud scars of that thought by having fought for elegance
Then I'll do the last I'll read the last one just this is good is to the open source maintainers
No glory clings to the spectator who counts another's failed build it crown to the open source maintainers No glory clings to the spectator accounts and others failed build it crowns the open source contributor whose pull request is
Battlescarred by review whose changelog tells the failures endured and whose merged code becomes the unseen engine of tomorrow's discoveries
Yeah, something is yeah something inspiring for people there
You having trouble sleeping?
Actually, yes, but this is not a head and summit Something inspiring for people there. You having trouble sleeping?
Actually, yes, but this is not evidence of it.
No, I like it.
Yeah, thanks.
All right, well, that's all I got for you, Brian.
That's what I got.
All right, that's a good wrap it up then.
Indeed, all right, see you later.