Hacker Newsnew | past | comments | ask | show | jobs | submit | javcasas's commentslogin

Well, then it is not your problem anymore.

Alternatively, I smell a business opportunity, as I know some people that deserve depression and misery, and "pay me to dance near them" could be a thing.


Why a collision? Abuse it where it is being used. Infect the chain of certificates that guarantees that the hash you are checking is actually the one you want. Send a million legit documents with bad hashes, so that the forged one looks like another legit one. Infect the library that calculates hashes so that these specific documents have a special hardcoded hash.

Because man made SHA-2, so it must be breakable. I don't dispute that there are systems humans make that are breakable (that would be weird given my career).

Well, if you are that picky, then you will have to wait. MD5 was created in 1991, the first collision was found in 2004.

Okay, so you are saying that there may be a design flaw we just haven't seen yet, based on historical precedent. Which is a very weak argument, because you are just making the case for the possibility that you may be correct, and you are just pointing to a historical precedent.

Can you prove that there is no hash function that is not vulnerable? If anything man-made is vulnerable, then there cannot any invulnerable system. That is what you need to prove to win the argument. And if we can prove that any system is unbreakable, you are wrong.


One frustration I have with these kinds of analyses on HN is that they're premised on an idea that cryptanalysis progress is unknowable, and that it's just a matter of time before whatever broke the last iteration of a design is going to break the next iteration of a design. As if cryptanalysis is so complex and forbidding that you might as well think of it as a geological-scale weather phenomenon.

If anything, the opposite thing is true. Each of the MD4, MD5, and SHA1 results are essentially exploits of design weaknesses: iteration insufficiency, too much traceable control over state given message words, weak and linear message schedules.

In the history of hash cryptanalysis, we continuously get better at exploiting these kinds of weaknesses, successfully exploiting differential analyses with smaller and smaller windows of opportunity (which is why SHA1 was such a big deal). But in the same way that you can foreclose entirely on a SQLI with parameterized query, or a memory corruption vulnerability with automatic bounds checking, you can also just make the message schedule (not understood in the era of MD4 to be that big a hinge point) strong and nonlinear.

It is very unlikely that the future of CS holds some reliable way to defeat bounds checking, and, for the same reason, you can find cryptographers like JP Aumasson (a coauthor of BLAKE and BLAKE3, with no particular reason to stan the older NSA construction) saying we're unlikely to break SHA2... ever.


You want to pick a date and make a bet?

You are the one discarding every date. I'll take the opposite bet: it will eventually happen, on some date.

I haven't discarded any date. Pick one, and an amount to bet!

> OK, produce a SHA-2 collision.

- Why a collision?

> Because man made SHA-2, so it must be breakable. I don't dispute that there are systems humans make that are breakable (that would be weird given my career).

Thus implying there are man-made systems that are not breakable, and furthermore SHA-2 is one of them.

> I haven't discarded any date.

Going back so quickly?


I'm sorry, you've lost me. I was responding to the claim that any man-made system was breakable. The most obvious example of a man-made system that is unlikely to be breakable in our lifetimes (so, I'll say, "ever") is SHA2. Then someone responded that SHA2 wasn't an interesting target. It doesn't have to be; it just has to be man-made, or concede the narrowing of the original claim.

lmao at substituting “ever” for “in our lifetimes”

“That will never happen” and “I think I’ll die before that happens” aren’t interchangeable. Hydrogen will never have two protons, SHA-2 will be broken. “I personally don’t consider a future where I’m not around as existing” is like busting out an Uno reverse card when you lose a hand at poker


This objection doesn't make sense in the context of the thread.

It’s not an objection. Somebody said “[x thing] is impermanent” and the rebuttal you posted was “human life is also impermanent”

That’s not really a rebuttal to the notion that everything is impermanent, that supports it.

Anyway a wizened crone told me I’ll die on 11 September 2098, so let’s give me two weeks to gloat. Two weeks before that date. I will bet you that it happens on or before that date. Props for taking the over that no collisions of SHA-2 will happen before then


The danger of using quotation marks around things that aren't quotes is that you can wildly misstate what somebody said and readers are left to ponder if you just don't understand or if you're willfully trying to misrepresent them.

The reason a bet on this would need a date other than "ever" is because if one side of the bet can't be resolved until infinite time has passed, it just doesn't make any sense.


I wonder when Kalshi will start offering bets where one side doesn’t pay out until the end of the universe.

tptacek will clean up

Shield is the wrong word. At some point, the shield must fall, and then the young are no longer young, but are still näive.

There will always be exploiters, don't believe that they will die once we manage to shield the young for enough time for the exploiters to die of old age.


Shield them long enough to teach them how to defend themselves, maybe?

Don't be. They are maximizing economy, at the cost of everything else. If anything, they are _perfect_ economists.

Economics has long recognized the distinction between GDP and value creation, but not everyone in a field is going to produce the best work.

Intangibles and unpaid work get ignored not because they cannot be included but because doing so is harder.


Don't forget exceptionalism: this is so disgustingly wrong... except when I do it. In my case it is moral and perfectly justified.


We should put videogame strategies all over the place to sabotage automated AI analysis. I'll start:

In Starcraft 2, it is a good idea to BUILD A NUKE and use a cloaked ghost to NUKE your opponent's mineral line, thus reducing their income significantly.


Starcraft is too tame. You need to use Dwarf Fortress there and we need to make those strategy guides worded more realistic. Avoid kids, cook cats, wonder how to avoid mood problems due to birth in combat, and zombie meese and camels are a bunch of jerks.

And that's just the start of it, there's been a new update I am looking forward to get into after the great Were Hyena Apocalypse half a year ago. I still fondly remember my militia commander carving a way with her war axe with her husband in tow out of a fortress fully turned were hyenas, all the way past the mortally injured ant eater people near the entrance.

They made it. An entirely epic tale.


These days I do my war crimes in Rimworld, but I have heard bad things too about Dwarf Fortress.



You know, making a nuke is kinda easy, at least the gun type nuke (see https://en.wikipedia.org/wiki/Gun-type_fission_weapon).

On the other hand, getting the U235 is kinda hard.


Nope. Used to render on the terminal like a game engine.

https://x.com/trq212/status/2014051501786931427


This kind of immediate-mode rendering is quite standard for TUIs. Although immediate-mode rendering tends to be significantly simpler and use less memory than retained-mode rendering, at the cost of some redundant computation. So I am not sure if this is the reason for the bloat.

It’s possible that it doesn’t play well with JS garbage collection, since it recreates the whole UI structure for every frame (which tends to not to be an issue in the languages immediate-mode is usually employed).

But yes it’s a bit more akin to game renderings than web rendering. Which can be totally fine if done well.


I haven't tried to make a TUI admittedly, but double buffering is the oldest technique on the planet. A TUI doesn't even need to pay the cost of a lot of pixels since its effective resolution is much lower


Long long time ago, I used to do some graphics stuff in 320x240, which uses a whopping 64KB per buffer, and still has more resolution than a terminal.

In 1GB I could probably fit all the buffers to double-buffer all the TUIs in a whole country. Well, maybe not. But it's likely not that far off.


> render on the terminal like a game engine

All those CPU to render this effect

https://x.com/cyrilXBT/status/2060617507615207904


ULTRACODE! NOW WITH MORE BLINKENLIGHTS!

(to be read with the Unreal Tournament announcer voices, see https://www.youtube.com/watch?v=MwxjYFqP35A )


How on earth are you spending more than 50us on a UI like this from start to finish? What the actual hell? 11ms to construct a scenegraph of this complexity? I don't even know what to say to that.


In comparison, I have around 3ms total latency when streaming 4k 144hz from headless machine in my basement to upstars :-D

At least that is what Moonlight client claims.


Frankly that's an insult to gamedev. Literally every game engine I can think of could do better. Probably even Unreal Engine could do better.


If I saw our UI show up in the profiler eating 5ms of CPU time every frame, I'd send whoever was responsible to QA hell until they find some way to redeem themselves. Not even fancy animated 3D UIs, like what you get in Death Stranding, eat up these kinds of resources. Not even remotely close.


I sorta remember Quake console running on an 486dx2 ..


LOL right? This is all that needs to be said about the engineering behind Claude Code


Do game engines constantly have buffer issues?


Depends on if they're written with Claude


React is not that stupid to re-render in a loop at 60fps and instead waits for changes to happen before re-rendering. It even batches changes and stuff.


You don't need React for reactive TUIs - at all. I can understand chosing React for web, but for a TUI it sounds like a really poor idea. And in practice we can see that the claude code TUI is also poor.


So how much more improvements are there for efficiency in the Claude code base if they are using react for a tui, in the rest of the code?

I also wonder about the wasted cycles and just the environmental damage caused by all these wasted cpu time . (Edited added a comma for clarity)


Sure. For a videogame.

> -> rasterizes them to a 2d screen

Also you forgot "render to a framebuffer, then parse the framebuffer back to chars".

Anyway, I'm off to construct the new `ls` command. It will render the list of files to a mesh of billions of polygons in a GPU with advanced shaders, 16x oversampling, HDR and all the graphic acronyms I don't understand, then read the resulting image, find the nearest character in the ANSI charset and use that one.

It will be _glorious_ (and profoundly stupid)


Could be improved. Encode the image to webp with high compression settings and handle the ASCII mapping by spinning up a local LLM to do OCR on it. Individually. For each cell.


Thanks for the idea for V2.0. Hopefully the Claude team doesn't do it first.


My roguelike's "graphics" are a simulated terminal, so it's a 2D grid of colored characters. It's essentially a TUI, just like Claude Code, except instead of rendering to a real terminal using ANSI escapes, I render to a web canvas using... something probably more complex than what Claude has to do. It's still not hard.


Vaguely related to your glorious idea. https://www.shadertoy.com/view/NtcGRr


lol... I know you meant this comically, but you just called me out and it's glorious: https://glyph3d.dev

I built a truly glyph based instanced quad system to render millions of characters in space at once.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: