The Changelog: Software Development, Open Source - Display custom maps on your website for free (News)
Episode Date: September 30, 2024OpenFreeMap puts OpenStreetMap data on your website for free, Fatih Arslan builds a Dieter Rams inspired iPhone dock, Joseph Gentle thinks the Rust programming language feels like a first-gen product ...& the web dev community is debating the viability of Web Components once again.
Transcript
Discussion (0)
What up nerds? I'm Jared and this is Changelog News for the week of Monday, September 30th,
2024. So the WordPress mess, aka implosion, is almost too much for me to pick a single
canonical link to summarize it. But I also don't want to do an entire episode about that one story.
So what's a guide to do?
I know, I'll punt it entirely to the bottom of the newsletter,
but make up for it with a rock solid meme plus an unordered list of links to review.
We're containing the WordPress mess to today's newsletter.
Link in the show notes.
The audio version remains squeaky clean.
Okay, let's get into the rest of the news.
Display custom maps on your website for free.
Open Free Map takes map data from OpenStreetMap
and serves up the necessary tiles in various styles
for anyone to render them on their website or app for $0.
Kinda amazing.
Quote,
Using our public instance is completely free.
There are no limits on the number of map, views, or requests.
There's no registration, no user database,
no API keys, and no cookies.
We aim to cover the running costs of our public instance through donations.
End quote.
That sounds almost too good to be true,
and it probably is unless people step up with recurring donations.
However, the service's creator, Zolt Aero,
has taken a few steps to make sure it's not prohibitively expensive.
Quote, there is no tile server running, only Nginx serving a ButterFS image with 300 million
hard-linked files. This was my idea. I haven't read about anyone else doing this in production,
but it works really well. There is no cloud, just dedicated servers. How I designed a Dieter Rams-inspired iPhone dock.
I am beyond impressed by what Fatih Arslan was able to create
with nothing but some old Braun catalogs, a 3D printer, and some serious iteration.
Quote, I'm still astonished by what you can do with CAD software and a 3D printer at home,
even though I'm a software engineer. End quote.
There's not much to say about this project that's useful without the images,
so you'll have to check the chapter image or newsletter to see for yourself.
You can download the 3D model for free, but he also created a Gumroad page,
so you can donate as well. Rewriting Rust. Joseph Gentle thinks the Rust programming language feels
like a first-gen product. Kind of like the first iPhone. Tons of potential, but so much missing.
Quote, I fell in love with Rust at the start. Algebraic types, memory safety without compromising on performance,
a modern package manager, count me in.
But now that I've been programming in Rust for four years or so,
it just feels like it's never quite there.
End quote.
Sometimes Joseph lies awake at night and fantasizes about forking the Rust compiler.
Quote, I know how I do it. In my
fork, I leave all the Rust stuff alone, but make my own Ceph edition of the Rust language. Then I
could add all sorts of breaking features to that edition. So long as my compiler still compiles
mainline Rust as well, I could keep using all the wonderful crates on cargo. End quote. In the
linked post, Joseph lays out what his fork would look like in extreme detail.
The subheadings are function traits, compile time capabilities,
pin, move, and struct borrows, comp time, and weird little fixes.
Perhaps you're thinking what I was thinking.
Why doesn't Joseph get involved and help move Rust in the direction that he wants?
Well, perish that thought.
Quote,
A few years ago, I would have considered writing RFCs for all of these proposals,
but I like programming more than I like dying slowly in the endless pit of GitHub RFC comments.
I don't want months of work to result in yet another idea in Rust's landfill of unrealized dreams.
It's now time for Sponsored News.
Take it away, Adam.
What up, nerds?
Hey, I'm here with a good friend of ours, Adam Jacob,
co-founder and CEO of System Initiative.
And I'm pretty excited to have him here because that means System Initiative is out there.
It's GA.
Adam, I heard that you launched something.
Yeah.
Oh, I'm stoked.
We did, yeah.
We launched something on the 25th of September.
And yeah, you can use System Initiative now
by going to a website and signing up
and three clicks and you're in.
And then you can automate infrastructure.
It's sick.
It's the coolest thing in the universe.
I'm so proud of it.
Well, let's level some folks up.
Let's level up the Terraform folks,
the Pulumi folks, the AWS CDK folks. As of system initiative being GA, these with the kind of DevOps and operational work that we do is because the tools we're using
bring about those tough outcomes. It's a lot harder to like write static code, have your
friends review it. In system initiative, what you do is you use this like living architecture diagram
to put together all the different relationships between the things that you use. And then you can
program that architecture diagram to do all the stuff you need it to do. So like it automatically
understands how to do things like, you know, create resources and delete them or update their
tags or do those things. But then you can also extend it with your own custom policy. And the
whole thing happens in real time in multiplayer. So you actually get to hang out with people again
and build infrastructure and see what's happening and see it evolve over time. That's a pretty transformational change in how
people spend their day. And we think that's the biggest thing that's going to level people up is
that suddenly they get to actually do it together again. Well, DevOps is now multiplayer. Thanks to
this awesome work, Adam. Good luck to you on this launch. Okay, friends, go to systeminit.com to
learn more. They have a free tier you can play
with. No credit card required. Go there and check it out. Systeminit.com. That's S-Y-S-T-E-M-I-N-I-T.com.
Web components are not the future. The web dev community is debating the viability of web
components once again. There's been a lot of hand-wringing and hostility on the
socials about this, but I think this post by Ryan Carniato and the following story, which is a
rebuttal by Corey Levisca, are both well-written and pretty well-reasoned stances. Okay, this
particular sentence by Ryan is probably over the top. Quote, web components possibly pose the biggest risk to the future of the web that I
can see, end quote. But here's Ryan's major point, quote, so the fundamental problem with web
components is that they are built on custom elements. Elements not equal equal components.
More specifically, elements are a subset of components. One could argue that every element could be a component, but not all components are elements.
That means that every interface needs to go through the DOM,
some in well-defined ways that aren't a perfect fit,
and some in newly defined ways that augment or change how one would deal with elements
to accommodate extended functionality.
End quote.
Ryan believes that this fundamental design flaw,
combined with the formalization and stagnation that comes from standardization,
makes web components a cost not worth bearing.
Corey disagrees.
Web components are the present.
Here's Corey Loviska.
It's disappointing that some of the most outspoken individuals against web components are framework maintainers.
These individuals are, after all, in some of the best positions to provide valuable feedback.
They have a lot of great ideas.
End quote.
I happen to think Ryan is providing feedback, just not the kind of feedback that Corey is referring to.
Setting that aside, he directly answers Ryan's fundamental problems quote from before.
Corey says, quote,
To be fair, I've never really liked the term web components because it competes with the concept of framework components,
but that's what caught on and that's what most people are familiar with these days.
End quote.
Framework components is the answer to the not all components are elements issue.
So your app might have some web components that map to the DOM,
and it might have some other components that don't.
Those are framework components.
Makes sense to me.
Corey goes on, quote,
As to why web components don't do all the things framework components do,
that's because they're a lower level implementation of an interoperable element.
They're not trying to do everything framework components do.
That's what frameworks are for, end quote.
Now, Corey goes on to theorize that framework authors are against the web platform
because capitalism, which is probably over the top, but he finishes with this,
quote, the web platform may
not be perfect, but it continuously gets better. I don't think frameworks are bad, but as a community,
we need to recognize that a fundamental piece of the platform has changed, and it's time to embrace
the interoperable component model that web component APIs have given us. That is the news for now, but we have some great episodes
coming up this week.
On Wednesday, Pablo and Lucas
from Core.py talking
Gil free Python in 3.13.
And on Friday, Abhinoda from DX
talks developer unhappiness with us.
Have a great week.
Leave us a five star review
if you dig our work
and I'll talk to you again real soon.