The Changelog: Software Development, Open Source - Load testing a $4 VPS, TOML for .env files, counting unique visitors sans cookies, the Arc browser & a love letter to Deno (News)
Episode Date: February 13, 2023Alice Girard Guittard finds out how much she could you really get out of a $4 VPS, Brett Cannon wonders if using TOML for .env files is a good idea, Nic Mulvaney details how they count unique visitors... to a website without using cookies, UIDS, or fingerprinting, after a few months, Chris Coyier is still using the Arc browser & Alex Kladov pens a love letter to Deno.
Transcript
Discussion (0)
What up nerds, I'm Jared and this is Changelog News for the week of Monday, February 13th,
2023.
My favorite nerdy artifact from last night's Super Bowl was Twitter user Paddymo taking
a picture of Rihanna floating above the field on her platform and overlaying Bowser, Kirby,
and Captain Falcon from Smash Bros. on it.
The tweet's text was in all caps,
Rihanna, look out!
But I digress, let's get into the news.
How much can you really get out of a $4 VPS?
That is what AliceGG was wondering when she decided
to perform her own load test
to figure out if the promise of
running your own production app on such a
low budget is realistic.
So, she coded up a simple
CRUD app in Go, hooked
it up to MongoDB because
relational databases
weren't built for web scale.
MongoDB handles web scale.
You turn it on and it scales right up.
And deployed it all to a $4 VPS of an unnamed provider using Docker with Docker Compose.
She then used K6, an open source load testing suite that generates virtual users who continuously run test scenarios defined in JavaScript to see what the machine
was capable of. I'll leave out the gory details. You can read them if you'd like,
but her final conclusion is this, quote, as long as you don't plan on building the next Twitter,
a very cheap VPS might be fine for the start of a project, end quote. She goes on to say
your mileage may vary. Do your own research and hooks you up with the source code to her app,
the K6 scenarios and analysis script. Brett Cannon asked an interesting question on his blog the
other day. Should we use Tommel for.env files? He's specifically asking in the context
of the Python extension for VS Code, which Brett helps to maintain, but it might be a good thing
to consider across the broader developer ecosystem. If you aren't familiar with.env files, they are a
very common way of defining configuration settings outside of your app code so you can keep them out of the
source control and easily load them as environment variables at runtime. But they do have their
problems. The two that Brett lists are that.env files don't have a standard and they aren't
cross-platform. His proposed solution to this?
Use TOML, which is a widely supported config file format for humans, as the format for.env files.
Brett wants to know what you think. Is this a good idea or a bad idea? Do people like the idea of,
for example,.env.toml, or just a.env with an assumption of toml syntax? Is this worth trying to get
various tools to support? What do you think? You can message Brett on Mastodon at brettcannon
at fastodon.org or hit him up in our Slack community where he often hangs out. That's
changelog.com slash community. Nick Mulvaney and his team at normally.com
developed and wrote about a super cool hack.
So here's the deal.
The chosen contest.
Count unique visitors to a website
without using cookies, UIDs, or fingerprinting.
The duel will last until we declare a winner.
Use only the dial-ups, access codes,
and passwords in your collection.
Can't ask for any help from us.
Privacy is why they're doing this,
and how they're doing it is the following.
Quote, when the browser pings our server
from a website for the first time,
we send back a response with a header
set to cache control, no cache,
telling the browser to store the request in its cache,
but revalidate it with the origin server before each use.
But most importantly, we send a header which is a date set to the beginning of each day.
From now on, every time this request is made again,
the server receives the date and adjusts it by one second and returns it to the browser.
This way, the server can calculate the distance in seconds since midnight to give us a visitor count.
If that sounds confusing to you, check out the blog post, which has a nice image of the process.
I'll also embed it in the chapter data, so take a look there if your podcast app is cool like that.
Cool like that. I'm cool like that. I'm cool like that. I'm cool like that. I'm cool like that. I'm cool like that. I'm cool like that. Chris Coyier says after a few months, he's still using the ARC
browser. I wish I knew how to quit you. Here's Chris's take on it. Quote, it's Chrome under the
hood. So any extension will work. It has the exact same platform features.
It has the same dev tools, etc.
But the UI and UX are pretty different.
That could put it at risk for a switchback,
but so far I find nearly every choice Arc makes an improvement, end quote.
Things that Arc does that Chris likes include syncing tabs between computers,
providing easily editable user style sheets,
building in a split view, which he says is great for writing,
moving tabs to the side, which he's convinced is the future,
and a whole lot more.
That's a lot of praise from a web dev whose opinion is highly refined
after decades of doing this stuff.
Unfortunately for many of us, Arc is Mac only for now, and you can't just go and download it.
Instead, you pop your email into a type form and wait.
You don't have an appointment, do you?
Well, we didn't know how to make one.
Appointment for what?
What do you want? We need some help. You'll have to wait if you don't have an appointment, do you? Well, we didn't know how to make one. Appointment for what? What do you want?
We need some help.
You'll have to wait if you don't have an appointment.
Number 54, 601, Ferndog?
Last up for today, Alex Kladoff is loving Dino
and wrote up all the reasons why on his blog.
It's a long post covering many aspects of Dino
that he appreciates, but here's Alex's main point. Quote, historically, the domain of scripting and
glue code was plagued by the problem of accidentally super gluing oneself to a particular
Unix flavor at hand. Dino finally seems like a technology that tries to solve this issue of implicit dependencies by not having said dependencies.
End quote.
Deno is a fascinating project and one I've used just briefly,
but want to sink more time into when I get the opportunity.
If you missed my recent interview with Ryan Dahl on JS Party,
you really should take a listen.
We covered a lot of ground.
Here's one moment from it.
With Deno being like your big restart, right?
Your opportunity to rearrange the letters
and have a clean break from Node
and some of the mistakes that you made with Node.
Did you have like a push and pull in your heart
as like Ryan, the CEO of Deno
versus Ryan, the lead dev of the Deno project?
Like we're kind of going back
and bringing some of the legacy with us,
whereas you had this fresh break prior. Was that a tough decision to wrestle with? Or was it a
no brainer? The reason I even work in JavaScript in the first place is because it's the default
programming language in a very real sense. And this is where the vast number of programmers are. And, you know, I'm not making Deno
for a small subset of enthusiasts.
You know, this is software meant to be used
by millions of developers, just like Node.
And so we're trying to push JavaScript forward.
You know, we're trying to introduce TypeScript.
We're trying to get people to use ECMAScript modules.
We're trying to get people to use Async Await
instead of callbacks.
You know, there's all these pressures that we're introducing to kind of push people forward.
But at the end of the day, I mean, this is software for people and needs to solve their
problems.
And I think we found a good way to do this with this kind of portal where we're not really
compromising on our principles here.
We're just introducing kind of a way to reach into the
NPM ecosystem. That is the news for now. If you were looking forward to our Nathan Sobo interview
last week, sorry about that. It got rescheduled last minute, but it sounds like our Get With Your
Friends episode with Matt Reier was a hit. So that's cool. We have some amazing guests coming down the pipeline.
Rachel Potvin this Friday,
followed by Evan Prodramu,
talking Activity Pub in Macedon,
Bridget Murtaugh on dev containers,
Nathan Sobo, of course,
Sarah Drasner,
Cory Doctorow,
and a whole bunch more.
So if this is your first time listening,
subscribe, why don't you,
at changelog.fm.
I'll leave you with this amazing quote from the one and only Grace Hopper.
The most damaging phrase in the language is, it's always been done this way.
Have a great week, and we'll talk to you again next time.