• 0 Posts
  • 73 Comments
Joined 3 years ago
cake
Cake day: November 28th, 2022

help-circle
  • I recommend starting with basic operations, like:

    • putting installed files in the right directory structure.
    • integrity checking.
    • archiving and compressing.

    Decide whether your package manager is source-based, or if you’re going to make some kind of binary distribution mechanism. Either way, you’re going to need a process for configuring, compiling and installing packages from source.

    I do recommend looking at how Pacman, & apt approach all this. There are also likely books on this topic.

    Also recommend playing around with buildroot; not because it is a comprehensive package manager, but because it’s inner workings are very transparent.




  • I’m sure the developers are competent, but the reason I care about the design decisions is the same reason the electric brakes on cars don’t interface with its infotainment system; the interface inherently creates opportunities for out of spec behaviour and even if the introduced risk is tiny, the consequence is so bad that it’s worth avoiding.

    If you have to have an airbag be controlled by software (ideally the mechanism is physical, like a pull tab), it should be an isolated real time device with monitoring your accelerometer and triggering the airbag be it’s only jobs. If it’s also waiting to hear back from another device about whether your subscription ran out before it starts checking, the risk of failure also has to consider that triggering device.

    It can be done perfectly, but it’s software so of course it has bugs.



  • Yes, but also from an implementation perspective: if I’m making code that might kill somebody if it fails, I want it to be as deterministic and simple as possible. Under no circumstances do I want it:

    1. checking an external authentication service.
    2. connected to the internet in any way.
    3. have multiple services which interact over an API. Hell, even FFIs would be in the “only if I have to” bucket.




  • Typically no, the top two PCIE x16 slots are normally directly to the CPU, though when both are plugged in they will drop down to both being x8 connectivity.

    Any PCIE x4 or X1 are off the chipset, as well as some IO, and any third or fourth x16 slots.

    So yes, motherboards typically do implement more IO connectivity than can be used simultaneously, though they will try to avoid disabling USB ports or dropping their speed since regular customers will not understand why.




  • I build Linux routers for my day job. Some advice:

    • your firewall should be an appliance first and foremost; you apply appropriate settings and then other than periodic updates, you should leave it TF alone. If your firewall is on a machine that you regularly modify, you will one day change your firewall settings unknowingly. Put all your other devices behind said firewall appliance. A physical device is best, since correctly forwarding everything to your firewall comes under the “will one day unknowingly modify” category.

    • use open source firewall & routing software such as OpenWRT and PFSense. Any commercial router that keeps up to date and patches security vulnerabilities, you cannot afford.


  • The difficulty is that a VPN isn’t just a product like ProtonVPN, it’s a huge family of software and protocols.

    You can block vpn.protonvpn.com, but since most operating systems come with VPN functionality out of the box, you’d have to start listening to all traffic (not just DNS lookups) and blocking ALL packets that might be VPN traffic without causing regular disruption to non-vpn traffic.

    TL;DR: it’s easy to prevent unmotivated users from downloading a VPN app. It’s practically impossible to block a motivated user from using a VPN, and they’re the users you particularly care about.



  • hat’s a bad faith interpretation of “the people control the means of production”.

    I want you to consider the difference between the work needed to complete a task, and the work needed to manage a workplace: for one of those tasks, only the experts in that task can meaningfully contribute to the outcome, whereas for the other, everybody who is part of the workplace has meaningful input.

    I don’t know about your experience, but everywhere I’ve worked there have been people “on the ground” who get to see the inefficiencies in the logistics of their day to day jobs; in a good job a manager will listen and implement changes, but why should the workers be beholden to this middleman who doesn’t know how the job works?

    I’ve also had plenty of roles where management have been “telling me where to cut”.



  • It opens the door to more manufacturers since there is no ISA licence fees. While the AMD/Intel duopoly is being fairly competitive at the moment, it really doesn’t have to be. Only think back to how bad it was late 2000s to 2015.

    I imagine a plethora of core designers, soc vendors and platform creators filling their own niches; lowest cost, lowest power, HW accelerators, highest core count etc.

    I don’t see the raw performance of AMD/Intel being surpassed soon, just because of the sheer total R&D years each has, but that doesn’t mean there aren’t other areas better suited to a different architectural approach.