The Changelog: Software Development, Open Source
Display custom maps on your website for free (News)
Mon, 30 Sep 2024
OpenFreeMap 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.
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 guy 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.
OpenFreeMap 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. Kind of 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. 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, it allows me to experiment with other arts and skills in my spare time. 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 addition. 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, instruct 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, is 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 folks are kind of doing things the old way, right?
Yeah. I mean, that's what I hope is true. Okay.
Yeah.
i think look i here's here's what it is we figured out part of the reason that it's so hard for us to achieve the outcomes we're looking to achieve 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 needed to do. So it automatically understands how to do things like 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 LaVisca, are both well-written and pretty well-reasoned stances.
Okay, this particular sentence by Ryan is probably over the top. Quote, But here's Ryan's major point. Quote, 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 Leviska. 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, 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."
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, Abinoda 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.