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

Did you miss the Anthropic and OpenAI blog posts screeching for regulation?

Yes, now that they are in place they want to put barriers for new entrants.

For the last 60 years, whenever AI achieves something revolutionary, some people immediately say "well that wasn't particulary revolutionary".

Every single time.

It's a tired argument, and we should strive for the intellectual humility to do better in this forum.


Maybe AI isn't that incredible, the more you use it, the more you realize it's a tool, like a VCR, maybe that's why?

What was sold as AI was basically a "computer person". Maybe that isn't the reality so when people are like, "here's the self coding machine" everyone is a bit disappointed because it's not C3PO?


cargo add + rust-analyzer instantly executes build.rs before you have a chance to audit the code.

Cargo, please PLEASE give me a way to disable third-party build.rs and whitelist the ones I need. And please loudly mark any update that adds a build.rs where there was none before.


cargo-deny can audit build scripts, but unfortunately not prevent execution of malicious build scripts exactly for the reason you gave. It could still help if you only ever use cargo add and update in a sandbox.

See https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.h...


You can disable rust-analyzer running build scripts.


Safe-ish recommendation: Only add well-known, trusted crates. Failing that, treat unknown crates as malware or containing malware dependencies until proven otherwise. Test untested tools/crates in a VM/dev container to be sure they work properly before trust them. Use Mark I eyeball and Mark III brain too. :)

Audit and limit crates (cargo-deny &| cargo-crev, && --offline) until tools exist to audit build.rs safety semi-automatically ($$ safeguard.sh maybe).

The root problem is two parts:

1. crates.io doesn't do mandatory curation. Lack of curation is fail. It's time-consuming and costly for reviewers without a doubt, but so is letting an ecosystem gain maximum entropy (go to shit) by Tragedy of the Commons depending entirely on the honor system. Name squatting, low-quality, unmaintained, typosquatting, and malware are the consequences of too much self-service / semi-self-service freedom.

2. Many, many cargo subcommands are over-eager to run build.rs because it assumes trusted crates:

In an untrusted/uncurated crates world and a build.rs exists or exists in a selected dependency, it shouldn't run at cargo-add time (unless it must). If it exists, on first run, it should be presented to the user in a viewer for manual review unless a magic CLI flag/env var is specified to accept it.

These 2 factors combined appear to create a Swiss cheese holes failure mode for running arbitrary crate `cargo add`. I have confidence a suitable add-in workflow &| standard command &| repository workflow will be adjusted to reduce the attack surface of the ecosystem.


So, don't add dependencies before you audit the code? That seems like a pretty reasonable ask to me.


You audit the code, then you run cargo update and you are pwned. Asking the user to not make mistakes is the c++ approach to security - it doesn’t work.


You're creating a strawman. Don't run cargo update without verification, duh.

> Asking the user to not make mistakes is the c++ approach to security

Then demand crates.io do better by actually curating every version of every published crate.


The problem is that build scripts run automatically without user consent or intevention.

`cargo add` is sufficient to compromise you, before you have a chance to even vet the code.


`cargo add` just modifies your Cargo.toml, it doesn't build anything.


https://shnatsel.medium.com/do-not-run-any-cargo-commands-on...

> any command starting with cargo can run arbitrary code when operating on an untrusted repository, and should be treated the same as cargo run.


This comment is both true and entirely irrelevant. The context of this subthread is not running a Cargo command in a checkout of a malicious git repo, it's alleging that `cargo add foo` runs the build script of the crate `foo`, which is false.


The primary problem with SPAs is actually that the server state is duplicated client-side, which inevitably leads to state desync bugs.

The secondary problem is SPAs approximately double the amount of code you need to write compared to a server-side approach for the same level of interactivity.


The library is small enough I simply load the entire datastar codebase in the context when I need to ask how something works.

Once you have sufficient context in your html, this is no longer necessary.


Absolutely not, even on HTTP1.1.

Our webapp is achieving 800:1 to 5000:1 compression ratios pushing down the entire HTML page over brotli and zstd. The first render is about 20:1 compression, every interaction after that is 800-5000:1.

We are using datastar with the recommended "fat morph" approach where we re-render the entire HTML page from scratch on every request. Our typical RTT is <100ms including rendering, then the brotli / zstd compression window cuts down the wire size to literally _bytes_.

This is SO much more efficient than our previous reactjs & graphql render waterfalls with state duplication in the client side. All states lives on the server, all renders are authoritative, and we need to maintain roughly half the code size for better first-render and massively better interactive performance. Appserver and DB pressure is massively reduced too.

(This is a medical device with a highly interactive UI, image viewers, editors, not a boring old static website.)


Okay, so, to parse this — you have a highly performant http/1 app using a fresh connection setup/teardown at 100ms per cycle?

Have you tested that same app over http/3 with tuning to reuse the underlying channel, and if so, what were your outcomes?

H1 can be pretty awesome but my core curiosity here is whether reducing the connection overhead through H3 matters or not. I am not out to disprove H1 full-page HTML as a delivery mechanism.


We are serving over HTTP/2 and currently testing HTTP/3.

I don't have direct HTTP/1 vs HTTP/3 comparisons, because 0% of our requests are over HTTP/1 today...


Trump was elected by the electors, not by the people. Not entirely dissimilar from how VDL was elected.


Breaking an illegal monopoly takes decades but, as it happened with Internet Explorer 6, it's finally happening for Windows.


70% market share, plus all the games that Proton depends on.


And trending down.

IE6 was 97%, how did that work out?


Replace paper clips with data centers and we are already there…


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

Search: