• 0 Posts
  • 9 Comments
Joined 1 year ago
cake
Cake day: June 7th, 2025

help-circle
  • I build a Linux system with multiple NICs. It’s heavyweight for a router, and probably not very efficient, but it does the job very well and I love it. I’m using foomuuri to manage the NFTables and NAT and it was very easy (although it’s a very obscure piece of software and the documentation and community isn’t excessively comprehensive, you might have better luck with something more common but it works nicely for me). It can pull in all the adblocking lists and all that fun stuff. I find it pretty intuitive to configure, at least compared to the horrors of most networking/routing configuration nonsense.

    For DHCP I tried using the ISC’s new “kea” in the hopes it would be modern and clean alternative to the venerable old isc-dhcp-server but it turned out to be a horrible mistake. They made some awful, insane, unjustifiable design decisions in that software. It gets confused about IP addresses already being claimed (by the exact same host/MAC) address because some arbitrary value changed in how it identifies itself, and then does absurd things with static leases, it just randomly decides to give it a dynamic lease instead, and then will fixate on that dynamic lease and never let it have the static lease back, I fought with it for months, it kept breaking my network for absolutely no reason and it was a nightmare.

    Back to trusty old isc-dhcp-server for me. And of course bind for DNS, I’m a bit old-school but it’s very comfortable.

    dnsmasq might be a lighter-weight and easier alternative you could consider, I think it does DHCP as well, convenient.

    And of course, being a full Linux server means you can put all kinds of other stuff on it too. Stuff that needs to be both publicly visible and privately visible on the LAN seems like an obvious fit, but in fact it’s probably the worst place to put those services, because you run into issues with NAT hairpinning and other nonsense. For services that are strictly intended for the private LAN/VPN, or services that are strictly public facing, it can handle those just fine by restricting them to a specific interface. But you should avoid stuff that needs to listen on both sides of the connection, it can be done, but it’s tricky and annoying and not ideal.

    If you need both internal and external access, port-forwarding from the outside through the NAT to another dedicated internal host is a much better solution if possible, it’s still a bit tricky (you may have to override the DNS for that domain internally to use the private IP instead of the public one) but it’s quite reliable and functional once you have it set up.

    None of this is really for the faint of heart, it’ll likely require a fair bit of trial and error and physical access to the machine to resolve issues. But it’s a fun project and I think the end result is worth it.


  • The benefit to/for Steam itself is marginal. The benefit to the entire community is significant, because there’s now an entire metric shitload of obsolete 32-bit shit that can be safely deleted and forgotten for 95% of the Linux world and efforts can be focused on things that actually matter in the 64-bit world. The entire 32-bit ecosystem of libraries and system layers still had to be maintained and supported basically only for Steam’s sake, Steam was the only thing still using them for the vast majority of people. It’s not that Steam needs 64-bit, it’s that 64-bit is the standard now and has been for a long time, and Steam was the only thing that had no 64-bit version.

    It’s kind of like cutting loose the anchor that the community has been dragging around everywhere for years for no purpose. It was a totally unnecessary effort that just caused suffering and added no value.


  • cecilkorik@piefed.catoSelfhosted@lemmy.world•Deleted
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    1
    ·
    25 days ago

    My biggest complaint is calling it “Pi” anything, there are already way too many things called “Pi”, some of which are for Raspberry Pi, some of which aren’t, and then there’s Pi itself (the number) it’s just an all-around confusing name and it sometimes makes related things incredibly difficult to search for and find.




  • As a conventionally understood process, no, and there is no practical way of even considering what you’re suggesting as a hypothetical. Maybe I and everyone else who knows anything about this topic are wrong though. If you can figure out a way, prepare to be very, very popular, because it would legitimately be a game-changer.

    The only thing I can vaguely think of fitting what you seem to be asking about is the process of combining hundreds or thousands of old pieces of hardware to run tasks in parallel. For example, think of turning a whole room into a cluster of Commodore 64s. If you had 1000 C64s, you could in theory run things 1000x as fast as a single Commodore 64. That’s an interesting idea, in theory.

    As far as catching up to Moore’s law, it’s going to be a struggle: This is almost never energy-efficient and almost never practical in the extreme, but it can technically be accomplished. Running tasks in parallel like this across different hardware is also extremely limiting though, as the isolated tasks have no way of communicating with or sharing information with each other at anything even close to the speed of actually processing the information. This is fundamentally different from a single-threaded task running at high speed on a single, combined processor, and requires careful design in either chunking the data into 1000 totally independent pieces or pipelining it into 1000 equally-computationally-intensive steps to be performed or some combination of the two, things which can really only be done effectively in certain problem spaces. This is why multi-threaded tasks typically end up not scaling up linearly in speed as you throw more cores at them. Many problems are not effectively parallelizable and cannot be cleanly broken into chunks without losing the context they need and cannot be split into so many discrete steps while maintaining the predictable timing window needed to schedule those tasks into a pipeline that isn’t constantly waiting on a handful of “slow” steps. It’s a huge challenge and not a realistically solvable one.

    If you just want homemade processors that can technically accomplish the same things as modern processors, sure, that’s technically possible but it’s going to be really, really slow and impractical. If you want homemade processors that can do a very limited set of things at something resembling Moore’s law speeds, you might be able to pull that off for certain very specialized tasks but again not in a super practical way and likely not in an energy efficient way either. What you almost certainly can’t do is both of those things at once. You can’t have the full capabilities of a modern processor in a homemade processor that is also as fast as a modern processor. That would just be a modern processor. And those are unbelievably advanced devices, they are basically the pinnacle of humanity’s collective technological achievement. I don’t think anything else can really compare to them, and you absolutely are not making them in your garage.


  • Depends on your system specs, but… yes, generally speaking. There is a reason most people and most distros use binaries. Even Gentoo can use binaries for some stuff.

    Are you going to suffer significant damage if your updates take forever though? What’s the hurry? The number of times I have literally needed the absolute latest version of something installed right now are pretty damn minimal. The major exception is widespread, exploited zero-day remote-access vulnerabilities, but those are rare, and especially rare are ones that affect the exact versions and configurations of software that I am currently using and cannot reasonably just opt to “stop” using. Even so, there are usually other ways to block the network traffic, disable the offending part of the configuration, or otherwise mitigate the risk. Besides, there’s nothing stopping you from literally just downloading a patched binary if that’s what you need at that moment.

    Patience is a virtue, and it’s generally good for you. You don’t have to be addicted to constant updates, but you do need to be thoughtful and understand how to build defense-in-depth.


  • First of all, Bedrock is on PC, but only through the Microsoft Store. Which should be the first hint at the answer to your question.

    Bedrock is the neutered version, and that’s intentional, it’s supposed to be neutered. It’s completely locked down and fully controllable by Microsoft. Nobody else has the keys, and it’s up to Microsoft to open the door to allow anyone or anything inside that they want. The non-neutered Java edition is not the goal it is the problem. The goal is to kill Java, or keep it alive solely as an advertising pipeline that feeds the next generation of children into Bedrock. Bedrock can be monetized and controlled and creates an ecosystem that people become trapped within, unable to escape as their purchases, their data, their characters, their accounts are all held hostage inside.

    It doesn’t matter that it’s objectively worse. All that matters is that it’s the first Minecraft you will see when a parent goes to buy it, not knowing the difference. Eventually, it will probably be the only version you can buy. It will be (already is) full of microtransactions and subscription services and paid mods and servers and Microsoft will inevitably take their generous cut of everything in the Microsoft and Minecraft stores just like Steam, Fortnite, Roblox, Play Store, and all the other predatory marketplaces out there.

    This is not about delivering value to customers, this is about delivering value to Microsoft. You are looking at things the completely wrong way around.


  • I know this is probably sarcastic but honestly Gentoo’s great if you don’t trust binaries by default. Nothing is an absolute guarantee against compromise, but it’s an awful lot harder to compromise a source code repository or a compiler without anyone noticing (especially if you stick to stable versions) than it is to compromise a particular binary of some random software package. I trust most package maintainers, but they’re typically overworked volunteers and not all of them are going to have flawless security or be universally trustworthy.

    I like building my own binaries from source code whenever possible.