HNHacker News
TopNewBestAskShowJobs

codeflo

9,664 karma · joined June 14, 2010

submissionscomments
codeflo··on Why English doesn't use accents
> It has a massive phonemic inventory, with 44 unique items. Compare with Spanish's 24, or German's 25.

I'm not sure where you're getting these numbers from, but German has around 45 phonemes according to all sources I could find, depending on how you count: 17 vowels (including two different schwa sounds), 3 diphthongs, 25 consonants.

codeflo··on Speeding up PostgreSQL dump/restore snapshots
Or btrfs. I also think that filesystem snapshots are underrated backup strategy, assuming your data fits on one disk (which should be the case for almost all applications outside of FAANG).
codeflo··on Is there a half-life for the success rates of AI agents?
I wonder to what extent this might be a case where the base model (the pure token prediction model without RLHF) is "taking over". This is a bit tongue-in-cheek, but if you see a chat protocol where an assistant makes 15 random wrong suggestions, the most likely continuation has to be yet another wrong suggestion.

People have also been reporting that ChatGPT's new "memory" feature is poisoning their context. But context is also useful. I think AI companies will have to put a lot of engineering effort into keeping those LLMs on the happy path even with larger and larger contexts.

codeflo··on Peano arithmetic is enough, because Peano arithmetic encodes computation
I also like the recursion. In essence, you're making a meta-proof about what PA proves, and given that you trust PA, you also trust this meta-proof.

> I think just PA+"PA is consistent" is enough?

It's not clear to me how. I believe PA+"PA is consistent" would allow a model where Goodstein's theorem is true for the standard natural numbers, but that also contains some nonstandard integer N for which Goodstein's theorem is false. I think that's exactly the case that's ruled out by the stronger statement of ω-consistency.

codeflo··on The Illusion of “The Illusion of Thinking”
I'm seriously fed up with all this fact-free AI hype. Whenever an LLM regurgitates training data, it's heralded as the coming of AGI. Whenever it's shown that they can't solve any novel problem, the research is in bad faith (but please make sure to publish the questions so that the next model version can solve them -- of course completely by chance).

Here's a quote from the article:

> How many humans can sit down and correctly work out a thousand Tower of Hanoi steps? There are definitely many humans who could do this. But there are also many humans who can’t. Do those humans not have the ability to reason? Of course they do! They just don’t have the conscientiousness and patience required to correctly go through a thousand iterations of the algorithm by hand. (Footnote: I would like to sit down all the people who are smugly tweeting about this with a pen and paper and get them to produce every solution step for ten-disk Tower of Hanoi.)

In case someone imagines that fancy recursive reasoning is necessary to solve the Towers of Hanoi, here's the algorithm to move 10 (or any even number of) disks from peg A to peg C:

1. Move one disk from peg A to peg B or vice versa, whichever move is legal.

2. Move one disk from peg A to peg C or vice versa, whichever move is legal.

3. Move one disk from peg B to peg C or vice versa, whichever move is legal.

4. Goto 1.

Second-graders can follow that, if motivated enough.

There's now constant, nonstop, obnoxious shouting on every channel about how these AI models have solved the Turing test (one wonders just how stupid these "evaluators" were), are at the level of junior devs (LOL), and actually already have "PhD level" reasoning capabilities.

I don't know who is supposed to be fooled -- we have access to these things, we can try them. One can easily knock out any latest version of GPT-PhD-level-model-of-the-week with a trivial question. Nothing fundamentally changed about that since GPT-2.

The hype and the observable reality are now so far apart that one really has to wonder: Are people this easily gullible? Or do so many people in tech benefit from the hype train that they don't want to rain on the parade?

codeflo··on Precious Plastic is in trouble
I can't shake the feeling that this a dream that was pursued by people who (at least for a time) didn't need the income, and not technology that was under any pressure to actually work. Something like a lifestyle business, but in this case, maybe a lifestyle charity.

The article is full of "community" this and "local people" that, and very low on details. The little that is there raises red flags. For example: The fact that their rented machine shop had to close down is given as an explanation for them having to sell all their machines below cost and then not having the money to buy the machines back when they found a new place. That doesn't add up: temporary storage spaces exist and aren't even expensive, given that you can choose a remote location. It seems like a crucial detail was left out, maybe one that would paint them in a bad light.

I gather that they sell (apparently unsafe?) wood chippers, presses and some injection moulds, probably at cost. I don't understand what else is there. The "version 4" release thing mentioned in the article might be their open-source "academy" [1, 2] that's supposed to teach you how to start your local recycling shop. It includes valuable tips like "add all your expenses" and "don't forget to include taxes" and comes complete with an empty Excel sheet -- I'm sorry, a "Business Calculator". No commits since 2020, so the "version 5" of this guide that they claim to have been working on for five years must be hosted somewhere on a private GitHub fork instead. I'm sure it's awesome. Best of luck.

[1] https://community.preciousplastic.com/academy/business/works...

[2] https://github.com/ONEARMY/precious-plastic-kit

codeflo··on Space is not a wall: toward a less architectural level design
> have an NPC brief the player on how to find the level exit

No, please, no.

codeflo··on Lune: Standalone Luau Runtime
It isn’t, arguably easier than installing Go (no GOPATH). Rust compile times are really slow compared to Zig or Go though.

(Edit: As this seems to trigger some people: I code in Rust. I’m just stating the facts.)

codeflo··on Writing into Uninitialized Buffers in Rust
I don’t get the difference. In both C and Rust you can have pointers to uninitialized memory. In both languages, you can’t use them except in very specific circumstances (which are AFAIK identical).

There are two actual differences in this regard: C pointers are more ergonomic than Rust pointers. And Rust has an additional feature called references, which enable a lot more aggressive compiler optimizations, but which have the restriction that you can’t have a reference to uninitialized memory.

codeflo··on Zod 4
Is there any advantage to this approach over publishing a separate "zod4" package? That would be just as opt-in and incremental, not bloat download sizes forever, and make it easier to not accidentally import the wrong thing.
codeflo··on Flattening Rust’s learning curve
That's not explaining ownership, that motivating it. Which is fine. The thing that's hard to explain and learn is how to read function signatures involving <'a, 'b>(...) -> &'a [&'b str] or whatever. And how to understand and fix the compiler errors in code calling such a function.
codeflo··on Stability by Design
This is an issue that plagues modern open-source libraries in general, but the ones you mention, Winit and Wgpu, are particularly awful examples of this disease. Winit turning the event loop inside out might have had a reason on some platform, though I don't see why the old API couldn't have been supported anymore. Both projects frequently shuffle around their data structures with no rhyme or reason. Everything built on top of them breaks all the time, for tiny perceived gains in naming consistency. I think your suggested term "refuckering" is indeed a nice way to put it.
codeflo··on A Pixel Is Not a Little Square (1995) [pdf]
As I said,

>> It was home consoles on televisions where people get the idea from that all CRTs were blurry.

The video you linked shows a PS1 game, which proves my point. It's possible you're too young to remember the big difference between a CRT TV and a CRT monitor. Monitors really did show discrete pixels (which was important for tiny text in applications to be readable), while TVs were blurry messes.

codeflo··on A Pixel Is Not a Little Square (1995) [pdf]
To quote my post that you reply to, it's

> a bad approximation that can only result in unnecessarily blurry images

codeflo··on A Pixel Is Not a Little Square (1995) [pdf]
> I don't think it has anything to do with display technologies though.

I think your two examples nicely illustrate that it's all about the display technology.

> The computer is running a service that is resizing images from 100x100 pixels to 200x200 pixels. Would the programmer of this server be better off thinking in terms of samples or rectangular subdivisions of a display?

That entirely depends on how the resizing is done. Usually people choose nearest neighbor in scenarios like that to be faithful to the original 100x100 display, and to keep the images sharp. This treats the pixels as squares, which means the programmer should do so as well.

> Alvy Ray Smith, the author of this paper, was coming from the background of developing Renderman for Pixar.

That's meaningful context. I'm sure that in 1995, Pixar movies were exposed onto analog film before being shown in theatres. I'm almost certain this process didn't preserve sharp pixels, so "pixels aren't squares" was perhaps literally true for this technology.

codeflo··on A Pixel Is Not a Little Square (1995) [pdf]
Good PC monitors (especially in 1995) displayed pixels as almost perfect discrete squares. It was home consoles on televisions where people get the idea from that all CRTs were blurry.
codeflo··on A Pixel Is Not a Little Square (1995) [pdf]
This classic article is wrong, BTW, there's no nicer way to put it. It applies the wrong theory. It was already wrong in 1995 when monitors where CRTs, and it's way wrong in 2025 in the LCD/OLED era where pixels are truly discrete.

Audio samples are point samples (usually). This is nice, because there's a whole theory on how to upsample point samples without loss of information. But more importantly, this theory works because it matches how your playback hardware functions (for both analog and digital reasons that I won't go into).

Pixels, however, are actually displayed by the hardware as little physical rectangles. Take a magnifying glass and check. Treating them as points is a bad approximation that can only result in unnecessarily blurry images.

I have no idea why this article is quoted so often. Maybe "everybody is doing it wrong" is just a popular article genre. Maybe not everyone is familiar enough with sampling theory to know exactly why it works in audio (to see why those reasons don't apply to graphics).

codeflo··on The movie mistake mystery from "Revenge of the Sith"
Ah, the prequels, famous for their kid-friendly themes like senatorial debates and child murder. Nostalgia is a powerful drug, but I think there are objective ways in which the originals were more competently made than the prequels were that are not explained by the "boomers vs. millenials vs. zoomers" nostalgia angle that you suggest.
codeflo··on Welcome to the Era of Experience [pdf]
Just to be clear, that "speed-up" is not a good thing: Those 100 years were a lot less deadly in total. The World Wars were even shorter and much deadlier still. A possible next full-blown conflict between major powers will only last hours -- and end civilization.
codeflo··on The movie mistake mystery from "Revenge of the Sith"
Looking at the green screen shots of that Mustafar fight in Episode III: If that was the actual lighting of the in-camera scene, then it's not a mystery at all that everything in that movie looked so fake.
codeflo··on Welcome to the Era of Experience [pdf]
Amplifying stupid can be very deadly, though. In some sense, the printing press caused the 30-year war, and radio brought us World War II. Eventually, society will adapt. I just wish we could find a way to adapt faster than the bad actors do.
codeflo··on Item Flow, Part 1: A new unified concept for layout
Can't wait to learn the three-letter Tailwind names for these things!
codeflo··on Powers of 2 with all even digits
It's actually very clear, and there's nothing wrong with admitting you're unfamiliar with the terminology, we all were at some point.
codeflo··on Powers of 2 with all even digits
Everything about this seems so arbitrary. You look at the powers of an arbitrary number (here, 2), you pick an arbitrary base (here, 10) in which to express those powers, and ask for a random property of its digits (whether they belong to the set {0,2,4,6,8}).

Nothing about this question feels natural. I've noticed that random facts often don't have simple proofs.

codeflo··on GPT-4.5
> Motte: "They got caught getting benchmark data under the table"

> Bailey: "one is free to trust their "verbal agreement" that they did not train their models on that, but access they did have."

1. You’re confusing motte and bailey.

2. Those statements are logically identical.

codeflo··on How (not) to sign a JSON object (2019)
I have a feeling that idea 2 is a recipe for disaster:

> Add the tag and the exact string you signed to the object, validate the signature and then validate that the JSON object is the same as the one you got.

In cryptographic practice, redundant information usually spells disaster, because inevitably, someone will use the copy that wasn't verified.

But let's dig into it. If I understand this correctly, the suggestion is to have something like this:

    {
        "object": "with",
        "some": "properties",

        "signatureInfo": {
            "signedString": "{\"object\":\"with\",\"some\":\"properties\"}",
            "signature": "... base64-encoded-signature ..."
        }
    }
It's mentioned that "the downside is your messages are about twice the size that they need to be". In my opinion, this scheme is pointless. To verify "the JSON object is the same as the one you got", you have to do what?

1. Parse the outer object as JSON, extract and remove signatureInfo.

2. Verify the signature.

3. Parse the signedString as JSON.

4. Verify that the object you got in step 1 equal to object you got in step 3 using a some kind of deep equality.

First of all, this is error prone, and as underspecified as JSON is, there are potential exploits if the comparison isn't done carefully. But even worse, if you think about it, the outer JSON is entirely useless, since you need to parse the inner JSON anyway -- so why not just use it directly?

It seems to me that this suggestion is strictly worse than just sending the inner part:

    {
        "signedString": "{\"object\":\"with\",\"some\":\"properties\"}",
        "signature": "... base64-encoded-signature ..."
    }
Yes, it's no longer "in-band", but I don't think it was really in-band before, it was just out-of-band with an outer layer of redundant information.
codeflo··on JavaScript Temporal Is Coming
At first glance, this seems to be in the JodaTime/NodaTime/Js-Joda tradition of representing different "granularities" of date and time information with distinct types, e.g. with and without timezone information. I'm not sure if there's a formal relationship, since this seems to use different names.

I personally like that approach, but I'm not sure how much sense that makes without static typing. (Maybe TypeScript is established enough that JavaScript APIs are now designed with TypeScript in mind?)

From experience with js-joda, there's a definitely learning curve compared to moment's "one size fits all" type for all things date related. But I found that a lot of stupid mistakes of the kind "a person's age is wrong for an hour after midnight during daylight savings time" are prevented by default.

codeflo··on Astronomers delete asteroid because it turned out to be Tesla Roadster
That would be great. Instead, we got an article vaguely demanding "transparency" for "untracked" objects, when the motivating example for the article is an object that was actually very well tracked and was launched with millions of witnesses live on stream.
codeflo··on Luck Be a Landlord Might Be Banned from Google Play
I think that's exactly the point. And maybe from a business perspective, that's the correct (if cynical) decision -- the behavior of "activist" groups and/or public outrage seems to be driven purely by optics and screenshots, not substance.
codeflo··on Colliding with the SHA prefix of Linux's initial Git commit
What's your point?
← PreviousPage 4 of 34Next →