• 0 Posts
  • 78 Comments
Joined 2 years ago
cake
Cake day: May 31st, 2023

help-circle




  • The BDFL model, as it’s called, is what allows large projects to continue to have focused vision rather than devolving into design-by-committee. The kernel is actually already well beyond pure BDFL, but my point is having a single point of overall leadership can be a huge boon for the organization of large and complex projects. FOSS philosophy has literally nothing to do with management structure; it’s entirely about the rights of the end user.

    BDFL is not without its own risks. WordPress is a good counterexample these days. But, when someone originates a project and sticks around to steer it, it would be silly to reject their proven successful leadership for such a vague reason as you have presented.

    When things do go sideways, people are free to fork the project. That is what FOSS is.



  • You’re absolutely right, you could take any binary that runs under an OS and set up a bootloader to execute it directly without an OS.

    The problem is that all programs, even ones in C, rely invisibly and enormously on the OS abstracting away hardware for them. The python interpreter doesn’t know the first thing about how to parse the raw bytes on a hard drive to find the location of the bytes that belong to a given file path. Files and filesystems are ‘fake’ when you get down to it, and the OS creates that fiction so each program doesn’t have to be customized per PC setup.

    So, ironically, to be able to truly kernel hack in python like you want would require writing tons of C to replace all OS hooks (like fopen to interact with a file, e.g.) with code that knows how to directly manipulate your hardware (speaking PCIe/NVMe to get to the disk, speaking GPT to find the partition on the disk, speaking ext4 to find the file in the partition, e.g.).

    OSes are complex as hell for a reason, and by retrofitting python to run on bare metal like that would require recreating that complexity in the interpreter.


  • The networking aspect will likely be the trickiest, but if you’re already interested in administrating a VPS you can absolutely do it.

    1. Have an ISP that doesn’t block inbound connections. So far both Comcast and Verizon have been cool to me in that regard.
    2. Configure your router to always give your host machine the same internal-network IP address.
    3. Configure your router to forward any relevant ports (TCP/80 for insecure HTTP, e.g.) to the internal address you assigned to your host.
    4. Go to ifconfig.me or similar to ascertain your public Internet IP address.
    5. Buy a domain (Namecheap has been good to me for a decade) and change its A record to point to that address!

    Not hard, but not exactly uncomplicated either.






  • ‘Toy’ feels strange to me here. It’s more of a just-works vs power-tool distinction. Sometimes people like tools that require you to RTFM because the deeper understanding has concrete benefits; it’s not just fun. User-friendliness is not all upside, it is still a tradeoff.

    You’re absolutely right about hurting new users by not making the destinction, whatever label is used.







  • C is a little older than namespacing and object orientation. C++ wasn’t even a glimmer in Bjarne’s eye when these conventions were laid down.

    And yes, having to google it is part of the design. Originally C programmers would have had to read actual manuals about this stuff. Once you learn the names you don’t really forget so it works well enough even now for ubiquitous standard library functions.

    And yet, C was an ergonomic revelation to programmers of the time. Now it’s the arcane grandpa that most youngsters don’t put up with.