The Changelog: Software Development, Open Source - InfluxDB drops Go for Rust but gokrazy is really cool (News)
Episode Date: October 2, 2023InfluxDB finishes a multi-year rewrite in Rust, the Raspberry Pi 5 will be on sale by the end of the month, the Bruno team builds an open source API explorer that's local-first and will never have a c...loud, Xe Iaso thinks gokrazy is really cool & Matt Rickard shares lessons from years of debugging.
Transcript
Discussion (0)
What up, nerds?
I'm Jared, and this is Changelog News for the week of Monday, October 2nd, 2023.
It's hard to believe, but this little podcast plus newsletter combo goes 64-bit with today's 64th episode.
This reminds me of the greatest Nintendo 64 game of all times,
Goldeneye 007.
It's also hard to believe
that our JS Party pod
is creeping up on its 300th episode.
This reminds me that we're accepting
listener text and voice messages
to compile a best of the fest episode.
Submit yours at jsparty.fm slash 300 and get yourself a free t-shirt while you're at it.
Okay, let's get into the news.
An astute Redditor posted to rrust, quote, looks like InfluxDB flipped the switch, deleted
all the go code, and is now 99.5% Rust.
End quote.
InfluxDB co-founder slash CTO Paul Dix replied with a detailed post on why they made the switch and their multi-year journey to arrive at this milestone. calls the normal reasons include no garbage collector, fearless concurrency thanks to the
Rust compiler, performance, error handling, and crates. And of course, he also felt compelled to
answer questions about the big rewrite itself, saying, quote, I realize people think we are
insane to rewrite the database yet again, but it's one of those things where hindsight is 20-20.
If I knew then what I know now, I would have made different choices, but it's one of those things where hindsight is 20-20. If I knew then
what I know now, I would have made different choices, but we also didn't have the same tools
available in 2013 when we started it. I'm very confident that what we've landed on now is a very
solid foundation that we can build on for many years. As long as I'm at Influx, it's going to be
the last rewrite we'll ever need. I definitely
don't have the stamina for another one. Wink emoji. Four years since the launch of the Raspberry Pi 4,
the Raspberry Pi 5 has arrived with a performance boost and in-house silicon that adds support for
PCI 2.0. A nice upgrade from the 4 notably includes a component made by the Raspberry
Pi Foundation for the first time, the Southbridge. They call this, quote, a step change in peripheral
performance and functionality, end quote. The Pi 5 will be available for purchase before the end
of October. It starts at $60 for 4 gigs of RAM, and you can get 8 gigs for $80.
You know what time it is. Sponsored news!
Debugging distributed systems can feel like chasing ghosts.
When requests fail or slow to a crawl, or are causing an error in another part of your stack, how do you pinpoint the issue when there are dozens of services involved?
Well, join Sentry's 20-minute workshop. Lazar Nikolov and
Ben Pevin will explore how distributed tracing can help you uncover those elusive bugs and
performance problems. You'll learn the nuts and bolts of distributed tracing and how Sentry
visualizes requests and operations across your stack so you can find an issue's root cause much
faster. This event is 100% free and it's running on Tuesday,
October 17th. Follow the link in your show notes to sign up today and get your tracing on.
Thanks to our friends at Sentry for sponsoring Changelog News. Postman, Insomnia, and other
API Explorer tools are rad, don't get me wrong. but as I told Postman founder Abhinav Asthana
when we had him on the changelog years ago,
they lost me when the product started focusing on teams,
cloud stuff, collaboration, etc.
Bruno is cool because it's a lot like Postman and the others,
but it stores your collections directly in a folder on your file system
using a plain text markup language called Bru.
Or maybe it's Bru.
I don't know.
B-R-U.
We might have to ask him.
The team says, quote,
you can use Git or any version control of your choice
to collaborate over your API collections.
Bruno is offline only.
There are no plans to add Cloud Sync to Bruno, ever.
Cool project. Open source, of course.
Check it out if you're like me. Love API explorers, but don't need all those fancy cloud features.
Okay, so InfluxDB is done with Go, but ZLasso is not.
Here they are on what makes a Linux distribution, why they believe Android isn't one,
and why GoCrazy, which is a Linux implementation written entirely Go, is really cool. Quote,
it boots in literal seconds, uses an insanely small amount of RAM out of the box, and runs with
nearly zero overhead. When you configure your GoCrazy install to run additional software,
you do so by adding the Go command path to a configuration file and then updating to trigger End quote. Sounds pretty cool to me. I know of that lets you just deploy a Go binary and have it run as a service, automatically
restarting when it crashes. End quote. Sounds pretty cool to me. Last up for this week, a post
by Matt Rickard doing what he does best, taking years of hard-earned wisdom gained through
experience and distilling it down to an easily digestible list of learnings. Matt says, quote,
Debugging is programming, and programming is often mostly debugging,
one of the most useful skills you can pick up as a developer.
End quote.
Here's the first three of his 16 pieces of advice,
all of which I've parroted on various pods over the years.
One, reproduce with the smallest example in the simplest environment.
Two, read and reread the error statement. Read the stack trace. Add more logging if you don't
know where the error is thrown. Three, change one thing at a time. Check the full post for
more of Matt's lessons. Here's one more to remember from yours truly. In my experience,
it's almost always your code. This is just a humbling, I mean, nine times out of 10. So I
mean, sure, the further you get away from your code, the least likely it is to be the where the
problem lies. Is it in the Linux kernel? Probably not. Right? Is it in Node.js? Probably not. Now
there are bugs there, there are problems, and there are things that change out from under you.
But that's like the one in 10 cases.
Like, well, nodes API has a bug in this version.
Most of the time, nine times out of 10, if you're looking for the problem, look in your
code and then look in the code that's touching your code and then work your way down.
Cause I, as a, especially as a young man would like immediately, I was a Ruby on Rails
developer and I would like dive into the Rails code base immediately and be like what you
know what are they doing wrong this time and it was like always me I was like wait a second talk
about checking your assumptions right so just be humble enough to like start with your own code
and stay there for a while even when you can't find it before you decide I'm going to hop into
Chrome DevTools and open up the source code for the dev tools. Maybe the dev tools are actually printing this
wrong. You know, like that's how strongly I would not let myself be the source of the bug. So
it's almost always your fault. That is the news for now, but we have some great pods coming up
this week. Daniel Thompson from Toweri is on the changelog on
Wednesday. Jared Sumner from Bunn will be on JS Party on Thursday. And Matt Reier returns to
changelog and friends on Friday. Have a great week. Tell your friends about the changelog if
you dig it and I'll talk to you again real soon.