Aussie living in the San Francisco Bay Area.
Coding since 1998.
.NET Foundation member. C# fan
https://d.sb/
Mastodon: @[email protected]

  • 6 Posts
  • 1.14K Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle

  • User agent strings are frozen these days, at least in Chrome. They still have the browser major version and OS name at least, but Windows will always report Windows 10, Android will always report Android 10, MacOS will always report 10.15.7, and Linux is just “Linux x86_64”: https://www.chromium.org/updates/ua-reduction/

    User agent strings are essentially deprecated and nobody should be using them any more. They’ve been replaced by User-Agent Client Hints, where the site can request the data it needs, and some high-entropy things (ie fields that vary a lot between users) can prompt the user for permission to share them first.


  • The thing is that most Windows users don’t care and will continue to use it. People like you and I know about the benefits of Linux, but sometimes we overestimate how much regular users care about the OS they’re using.

    Forced restart for software updates

    If anything, they’re moving in the opposite direction. Windows Server 2025 is going to support hotpatching, which means that system updates can be applied without needing to reboot. Not sure if the technology will come to consumer Windows though.

    Require new CPUs and motherboards / hardware, ignoring the market for old computers.

    How long do you expect legacy hardware to be supported for?




  • it’s not “stable”

    “stable” in this case means that it doesn’t change often. Debian stable is called that because no major version changes are performed during the entire cycle of a release.

    It doesn’t mean “stable” as in “never crashes”, although Debian is good at that too.

    Arch is definitely not “stable” using that definition!




  • I’ve seen many a terrible containerized monolithic app.

    I’ve seen plenty of self-hosters complain when an app needs multiple containers, to the point where people make unofficial containers containing everything. I used to get downvoted a LOT on Reddit when I commented saying that separating individual systems/daemons into separate containers is the best practice with Docker.



  • Are there better alternatives for newbs who just wanna self host stuff?

    Docker is great for a beginner, and even for an expert too. I’ve been self-hosting for 20 years and love Docker.

    Back in “the old days”, we’d use Linux-VServer to containerize stuff. It was a bit like LXC is today. You get a container that shares the same kernel, and have to install an OS inside it. The Docker approach of having an immutable container and all data stored in separate volumes was a game changer. It makes upgrades so much simpler since it can just throw away the container and build a new one.

    The main alternative to Docker is Podman. Podman uses the same images/containers as Docker - technically they’re “OCI containers” and both Docker and Podman implement the OCI spec.

    Podman’s architecture is different. The main difference with Podman is that it never runs as root, so it’s better for security. With Docker, you can either run it as root or in rootless mode, but the default is running it as root.



  • You can use WebAssembly today, but you still need some JS interop for a bunch of browser features (like DOM manipulation). Your core logic can be in WebAssembly though. C# has Blazor, and I wouldn’t be surprised if there’s some Rust WebAssembly projects. I seem to recall that there’s a reimplementation of Flash player that’s built in Rust and compiles to WebAssembly.






  • I’m starting to like the htmx model a lot. Server-rendered app that uses HTML attributes to configure the dynamic bits (e.g. which URL to hit and which DOM element to insert the response into). Don’t have to write much JS (or any in some cases).

    you literally can’t hyperlink to any of the data

    I thought most React-powered frameworks use a URL router out-of-the-box these days? The developer does need to have a rough idea what they’re doing, though.



  • That’s one nice thing about Java. You can bundle the entire app in one .jar or .war file (a .war is essentially the same as a .jar but it’s designed to run within a Servlet container like Tomcat).

    PHP also became popular in the PHP 4.x era because it had a large standard library (you could easily create a PHP site with no third-party libraries), and deployment was simply copying the files to the server. No build step needed. Classic ASP was popular before it, and also had no build step. but it had a very small standard library and relied heavily on COM components which had to be manually installed on the server.

    PHP is mostly the same today, but these days it’s JIT compiled so it’s faster than the PHP of the past, which was interpreted.