Think of it more like writing a wormable exploit. If you unleash something like that, you will be found criminally liable, even if you didn't personally approve every machine getting popped.
There was also the Micro-A which I found on some dev boards. I think the Arduino Due (Arm Cortex M3 chip) used one for the USB host port as well as an Atmel Arm uc board.
Also that weird, really small USB connector that was found on some early digital cameras. I think Kodak was a big user of it. Sorta looked like a narrower and taller version of the Mini-B. Maybe the Mini-AB but that doesn't look like it. I have one in my box at home.
Since school started this year, I bought both my kids TI-84 plus CE calculators. Both were being sold cheap because “no charging cable” (uses a mini-B) while I had a dozen in a box.
I wish that happened a lot less as I have entirely too many old cables.
There are lots of companies that provide low end services for free to attract people who may now or in the future be decision makers at large companies.
For better or worse, the free plan that Cloudflare has provided me for 10 years for my 20-30 hobby/personal domains has gotten them several hundred thousand dollars in business.
I think maybe the right answer is to have a standardized, curated group of libraries pegged at some sort of LTS release that only backports security fixes. However, someone would need to pay for creating and maintaining this -- and then you wonder where the money would come from?
That or potentially fast tracking merging popular libraries into the standard library. Or at least concepts from popular libraries. Basically all the "most downloaded" crates on the Crates.io front page should be candidates for merging into the standard library.
Not everything should be eligible for this treatment. Certainly not an HTTP library or something without extremely widespread applicability.
Nearly all of my projects used once_cell, so it's good to see that pulled in. I wouldn't want to see anyhow, thiserror, anything opinionated, or anything domain specific in the std. That's a weight you have to bear forever.
Remember how long Python 2 -> 3 took, and look at the ancient and awful stuff in Python 3's standard library. Rust is not the right language for this.
Heh... I self-host Immich with Caddy, and it's more complex, really. Caddy runs in podman, there are firewall rules to allow traffic in and out and proper dependencies in systemd units and a readme that covers all that. Exactly the point OP is making.
All because we forced TLS on everyone instead of solving the JS injection problem in some other alternative way. Like... legal, maybe?
You say caddy. The next person will say nginx-proxy-manager. The next will say DNS challenge let's encrypt behind wireguard VPN. The next will say Traefik. The next will say CloudFlare tunnels.
Everyone has their preferred solution and its always the best and simplest.
Do you want a caddy service embedded with every web app you self host or are you running a single one serving all your apps?
From my understanding if you want acme http challenges to just work with let's encrypt you probably need to use a single, separated caddy to front all your apps.
In that case if I ship a caddy service pre configured to do TLS termination with my app it's just more trouble for you no?
Fair enough, http is enough - I anyways have one caddy to rule them all. However, if your app is picky about reverse proxying, e.g. headers, please add a sample caddy config. It's often the first thing I'm looking for if I'm trying out a tool and want to host it under a subdirectory before configuring a subdomain.
No, HTTP is not enough, I submitted a couple HTTP-only links to HN lately, they got flagged within half an hour, even HN crowd can not open HTTP links anymore ;-)
That's not really HN's fault but all modern browsers will warn the user before accessing an http site with a security warning.
My point was not to use http only as a finished solution, but to let the admin front the http-only service with their TLS termination solution of choice.
I already commented on this twice here, but here it goes again:
I self-host Immich with Caddy as TLS terminator, and it's far from obvious.
They all run on a small N150 PC in my closet, the same PC serves as my internet router. Both Immich and Caddy run in podman-compose, and there are firewall rules that allow incoming traffic to Caddy and outgoing traffic from Caddy to update certificates. There's also a tricky setup of Systemd dependencies that make sure podman networking and firewall rules play nicely together and with other system config, like the bridge for the 2.4Gz range internal Wi-Fi and for external 5Gz Wi-Fi 6 card.
If not for the LLM help, I would have spent many days figuring out all the rough edges of this setup.
Which is exactly the point OP is making. Hobbying webhosting is hard nowadays.
I posted this in a sibling thread, but it's also appropriate here.
I self-host Immich with Caddy, and it's complex, really.
Caddy runs in podman compose next to Immich, there are firewall rules to allow traffic in and out and proper dependencies in custom systemd units in case podman networking goes bust after firewall rules are reloaded and a readme that covers all that.
Walmart bakes fresh bread too. I get it Walmart sucks but they do have everything that a normal supermarket has, including fresh hot food, bakery, deli.
reply