Readit News logoReadit News
branko_d commented on Accepting US car standards would risk European lives   etsc.eu/accepting-us-car-... · Posted by u/saubeidl
drstewart · 16 days ago
The air you breathe is the same regardless of how many people stand next to you also breathing it.
branko_d · 16 days ago
But only if they stand.

If they start driving, the situation changes dramatically!

branko_d commented on Accepting US car standards would risk European lives   etsc.eu/accepting-us-car-... · Posted by u/saubeidl
lawn · 16 days ago
It's interesting that Americans seems to justify the purchase because of personal safety, leading to preference for larger cars.

This is fine in isolation but at scale it leads to a race where everyone, especially pedestrians, loses.

branko_d · 16 days ago
Tragedy of commons.
branko_d commented on Java Decompiler   java-decompiler.github.io... · Posted by u/mooreds
VonGuard · 23 days ago
I think this is popping up in Hacker News because the concept of decompilers has become a bit more acceptable recently. (strokes beard)Time was, decompilation was said to be Impossible (as my wise friend syke said: most things people say are impossible are just tedious). Then, it just became "something you could only do in a targeted, single-application fashion.)

Somewhere in there, Alan Kaye laughed and handed everyone dynamic code.

These days, with AI in tow, decompilation is becoming the sort of thing that could be in the toolchain, replacing IDA and such. Why debug and examine when you can literally decompile?!

So, maybe, that idea being considered to be newly on the table, someone felt the need to post a counter-point, proving once again that everything old is new again.

Hats off for decomiling Java apps that mostly predate generics and annotations... both of which were added in 5.

branko_d · 23 days ago
Is there anything especially hard about decompiling (to) Java?

.NET/C# decompilers are widespread and generally work well (there is one built into Visual Studio nowdays, JetBrains have their own, there were a bunch of stand-alone tools too back in the the day).

branko_d commented on China reaches energy milestone by "breeding" uranium from thorium   scmp.com/news/china/scien... · Posted by u/surprisetalk
mc32 · a month ago
Also, they can bring it in by rail from Russia. So they can avoid the seaward path.
branko_d · a month ago
China imports substantially all of its uranium from Kazakhstan and Namibia, and a tiny bit from US. Russia is insignificant.

https://wits.worldbank.org/trade/comtrade/en/country/CHN/yea...

branko_d commented on The lost cause of the Lisp machines   tfeb.org/fragments/2025/1... · Posted by u/enbywithunix
layer8 · a month ago
How does that square with the fact that there is no dramatic performance loss for x86 emulation on ARM?
branko_d · a month ago
Probably because must “emulation” is more like “transpilation” these days - there is a hit up front to translate into native instructions, but they are then cached and repeatedly executed like any other native instructions.
branko_d commented on Cloudflare outage on November 18, 2025 post mortem   blog.cloudflare.com/18-no... · Posted by u/eastdakota
frumplestlatz · a month ago
Explicit error handling strategies allow you to not worry about all the code paths that explicitly cannot throw -- which is a lot of them. It makes life a lot easier in the non-throwing case, and doesn't complicate life any more in the throwing case as compared to exception-based error handling.

It also makes errors part of the API contract, which is where they belong, because they are.

branko_d · a month ago
I would respectfully disagree with most of what you said. I guess individual perspective depends a lot on the kinds of code you work on.

The point about being explicitly part of the API stands, though.

branko_d commented on Cloudflare outage on November 18, 2025 post mortem   blog.cloudflare.com/18-no... · Posted by u/eastdakota
frumplestlatz · a month ago
> Throwing an exception does not necessarily mean that your program is suddenly in an unsupported state

When everyone uses runtime exceptions and doesn’t count for exception handling in every possible code path, that’s exactly what it means.

branko_d · a month ago
Sure, but the same is true of any error handling strategy.

When you work with exceptions, the key is to assume that every line can throw unless proven otherwise, which in practice means almost all lines of code can throw. Once you adopt that mental model, things get easier.

branko_d commented on Nearly all UK drivers say headlights are too bright   bbc.com/news/articles/c1j... · Posted by u/YeGoblynQueenne
gblargg · a month ago
A big cause on older cars is haze on the clear plastic that develops over the years. This makes even low beams spread so they blind oncoming drivers. There are kits where you polish and re-finish them, and they do make a noticeable difference in beam directionality.
branko_d · a month ago
According to Project Farm, Sylvania is the best headlight restoration kit:

https://www.youtube.com/watch?v=kyVCEbfrU-c

branko_d commented on Cloudflare outage on November 18, 2025 post mortem   blog.cloudflare.com/18-no... · Posted by u/eastdakota
ojosilva · a month ago
This is the multi-million dollar .unwrap() story. In a critical path of infrastructure serving a significant chunk of the internet, calling .unwrap() on a Result means you're saying "this can never fail, and if it does, crash the thread immediately."The Rust compiler forced them to acknowledge this could fail (that's what Result is for), but they explicitly chose to panic instead of handle it gracefully. This is textbook "parse, don't validate" anti-pattern.

I know, this is "Monday morning quarterbacking", but that's what you get for an outage this big that had me tied up for half a day.

branko_d · a month ago
Safe things should be easy, dangerous things should be hard.

This .unwrap() sounds too easy for what it does, certainly much easier than having an entire try..catch block with an explicit panic. Full disclosure: I don't actually know Rust.

branko_d commented on Cloudflare outage on November 18, 2025 post mortem   blog.cloudflare.com/18-no... · Posted by u/eastdakota
gwbas1c · a month ago
It's a lot lighter: a stack trace takes a lot of overhead to generate; a result has no overhead for a failure. The overhead (panic) only comes once the failure can't be handled. (Most books on Java/C# don't explain that throwing exceptions has high performance overhead.)

Exceptions force a panic on all errors, which is why they're supposed to be used in "exceptional" situations. To avoid exceptions when an error is expected, (eof, broken socket, file not found,) you either have to use an unnatural return type or accept the performance penalty of the panic that happens when you "throw."

In Rust, the stack trace happens at panic (unwrap), which is when the error isn't handled. IE, it's not when the file isn't found, it's when the error isn't handled.

branko_d · a month ago
> Exceptions force a panic on all errors

What do you mean?

Exceptions do not force panic at all. In most practical situations, an exception unhandled close to where it was thrown will eventually get logged. It's kind of a "local" panic, if you will, that will terminate the specific function, but the rest of the program will remain unaffected. For example, a web server might throw an exception while processing a specific HTTP request, but other HTTP requests are unaffected.

Throwing an exception does not necessarily mean that your program is suddenly in an unsupported state, and therefore does not require terminating the entire program.

u/branko_d

KarmaCake day1834May 2, 2017View Original