Hacker Newsnew | past | comments | ask | show | jobs | submit | jenadine's commentslogin

It is the US layout that stands out. The UK layout follows ISO 9995, which most other countries also follow.

And I thank god every day we don't. The ISO keyboard is awful. Left shift is too important of a key to be 1u. I don't need a massive enter key that lives on two rows. Just insane choices.

The big enter key I do like.

But I’ve ended up using a split keyboard where every key is 1u. All language layouts map to the physical layout in basically the same way.


> What's the problem with F-35s?

They will not be very useful in a conflict against the US, since the US can basically disable them remotely.


> Such as?

Well, we can't say them.

(but it involves nazies, denying genocides, hate speech, and this kind of stuff. It also depends on the country)


In theory, a process could just return an error for that specific operation, which would propagate to a "500 internal error" for this one request but not impact other operations. Could even take the hint to free some caches.

But in practice, I agree with you. This is just not worth it. So much work to handle it properly everywhere and it is really difficult to test every malloc failures.

So that's where an OOM killer might have a better strategy than just letting the last program that happen to allocate memory last to fail.


> No non-embedded libc will actually return NULL.

malloc(-1) should always return NULL. Malloc returns NULL if the virtual address space for a given process is exhausted.

It will not return NULL when the system is out of memory (depending on the overcommit settings)


I'm running my email server on some famous VPS provider, and with properly configured server (SPF, DCIM), I didn't really get any problems sending emails.


The idea is that most of the unsafe code to interact with the C API of the kernel is abstracted in the kernel crate, and the drivers themselves should use very little amount of unsafe code, if any.


And yet, the Linux kernel's Rust code uses unstable features only available on a nightly compiler.

Not optimal for ease of compilation and building old versions of the Kernel. (You need a specific version of the nightly compiler to build a specific version of the Kernel)


Don't the C parts of Linux heavily depend on GCC extensions too? Seems depending on specific compiler features isn't really a blocker.


The difference probably is that GCC extensions have been stable for decades. Meanwhile Rust experimental features have breaking changes between versions. So a Rust version 6 months from now likely won't be able to compile the kernel we have today, but a GCC version in a decade will still work.


luckily downloading a specific nightly version is only a single rustup command


Besides supply chain attacks, what could go wrong ? /s


Kernel doesn't use Cargo.


rustup is also downloading binary toolchains


> Not optimal for ease of compilation and building old versions of the Kernel. (You need a specific version of the nightly compiler to build a specific version of the Kernel)

It's trivial to install a specific version of the toolchain though.


You don't generally need specific versions of GCC or Clang to build it I'm pretty sure.


> You don't generally need specific versions of GCC or Clang to build it I'm pretty sure.

You need a C11 compiler these days with loads of non-standard extensions. Note, for a very long time, one couldn't compile the Linux kernel with clang because it lacked this GCC specific behavior.

I'm not really sure you can turn around and say -- Oh, but now we feel differently about the C standard -- given how much is still non-standard. For instance, I don't believe Intel's C compiler will compile the kernel, etc.


It really isn't if bootstrapping from source.


What if I told you… there was a simple, constant environment variable you could set to make the stable compiler forget it isn’t a nightly?


When it comes to nightly features use, it is good to note that a stable compiler, a nightly corresponding to the date beta for that stable was branched out and an arbitrary nightly are different. A branched-off nightly might have had beta back ports for fixing stable features that the nightly will not have, and a nightly feature that is subtly broken on stable but isn't used in std will not have received a backport. So using nightly feature on stable might mean every now and then skipping a stable version, and using a nightly compiler means having to do thorough testing after updating on arbitrary days. Any given nightly has high chances of being fine, but every update brings the possibility of bugs.


the point is unstable features aren't guaranteed to not break after a compiler update. hence the specific version thing.


It's not ideal, but at least most of these are only used in the `kernel` crate, i.e. if there's a breaking change to these features it should be fixable without widespread changes.


Can you please share more details about this?



The Linux kernel has been using stable versions of Rust for some time now. You do not need nightly or beta Rust compilers to compile the kernel.

https://www.phoronix.com/news/Linux-Patches-Multiple-Rust-Ve...


I have no idea about tha US tax code. An explanation would be welcome.


The US tax code is enormous and changes often enough that there is no human alive that has read the entire thing.

It's relatively easy to calculate the maximum someone with only ordinary income needs to pay.

However to pay less you need to understand all of the potential tax deductions, of which there are vastly more than most people realize.


Legal and morally right are two different things though.


criminals are not always bad people: https://www.youtube.com/watch?v=VrFs2_uhz-o

and to break it down lawfully or/and morally bad:

  lawfully bad, morally bad = bad and crypto is one of the major tools in your arsenal

  lawfully bad, morally good = neutral, but you are a prosecuted criminal, crypto is helpful for you but there are alternatives

  lawfully good, morally bad = bad, but not a prosecuted criminal, crypto is not that useful for you

  lawfully good, morally good = you are not a criminal, crypto is not that useful for you


Laws at least have the advantage of being written down. Morals are different for everyone and not constant in time even in a single individual.


Laws aren't always written down. A good example is what happens if you criticize Israel - the government, if it notices you, will come down on you like a sack of bricks, even though there's no law that says "don't criticize Israel". https://youtu.be/zJt3omLLAuA

Likewise, there's no law saying "don't accept payment in Monero" but you may be jailed for money laundering if the government notices you.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: