HNHacker News
TopNewBestAskShowJobs

colanderman

16,248 karma · joined October 13, 2008

chris@pacejo.net
submissionscomments
colanderman··on D4D4
Hex D4xxxxxx is indeed (almost) BRK... on ARM64 [1].

Being ARM32, these should be BKPT (hex BExx). [2]

[1] https://developer.arm.com/documentation/ddi0602/2025-06/Base...

[2] https://developer.arm.com/documentation/ddi0597/2024-09/Base...

colanderman··on D4D4
You are misunderstanding the purpose of the initial jump in a trap sled. It is to redirect code which expects to flow through the sled past the traps, while leaving the traps for anything else which lands in that range.

The padding the article is talking about lives between functions. It is not meant to be executed, nothing is needed to jump over it. (The unconditional bx lr before it is the return at the end of the function.)

colanderman··on D4D4
The instructions have to be trap instructions for it to work.

The conditional branch-backward instruction it is is almost as bad as the series of NOPs, since it is still likely to redirect an attacker to functioning code. (If the attacker can clear the mi flag first, these are just NOPs!)

Hence yes, this is a broken exploit mitigation.

colanderman··on Mostly dead influential programming languages (2020)
Instead now, you throw everything away when moving to a new language ecosystem. Would love to see parts of languages become aligned in the same manner that CPUs did, so some constructs become portable and compatible between languages.
colanderman··on Copper is Faster than Fiber (2017) [pdf]
(Having pondered this a day) this is a good question and I do not know! I think this would be straightforward to perform a waveguide simulation of though.
colanderman··on What goes wrong when we write ghazals in English
> translations […] always fail to do justice

I agree with you, yet sometimes, serendipity prevails, and a frying pan becomes a drying pan. [1]

[1] https://knowyourmeme.com/memes/ill-use-my-trusty-frying-pan-...

colanderman··on Copper is Faster than Fiber (2017) [pdf]
Not what's within each wire, but what is between the pair of wires is what matters. (Assuming of course the wires conduct well, as BenjiWiebe points out.)

And yes, using air instead of dielectric results in signal velocity near c. (A good example of this is ladder-line.)

colanderman··on Copper is Faster than Fiber (2017) [pdf]
Yes, if the conductor is poor, it will have losses -- but still it is not the material by which power is conducted to the load. (Rather, because its resistivity creates an E field along its length and within it, you now have a nonzero Poynting vector within the conductor -- one which points outward into the environment!)

Poynting vectors are bizarre and magical.

colanderman··on Copper is Faster than Fiber (2017) [pdf]
Don't know why you were downvoted, this is true. RF energy is carried primarily (solely?) by the dielectric, not the copper itself, simply by virtue of the fact that this is where the E and M fields (and therefore Poynting vector) are nonzero. It's therefore the velocity factor of the dielectric which is relevant.
colanderman··on Scientists identify culprit behind biggest-ever U.S. honey bee die-off
Peltier heat pumps, though less efficient than other types, can be made very small and have no moving parts.
colanderman··on Error handling in Rust
I find that directly propagating errors upwards is an antipattern. In many/most cases, the caller has less information than you do for how to deal with the error. (Your library, after all, is an abstraction, of which such an error is an implementation detail.) It also prevents you from returning your own error condition which isn't one that the downstack error type can represent.

It may be that you do in fact have to throw your hands up, and propagate _something_ to the caller; in those cases, I find a Box<dyn Error> or similar better maintains the abstraction boundary.

colanderman··on Error handling in Rust
thiserror automates all of that: https://docs.rs/thiserror/latest/thiserror/ Highly recommended.
colanderman··on PNG is back
One could imagine a PNG file which contains a low-resolution version of the image with a traditional compression algorithm, and encodes additional higher-resolution detail using a new compression algorithm.
colanderman··on First methane-powered sea spiders found crawling on the ocean floor
Nope jumping spiders are the worst kind. So are big fuzzy spiders.

They're not insectlike, but in some weird uncanny valley between insect and mammal.

And they can JUMP onto you.

Nope nope nope.

colanderman··on Public/protected/private is an unnecessary feature
That #define trick is not valid due to how C++ groups members of different visibility classes together. See e.g. https://stackoverflow.com/a/36149568 It will work until it doesn't.
colanderman··on Public/protected/private is an unnecessary feature
Yes, it does matter even in functionally pure languages.

If the inner structure of your API's types are visible to callers, that's now part of your API, because callers can and will start to rely on that specific representation. Now you're constrained from updating your API, in order not to break code which depends on it.

colanderman··on Wayland is growing up. and now we don't have a choice
Same exact experience here. Nearly borked my entire installation trying to get that to work.
colanderman··on Wayland is growing up. and now we don't have a choice
Really? As of a couple months ago I nearly totally hosed my Debian installation trying to get Wayland GDM working under Nvidia.
colanderman··on "The models were right": astronomers find 'missing' matter
Note that the particular category of "missing" matter is "hot intergalactic gas", not dark matter.
colanderman··on Is gravity just entropy rising? Long-shot idea gets another look
See also: emergent fox-treasure gravity in Skyrim: https://www.eurogamer.net/skyrims-myth-of-the-treasure-fox-f...

TLDR: areas around treasure have higher entropy by a measure relevant primarily to stochastic movement of foxes. Since there are thus on average more ways for a fox to walk toward treasure than away, they tend to gravitate toward treasure.

colanderman··on Why Koreans ask what year you were born
I suspect the equivalent for 90s/00s nerdy types is e-mail addresses.

I am still "squirrel" to some college friends. And think of many of my college friends and co-workers as their username.

colanderman··on Menstrual tracking app data is gold mine for advertisers that risks women safety
You are being snarky and disingenuous.

People have been arrested for miscarrying in the US.

colanderman··on Menstrual tracking app data is gold mine for advertisers that risks women safety
Most abortions do not result from planned pregnancies.

It's not a problem until it suddenly is.

colanderman··on Menstrual tracking app data is gold mine for advertisers that risks women safety
Maybe you are completely unaware, but many US states have criminalized abortion. Pregnancies and abortions are detectable from menstrual data.
colanderman··on Small Programs and Languages
Also the Beagle Bros software and books for the Apple // series. They even had a semi regular "contest" where readers would submit "two-liners" which they'd then judge and distribute via floppy. That culture grew and cemented my love of the hobby, I loved and miss it.
colanderman··on Defending adverbs exuberantly if conditionally
Oh yes! This works with other intensifiers as well. "Crazy good", "wicked bad", "mad smart", etc. To my ears, eliding the -ly changes the meaning from the literal reading, to specifically the intensifier reading.
colanderman··on Defending adverbs exuberantly if conditionally
I do this. I think this applies only to adverbs modifying verbs. Adverbs modifying adjectives or participles stay put.

"She runs quick," is a thing I'd say.

"***The topic was hot debated," would be ungrammatical to my ears.

Not sure how widespread it is. I think it just falls out of a natural tendency to elide utterances which don't alter the meaning of a sentence. In many positions it's obvious that an adjective is meant to modify the verb rather than a noun.

It's not a hard and fast rule. In formal writing I'd use adjectives per standard grammar.

Maybe also related to the (standard) use of adjectives as describing the state into which something is transformed by a verb. In "I painted the wall red," "red" is properly an adjective and modifies the transformative act, not the object. I suspect this construction has been unconsciously widened to apply to nontransformative verbs also.

Notably "***she quick runs" sounds highly ungrammatical to my ears.

colanderman··on NYC Drivers Who Run Red Lights Get Tickets. E-Bike Riders Get Court Dates
I really don't understand your point. Are you nitpicking the wording of my figure of speech?

The officer I spoke to didn't understand what a right hook was, despite standing next to a bicycle.

colanderman··on NYC Drivers Who Run Red Lights Get Tickets. E-Bike Riders Get Court Dates
I was confusing it with the "Dutch reach".

E-bikes are becoming dominant in Boston/Cambridge also. The Citi Bikes are fine, they're small and slow (and frankly the problem with them is new riders who are seemingly completely unaware of anything). It's the huge delivery bikes, the bros on pseudo-mopeds, and the humongous (and usually empty) baby-cart bikes (e.g. Tern) that are dangerous in bike lanes and mixed-use paths.

(Again -- I love that these are displacing cars. I just wish they physically displaced the cars also, and not pedal bicyclists and pedestrians.)

Our (Cambridge) bike infrastructure has really just come into its own after decades of advocacy by pedal bicyclists. So seeing it suddenly flooded with what are effectively mopeds and Vespas really hits a nerve, like it's 1990 all over again.

colanderman··on NYC Drivers Who Run Red Lights Get Tickets. E-Bike Riders Get Court Dates
The Idaho stop is explicitly not running red lights. You stop at the red light, and proceed when it's clear. No "blowing past".

And we're talking about areas with dedicated and often physically separated bike lanes. We don't interact with you except at intersections.

← PreviousPage 2 of 34Next →