The General Services Administration, the agency that manages buildings owned by the federal government, is planning to shut down its entire network of electric vehicle chargers, according to a report in The Verge. The GSA reportedly operates a network of hundreds of EV chargers with a total of 8,000 plugs that can be used to […]
Linus Torvalds responded Thursday to kernel developer Christoph Hellwig, who had claimed Torvalds merged Rust code into the kernel even over his objections as the original C code's maintainer. Highlights from Torvalds' response:
The fact is, the pull request you objected to DID NOT TOUCH THE DMA LAYER AT ALL. It was literally just another user of it, in a completely separate subdirectory, that didn't change the code you maintain in _any_ way, shape, or form... Honestly, what you have been doing is basically saying "as a DMA maintainer I control what the DMA code is used for".
And that is not how *any* of this works. What's next? Saying that particular drivers can't do DMA, because you don't like that device, and as a DMA maintainer you control who can use the DMA code? That's _literally_ exactly what you are trying to do with the Rust code. You are saying that you disagree with Rust — which is fine, nobody has ever required you to write or read Rust code. But then you take that stance to mean that the Rust code cannot even use or interface to code you maintain...
You don't have to like Rust. You don't have to care about it. That's been made clear pretty much from the very beginning, that nobody is forced to suddenly have to learn a new language, and that people who want to work purely on the C side can very much continue to do so. So to get back to the very core of your statement:
"The document claims no subsystem is forced to take Rust"
that is very much true. You are not forced to take any Rust code, or care about any Rust code in the DMA code. You can ignore it...
You can't have it both ways. You can't say "I want to have nothing to do with Rust", and then in the very next sentence say "And that means that the Rust code that I will ignore cannot use the C interfaces I maintain".... So when you change the C interfaces, the Rust people will have to deal with the fallout, and will have to fix the Rust bindings. That's kind of the promise here: there's that "wall of protection" around C developers that don't want to deal with Rust issues in the promise that they don't *have* to deal with Rust.
But that "wall of protection" basically goes both ways. If you don't want to deal with the Rust code, you get no *say* on the Rust code. Put another way: the "nobody is forced to deal with Rust" does not imply "everybody is allowed to veto any Rust code".
Torvalds also made sure to add some kind remarks, including "I respect you technically, and I like working with you."
Happy Link Day... oh wait, that isn't a thing? Well, let's pretend it is. Those of us in Louisiana are in Mardi Gras season with the holiday itself coming up on March 4th. If the weather holds out, we'll be outside catching beads and listening to marching bands. It can be a lot of fun if it doesn't get rained out. It's also a great chance to eat some really bad (for you but yummy) food. I'll share a pic or two on the next edition of this post. Ok, on with the links!
Mathias Biilmann (CEO at Netlify, they host this blog), wrote up an introduction to the idea of AX, or "agent experience". His post describes AX as the "expeirence" AI autonomous agents have with our sites and products. It's an interesting piece and be sure to read his follow up post as well.
Ah, here's something I'm pretty familiar with (groan). Mert Bulan writes up his experience of a lay off and if you've never had the, err, "pleasure" of experiencing this, it's a great look into what it's like. This 'current' lay off for me was my third over thirty years in the business and it never gets any easier.
Next up is an incredibly well done documentary about Angular, which for me was my first "real" JavaScript framework. I was a huge fan of it... initially... until the big update when everything (at least in my opinion) went off the rails in a major way. This was a really fascinating look at the history of Angular, and I have to be honest, it's really made me consider taking a look at it again later this year.
Nope, nothing to see here, nothing is fun and everything is terrible. Ok, that's dramatic. My buddy Brian Rinaldi recently shared a cool song with me and after enthusiastically telling my wife about it, she reminded me that both her and our eldest had recommended the same artist like a year ago. Oh well. Cool song and a cool video. Enjoy!
So, you’ve mastered Terraform basics, spun up some resources, and maybe even dabbled with modules. But what if I told you Terraform can do even more?
In this post, we’re going to explore Advanced Terraform Features that will make your infrastructure smarter, more dynamic, and easier to manage. We’ll cover:
Provisioners (for running scripts on resources)
Functions (for making configs dynamic)
Workspaces (for managing multiple environments)
Let’s go beyond the basics and Terraform like a pro!
1. Terraform Provisioners: Running Commands on Your Resources
Terraform provisioners allow you to execute scripts or commands on a resource after it’s been created.
Think of it as Terraform’s way of saying:
“Hey, I deployed your VM. Now, let me install Nginx on it.”
Example: Remote Provisioner (SSH into a VM & Install Nginx)
If you’re managing multiple environments (e.g., dev, staging, prod), Terraform workspaces let you use the same configuration but maintain separate state files.
Instead of maintaining separate folders, you can switch workspaces dynamically!