MurphyA/hacker-news huggingface dataset:
by jorl17 | 2025-11-02 13:49:29+00:00
When I get my way reviewing a codebase, I make sure that as much state as possible is saved in a URL, sometimes (though rarely) down to the scroll position.

I genuinely don't understand why people don't get more upset over hitting refresh on a webpage and ending up in a significantly different place. It's mind-boggling and actually insulting as a user. Or grabbing a URL and sending to another person, only to find out it doesn't make sense.

Developing like this on small teams also tends, in my experience, to lead to better UX, because it makes you much more aware of how much state you're cramming into a view. I'll admit it makes development slower, but I'll take the hit most days.

I've seen some people in this thread comment on how having state in a URL is risky because it then becomes a sort of public API that limits you. While I agree this might be a problem in some scenarios, I think there are many others where that is not the case, as copied URLs tend to be short-lived (bookmarks and "browser history" are an exception), mostly used for refreshing a page (which will later be closed) or for sharing . In the remaining cases, you can always plug in some code to migrate from the old URL to the new URL when loading, which will actually solve the issue if you got there via browser history (won't fix for bookmarks though).
by burntsushi | 2025-11-02 13:49:44+00:00
Writing tools that are POSIX compatible doesn't mean one puts it on the pedestal of the "holy grail of OS design." I've certainly used POSIX to guide design aspects of things I build. Not because I think POSIX is the best. In fact, I think it's fucking awful and I very much dislike how some people use it as a hammer to whinge about portability. But POSIX is ubiquitous. So if you want your users to have less friction, you can't really ignore it.

And by the way, Rust didn't invent this "rewrite old software" idea. GNU did it long before Rust programmers did.
by Natanael_L | 2025-11-02 13:50:44+00:00
Also, the RPi is the wrong kind of hardware for attestation, at least use something like USB Armory which provides a user programmable ARM TrustZone environment.

Since USB Armory supports pinning multiple keys for secure boot (and IIRC protected storage), you could even deliver it set up with a manufacturer attestation key and allow the user to load and pin their own attestation key (useful for an organization like a news company) as well as allowing "dual boot" between the attested firmware signed by the pinned manufacturer key and the user's own firmware. I've wanted that kind of behavior in consumer hardware for a long time, where you have full freedom between using the locked down OEM environment or your own and switching between them freely.

(I assume the USB Armory might also not be ideal in terms of ability to sleep and boot speed, etc, but if you have a quicker smaller controller that's the main board then it could wake the one that supplies attestation and make that functionality available after it's done booting)
by dkersten | 2025-11-02 13:51:19+00:00
Just now I opened a medium site and before I could even start reading I was hit with a popup to download the mobile app, some other popup that I ignored (cookies I guess), and within a second or two, a full screen modal asking me to subscribe. Often I also get a pay wall. All within seconds of opening the site. If that’s not hostile, I don’t know what is.

Needless to say, I closed the tab. No content is worth dealing with that over.

Sure plenty of other sites do it too but “other people do it” doesn’t mean it’s not hostile nor does it excuse the behavior. Medium is and has always been one of my most hated sites because a lot of tech people post there, a lot of medium links are submitted to HN, yet it’s a horrible place for the reader.
by themgt | 2025-11-02 13:52:37+00:00
Venezuela is a narco dictatorship failed state, but its true crimes are violations of the Monroe Doctrine. America's hegemony in Europe, Asia and the Middle East is in serious decline, so it's become all the more important to flex muscle in our hemisphere and make an example out of someone. Pour encourager les autres. Or, from the horse's mouth:

Over the past decade, 12 of China’s 17 loans to Venezuela have been specific to the energy sector—a total of $55 billion. China’s most significant commitment to Venezuela’s oil sector was its investment in the Orinoco Belt, one of the world’s richest oil areas, which produces extra heavy crude oil and sits across central Venezuela. In 2010, China’s national oil company signed a 25-year land grant for a 40 percent investment in one portion of the Orinoco Belt. The energy industry is at the heart of Venezuela—economically, politically, and socially. Oil accounts for 95 percent of the country’s exports and provides the cash to import everything else. Therefore, China’s focus on the energy sector could be viewed as a “power play” to gain authority over the political and social structures of Venezuela, as well as its extensive oil reserves.

A lack of basing infrastructure also creates opportunities for adversaries to gather intelligence on U.S. movements. Several of the ships currently deployed to the Caribbean on counternarcotics missions called into ports where China exercises influence. The Arleigh Burke–class destroyer USS Sampson docked at Manzanillo, Mexico, in July, where Hong Kong–based conglomerate CK Hutchison operates a terminal. More recently, the USS Lake Erie, a guided missile cruiser, docked at Hutchison-operated Port of Balboa in Panama before transiting the Panama Canal on its way from the Pacific to the Caribbean theater. Naval port calls represent potential intelligence vulnerabilities where China can gather data on U.S. standard operating procedures and patterns of life that could be applicable to the Indo-Pacific.

https://www.csis.org/analysis/when-investment-hurts-chinese-...

https://www.csis.org/analysis/escalation-against-maduro-regi...
by embedding-shape | 2025-11-02 13:53:06+00:00
As someone who mostly writes Clojure code professionally during the day, I agree, Rust's syntax is complicated for no good reason, ugly and overly-verbose. But then I think that about most Algol-like language too, not just Rust.

And despite that I do use Rust when I want something simple to deploy/deliver, as handing over a binary that just runs is such a nice experience, and it's real easy to make fast. As long as I don't have to maintain in long-term, Rust is fine for what it is.
by rankinzheng | 2025-11-02 13:53:13+00:00
An AI-powered web service that removes watermarks from Sora-generated videos. Users upload videos with Sora watermarks, and our machine learning model processes them to deliver clean, watermark-free outputs. We operate on a credit-based pricing model where users pay only for what they process, with no subscriptions. Credits are calculated based on video duration and file size.
How to make practical use of heapmaps efficently in a red-team env?
by FireAnon | 2025-11-02 13:53:14+00:00
So, I'm trying to really fully understand all parts of frontend dev.. But something I see a lot, and have never understood when / how one is expected to actually use heapmaps / snapshots? Don't get me wrong, I understand they can contain a depth of information. My question is HOW does one decide using a heapmap snapshot is more efficent or the correct route over just like a typical break point and then traversing through the pages dom structure?
by wiether | 2025-11-02 13:55:41+00:00
> I think reactions emojis are just the gen-z version

Every time someone tells that something I use and enjoy is "the gen-z version" of something, I'm getting worried: is it me trying to keep-up with the cool kids?

Having a few "gen-z" in my team, I quickly came to the conclusion that trying to profile them in a single group was silly: they all behave differently, like every human ever did.
by kayodelycaon | 2025-11-02 13:56:29+00:00
I can't think of anything that would justify that many layers. If I have that much complexity, I would split up the container or start writing bash scripts.

The automation of containers looks simple but developers with systems experience know the actual complexity of operating systems and running applications.

People who know javascript but don't know how a file system works can build and deploy containers. They just copy and paste stuff until it runs. The automation of containers makes brute force iteration a viable option. It was a lot more difficult trying to run a Linux server, which would force you to learn something or use a platform as a service instead.
by seba_dos1 | 2025-11-02 13:57:11+00:00
> I’m pretty sure this gets abused by AI scrapers a lot.

In practice, it hasn't been an issue for many months now, so I'm not sure why you're so sure. Disabling Anubis takes servers down; allowing curl bypass does not. What makes you assume that aggressive scrapers that don't want to identify themselves as bots will willingly identify themselves as bots in the first place?
by DennisP | 2025-11-02 13:57:22+00:00
Yes, they do care about it, and unlike many AI researchers they've bothered to learn something about philosophy of mind. They point out that "the philosophical question of machine consciousness is complex and contested, and different theories of consciousness would interpret our findings very differently. Some philosophical frameworks place great importance on introspection as a component of consciousness, while others don’t." Which would be one reason they point out that these experiments don't help resolve the issue.

They go further on their model welfare page, saying "There’s no scientific consensus on whether current or future AI systems could be conscious, or could have experiences that deserve consideration. There’s no scientific consensus on how to even approach these questions or make progress on them."

https://www.anthropic.com/research/exploring-model-welfare
by mk12345 | 2025-11-02 13:58:32+00:00
I really like this approach, and think it should be used more!

In a previous experiment, I created a simple webpage which renders media stored in the URL. This way, it's able to store and render images, audio, and even simple webpages and games. URLs can get quite long, so can store quite a bit of data.

https://mkaandorp.github.io/hdd-of-babel/
Show HN: Jv 0.1 – Zero-runtime Java sugar language for Java 25
by asopitech | 2025-11-02 13:59:13+00:00
I’ve just shipped the first public release of jv — a Kotlin-inspired sugar layer that transpiles directly to readable Java 25 (with Java 21 fallback) and depends on no runtime shim.

The toolchain is implemented entirely in Rust, focusing on performance and developer experience. Its UX is inspired by Python’s modern package manager uv, aiming for fast, intuitive, and clean CLI workflows.

The CLI ships as a cross-platform bundle with the stdlib baked in, auto-detects local JDK toolchains, and lets you override entrypoints for custom workflows.

On the language side, I’ve added generic function signatures, record component access, optional parentheses on zero-arg calls, richer string interpolation, and a smarter sequence pipeline that preserves element types.

Under the hood, a new Rowan-based front-end drives improved lowering so that when/switch expressions, range patterns, and inferred signatures compile cleanly to Java.

Feedback and questions welcome. More details → https://project-jvlang.github.io/en/ and https://github.com/project-jvlang/jv-lang
by wiether | 2025-11-02 13:59:25+00:00
> A nice thing is that outlook can simply sum up the reactions and show them along the message in a non-intrusive way.

Yeah, that's why I came to like the feature. It's even visible at two places: in the thread list and on an individual email.

The only downside for now: the choice of emoji is too limited. I want my eggplant emoji! But given the history in Teams, where they started with a limited set of emojis, before adding all of them and finally allowing custom ones, I guess it's coming!
by AJ007 | 2025-11-02 13:59:27+00:00
Did not read the book, but have been following OpenAI since the beginning. The whole thing comes across as a bait and switch with parallels to Google's "Don't be evil." At minimum he isn't a person whom comes across as trustworthy - but very few tech leaders (or politicians, etc.) do.

This situation is arguably better than an alternative where Google or another big tech monopoly had also monopolized LLMs (which seems like the most likely winner otherwise, however they may have also never voluntarily ventured in to publicly releasing LLM tools because of the copyright issues and risk of cannibalizing their existing ad business.) Feels like this story isn't finished and writing a book is premature.
by asopitech | 2025-11-02 14:00:09+00:00
This project started from a simple motivation: I wanted to bring back a version of Java that feels like a tool — simple, predictable, but powerful enough to stay with you for years.

I’ve spent a long time working with Python, and while its flexibility and expressiveness are great, I eventually grew tired of the complexity and dependency sprawl that comes with it. On the JVM side, I’ve tried Groovy, Scala, Clojure, Kotlin — all promising at first, but each adds its own layer of tooling and conceptual overhead. At some point, I just wanted a clean, modern way to write Java itself.

So jv doesn’t try to replace the JVM or invent a new runtime. It compiles directly to plain `.java` code, keeping full compatibility with existing Java tools and libraries. The toolchain is built in Rust for speed and reliability, and its CLI experience is inspired by Python’s uv — fast, intuitive, and frustration-free.

Ultimately, jv is my attempt to balance the comfort of Python with the stability of Java, and to create a language that feels familiar yet light enough to truly get out of your way. Feedback and discussion are very welcome.
by pydry | 2025-11-02 14:00:29+00:00
Capitalist interests and imperialist interests in the US are distinct and often at odds with one another. Usually the former defers to the latter though.

For example, the capitalist interests didn't want to strand their assets in Russia and eat huge losses in 2022 but most of them still did it without much protest.

Half of the imperialists in the deep state seem to have realized that piling money and resources into the war in Ukraine didn't achieve the goal of advancing their power and influence so they're looking elsewhere (China, Venezuela, Panama... Greenland even). The other half wants to escalate the war.

Trump isn't actually very coherent on this issue, probably because he's getting pulled in two directions (e.g. rubio/lindsay graham is pulling him one way, witkoff the other) - hence why he keeps (for example) threatening Tomahawks sometimes and pulling back other times.

The one thing US imperialists can all agree on is that every Latin American country led by an opponent of the US needs to be overthrown. I think they've done this somewhere between 15 and 30 times in the last century.
by Natanael_L | 2025-11-02 14:00:29+00:00
C2PA has the problem that it has a ton of optional metadata support and no well-defined strict validation procedure, so it's trivial to make fake photos appear valid using currently available C2PA enabled software.

They absolutely must define a much stricter mode that actually means something, and distinguish it from what they have now (which is essentially prototype level in terms of security model)
by _flux | 2025-11-02 14:00:48+00:00
I'm not a practioner of cryptography, but I would be wary about timing attacks that might become possible if such a dynamic runtime is introduced. At least relevant pieces of code would need to be re-evaluated in the Fil-C environment.

But maybe you could use C as the "glue language" and then the build better performing libraries in Rust for C to use. Like in Python!
by potato3732842 | 2025-11-02 14:01:11+00:00
Tell that to all the black new yorkers who had their guns and/or weed stolen by the government during the stop and frisk era.

Having the ability to stop people isn't worth much if you don't have the unaccountable bureaucracy that can unilaterally doll out whatever punishment it wants.

The usefulness of these sort of fishing exercises regardless of what kind of violation is being gone after is wholly predicated on the upstream system denying these people their rights. If enforcement bureaucracies had to give everyone subject to "serious punishment" (whatever we agree that is, incarceration likely fits it) real rights, follow real protocols involving warrants, evidince, etc, etc. and potentially drag them in front of a jury then you wouldn't have any of this.

And it's not just limited to ICE. Pretty much every other law (and I don't just mean criminal, civil too) enforcement excess evaporates overnight if people get full protection afforded by their rights after law enforcement interacts with them.

Now, you could argue that we should instead impose the constraints on law enforcement contact and then all these unaccountable systems that violate people's rights will be fine because the enforcers won't be shoving innocent people into them, but looking at the last ~50yr of executive branch (not just feds, states very much too) history, that's basically what we've done and it clearly hasn't worked.

This isn't a brown people problem. This is a bigger fundamental problem with how we've architected law (once again, not just criminal) enforcement in this country. The brown people are just the newsworthy implementation at this particular minute.
by rafabulsing | 2025-11-02 14:02:25+00:00
Again, I don't entirely disagree. Some choices are entirely stylistic: single vs double quotes for strings. Tabs vs spaces. Indentation width. Trailing commas. Those (and others) encode literally 0 meaning, and any time discussing those is time wasted, so they should be auto formatted away.

But some things are not like that. Two statements being right against each other, or having an empty line between them, encodes information.

In a big function call with many arguments, where do you add line breaks between arguments? That can convey information as well. As the posted link says, those are some of the most difficult scenarios for a formatter to try to deal with, and my point is that I think it's not worth the effort.
by rogerbinns | 2025-11-02 14:02:29+00:00
What is better:

1) Saying your package supports free threading, but it isn't safe - ie concurrent mutation can result in corruption and crashes

2) Allowing the package to be loaded into a free threaded Python, which immediately enables the GIL. Concurrent mutation does not result in corruption and crashes because of the GIL. The user doesn't have to maintain two Python installations. They can set the environment variable PYTHON_GIL=0 or start Python with -Xgil=0 which will keep the GIL disabled, and they will be fine if they avoid concurrent mutation.

I chose 2. The stdlib json package (along with many others) picked 1. Heck I'll guarantee that most that picked 1 aren't 100% safe either, because doing the changes is hard work, *every* case has to be covered, and tools like thread sanitizers don't work.

The reason I chose 2 is because I care about data integrity. I will eventually reach 1, but only once I can be certain the code is correct.
by anthonytorre | 2025-11-02 14:03:02+00:00
Good questions, thanks for asking!

Right now I'm keeping it simple for the MVP:

- You'll be able to track about 5 major commodities at launch (gold, silver, oil, gas, wheat).

- Prices are checked every hour from a real market data API.

- You can set alerts for "above" or "below" a specific price (range alerts are planned later).

- Notifications will start with email (SMS later).

The goal is to validate if people actually want a simple alert tool before adding more advanced features.

Pricing will be:

- Free tier: up to 3 commodities and 3 email alerts.

- Pro: €5/month for unlimited commodities and alerts (email).

- Later: a €15/month plan for SMS alerts.

Trying to keep it lightweight and affordable for now.

And "€" because I'm european (but will maybe charge in "$" if most of the users are from the US).
by azangru | 2025-11-02 14:03:11+00:00
> Browsers and servers impose practical limits on URL length (usually between 2,000 and 8,000 characters) but the reality is more nuanced. As this detailed Stack Overflow answer explains, limits come from a mix of browser behavior, server configurations, CDNs, and even search engine constraints. If you’re bumping against them, it’s a sign you need to rethink your approach.

So what is the reality? The linked StackOverflow answer claims that, as of 2023, it is "under 2000 characters". How much state can you fit into under 2000 characters without resorting to tricks for reducing the number of characters for different parameters? And what would a rethought approach look like?
by amiga386 | 2025-11-02 14:04:00+00:00
> the user you emailed in the first place gets an irritating email and they suppose that you are a dick

Funny you should say that. I think that people who cause me to recieve an irritating email with nothing more than "like [person] reacted to your message" are dicks. They are sending me an email phrased like there's some third-party intermediary keeping me at arms length e.g. "Mr Blenkinsop wishes it be known that he is aware of your recent correspondance and is approving of its tone."

If you can't fix the real problem - Microsoft and their gamification of email - you can correct the views of people who think that "liking" an email is OK, which to be clear it is not. Email is not a chat client. Use words to communicate to people, and if you don't think a "reaction" merits words, then don't send one.

You need a similarly hostile user education to stop thoughtless people wasting your time in chat clients -- the moment they say "hello", and then nothing else, send them a link to https://nohello.net/ to let them know they have just been rude and inconsiderate.

Microsoft has prior history for inventing Microsoft-only shit that fucks up other mail ecosystems: https://en.wikipedia.org/wiki/Transport_Neutral_Encapsulatio...
by mihaic | 2025-11-02 14:04:31+00:00
I'm actually fine with almost all the decisions that Rust made in terms of logic and concepts, but specifically don't like the synthax itself: the symbols, keywords like the consonant-only "fn" instead of "func" for instance, the fact that || {} starts a lambda instead of || -> void {}, the fact that you can return things by simply having them in an if branch. It's the main reason I don't use the language.
by noodletheworld | 2025-11-02 14:05:19+00:00
Mmm.

Youre doing two things:

1) youre moving state into an arbitrary untrusted easy to modify location.

2) youre allowing users to “deep link” into a page that is deep inside some funnel that may or may not be valid, or even exist at some future point in time, forget skipping the messages/whatever further up.

You probably dont want to do either of those two things.
by jraph | 2025-11-02 14:05:56+00:00
> I make sure that as much state as possible is saved in a URL

Do you have advice on how to achieve this (for purely client-side stuff)?

- How do you represent the state? (a list of key=value pair after the hash?)

- How do you make sure it stays in sync?

-- do you parse the hash part in JS to restore some stuff on page load and when the URL changes?

- How do you manage previous / next?

- How do you manage server-side stuff that can be updated client side? (a checkbox that's by default checked and you uncheck it, for instance)