HNHacker News
TopNewBestAskShowJobs

Ygg2

8,244 karma · joined March 28, 2012

submissionscomments
Ygg2··on Google Has Removed MV2 Extensions from the Chrome Web Store, Including UBO
McAfee wasn't always this shit, and ads on non-porn sites weren't as malicious.
Ygg2··on EVE Online moves to Python 3
Python is very strange programming language for a MMORPG. I'd imagine they would write it in C++ or something. They don't quite explain what they use it for.

And yeah, using a faster but safe language could help immensely.

Ygg2··on That's a Lot of YAML
KDL? https://kdl.dev/
Ygg2··on Guess which of these LLM outputs is watermarked
If you suspect that, make sure your text mentions at random gremlins, groblings and jack bunnies. I.e. pre poison your input.
Ygg2··on Zig’s Io.Threaded is neat
Use Rust if you want to write in a memory safe, high performance language.

> Zig's value prop is different and closer to a modern C: it fits in your head and it maps fairly closely to assembly.

This can't be correct for the simple reason that it has both a modern optimizing compiler (LLVM) and UB.

A modern compiler will try to autovectorize your code, so you don't really know what the assembly will be.

UB gives compiler license to rewrite your code however it sees fit.

Ygg2··on TigerBeetle Core System Architecture: Deconstructing Performance Engineering
I'm pretty sure they manage to get that level of performance and reliability, since they have a very limited schema.

I'm pretty sure you can't just do a precise 128 byte align, if one of the element is an image blob or varchar(1000).

Ygg2··on Malicious Rust crate Arrayref runs a build-time payload
Sure. And people shouldn't steal people's credentials and publish malicious artifacts, yet here we are.

Just because you expect people to behave like X doesn't mean they will. In this case people will automate packaging of artifacts.

NPM was a third party manager (it's not part of EcmaScript nor was it part of Node.js at start) and so is Maven. Reputation matters more than origin.

Those who do not know history are doomed to rediscover it.

Ygg2··on Malicious Rust crate Arrayref runs a build-time payload
Sure. Maybe threshold is bit higher than moderately. But unless your language tries to sabotage itself by making code artifacts uncomposable (a la C/C++ where best way to compose libraries is through shell commands) some package manager will be inevitable.

Batteries also don't help if dependencies don't replace them. Arrayref functionality has been part of Rust std lib for a while now.

Ygg2··on Malicious Rust crate Arrayref runs a build-time payload
Spoiler alert! JavaScript has no language provided package manager.

If Odin gets moderately successful someone will probably reinvent it.

Ygg2··on Malicious Rust crate Arrayref runs a build-time payload
Honestly, Ginger Bill is plain wrong.

Just because you don't develop a package manager for your language, doesn't mean someone else won't. See NPM.

Ygg2··on GIMP Development Update
> Except MoPaQ weren't zips

I meant zipping colloquially as in compressing an archive format. But you seem to get the gist of it ;)

> in Blizzard games, those were "zips" of heavy data files, notably read only data blobs. The game would read them, unpack in memory, and serve appropriately.

Not just game files but also the map format for Warcraft 3 was a glorified MPQ (source: https://867380699.github.io/blog/2019/05/09/W3X_Files_Format).

So whenever you edited a WC3 map, you were zipping the current map into an archive. Much like the GIMP example. Of course, WC3 didn't use as many XML files, though SC2 changed that.

Ygg2··on GIMP Development Update
I mean, zipping files in an archive and presenting them as a file is an ancient tradition in video games. For example Warcraft 3 used the MoPaQ archive to store data in .w3x file.

And Starcraft 2 data is just bunch of XML files.

Ygg2··on GIMP Development Update
Office documents since the 2007 have used a zipped XML approach. Just take an .docx and open it in 7zip.

EDIT: Narrowed the date.

Ygg2··on GIMP Development Update
It's not that weird. Most of Office and Open office formats are just zipped folders of XMLs.

Better Zipped XML than whatever monstrosity Adobe files are. PDF/PSD... shudder.

Ygg2··on Thanks to social media, canned sardines are a scarcity on the supermarket shelf
Not even the sea floor. When whale carcass falls to the sea floor, it creates its own mini-ecosystem that lasts as long as the corpse lasts (couple of decades).
Ygg2··on Thanks to social media, canned sardines are a scarcity on the supermarket shelf
> Sadly Agent Smith was not wrong there.

Wachowskis just don't know any better. You think it's air your breathing now? Oxygen? More like plant waste product.

Also no ecosystem is in perfect harmony. It's basically jenga tower where you pull a piece on a long enough scale it looks eternal.

Ygg2··on Auto mode is now the default in Claude Code
Vantablack pattern?
Ygg2··on Branchless Rust: Making a Filter 4x Faster by Removing an If
I'd say unwrap isn't a subtle case either. Yet people see examples and think - "This is the way!"
Ygg2··on Branchless Rust: Making a Filter 4x Faster by Removing an If
Keep in mind it's UB to be:

> Executing code compiled with target features that the current thread of execution does not support

I.e. calling AVX512 on Neon architecture.

You need to wrap it in target attributes to even dream of it being safe.

Ygg2··on Rust Project goals 2026: Reflection and Comptime
Seeing how people were interested about immobile types. Why not discuss the silent MVP of the goals. Rust comptime.
Ygg2··on Rust project goals: Immobile types and guaranteed destructors

    > # How does this relate to the "pin ergonomics" initiative?
    > This work is an alternative to Project Goal 2025H2: Continue Experimentation with Pin Ergonomics, which includes the following extensions: 

    > A new item family pin in lvalues, e.g. &pin x, &pin mut x, &pin const x.
    > A one-off overload of Rust's Drop trait, e.g. fn drop(&pin mut self).
    > A new item kind pin in patterns, e.g. &pin <pat>.

    > Notably, this work does not solve pin's duplicate definition problem, meaning that even with these extentions we still end up with Trait and PinnedTrait variants of existing traits. The Drop trait being the exception to this, since the initiative is proposing to special-case it using a one-off overload.
https://github.com/rust-lang/rust-project-goals/blob/main/sr...
Ygg2··on Why I Left Google DeepMind
Pretty sure they ditched that motto long time ago.
Ygg2··on Why I Left Google DeepMind
I wonder if in a few years, there'll be heads of Google paraphrasing the old skit "You know, in hindsight, allowing autonomous AI drones to carry fusion bombs was a bad move, but for that one quarter we really earned a lot of shareholder value"
Ygg2··on Memory safety absolutists
Sure, but C code is way older so most of the bugs there should have been excised by now...
Ygg2··on Memory safety absolutists
Some is doing heavy misrepresentation.

Latest batch of LLM's Linux had 423 vulnerabilities. Out of which 10 were Rust*. Would you prefer more or less CVEs?

But it's like seat belt analogy. It's a helper not a panacea.

* Granted Rust isn't in the entire kernel yet. D

Ygg2··on Memory safety absolutists
With Fil-C and Rust the memory safety shouldn't even be discussed. It should be the bare minimum.

Presence of worse bugs won't make memory bugs disappear.

Ygg2··on Claude Code uses Bun written in Rust now
> You're just splitting hairs and trying to weasel around the fact

No. I said borrow checker allows unbound lifetime. I didn't disagree with you. I noted you didn't read the argument.

> If you know what I meant, then what's up with your snarky comment about "So much for effectively disabling stuff"?

Because your original code looked like trying to cast mut u32 to pointer.

> you did effectively disable the borrow checker in safe parts

So this code (https://play.rust-lang.org/?version=stable&mode=debug&editio...) runs now?

Effectively means achieving the goal in satisfying manner.

Writing unsound code is less of effectively disabling borrow checker and more of a hack.

Think about it, if using Java unsafe I gain access to underlying HashMap array and do weird stuff to the HashMap invariants am I effectively turning HashMap into Array or am I doing a hack job?

Edit: By that logic since there is so much unsafe in the code base isn't borrow checker effectively already disabled? You can argue semantics but no, borrow checker isn't de facto or de jure invalidated by unsafe blocks.

It's invalidated by unsound unsafe and that's on code writer to fix.

Ygg2··on Claude Code uses Bun written in Rust now
> Proof:

You just listed examples of unbounded lifetimes.

> I said "effectively disable". For example:

Not sure what you meant by this example since it doesn't compile. It seems the borrow checker caught your mischief. So much for effectively disabling stuff :P

You haven't effectively disabled anything; you just (tried to) wrote unsound code that washes one mutable ref as another. This stuff is allowed provided shared refs are never accessed at the same time (for example, panicking upon reading reference_b).

What you probably meant is https://play.rust-lang.org/?version=stable&mode=debug&editio...

But you know what? If you're dabbling in unsafe, you have this big button called Tools in the playground. Choose Miri, then run your code; it will display large Undefined behavior. It even highlights the `trust_me_bro` function.

Hell, run this with UBSAN, ASAN, and other C tools. They will probably catch any such behavior.

Ygg2··on Claude Code uses Bun written in Rust now
Andreas Kling talked about it. It boils down to C++ interop sucks (no surprise for lang made by Apple), ecosystem is tiny, Rust works well enough with LLMs.

https://youtu.be/DbHjKi_jASY

Ygg2··on Claude Code uses Bun written in Rust now
Mu. Invalid question. Rust doesn't disable compiler features. It gives you extra set of footguns when you ask for it.

As for the actual unloaded question, "What's the point of unsafe in Rust?" it is to contain and make it easier to identify sources of UB.

← PreviousPage 2 of 34Next →