The Changelog: Software Development, Open Source - Sonic search, building software like an SRE, leaving the cloud, an HTTP crash course & breaking up with CSS-in-JS (News)
Episode Date: October 24, 2022Valerian Saliou's Sonic search backend, Brandon Willett on how to build software like an SRE, DHH on why they're leaving the cloud, Amos' HTTP crash course nobody asked for & Sam Magura tells why he a...nd the Spot team are breaking up with CSS-in-JS.
Transcript
Discussion (0)
I'm Jared and this is changelog news for the week of Monday, October 24th, 2022.
Heads up y'all, there will not be a news episode next Monday because we'll be in Raleigh, North Carolina for All Things Open's 10th annual conference. If you're going to be there, don't forget to stop by Booth 60,
the best booth in the building, and say hi.
We'll have stickers, t-shirts, microphones, and a Nintendo Switch,
which we are giving away at the end.
Come game with us.
Seriously, do it, do it.
Okay, let's get into the news.
Search tooling innovation continues apace.
The newest, to me, entry to the space is called Sonic.
A fast, lightweight, and schemaless search backend, Sonic's creators describe it as
a simple alternative to super heavy and full-featured search backends
such as Elasticsearch in some use cases.
It is capable of normalizing natural language search queries, auto-completing a search query,
and providing the most relevant results for a query.
Sonic is an identifier index rather than a document index.
When queried, it returns IDs that can then be used to refer to the matched documents
in an external database. It was built in Rust with performance and code cleanliness in mind,
and they provide benchmarks and limitations, which we'll link to for those interested.
After five years of site reliability engineering, Brandon Willett shares his view on how to build
software like an SRE.
This post is filled with lessons on coding, on merging, on deploying, and on operating.
Here's an example from the coding section which directly contradicts my current practice.
Brandon says you should not have encode fallbacks for configs. Here's why. Quote,
if your service can't load the config on startup for any reason, it should just crash. That's much Here's why. after finishing their rollout, end quote. He also says, use Git, use Docker, use Kubernetes,
use Helm, and run three of everything.
I'm starting to believe Brandon would fit right in
with Gerhard on ShipIt.
Speaking of ShipIt, Ruby on Rails creator,
David Hennemeyer Hansen will be on the pod
in early November to discuss 37signals' move off the cloud.
In the meantime, he also wrote about it on Hey World.
Hey World.
He wrote about it on Hey World.
Their reasoning is twofold.
Turns out AWS is super expensive at scale, but also, DHH says, quote,
It's about what kind of internet we want to operate
in the future. It strikes me as downright tragic that this decentralized wonder of the world is
now largely operating on computers owned by a handful of megacorporations. If one of the primary
AWS regions goes down, seemingly half the internet is offline along with it, end quote. I tend to agree with him on that point.
I'm not as hopeful about the future of the internet
as this guy was back in 1996.
The future is now!
Soon every American home will integrate
their television, phone, and computer.
You'll be able to visit the Louvre on one channel
or watch female mud wrestling on another.
You can do your shopping at home
or play Mortal Kombat with a friend in Vietnam.
There's no end to the possibilities.
Amos, also known as Faster Than Lime,
cue Mitch Hedberg.
Look at the limes, how they float.
That's good news.
Next time I'm on a boat and it capsizes, I will reach for a lime.
I'll be water-skinned, I'll light preserve it. People will say, what the f***, and I'll pull out a lime.
I'm saved by the buoyancy of citrus.
Faster Than Lime has published the HTTP crash course nobody asked for.
Beware, it is a 60-minute read.
Amos starts with HTTP 1.1 and then covers H2 as well.
This article has everything.
Netcat, TCP dump and Wireshark, OpenSSL, Rust TLS, HTTP parse, NOM,
and of course, according to the author,
it's also very pedantic about nomenclature and citing RFCs every other paragraph.
These are a few of my favorite things.
If you're in web dev, but don't feel like you have a great handle on exactly how HTTP works, this is your chance to fix that bug. Sam Magura is a software engineer at Spot and the second most active maintainer of Emotion,
a widely popular CSS in JS library for React.
So, the web dev community took notice when Sam announced in a blog post
that he and the entire Spot engineering team have decided to switch away from it.
So, what are you trying to say?
I don't want to be your friend.
I appreciate your honesty.
You're a real straight shooter.
So you're alright.
Hey, I'm a big boy.
It's no big deal.
Whatever.
You're sure?
Uh-huh.
I'm fine.
Sorry, I just have cable guy on the brain this morning.
What are we talking about again?
Oh yeah, CSS and JS. For the uninitiated, this is the controversial practice of co-locating a component's CSS styles directly in their related JavaScript
code. In his post, Sam lays out the good, the bad, and the ugly of CSS and JS. The good includes
locally scoped styles so you don't accidentally get bent by the cascade. The bad focuses on additional
runtime overhead and increased bundle size. The ugly is about how the practice forces the browser
to do a lot of extra work and the numerous things that can go wrong, which Sam is quite familiar
with as a maintainer of emotion. Let's just say the project gets more than its fair share of bug
reports. Sam's conclusion, quote, like any
technology, it has its pros and cons. Ultimately, it's up to you as a developer to evaluate these
pros and cons and then make an informed decision about whether the technology is right for your
use case. For us at Spot, the runtime performance cost of Emotion far outweighed the DX benefits,
especially when you consider that the alternative of SAS modules plus utility classes still End quote.
In other words, it's not you, CSS and JS.
It's true.
Don't say it's the end.
Instead of breaking up, I wish that we were making up again.
That is the news for now.
We have an awesome conversation for you coming up on Friday.
Jay LaCroix from Learn Linux TV joins
Adam and I to do some serious Linux myth busting. And to top it off, we nerd out on retro video
gaming and the retro pie. Have a great week. We'll talk to you again on Friday.