HNHacker News
TopNewBestAskShowJobs

quotemstr

8,711 karma · joined March 18, 2011

I've seen some stuff that you wouldn't believe
submissionscomments
quotemstr··on sshole
You have exactly as many edges if every fallible routine can throw and every infallible one is marked as nothrow.
quotemstr··on Blender's UI and Runtime: Much Faster Than GPUI
Uh, all the major browsers at least attempt some theme-following.
quotemstr··on Blender's UI and Runtime: Much Faster Than GPUI
No system theme matching? No system fonts? A fast UI toolkit is great, but so is one that matches the rest of my desktop.
quotemstr··on sshole
That's not the same as asserting that soundness requires adherence to the current fashion, sum types over results and errors. TIMTOWTDI.

You don't have to think C is sound or good to distinguish a disfavored API style from mathematical unsoundness. There are infinitely many type safe APIs and languages that are, despite their soundness, ugly and hard to use.

Let's not project every dimension along which a language can be good or bad onto the axis of safety.

quotemstr··on sshole
Exceptions work fine and enable a clean separation of business logic and error handling. Visibility into partially-initialized objects is a language design issue independent of exceptions. In a non-exceptional language, the corresponding access to uninitialized fields would just be bugs, not errors you can see.

Nothing in your post actually supports the idea that exceptions are "computationally hard". The CFG error edges exist however the errors are spelled

quotemstr··on sshole
It's a perfectly sane signature, especially coupled with an API surface that uses the return channel for errors generally.
quotemstr··on sshole
Contemporary opinion among who? Words mean things, and "type safe" simply does not mean "agrees with my preferred style of error reporting"
quotemstr··on sshole
> Also how many times do we have to learn that letting badly programmed software die when unexpected things happen is the better option

Sadly, we will never learn this because failing fast runs counter to intuition, and a class of person will never override it.

quotemstr··on C++26 Disapproved
There's nothing "legacy" about checking invariants at runtime, and you can't simultaneously dismiss the concerns of people doing so on the grounds that they're "still us[ing] legacy C asserts" when you deny them an alternative to "legacy C asserts". That's question-begging.

> People figured out how to do with C++20 better than what contracts promised.

What contracts used to promise is irrelevant. The contracts on the table modernized runtime assertions and are irrelevant to concepts, constexpr, and related facilities.

Is the contracts feature more useful than C's assert()?

If you want to argue that we're better off with the old macro, do so directly. Concepts, in this context, amount to irrelevant distraction.

quotemstr··on C++26 Disapproved
I don't buy the idea that in "high-reliability C++" every condition worth checking can be checked statically, not unless you define "high-reliability" vacuously as that set of programs for which the claim is true. Real-world programs have legitimate reasons to verify invariants dynamically, and C++26 contracts provides an improved way to do so.

While the C++26 variant of contracts doesn't provide the benefits of its static-analysis-centric ancestor from 2014, and therefore isn't as consequential a feature, it still provides value to some and is absolutely not important enough to be worth killing a standard. Concepts do not provide this value.

In any case, it's simply false that C++26 contracts are unnecessary because we have concepts, yet this claim is the thrust of your initial comment.

quotemstr··on C++26 Disapproved
Huh? Concepts are types of types. Contracts are fancier, structured runtime assertions. What does one have to do with the other? They're nothing alike.
quotemstr··on Writing seen in PHerc. 306B, for the first time in 2000 years
Odds those were all just yet more Epicurean philosophy though?
quotemstr··on It's the memory latency, stupid
Uh, isn't this just radix-partitioned aggregation? Hierarchical (fixed two level) aggregation is old. What's novel here?

Microcosm of Pivot itself I guess. I just don't get why this project exists when DuckDB and Clickhouse both exist.

quotemstr··on The oldest ice disappears and the Stone Age emerges from it
Right. Our food staples, and especially barley, wheat, rice, and potatoes all produce more calories per acre at higher CO2 concentrations.

That's because RuBisCO is a terrible enzyme that only barely works; photosynthesis works better the more CO2 you feed it. RuBisCO actually evolved in a higher-CO2 atmosphere and is optimized for that one, not ours. Terrestrial plants today are basically an alien species trying to adapt to a marginally (from their POV) frontier planet.

Now, you could argue that this climate model or that climate model increase net productivity once you take into account land use patterns, population shifts, blah blah blah. You can make these models say whatever you want them to say. Truth is, biomechanically, more CO2 means higher yields with same inputs on the same land, and we are very good at making land suitable for agriculture.

quotemstr··on The oldest ice disappears and the Stone Age emerges from it
Agriculture is CO2-limited and would improve in yield with a somewhat hothouse climate.
quotemstr··on The oldest ice disappears and the Stone Age emerges from it
Nah. For centuries up to the 1850s, climate was looking pretty dicy. The little ice age, had it gone on, might have represented a return a big ice age.

The heroic efforts of early industrialists adding carbon to the atmosphere avoided this calamity and set us up with a level of comfy and productive climate unknown in the quaternary.

Amazing how humanity keeps lucking out like this.

quotemstr··on Python's experimental JIT to be removed
This would never have happened with a BDFL
quotemstr··on Type Server Protocol
Python is pretty decent. What are you talking about?
quotemstr··on CVE Tracker
You'll sleep easier if you think of the graph label as "vulnerability removals"
quotemstr··on Kimi K3.1 Pro and K3.1 Pro Highspeed
Deliberately keeping people ignorant doesn't help either
quotemstr··on Kimi K3.1 Pro and K3.1 Pro Highspeed
Cowards.

The way to stop the vulnerability apocalypse is to fix the vulnerabilities, not to shoot the damn messengers.

I hope someone abliterates and FTs this model on vulnerability discovery so we can find more bugs in our testing, insecure tech stacks.

quotemstr··on There isn't an easy exploit for this PHP vulnerability
Any particular compromise might not be published. But 70% of the internet is vulnerable. Even with a low reporting rate, wouldn't you expect to see something?
quotemstr··on There isn't an easy exploit for this PHP vulnerability
If Satan himself proves a theorem, is it nevertheless a true theorem? Claims are either true or they are false. There is no such thing as an evil truth. Where are the breaches?
quotemstr··on There isn't an easy exploit for this PHP vulnerability
Everyone has evidence of widespread exploit attempts. I totally believe that there are widespread attempts. Where are the compromises?
quotemstr··on There isn't an easy exploit for this PHP vulnerability
> And who exactly is Elias Taylor

A human being, presumably. But he could be a dog or a diffusion model and I wouldn't care, because arguments stand on their own. There is no special caste of people who alone have permission to propose ideas.

You advocate critical thinking. Excellent. Can you critically evaluate "Elias Taylor"'s argument?

quotemstr··on Rust Style Guide
This is from the people who make mandatory protobuf fields "optional".

I just fundamentally disagree with Google on how to evolve data structures. Sloppy open-domain protobuf field presence, enum values, whatever are illusory extension points. Better to have discrete versions of a data structure --- Foo1, Foo2, Foo3, etc., and rigid checking in each one than to have just one "Foo" with optional-everything that changes implicitly over time.

quotemstr··on eMudhra intermediate CA compromise
I'd best get started with the RFC now then
quotemstr··on mitmproxy adds --emudhra option
If the TV isn't older than a few years, if it's not checking CRLs, and if it hasn't yet patched itself.
quotemstr··on eMudhra intermediate CA compromise
In any universe in which we can revive DANE stapling, we can add a single bit to HSTS state that talks about it. You can't simultaneously do and not do software development.
quotemstr··on Today's PHP security release, and how we're strengthening security
In no sane culture is an engineering assessment made in the second person a personal attack. You'd call "you are holding the screwdriver wrong" a personal attack too.

He is, in fact, not mitigating the attack, and he is, in fact, by calling his non-workaround a mitigation, encouraging people to do ineffective things instead of patching. These facts remain true in the real world regardless of what you call a personal attack.

And yes, San Francisco has become top of the world for indirect fake kindness that transforms plain factual statements about the world into social offenses.

"The sun is bright. Don't look at it " -- RUDE!

"You might want to consider that the sun might be considered bright to some people and that you might be more comfortable looking at this other cool thing instead. But no pressure" -- gruff, barely tolerable

Page 1 of 34Next →