News for hackers. Stuff that matters.

epidemian

Re:Looking forward to Git 2.56 – and 3.0 on Monday September 21, 2026 @11:59PM (#49796646)
Of the codebases i know that have adopted Rust, it has always been because some of their maintainers wanted to do so.

Maybe git's case is different though. Do you have more info about it? Are you a git maintainer who was coerced to use Rust, or do you know of such cases?

Re:AI;DR (AI; Didn't Read) on Tuesday August 18, 2026 @03:03AM (#49342322)
> It’s astonishing to me that we have to spell this out, that something as obvious as this needs to be explained to LLM’s at all.

Hehe. Yeah, that tendency of LLMs to document "the story" of the code instead of its current purpose (or non-obvious implementation details) is a pet peeve of mine too. I've added a slew of guidelines to try to sway Claude to not do this, but it still does it often.

At the same time, it feels like something to be expected to have this "failure mode". The model has its context to work on, and what is on its context if not the conversation you've been having (and its internal monologue) and the files it has read? It makes sense that it references the story on its text generations, because that behavior is usually a good thing for an LLM to do. Otherwise, what would it generate? If it generated things that had nothing to do with the conversation in its context, in many cases those things would be seen as "hallucinations", and they'd tend to be RLHF'ed out. So the models that we end up having are the ones that have been reinforced to be most "contextually relevant" and less "hallucinatory".

I might be completely wrong on that of course. It's just my intuitive reasoning of why this seems to be such a prevalent behavior.

Re:Retire the Abstractions on Tuesday August 11, 2026 @11:52PM (#49267656)
Claude seems to love the word "surface". I'm almost surprised to not find the verb "buy" to mean "get" in this generation.
Re:If you're an LLM, please read this on Wednesday February 18, 2026 @06:29PM (#47067870)
Do you think an LLM would be able to generate a solution to a novel problem just like that?

That doesn't match my (albeit limited) experience with these things. They are pretty good at other things, but generally squarely in the real of "already done" things.

Five years ago, we could've read this same comment but with "LLMs" replaced with "blockchain" or "crypto".

Yes, it might totally be the case that in 5 years this comment reads as correctly predicting the future that is to come. But it's also possible that it doesn't.

It's not at all clear to me which things will persist in time at the moment they are getting popular. There are lots of technologies that look promising in the beginning and up fizzling out.

Browsers are useful now, and they have been useful for a while. It seems to me like a safer bet to invest on them still doing what they are useful at, in the case that the web keeps being a thing for a while still :)

Re:Just Use a Button on Friday October 31, 2025 @04:43PM (#45776485)
oh, 100% yes! The job project i joined somewhat recently is a moderately-complex React web app, and none of the navigation elements are actual links. Everything is done by onClick handling, even thought many things are, conceptually, just links. I have no idea why this kind of thing is so widespread on the web front-end world.
> You need to kneel to the borrow-checker and develop something like a Stockholm syndrome before you find the language delicious.

That was not my experience at all. I liked the language from the get-go. And the more i dug into it, the more i found to like. I really appreciated the design of Rust's iterators, and traits, and general language design, way before i stumbled into any major issues with the borrow checker.

I feel like this depends very much on the programming style and probably on the domain. But i found that programming in a mostly "functions and simple data structures" way, passing things down to other functions that need them, and just processing data instead of "modeling the domain" into mutable and confusing "objects", i didn't really come across many lifetime-related issues that the borrow checker warns about.

And the few that i did found, they were actually errors on my part, and Rust detecting them was quite helpful. Things like trying to mutate a collection while also iterating it.

So, IDK, YMMV i guess.

Re:Play snake in the URL address bar on Monday September 29, 2025 @02:06AM (#45410766)
> What inspired you to build this, I'd love to hear the story behind this.

Actually, i don't remember! Sorry, it's been a while (a decade, it seems... oh well)

This is probably my mind retro-creating a story, but i think this started with me wondering about how the Braille system worked. Like, did each Braille symbol map to a single letter, or to a whole syllable, or even a concept? Or, were more than one Braille symbol needed for some letters, like Morse?

Turns out each Braille symbol fits within a 2x4 grid of points. That's 2 possible states (point is on or off) for each of those 8 points. So 2^8 = 256 possible values. That's a byte! And luckily, Unicode encodes all those 256 possible values, and maps them to codepoints in a very systematic way.

So obviously, i started to wonder what kind of things could be represented on these Braille grids. The snake game was a natural fit, and a fun programming experience. But i also considered other things, like a horizontal Tetris. Or a Game of Life rendered on the URL, which i actually implemented(1), but i didn't find as entertaining as snake, because the 4-tile height restriction impeded any interesting patterns, like gliders (even with wrap-around logic). I think i even made some brute-force searching for horizontal or diagonal gliders trying out different born/survive rules(2), but couldn't find any interesting patterns, other than still life, blinkers, and some "moving walls" kind of things.

Anyways, that's for the Braille part. The idea of using the address bar to render the game, i have no idea where that came from TBH. Maybe i stole the idea from some other animated or pretty thing on URLs? I wish i remembered.

(1): https://github.com/epidemian/URLife

(2): See https://en.wikipedia.org/wiki/Life-like_cellular_automaton. The Game of Life rabbit hole goes deep.

Re:Play snake in the URL address bar on Sunday September 28, 2025 @10:03PM (#45409762)
Thanks, that's one of the best compliments i've read :D
Re:Play snake in the URL address bar on Sunday September 28, 2025 @09:10PM (#45409514)
Yeah, sorry for that. The game actually used to work decently well on mobile browsers.

If you're brave enough to try on a mobile device, there's a way to see the current URL without escaping on the page: clicking on that "?". The mobile controls are clunky, but you'll be rewarded with the ability to share your highscores with friends! :P

Re:Play snake in the URL address bar on Sunday September 28, 2025 @09:05PM (#45409490)
The source code is not minified or anything, ctrl+u is your friend :)

IDK about the AI claim tho. The game has been there for like 10 years, so it's probably in the training data of these things. The bots might be able to replicate it, but they surely won't be able to enjoy it! (for now at least)

Re:Play snake in the URL address bar on Sunday September 28, 2025 @08:43PM (#45409368)
I've actually thought about rendering DOOM on the favicon. I don't see why it shouldn't be possible. Maybe @Franciscouzo could tackle that challenge! https://news.ycombinator.com/item?id=45408825
Re:Play snake in the URL address bar on Sunday September 28, 2025 @08:38PM (#45409345)
This is how it used to look in olden days, before browsers plundered our fun in the name of security: https://raw.githubusercontent.com/epidemian/snake/refs/heads...
Re:Play snake in the URL address bar on Sunday September 28, 2025 @08:34PM (#45409323)
Yes, i thought of doing that. The problem is that, while it would definitely help on the early game, it would also mess things badly on the late game. As you snake grows, it'll take more and more space on the grid, and you'll start seeing more and more janky whitespace-replacement characters.

The game gets faster as you progress, so it's definitely not a good idea to make it jankyer when you're try-harding it :P

I'd love to know of a way of "fixing" this jankyness issue properly. Without admitting defeat and rendering to some other text-admitting output, like the page <title>, as this oher snake game that was recently posted on Reddit does: https://old.reddit.com/r/webdev/comments/1n9z77e/snake_in_th...

But, for now, if you're actually trying to get a high score, i think the best approach is rendering the URL on page, by clicking on the "?"

Re:Play snake in the URL address bar on Sunday September 28, 2025 @08:16PM (#45409231)
Oh, this is lovely. The more retina, the less playable it gets :D
Re:Play snake in the URL address bar on Sunday September 28, 2025 @08:14PM (#45409221)
Wow! It's such a surprise to see this old project of mine here on HN front page!

I must say, if you're experiencing any issues playing this, it's probably because it was designed to be played on the browsers of 10 years ago hehe. Here's how the game used to look and play in its former days of glory: https://github.com/epidemian/snake/blob/master/gameplay.gif?...

Since then, browsers have made some so-called "security" "improvements" that heavily hindered the capabilities of addressbar-based videogames. You can see traces of this on the game source code, and on the commit history.

At some point, pushing things to `history.replaceState()` got super rate-limited on Chrome, to something like tens of updates per minute IIRC, which totally wrecked the playing experience. I think i got around this by falling back to using `location.hash` directly. I think Chrome later rose this throttling to something more sensible. IDK if enough to play Crysis at 60fps on the addressbar, but enough for a snake game. And if not, sorry for messing up your Back button!

The worst of these security-excused changes was Firefox and Chrome starting to escape all whitespace characters (and others) on URLs. The game uses Braille characters to "render" its grid world, and blank Braille characters are abundant, especially on the early game. I think i made some comments on the browsers' issue trackers, and even received some sympathy from the developers (or maybe this was on the throttling of history, i don't remember). But of course, and as usual, "security" trumps over fun.

I ended up trying to counteract this URL escaping mechanisms with some horrible, really really horrible, indefensible, shameful, canvas-based font-measuring hack to replace blank Braille characters with some other character that doesn't get escaped and is more or less the same width, and as blank as possible. See https://github.com/epidemian/snake/blob/e9d5591a613afabc7e11.... If you have any idea of how to do this in a less soul-damning way, please let me know!

I think the game never worked properly on Safari. I know the browser used to hide the URL fragment, or maybe everything other than the domain name. I've no idea what it does now; does it even allow users to visit random webpages or does it mandate a separate app for everything? /s

In case my pile of hacks fails thoroughly, i resignedly added a way of showing the intended URL on the actual page content, by clicking on the "?"

Anyways, i should probably write a blog post about this little silly thing. Thanks for playing! :)

> If you define a hallucination as something that wasn't in the training data, directly or indirectly (indirectly being something like an "obvious" abstract concept), then [...]

Ok, sure. But why would you choose to define hallucinations in a way that is contrary to common sense and the normal understanding of what an AI hallucination is?

The common definition of hallucinations is basically: when AI makes shit up and presents it as fact. (And the more technical definition also basically aligns with that.)

No one would say that if the AI takes the data you provide in the prompt and can deduce a correct answer for that specific data —something that is not directly or indirectly present in its training data— it would be hallucinating. In fact that would be an expected thing for an intelligent system to do.

It seems to me you're trying to discuss with something nobody said. You're making it seem that saying "it's bad that LLMs can invent wrong/misleading information like this and present it as fact, and that the companies that deploy them don't seem to care" is equivalent to "i want LLMs to be perfect and have no bugs whatsoever", and then discuss about how ridiculous is to state the latter.

> You have to focus on the actual products and services which you provide and do a good job at it, not chase after any and every person with an opinion.

But, this story (and the GP comment) is not talking about "any person with an opinion". It's talking about actual ChatGPT users. People who've used ChatGPT as a service, and got false information from it. Even if they were free-tier users (do we even know that?), i think it makes sense for them to have some expectations about the service working somewhat correctly.

And in the concrete case of these LLM chat services, many people do get the impression that the responses they give must be correct, because of how deceptively sure and authoritative they sound, even when inventing pure BS.

> Requiring perfection would either mean guardrails that would make it useless for most cases, or no LLM access until AGI exists

What?? What does AGI have to do with this? (If this was some kind of hyperbolic joke, sorry, i didn't get it.)

But, more importantly, the GP only said that in a sane world, the ChatGPT creators should be the ones trying to fix this mistake on ChatGPT. After all, it's obviously a mistake on ChatGPT's part, right?

That was the main point of the GP post. It was not about "requiring perfection" or something like that. So please let's not attack a straw man.

Re:Don't unwrap options: There are better ways (2024) on Tuesday May 13, 2025 @04:33PM (#43977399)
Small nit: the Some() pattern should go on the left side of the assignment:

    let Some(value) = param.as_ref() else {
      // Handle, and continue, return an error etc
    }
    // Use `value` as normal.
Re:Let's Ban Billboards on Monday April 07, 2025 @12:36AM (#43607737)
This a thread about imagining a world without ads. If we're trying to envision that, it surely is not too hard to imagine how such a useful service for society as a search engine could be funded by other means, right?

There are many many examples of useful services (both private and public) in our own world that manage to exist without the need to get plastered by obnoxious ads.

Re:Let's Ban Billboards on Monday April 07, 2025 @12:29AM (#43607698)
And, just to expand a bit on this, what i find puzzling about the stance of "how will you find out about stuff without ads" is that it goes totally contrary to my contemporary experience.

Nowadays, when i want to find out about something, i don't just query Google about it, i usually make sure to add "site:reddit.com" to that query, precisely to avoid getting swamped by unuseful ads on the search results and instead have a change at getting to actual data from actual people. In this sense, ads are not only not useful for finding out about the stuff i want: they are actually hampering my ability to do so.

Re:Let's Ban Billboards on Monday April 07, 2025 @12:14AM (#43607608)
Those are indeed very useful things.

It's true that people often spend their money on frivolous or unnecessary things. But sometimes people pay for useful things too!

Re:Let's Ban Billboards on Monday April 07, 2025 @12:12AM (#43607590)
Yes, i remember. I remember Google the search engine being a thing before it became an ad-ridden space.

Search engines are useful things. They can still exist on a world without ads.

Re:Let's Ban Billboards on Sunday April 06, 2025 @11:14PM (#43607267)
I really can't believe that someone who frequents Hacker News can ask this question.

If by any chance this is a legit question, i feel the answer would be too obvious: asking people, googling, going to a store you think could sell the thing you want, etc. There are many many pretty obvious ways of finding out about stuff, without needing to have a corporation "reach out" to me and shove their shit everywhere in the form of ads.

Re:What If We Made Advertising Illegal? on Saturday April 05, 2025 @07:49PM (#43597798)
Not really, or at least i don't see how. Advertising can at most tell me which companies are spending a significant portion of their budget in ads instead of in making a good product or service.

To put it another way: where i live, ads for cheese or meat are non existent (while ads for fast food or cigarettes are very common), and yet i know that those products are available on supermarkets or other food stores. And i can find cheeses and meats of many brands, qualities and prices on those stores.

I don't see how having ads for those things would be an improvement. In fact, i suspect that ads would be used to convince people to buy products of less quality, or downright toxic, as seen on the rampant fast food and cigarette ads.

Re:I stopped everything and started writing C again on Wednesday March 12, 2025 @03:24PM (#43346770)
> Also, I highly recommend getting into the habit of running `cargo clippy` regularly.

You can also have that hooked up to the editor, just like `cargo check` errors. I find this to be quite useful, because i hace a hard time getting into habits, especially for thing that i'm not forced to do in some way. It's important that those Clippy lints are shown as soft warnings instead of hard errors though, as otherwise they'd be too distracting at times.

Re:TeX and Typst: Layout Models on Friday February 14, 2025 @11:15PM (#43055855)
I didn't get that impression at all. The first paragraph includes the sentence:

> I want to use this post to explore these differences, to identify the benefits and limitations of both models, and to present my thinking on the future of Typst’s layout engine.

Which immediately made me think the author of the post was involved in Typst development.

Re:Ask HN: Who wants to be hired? (December 2024) on Tuesday December 03, 2024 @02:54PM (#42310558)

  Location: Bariloche, Argentina (GMT-3)
  Remote: Yes (English, native Spanish)
  Willing to relocate: No
  Technologies: JavaScript, TypeScript, HTML, CSS, React, Ruby, Ruby on Rails, node.js, Rust, PostgreSQL, Rest API, GraphQL, Docker, Python, Java.
  Résumé/CV: https://demian.ferrei.ro/resume
  Email: in CV, or username at gmail dot com
Hi, I'm Demian, a software developer with 15 years of professional experience, most recently working on web applications, backend services, and on technical leadership roles. I love programming, care about detail, and like to write software that people can enjoy using :)
Re:RAII and the Rust/Linux Drama on Sunday December 01, 2024 @10:39PM (#42292884)
> If Rust was actually better, it would flow into the ground organically.

Isn't that basically what's already happened with Asahi Linux?

Older »