MurphyA/hacker-news huggingface dataset:
by tshaddox | 2025-04-15 17:44:37+00:00
> The old way was to return HTML fragments and add them to the DOM. There was still a separation of concern as the presentation layer on the server didn't care about the interface presented on the client.

I doubt there were many systems where the server-generated HTML fragments were generic enough that the server and client HTML documents didn't need to know anything about each other's HTML. It's conceivable to build such a system, particularly if it's intended for a screen-reader or an extremely thinly-styled web page, but in either of those cases HTML injection over AJAX would have been an unlikely architectural choice.

In practice, all these systems that did HTML injection over AJAX were tightly coupled. The server made strong assumptions about the HTML documents that would be requesting HTML fragments, and the HTML documents made strong assumptions about the shape of the HTML fragments the server would give it.
by Imnimo | 2025-04-15 17:46:02+00:00
The short answer is that they are applying the same defense to audio as to images, and so we should expect that the same attacks will work as well.

More specifically, there are a few moving parts here - the GenAI model they're trying to defeat, the defense applied to data items, and the data cleaning process that a GenAI company may use to remove the defense. So we can look at each and see if there's any reason to expect things to turn out differently than they did in the image domain. The GenAI models follow the same type of training, and while they of course have slightly different architectures to ingest audio instead of images, they still use the same basic operations. The defenses are exactly the same - find small perturbations that are undetectable to humans but produce a large change in model behavior. The cleaning processes are not particularly image-specific, and translate very naturally to audio. It's stuff like "add some noise and then run denoising".

Given all of this, it would be very surprising if the dynamics turned out to be fundamentally different just because we moved from images to audio, and the onus should be on the defense developers to justify why we should expect that to be the case.
by pixl97 | 2025-04-15 17:46:21+00:00
>o it seems a logical leap to say they know it doesn't and are doing this as a scheme?

In some of the earlier image protection articles the people involved seemed rather shady about the capabilities. Would have to do some HN searching for those articles.

But everything at the end of the day will be a scheme if the end result is for humans to listen to it. You cannot make a subset of music that can be heard by humans (and actually sounds good) that cannot be prefiltered to be learned by AI. I've said the same thing about images, the same thing will be true about audio, movies, actions in real leave, et al.

These schemes will likely work for a few of the existing models, then fall apart quickly the moment a new model arrives. What is worse for defense is audio quality for humans is remaining the same while GPU speeds and algorithms increase in speeds over time meaning the time until a model beats the new defense will trend to unity.
by latexr | 2025-04-15 17:46:28+00:00
> Personally speaking, I've never cared whether someone "validates" my emotions

Picture a situation where someone is running a loud machine within your earshot. It’s been a while and it’s getting on your nerves, so you ask them to stop. Now imagine the answer is either:

“Oh, I’m so sorry. I didn’t realise someone was so close. I know this is loud but could I ask you to bear with it for just ten more minutes? I promise I’ll be over by then. It’s important I finish now because <valid reason>.”

Or:

“Fuck off, asshole. I don’t give a shit about you. I’ll be done when I feel like it.”

Allow me to suggest you’d appreciate and care for the first answer more. You’d probably even have a better day with it, even if the first person ended up taking twelve minutes while the second took eight.

> (and I often view such attempts as a bit patronizing or insincere)

I propose this could be a version of the toupee fallacy¹. The attempts you view as patronising and insincere are the ones which are obviously so. Perhaps from people who read a self-help book about how to control others and get what they want. Or like when you call a company for support and the agent repeats your name over and over. But there are people who are genuine and do it reflexively and honestly because they truly care about their fellow human being.

> There's a problem to be solved, so let's attempt to solve it or at least compromise in good faith.

That’s not the default state for most people. It should be, but it’s not. One reframing I like to give, e.g. when people ask me for advice on an argument they’re having with a spouse, is “remember it’s not you against them, but you and them together against the problem”. Simple and highly effective with reasonable people, as it allows them to take a step back and look at the issue from a more rational vantage point.

¹ https://en.wiktionary.org/wiki/toupee_fallacy
by simscitizen | 2025-04-15 17:46:40+00:00
Oh I've debugged this before. Native memory allocator had a scavenge function which suspended all other threads. Managed language runtime had a stop the world phase which suspended all mutator threads. They ran at about the same time and ended up suspending each other. To fix this you need to enforce some sort of hierarchy or mutual exclusion for suspension requests.

> Why you should never suspend a thread in your own process.

This sounds like a good general princple but suspending threads in your own process is kind of necessary for e.g. many GC algorithms. Now imagine multiple of those runtimes running in the same process.
by minimaxir | 2025-04-15 17:46:52+00:00
Whisk itself (https://labs.google/fx/tools/whisk) was released a few months ago under the radar as a demo for Imagen 3 and it's actually fun to play with and surprisingly robust given its particular implementation.

It uses a prompt transmutation trick (convert the uploaded images into a textual description; can verify by viewing the description of the uploaded image) and the strength of Imagen 3's actually modern text encoder to be able to adhere to those long transmuted descriptions for Subject/Scene/Style.
by daqhris | 2025-04-15 17:47:11+00:00
Both are founders of a so-called non-profit and are suing each other. Their legal arguments are public at this point. By reading them, one may understand that it's hard to choose between 'yes' and 'no' as an answer. Maybe, we could request and take into account the opinion of what they 'created' that might outlast them and their conflict, namely AI.
by amazingamazing | 2025-04-15 17:47:13+00:00
Private colleges shouldn't be taking public money to begin with. Hopefully this ends with colleges having their (private college) tax exempt status revoked. Anyone who's been to Massachusetts knows how much real estate Harvard (and MIT, and BU, and Boston College, etc, etc.) owns. Why should they be tax exempt?

End it now.

Also, Trump's demands are silly and not even internally consistent.
by hwpythonner | 2025-04-15 17:47:14+00:00
I think the missing piece here is why we’d want P2P live streaming in the first place.

If the goal is to cut costs — like vendors trying to avoid AWS/CDN bills — that’s a very different problem than building for censorship resistance or resilience.

Without a clear “why,” the tradeoffs (latency, peer churn, unpredictable bandwidth) are hard to justify. Centralized infra is boring but reliable — and maybe that's good enough for 99% of use cases.

The interesting question is: what’s the niche where the pain is big enough to make P2P worth it?
by FloorEgg | 2025-04-15 17:47:35+00:00
That's very reasonable.

Viewpoints are essentially grounded in actions, and actions are grounded in values or ways of being.

Values are acted out by individuals and groups through a relative hierarchy, and generally guide which actions are taken.

People generally consider what's true to be what works, and what works is relative to what action is being taken, and what action is being taken depends on the persons underlying values.

Because almost all of the universities' leadership has shifted far to the left side of the US political spectrum over the last 50 years, there is now a hostile environment to many right leaning values. You can argue that this was natural and that right leaning values are worse, but that would be unwise. There is good and bad in everything, and it's not helpful to over generalize. The reality is that there are both "good" and "bad" values on both sides of the political bias, but even that is probably too generalized. What makes a value good or bad is contextual. Some values are more helpful in certain situations or environments than others.

Even more important is that values don't naturally exist on one spectrum... The idea of "right" and "left" values is artificial.

So while I agree that the constriction of values being supported within universities is unhealthy like a stool that's had three legs chopped off, the idea that top down authoritarian enforcement on these organizations is the solution is somewhat terrifying.

Scary times.
by danabramov | 2025-04-15 17:47:48+00:00
It feels like you haven't read the article and commented on the title.

>The old way was to return HTML fragments and add them to the DOM.

Yes, and the problem with that is described at the end of this part: https://overreacted.io/jsx-over-the-wire/#async-xhp

>JSON is fine [..] With JSX on the server side, it's abstraction when there's no need to be. And in the wrong place to boot.

I really don't know what you mean; the transport literally is JSON. We're not literally sending JSX anywhere. That's also in the article. The JSON output is shown about a dozen times throughout, especially in the third part. You can search for "JSON" on the page. It appears 97 times.
by slackfan | 2025-04-15 17:49:31+00:00
What crisis the Universities endowment bigger than ever. What's losing a few federal dollars gonna do.

Oh wait the admin staff is in danger that decided to quadruple their positions and give themselves raises as they torpedoed The quality of education and services on campus. They deserves everything it's getting and more. I say this as somebody that Was a student there and worked for the university.
by aduffy | 2025-04-15 17:49:52+00:00
> By taking this scorched-earth route, the government has effectively telegraphed to all the other universities, as clearly as possible: “actually, we don’t care what you do or don’t do on antisemitism. We just want to destroy you, and antisemitism was our best available pretext".

Yep. Glad everyone is starting to realize this. What we're seeing has nothing to do with antisemitism, it is a blatant attempt to seize ideological control of every single cultural institution of American Power. Nothing that happened at a campus protest can justify the all-out assault on 1A that is happening now.

I applaud Harvard for standing up, but to be honest, anything less (e.g. Columbia's complete capitulation) is simply spineless and unseemly for any mega-endowed university.
by danabramov | 2025-04-15 17:49:54+00:00
>Another overengineered abstraction recreating things that already exist.

This section is for you: https://overreacted.io/jsx-over-the-wire/#html-ssi-and-cgi

>Everyone ignores the "hypermedia constraint" part of REST and then has to work crazy magic to make up for it.

Right, that's why I've linked to https://htmx.org/essays/how-did-rest-come-to-mean-the-opposi... the moment we started talking about this. The post also clarifies multiple times that I'm talking about how REST is used in practice, not its "textbook" interpretation that nobody refers to except in these arguments.
by mikepurvis | 2025-04-15 17:50:08+00:00
Absolutely, and I think that's ultimately the needle that has to be threaded. It's not "well, you said a mean thing, and you need to make it better, suck it up", but it's also not "wow, it must feel uncomfortable having your friend not want to play with you any more because of what you said, that's a really big feeling... let's go shopping", but rather "I can see how hard it is having made a mistake like this and saying something in the moment that you didn't actually mean and now regret. I think you should take some time to think about it and then make a plan for how you're going to apologize to your friend. I'm happy to talk through that and help you with it if you like, just let me know."

The issue is that the integrated approach ultimately still requires the child to confront and process the feeling, which can mean some discomfort and accountability— a gap that is unacceptable to the more extreme wing of "gentle" parenting.

And obviously my toy example here is on easy mode because it's an external conflict (with a friend) rather than the much more common case where the conflict itself is between child and parent, and the parent is simultaneously trying to provide a thoughtful response to the child's emotions while also insisting that they do their homework, chores, go to bed on time, get off screens, have a shower, whatever it is.
by steveklabnik | 2025-04-15 17:50:21+00:00
Here's how I currently am doing it: I use the repository pattern. I use a trait:

pub trait LibraryRepository: Send + Sync + 'static { async fn create_supplier( &self, request: supplier::CreateRequest, ) -> Result<Supplier, supplier::CreateError>;

I am splitting things "vertically" (aka by feature) rather than "horizontally" (aka by layer). So "library" is a feature of my app, and "suppliers" are a concept within that feature. This call ultimately takes the information in a CreateRequest and inserts it into a database.

My implementation looks something like this:

impl LibraryRepository for Arc<Sqlite> { async fn create_supplier( &self, request: supplier::CreateRequest, ) -> Result<Supplier, supplier::CreateError> { let mut tx = self .pool .begin() .await .map_err(|e| anyhow!(e).context("failed to start SQLite transaction"))?; let name = request.name().clone(); let supplier = self.create_supplier(&mut tx, request).await.map_err(|e| { anyhow!(e).context(format!("failed to save supplier with name {name:?}")) })?; tx.commit() .await .map_err(|e| anyhow!(e).context("failed to commit SQLite transaction"))?; Ok(supplier) }

where Sqlite is

#[derive(Debug, Clone)] pub struct Sqlite { pool: sqlx::SqlitePool, }

You'll notice this basically:

1. starts a transaction 2. delegates to an inherent method with the same name 3. finishes the transaction

The inherent method has this signature:

impl Sqlite { async fn create_supplier( self: &Arc<Self>, tx: &mut Transaction<'_, sqlx::Sqlite>, request: supplier::CreateRequest, ) -> Result<Supplier, sqlx::Error> {

So, I can choose how I want to test: with a real database, or without.

If I want to write a test using a real database, I can do so, by testing the inherent method and passing it a transaction my test harness has prepared. sqlx makes this really nice.

If I'm testing some other function, and I want to mock the database, I create a mock implementation of LibraryService, and inject it there. Won't ever interact with the database at all.

In practice, my application is 95% end-to-end tests right now because a lot of it is CRUD with little logic, but the structure means that when I've wanted to do some more fine-grained tests, it's been trivial. The tradeoff is that there's a lot of boilerplate at the moment. I'm considering trying to reduce it, but I'm okay with it right now, as it's the kind that's pretty boring: the worst thing that's happened is me copy/pasting one of these implementations of a method and forgetting to change the message in that format!. I am also not 100% sure if I like using anyhow! here, as I think I'm erasing too much of the error context. But it's working well enough for now.

I got this idea from https://www.howtocodeit.com/articles/master-hexagonal-archit..., which I am very interested to see the final part of. (and also, I find the tone pretty annoying, but the ideas are good, and it's thorough.) I'm not 100% sure that I like every aspect of this specific implementation, but it's served me pretty well so far.
by danaris | 2025-04-15 17:50:34+00:00
I'm not. I'm responding to the specific exchange between you and JKCalhoun. They implied that they didn't know of any positive culture from 4chan, and you took a sharp left turn by misusing "positive"—taking a different meaning of it and comparing that against death metal music, rather than engaging with the actual meaning of what JKCalhoun had said.

I was simply helping to clarify the semantic issue at hand. I don't have enough personal knowledge of 4chan to pass judgement on it one way or another.
by gs17 | 2025-04-15 17:50:35+00:00
It's difficult because people are trying to figure out where you obtained this hypothetical watermarked image from (that you can't get a non-watermarked version of) and what you plan on doing with it after besides looking at it yourself, and how this becomes something for sale to "enterprise-level clients".

From their website:

> The features your business needs to eliminate watermarks for good.

> Whether you're a photographer or a social media manager, let our AI handle the cleanup so you can focus on creativity.

They seem to think that this is a need businesses have.
by esco27 | 2025-04-15 17:51:21+00:00
Yes, another case of old school web dev making a comeback. “HTML over the wire” is basically server-rendered templates (php, erb, ejs, jinja), sent asynchronously as structured data and interpreted by React to render the component tree.

What’s being done here isn’t entirely new. Turbo/Hotwire [1], Phoenix LiveView, even Facebook’s old Async XHP explored similar patterns. The twist is using JSX to define the component tree server-side and send it as JSON, so the view model logic and UI live in the same place. Feels new, but super familiar, even going back to CGI days.

[1] https://hotwired.dev
by danabramov | 2025-04-15 17:51:36+00:00
In my checklist (https://overreacted.io/jsx-over-the-wire/#dans-async-ui-fram...), that would satisfy only (2), (3) if it supports async/await in components, and (4). It would not satisfy (1) or (5) because then you'd have to hydrate the components on the client, which you wouldn't be able to do with Preact if they had server-only logic.
by Calwestjobs | 2025-04-15 17:51:37+00:00
what chunk is transmitted when, is not important technically, (programatically, it is doable, i do not know how to call that properly)

it is ONLY important when you need to not have people (SWARM) finishing downloading of torrent then closing torrent client app and not sending data chunks to next person.

BUT everyone is saying it is stream and has to be instant showing of picture/video.

so i do not understand why all those people in other comments are caring about state of swarm if we do have thousands people watching and everybody is saying there are big amounts of people watching but still caring about swarm..

(swarm thing is important with normal use case of BitTorrent, irrelevant for streaming)

i understand what they are saying, they do not understand that they are saying nonsense.
by Asraelite | 2025-04-15 17:51:52+00:00
I strongly disagree. That's just how education is done as a matter of pragmatism.

In general it's very very difficult to impart conceptual knowledge to someone else because of the nature of human brains. We don't understand how we understand, so to speak, so we can't directly explain how to understand something to someone else.

We teach through examples because that is the best we can do. You're exposing someone to any idea over and over again until it clicks, but that click is what's important, not the examples. If you could somehow perfectly model how a student's brain works and know the exact combination of words to say and models to draw that would make it instantly click for them, then that's all that would be needed, no procedural mastery. But we don't know how to do that.
by Mawr | 2025-04-15 17:52:08+00:00
A meme you say?

https://www.youtube.com/watch?v=pqQSwQLDIK8

As for the excuses:

> they are a small

What does a size of a country have to do with how their cities are designed?

> dense

Same as above, unless you mean city density in which case there's nothing special about Dutch cities.

> flat

Yes, and?

> an oceanic weather

Yeah, it rains all the time and yet they cycle.
by add-sub-mul-div | 2025-04-15 17:52:19+00:00
No, nothing of value. If you ever want to lose faith in the future of humanity search "@grok" on Twitter and look at all the interactions people have with it. Just total infantilism, people needing tl;drs spoon-fed to them, needing summarization and one-word answers because they don't want to read, arguing with it or whining to Musk if they don't get the answer they want to confirm what they already believe.
by JumpCrisscross | 2025-04-15 17:52:23+00:00
"...once the government did take away funding and present its ultimatum—completely outside the process specified in Title VI law—Columbia’s administration quickly agreed to everything asked, to howls of outrage from the left-leaning faculty. Yet despite its total capitulation, the government has continued to hold Columbia’s medical research and other science funding hostage, while inventing a never-ending list of additional demands..."

I missed this. Good call out.
by JohnMakin | 2025-04-15 17:52:40+00:00
I don't know if there's anything to admit from their public stance on this kind of stuff, and I'm certainly not wanting this account to receive retaliation for whatever I post regarding this - they've mentioned that they do get swarms of downvoting groups on particular topics and have taken steps to un-flag things that fall victim to it. I'm not sure what that mechanism is, or if they've seen it, or maybe it's auto-flagging off certain keywords - giving massive benefit of the doubt as possible. Regardless though I've seen this trend on similar news, I think a lot of my favorites contain flagged submissions that are highly relevant for a site like this.

Particularly the argument "these types of posts don't warrant good discussion and turn into flame wars" or generate too many comments per up-votes, a signal for bad thread quality - this has really none of that. If this remains flagged after a time it is a statement.

If this story is true, this is potentially the biggest breach of all time. It's tremendously relevant and that's why I'm annoyed.
by mrweasel | 2025-04-15 17:52:58+00:00
I get what your saying, and I do question the value of suing someone in Russia, or China, but did you actually get a lawyer file an actual real lawsuit in Russia? Again, Russia, probably no really going to work.

There's absolutely no reason why you couldn't drag OpenAI to court... you'd need a ton of money, but you could and if you win, then the rest of the AI companies are going to get very busy adjusting their behaviour.
by al_borland | 2025-04-15 17:53:19+00:00
That last part is where my head was going while reading this piece. If both people are of the mindset that the other should change their mind, which is usually the case, it goes nowhere.

The person most open to having they mind changed is often the least likely to need it changed, as they’ve likely already looked at both side in good faith. That said, they may have a blind spot, or haven’t considered a particular view.