HNHacker News
TopNewBestAskShowJobs

quuxplusone

1,261 karma · joined February 15, 2024

submissionscomments
quuxplusone··on What happened after 2k people tried to hack my AI assistant
Or ask the agent to visit a web page, or load an image, whose URL involved the secret? Or ask it to install a new .authorized_keys and then go get the contents of the machine themselves? From the post it sounds like a lot of people were just trying to get the LLM to write them a reply email — which it had been told not to do.

I see there's a "log" at https://hackmyclaw.com/log but (maybe because I'm on mobile?) I can't actually click through to view any of the table entries.

quuxplusone··on Show HN: Wordit – Change One Letter, Keep the Chain Going
+1. It felt very mechanical running through "bard, card, hard, lard, nard, pard, sard, ward, ware, care, dare, fare, hare, mare, nare, pare, tare, bare, bark, dark, hark, lark, mark, nark, park, sark,..." Definitely feels like something a computer could do better than a human. (And the leaderboard confirms it.)

But switching the traversal order to "bard, bare, care, card, hard, hare, dare, dark, hark, hart, cart,..." doesn't seem to make it any more fun.

My suggestion would be to add an "enemy AI" following its own trajectory toward you; your job then is not just to walk around as long as possible, but to stay at least one step ahead of the enemy for a long as possible.

The enemy might not move just one step per turn; it might do something like "stand still for 3 turns, then change 2 letters in a single turn."

Showing the enemy's words to the player would also increase the "discoverability" of paths in the game. The player could say "Oh, apparently NARD is a valid word! I'll remember that for next time."

quuxplusone··on Show HN: Wordit – Change One Letter, Keep the Chain Going
Or bait (or probably baht or batt).
quuxplusone··on Fired by Google for creating the Google workspace CLI
The other day I learned that the command line interface (or whatever) to Antigravity goes by the abbreviated name "agy", which is awfully close to "agi" as in "artificial general intelligence." I strongly suspect they did that on purpose.
quuxplusone··on How do flocking birds and schools of fish move?
And "Stanley and Stella in: Breaking the Ice" (SIGGRAPH 1987).

https://archive.org/details/stanley-and-stella-in-breaking-t...

quuxplusone··on Zork name origin got an update on Wikipedia
https://en.wikipedia.org/w/index.php?title=Zork&diff=prev&ol...

might be a more informative link to the specific change, btw.

quuxplusone··on The ghost domain problem in DNS, and what we're doing about it
From my read of the article, this isn't a problem "in DNS." OP runs an uptime monitoring service that purports to check whether DNS can resolve your domain — but today OP learned that because he's hitting his ISP's recursive resolver, he doesn't notice downtime until the TTL of the previous response expires.

Solution (which everyone else does, and OP has now implemented): don't use your ISP's recursive resolver! Run your own instance of bind9 or whatever, with the cache disabled. Or it seems like `dig +trace` would probably work, too.

"Cached resources remain visible for their whole TTL, even if the original becomes unreachable or changes" seems like one of the very first principles someone should learn when deciding to go into business selling an uptime monitoring service.

It's not a "ghost domain," it's a Time-To-Live field!

quuxplusone··on Job: Head of Stonehenge
"Just to be clear, you are saying you manage a hedge fund, right?"

"Yeah, a henge fund."

"Hedge fund."

"Henge fund."

"Hedge."

"Henge."

"...I think we're on the same page."

quuxplusone··on Show HN: Gitdot – A better GitHub. Open-source, written in Rust
As a banner or something, maybe. But I'd much rather see a broken-looking site on mobile than see nothing at all on mobile.

In the same category: websites that display nothing but a splash screen "This site requires Internet Explorer X" or whatever. Don't nanny me, just feed my browser the HTML! Whether my browser can render it properly is my problem, not yours.

quuxplusone··on Games Between Programs: The Ruliology of Competition
In the middle of this too-long-and-rambling piece, there's a sketch of an interesting sequence: look for the text "universal winner." Let a(n) be the size of the smallest "coin-matching player" DFA that eventually matches the output of its n-state opponent no matter the identity of that opponent. a(1) is obviously 2 (right?); Wolfram indicates a(2) <= 10; what is a(3)?

This is different from the problem of identifying the opponent, which obviously requires at least as many states as there are opponents.

Is this sequence in the OEIS? Is a(3) even known?

quuxplusone··on The back cover of C++: The Language raises questions not answered by front cover
Yep. (Discussed more than once on HN, which is why I know this link exists:)

https://nmap.org/movies/

quuxplusone··on C++: The Documentary
The reason I'd want "frozen-size vector" is to replace pairs of data members of the form `T* foos; size_t foos_len;` without paying another 8 bytes to store a useless capacity that's never going to change.

But I don't think that makes such a container worth adding to the STL. So far, it hasn't even been worth writing in our own code. But that's the reason I've thought about writing it.

quuxplusone··on Branchless Quicksort faster than std:sort and pdqsort with C and C++ API
FWIW, I believe that's not a mistake, just a consistent use of (novel?) jargon. From context I infer that the paragraph is distinguishing between the _hard requirements_ of the traits (quote: "the language contract says they cannot become unsafe") and the behavior human programmers would naturally _expect_ of the traits ("the social contract").

And yes, looking at https://docs.rs/misfortunate/latest/misfortunate/index.html and Ctrl+F'ing for "social contract," I see that usage very consistently. The entire point of Misfortunate is that its types correctly implement the language contract, while violating the "social contract" in various surprising ways. For example, causing a hash collision on every operation is a perfectly cromulent implementation of Hash, but violates the "social contract" of Hash. For another example, look at LoadLetter — throwing an error on every operation is a valid implementation of Read, but still violates the "social contract" of what a human programmer would naturally expect from something readable.

quuxplusone··on Branchless Quicksort faster than std:sort and pdqsort with C and C++ API
...Ah, `heap_sort` is used only for trivially copyable types. So my complaint about not distinguishing copy from move is essentially unimportant (matters only in pathological cases that we shouldn't worry about).

But it's perfectly possible for a type to be "trivially copyable" without being "default-constructible." An example of such a type from the STL: `std::reference_wrapper<int>`.

Anyway, looks like a quick fix for this would be to just extend the list of traits on which blqsort is gated (currently `is_trivially_copyable` and `sizeof(T) <= 16`) by adding `is_trivially_default_constructible<T>::value` also.

quuxplusone··on Branchless Quicksort faster than std:sort and pdqsort with C and C++ API
It's unfortunate that the C++ version of the code assumes the type T is default-constructible (and that the default constructor is cheap). It also assumes that the type T is copy-constructible; at a glance I can't tell if the algorithm depends on making a copy in every place that it does make a copy. E.g. in the `heap_sort` helper we have

    T k;                       // default-construct
    if (i > 0) k = left[--i];  // copy-assign
This fairly obviously could be replaced with "copy-construct." Could it be replaced with "move-construct"? I don't know. Again, in `partition_small`, we have

    T swbuf[SMALLPART];
which default-constructs a bunch of Ts. I think we're just going to overwrite that memory in a moment anyway, so constructing all those Ts is a waste of cycles; but I'm not sure.

All of my "I don't knows" and "I'm not sures" are due to my own lack of digging into the code; I'm sure one could find out if one really looked.

None of that matters if you're just sorting `int` or the benchmarked `struct entry`. But it matters a great deal if you're taking the README literally and trying to sort "types with higher copy costs [...] (such as strings)".

quuxplusone··on Meteor Explodes over Massachusetts
The Wikipedia article on "meteor air burst" has an explanation that basically matches yours, although they do use the word "explosion" to describe it. Which makes sense to me: whatever one chooses to call it, it's a nearly instantaneous spontaneous disassembly that is very bright, very hot, and very loud.

https://en.wikipedia.org/wiki/Meteor_air_burst

quuxplusone··on Gmail thinks I'm stupid, so I left
Is it something about using Chrome? My wife's Gmail was showing the "Press / to help me write" prompt last week and we couldn't figure out (1) how to turn it off nor (2) why _I_ wasn't seeing any such prompt in _my_ Gmail, despite all our Gmail settings being the same as far as I could tell.

We both use Chrome (she on Windows, me on Mac), but I could totally believe that I've turned off some shiny AI feature _in Chrome_ that she hadn't.

Anyone care to confirm or disprove the hypothesis that there's some setting in Chrome itself that will disable this Gmail feature?

quuxplusone··on Adafruit receives demand letter from Fenwick legal counsel on behalf of Flux.ai
An interesting idea I saw long ago in some book (I thought it was K&P's "Software Tools," or my second guess was K&R1, but neither of those panned out — a strong Mandela effect) was the clever idea of a whole-document spellchecker that works purely probabilistically, by histograms: you feed it a document, it tallies the trigraphs, and any trigraph that appears only rarely is flagged as a likely typo. This approach lets through unknown-but-realistic words like "antithematory" while flagging unrealistic words like "prisencolinensinainciusol" (because of its unlikely "ciu" and "ius" clusters) and "antthemaory" (because of "ntt" and "aor").

To make this approach work better, feed it a bunch of English text (or whatever language your document is in) before the document you really want to "spellcheck."

Essentially this isn't a spell "checker" so much as a spell "linter" — it looks for antipatterns statistically associated with bugs, and reports the patterns for further investigation.

If anyone knows where this trigraph-based "spellchecker" was first presented, I'd love to find out again.

quuxplusone··on Shakespeare’s World – I thought this would be simple but
> Likewise "Russia" is shown in Siberia, but everyone in Russia lives near the European borders thousands of km west.

Yes, and "Love's Labour's Lost" specifically pairs/ contrasts "Russians" with "Muscovites": the "Russia" of St Petersburg is pretty far west of "Moscow."

quuxplusone··on Shakespeare’s World – I thought this would be simple but
A lot of that is bias from the fact the whole map was vibed/hallucinated by an LLM instead of just sourced from (what I'm sure are many) concordances of Shakespeare's works.

For example, "The Tempest" famously mentions the "Bermoothes" (Bermuda), but that's not included in this LLM's output for some reason. Any decent subject-index of Shakespeare would include it.

quuxplusone··on Letter from the Duke of Wellington to the British Foreign Office (1809)
Yes (I think). In this particular case I believe you could also say he was created duke (since he was the first Duke of Wellington); I think one would have to say that the second Duke of Wellington succeeded to the dukedom.
quuxplusone··on My new obsession: A horse-racing board game of pure luck
If we're listing modern games vaguely similar to this, we can't let the thread go without mentioning the fantastically entertaining (yet _mostly_ random) "Hot Streak" (2025)!

https://boardgamegeek.com/boardgame/446497/hot-streak

quuxplusone··on Snuffleupagus, a newly described species, is an adorable little predator
See also: https://en.wikipedia.org/wiki/Hensonbatrachus (Hensonbatrachus kermiti)
quuxplusone··on Solving the “Zork” Mystery
TBF, text adventures absolutely "sprinkle dopamine rewards all over the place." The random-reinforcement effect is a big part of their appeal — as a player, you never quite know if you've seen "all the good stuff" yet.

WOOD0350: Did you try using the bird on the dragon? PLAT0550: Did you try going back across the troll bridge after tricking the troll? HHGTTG: Did you CONSULT GUIDE ABOUT everything you found? Frog Fractions: Did you try SCORE? Did you try applying every verb to MYSELF?

quuxplusone··on sp.h: Fixing C by giving it a high quality, ultra portable standard library
The "definition of a heap allocation interface" indicates that there is no standard heap. Instead, there's a standard interface for the use to define their own heaps. Any standard library function that needs to allocate will take a sp_allocator_t parameter, and use that to allocate. As opposed to e.g. strdup, which hard-codes a call to malloc internally. Sp.h's strdup-alike would take an sp_allocator_t as input and call into that to get the memory it needs.

A C++ programmer might describe this as "PMR, but not default-constructible. And std::stable_sort takes a PMR allocator parameter. And PMR is the default, and there's no implementation of std::allocator (or new or delete)."

quuxplusone··on What Is Date:Italy?
Yeah, but I took the parent comment as a non-rhetorical question. Say you were one of these "MORE attuned" people of the past: how long [literally] do you think it would take you to notice that the calendar was drifting? Like, if the calendar says the equinox should be on Monday, but in fact it's actually technically more like Tuesday, would you notice? What if it was technically on Wednesday?

If the rate of drift was like 5 days per year, then sure, people'd probably notice in a year or two — three tops, right? But how fast would the drift be? It's a question about how much people can detect small changes in daylight and how big the change actually is.

I also observe that we put up with tons of drift in our months: the new moon is hardly ever on the first of the month! And that's really easy to detect (within a day or two). So maybe people would notice a drift relative to the seasonal cycle and just not mind, the way we don't mind a drift relative to the lunar cycle.

quuxplusone··on Math Jokes in Alice in Wonderland
To paraphrase Tom Lehrer: Base 18 is just like base 20... if you're missing two toes!

At least that mathematical interpretation does hold up logically all the way to the punch line (even if the interpretation wasn't obviously intended by Carroll). The following section on the Tea Party is just nonsensical slop.

quuxplusone··on Linux security mailing list 'almost unmanageable'
The issue highlighted in Linus's message isn't that the LLM is hallucinating fake bugs; it's that 100 people running the same LLM on the same codebase find the same real bug 100 times, and if they all send it to the private security mailing list, it's (1) unmanageably high volume and (2) stupid security theater [because by definition any bad actor with the same LLM would find that bug — it's effectively public at that point].
quuxplusone··on The Adventure Family Tree (2024)
Are you talking about the Volcano View? ("You are on the edge of a breath-taking view. Far below you is an active volcano, from which great gouts of molten lava come surging out, cascading back down into the depths. The glowing rock fills the farthest reaches of the cavern with a blood-red glare...")

Or did you and your friend also add the lava room? Or (this would be the really interesting case, family-tree-wise) was there already a lava room present in your version?

I can't immediately think of a lava obstacle in any version. (Well, the volcanic rift in GOET0580 and IIRC the very endgame of ROBE0665, in a sense. And the Volcano View is crossable in PLAT0550 and its descendants.)

Infocom's "Hitchhiker's Guide to the Galaxy" (1984) includes an object named "no tea", which is in your inventory for much of the game.

quuxplusone··on Boris Cherny: TI-83 Plus Basic Programming Tutorial (2004)
That wasn't "leaking stack memory" except in a very literal sense: the BASIC language keeps a stack of the control structures you're inside, so that when you hit an "End" or "Else" statement it knows where to go next. This "stack" of control structures isn't lexically scoped; it's dynamic, based on what control flow commands you've hit. So yes, if you use "Goto" to set up a situation where you're hitting "Then" over and over without ever hitting a corresponding "Else" or "End", the control flow stack will just keep getting deeper and deeper. That's not a "leak" per se: all those "Then" structures are still there, waiting for their "End"s, and will do the natural thing if you give their "End"s to them — even somewhere someone used to lexically scoped languages wouldn't expect. Sometimes you can do cool things with this.

See subsection 2.1 in https://www.ticalc.org/archives/files/fileinfo/145/14542.htm...

(I should add that the first image on that page shows one neat effect of non-lexicality: you can put an "Else" statement as the body of an "If", so that it's skipped when the "If"'s condition is false.)

← PreviousPage 3 of 14Next →