The Changelog: Software Development, Open Source - Stack Overflow's architecture, Lobsters' killer libraries, Linux is ready for modern Macs, what to expect from your framework & GoatCounter web analytics (News)
Episode Date: February 27, 2023Sahn Lam details Stack Overflow's monolith/on-prem architecture, Hillel Wayne asks the Lobsters community for killer libraries, Linux 6.2 is ready to run on M1 Macs thanks to Asahi Linux, Johan Halse ...writes up what to expect from your web framework & Eli Bendersky on using GoatCounter for blog analytics.
Transcript
Discussion (0)
What up nerds, I'm Jared and this is Changelog News for the week of Monday, February 27th,
2023.
Let's do it.
Some fascinating details about Stack Overflow's architecture were shared by San Lam on Twitter. He shares that it is a multi-tenant monolithic app
serving 2 billion monthly page views across 200 sites.
It's hosted on-premise with only 9 IIS web servers,
each running highly optimized.NET code,
handling 6,000 requests per second.
SQL Server has 1.5 terabytes of RAM with no caching layer. The
entirety of the Q&A dataset is about 4.5 terabytes, so it can keep up to a third of it in RAM at any
given time. No microservices, no cloud, and a single database instance? Quick, send them some
high-priced consultants to re-architect from first principles before the site falls over. Do I detect a note of sarcasm? Are you kidding me?
This baby is off the charts. Oh, a sarcasm detector. That's a really useful invention.
Hillel Wayne started a killer lobsters thread the other day by asking,
what are some killer libraries for your language of choice? Okay, it's $500, you have no choice of carrier,
the battery can't hold a charge, and the reception isn't very...
Shut up and take my money!
The two examples he gave in the setup were Ruby on Rails,
which was so good for web dev at the time that it justified using Ruby,
and Pandas, which is so good for data science it justifies using Python.
117 comments later, there's a lot of gems in this
list. I read it, so you don't have to, but I'll highlight just a few of the most upvoted responses,
so if you want more like this, follow the link in the show notes. GoTime regular guest Carl
Johnson picked Go's standard library with some dissent in the replies. User Rcorder says Rust's Serday is a go-to for
them because it makes writing simple network services in Rust so nice. Yonkletron says one
of the biggest reasons they gravitate toward Elixir is because of OTP, a set of tools and
libraries that Elixir inherits from Erlang. And finally, user x64k says they kept slashing their list down until it was just Qt, claiming,
quote, I know a lot of really good libraries for all languages, but realistically,
there are probably good alternatives for all of them if you look outside their language's ecosystem.
Qt is hands down the one killer library I know. End quote.
The recently released Linux 6.2 is the first mainstream Linux kernel you can run on Apple's M1 powered machines.
Alive. It's alive. It's alive!
Getting Linux ready for the M1 wasn't easy,
writes ZDNet's Stephen Von Nichols.
Fortunately, Asahi Linux's Alyssa Rosensweig was up to the challenge.
Side note, are you Alyssa Rosensweig?
Or, more likely, do you know Alyssa Rosensweig?
And how do you say Rosensweig?
Dr. Frankenstein.
Frankenstein.
You're putting me on.
No, it's pronounced Frankenstein. We would love to have her on the changelog to discuss Linux hacker tinkering with graphics drivers and Asahi Linux. Linux 6.2 with M1 support is out now and
it's expected to become Ubuntu 23.04's default kernel and to be included in Fedora 38 before
the late April release of Linux 6.3. After hearing Justin Searles on our Don't Sleep on
Ruby on Rails episode and reading all of the recent hubbub around single-page app fatigue,
including Zach Leatherman's history of React criticism,
Alex Russell's The Market for Lemons,
and Lori Voss's The Case for Frameworks,
Johan Hals decided it was time to weigh in.
His post, titled What to Expect from Your Framework,
starts by pointing out how React, Vue, Svelte,
Solid, and Friends aren't actually frameworks. They are Vue layer libraries that don't make a full application.
Enter Next, Nuxt, SvelteKit, Blitz, etc. But from where Johan sits, even these are barely
frameworks. He says, quote, the front-end component ecosystem is a very bring-your-own-ideas,
have-fun-re-implementing-CSRF
kind of party. It's all so much work. And why are we doing this again? Optimistic commits?
Fewer redraws on state change? Avoiding jQuery soup? I mean, I agree that these are laudable
goals. We probably don't want to devolve back to an imperative programming hairball, but man,
I wish there was a better way. End quote. If you've been listening closely, you know what Johan is going to say next.
It starts with an S. So swim, swammy, slippy, slappy, slimming, summon, simmon, swanson,
swanson? Maybe it's on the briefcase. Look on the- Oh yeah, it's right here. Samsonite. I was way Did you guess Rails?
Yeah, he says Rails.
I'll leave it right there, but Johan has more to say.
Worth a read, for sure.
Eli Banderski is now using GoatCounter
for his blog analytics.
GoatCounter is an open-source web analytics platform
available as a free hosted service or self-hosted app.
Here's four reasons why Eli picked it.
One, very privacy-oriented,
collecting so little data that a GDPR notice isn't even required.
Two, lightweight.
The added JS file is only 8 kilobytes, and the server is fast. 99.9%
of requests are answered within 2 milliseconds. Three, can be self-hosted, which both reduces
the cost if I already run a server and reduces dependencies. Four, open source and written in Go.
This is not just a stylistic preference, since Go builds static binaries,
the Go counter tool is trivial to download and run, much easier deployment than, say,
tools written in PHP. I love all those reasons, but I have to admit, the web UI leaves a lot to
be desired. In all seriousness, it's not that bad, And it's a great opportunity for an open source designer's contribution.
Hint, hint.
Nudge, nudge.
That is the news for now.
This week on The Change Log, we are joined by Bridget Murtaugh from the VS Code team
to learn all about development containers,
which let you use a container as a full-featured dev environment locally or remotely
in a private or public cloud.
Have a great week.
Share this show with a friend if you dig it.
And we'll talk to you again real soon.