> Continuing to read things on it, even through Nitter, is in the interests of Twitter/X
Yet Twitter/X sent a cease-and-desist letter to the Nitter folks, which seems to contradict the idea that they think people reading content via Nitter is in their interest IMHO.
With interceptors that cost the defender $100k/unit and shaheds that cost the attacker $10k/unit, over time the attacker can bankrupt the defender if the target is something the defender cannot afford to lose. Sometimes it takes several interceptors to eliminate the threat. Therefore part of the focus in the design of interceptors is to keep their unit cost low.
The unit cost of the first versions of shaheds may have been $10k; more recent models that fly higher, are equipped with a jet engine, more sophisticated electronics, cameras etc. are significantly more expensive. To the point it's not clear to me, of Ukraine or Russia, who pays the higher price during a mass attack at the moment.
Yes, unit costs should be kept as low as possible. My point is that not all wars are wars of attrition with air parity, which is where interceptor economics make the least sense.
One I can think of is simplicity. No need to worry about what the type of the string should be (size_t?) or where it should be stored. Just pass around a pointer. Pointers fit the size of a CPU register most of the time. Though in my opinion the drawbacks (O(N) performance, NUL forbidden etc.) outweigh this benefit we are stuck. Many kernel interfaces like open, getdents etc. assume NUL-terminated strings, therefore any low-level language or library has to support them.
But (i32 length, byte[] data) is as complex as (byte[] data, '\0'), its two-parts anyway. Of course it allows potentially for very long strings at the cost of just a single byte spent as a terminator. Beside the rarity of such a case, the "space savings" might play a role on a PDP11, or on a Z80, but not on any of the modern architectures that need structures aligned to 32 or even 64 bit boundary. The efficiency and security costs far outweigh any savings is space or simplicity (heh) of processing.
Null-terminated strings are the other billion-dollar mistake, along with the original NULL.
Arrays as glorified pointers were the mistake. Null terminated strings are a natural result of that design choice.
Null pointers however were not a mistake, despite how popular slandering them has become. A reasonable case can be made that any modern language should enforce null checks (and bound checks, and ...) or at the least provide them by default but that is neither here nor there as far as C is concerned.
Tony Hoare himself called NULL a mistake. But the problem is not in the ability to set a pointer to a null value, of course. The problem is that all pointers are nullable, and there's no way to statically enforce their being non-null. I wonder how feasible data flow analysis would be in 1969 though.
A rate of 10 000 (ten thousand) RPM is mentioned in the video for certain bacteria. My background is in mechanical engineering, does RPM stand for revolutions per minute here? Sounds unbelievably fast for biochemical processes.
The wild thing is that it doesn't have a 'gas tank' of ATP to drive the reaction, it goes this fast while being fueled one molecule at a time from the environment.
the reactant molecules themselves, are primed with an ATP like a one use capacitor, it provides threshold energy, and is "consumed" as part of the reaction.
In the EU, they've had the GDPR – a big, muscular privacy law – for nine years, and all it's really done is drown the continent in cookie-consent pop-ups. But that's not because the GDPR is flawed, it's because Ireland is a tax-haven that has lured in the world's worst corporate privacy-violators, and to keep them from moving to another tax haven (like Malta or Cyprus or Luxembourg), it has to turn itself into a crime-haven. So for the entire life of the GDPR, all the important privacy cases in Europe have gone to Ireland, and died there:
Now, again, this isn't a complicated technical question that is hard to resolve through regulation. It's just boring old corruption. I'm not saying that corruption is easy to solve, but I am saying that it's not complicated. Irish politicians made the country's economy dependent on the Irish state facilitating criminal activity by American firms. The EU doesn't want to provoke a constitutional crisis by forcing Ireland (and the EU's other crime-havens) to halt this behavior.
Yet Twitter/X sent a cease-and-desist letter to the Nitter folks, which seems to contradict the idea that they think people reading content via Nitter is in their interest IMHO.
reply