Linux gamer, retired aviator, profanity enthusiast

  • 41 Posts
  • 1.14K Comments
Joined 2 years ago
cake
Cake day: June 20th, 2023

help-circle
  • (explaining the joke for those unaware: The Battletech setting is a “nuked ourselves from interstellar space travel back to the stone age” type scenario. An interesting component of the setting is Comstar, the AT&T-like telecommunications monopoly mutated into a religious order which 1. as basically the only extant vestige of the old Star League are convinced they will someday return enlightenment to humanity, with increasing fanaticism, 2. carry telegram-like messages at telegram-like speeds throughout known space, 3. Operate as the de facto international bank and issuer of currency (the C-bill) because milliseconds of transmitter time is the only stable monetary base, and 4. the shifty fucks will sabotage any attempt to climb out of the dark age that isn’t under their control.)














  • I don’t think the shape of a bar of soap is copyrightable.

    If it is a functional design, like about a decade ago I saw an ad for a system of soap where, as the bar wears down, you snap it into a new bar that has a recess in the top so you never have a small sliver of soap. That could be granted a utility patent that would expire in 20 years.

    For an aesthetic or branding design, it’s possible you could take out a utility patent.

    My parents used Dove soap when I was a kid; the shape was like an inch and a half thick pringle. This shape doesn’t pack efficiently; they could nest vertically but they were usually packed in rectangular cardboard boxes with a lot of space in them. Dial soap, I’ve noticed, tries to do something similar by making a roughly rectangular bar with semi-circular hollows, one running along the bar and one across. Other than making it tend to do thin in the middle and break in half this doesn’t achieve much.





  • Actual answer:

    Rust is a relatively new programming language. Similar to C or C++ it compiles directly into executable binary code so it can be used for bare metal or low level operating system programming. It is thus relevant to Linux kernel development as things like drivers can and are being developed in Rust.

    Compare this to the likes of Java or C# which get compiled to bytecode or a kind of pseudo machine code that gets run in a virtual machine, which has advantages for application development, or something like Python which is interpreted (or just-in-time compiled) at run-time, useful as an end user scripting language.

    Rust is designed from the ground up to tackle some modern problems, a key one being memory safety. It’s a lot more paranoid about memory allocation and access and it’s structured around this. Older languages like C allow the programmer a lot more absolute control over the hardware, which effectively means the C programmer has a lot more footguns in his toolbox. Theoretically, Rust offers fewer opportunities for the developer to shoot himself in the foot.

    Rust also comes with some really cool tooling. Compiler errors usually point straight at the problem and say something like “Shouldn’t there be a colon here?” The build system, called Cargo, is really slick in a lot of ways, handling linking, compiling, even library package management in a very automatic fashion. It’s real slick to work with.

    As with anything, fans of the language can be a bit much; they stereotypically suggest rewriting everything under the sun in Rust whether it makes sense or not, and this includes the Linux kernel, which has caused some friction in the community; Linux contributors are often very accustomed to C and some don’t want to deal with anything else.