MurphyA/hacker-news huggingface dataset:
by JackC | 2025-10-13 13:51:23+00:00
Opinion from 10 years ago, I suspect still valid:

There are a million python libraries and tools to do some overlapping subset of the things you'd want to do with a pdf.

There are no doubt another million in other languages.

These are each basically bundles of some of the transformations you'd want to make to the same underlying data structure.

So, complex pdf scripts often need two or three different libraries to get their thing done, which is wasteful at borh a dev effort and computational level.

The ecosystem would be greatly improved if someone made a great (probably rust based) in-memory low level pdf reading and writing data structure.

PDF libraries in any language could switch to using that structure and library internally, with the carrot that the switch would result in needing less code, and likely being some combination of faster and safer.

And then if they just exposed get_structure_pointer() and set_structure_pointer(), they could all interoperate for free. (Another carrot for joining -- small libraries could usefully add features and be adopted without needing to pick an existing popular library to glom onto.)

Not sure what would economically cause this to happen, but it would be great.
by ildari | 2025-10-13 13:51:24+00:00
Hi HN, I'm Ildar from Archestra, we build an open-source LLM gateway. We've been exploring ways to protect AI agents from prompt injections during tool calls and added the approach, inspired by the game "Guess Who", where the agent can learn what it needs without ever seeing the actual result. See the details in the blog post we wrote
by ben_w | 2025-10-13 13:51:41+00:00
> I don’t think a dramatic “crash” is the most likely outcome.

There's lots of crashes, but they're over-predicted. A quote I can't remember perfectly, "we predicted 10 of the last 3 stock market crashes".

That said, if the levers of power in the USA stop being independent, if they all become bound to the will of the President, there's a strong risk of someone — could be the President who ends their independence, could be a successor — crashing it all very hard. If whoever is in charge at the time hates intellectuals, I mean it can be Pol Pot hard; but even if the leader at that point tries to do it all right and listens to sane advisors, it can still crash as hard as the Chinese famine resulting from the Four Pests campaign.

The USA isn't there yet. That's the direction of motion, but even with the current speed of change, there's enough independence that it's not even close to that bad yet.
by busterarm | 2025-10-13 13:51:58+00:00
An automated trading bot is just some person/company's agent. It can still be a victim of a fraud.

I think spoofing should quite obviously be illegal. It's basically contract fraud.

> I was under the impression that this was sort of the point of crypto markets, to escape regulations and be a freeform, decentralized trading venue.

"Escaping regulations" is some libertarian fever dream. There is no such thing as "the law doesn't apply to you" if you make the right people angry enough.
by pooyamo | 2025-10-13 13:52:00+00:00
> I guess this is for when you're knee deep in terminals?

One can use it directly in terminal or it can be used as a dependency tool in other scripts similar to the way other UNIX tools are used. For example I use it as a pronunciation player in my dictionary dict-master [1]. It's a shell script too.

Another example (run two times so it uses the cache the second time):

echo this unix pipeline is poor man text to speech | xargs -n 1 gsay

[1]: https://github.com/pvonmoradi/dict-master
by KaiserPro | 2025-10-13 13:52:30+00:00
> if you get one stupid person in as king they could sell everything off

Thats the point, its not trivial to sell it off, because it was set up to counteract a fooling king in exchange for a stipend.

This system was explicitly designed to take an asset from the crown and place it in trust so that the king could get a steady income, ostensibly from assets that had unpredictable income.

Thus the crown estate was born, which has a bunch of rules, most notably about taking on debt.
by teh64 | 2025-10-13 13:53:13+00:00
I don't really understand the appeal of jj as someone who uses sublime merge [0]. It has good support for submodules, a lot of the editing commits (messages, squash, move etc...) is really easy and I can also see and edit my stashes directly. Is there any benefit to jj compared to this?

[0] https://www.sublimemerge.com/
by Princesseuh | 2025-10-13 13:53:21+00:00
Working on Maudit, a Rust library to make static websites. Emphasis on library instead of framework. I aim that you could integrate Maudit into existing Rust apps, building pages individually, rendering Markdown where you need etc, instead of a black box magic "build website" command.

https://maudit.org https://github.com/bruits/maudit
by Tycho | 2025-10-13 13:53:45+00:00
I was thinking about this concept of creative destruction recently.

I move to my neighbourhood in 2019. Before I got round to visiting them, a bunch of pubs and eateries closed down for the pandemic, and never re-opened. One pub became new apartments. A cafe became some sort of spa.

Take the pub for instance, I could imagine it was a lifestyle business for someone who made enough money from it, but not a whole lot. Is it net good or bad (for the area) for somewhere like that to close? Was this lifestyle business depriving the area of better services, more tax revenue? Or does the area now get less services and the money is mostly extracted into the coffers of a non-local property development enterprise. Quite hard to judge. Maybe there’s some good heuristics for estimating such things?
by theshrike79 | 2025-10-13 13:54:01+00:00
Most unit tests aren't that complicated.

You take the smallest value and biggest value, do they work?

Take something in the middle, does that work?

Get the smallest and make it even smaller, does it break?

Get the biggest value, make it bigger, does it break?

GOTO 10

And when you got the pattern down, checking the rest is mostly just copying and pasting with different values on "smallest" and "biggest".

Something an LLM is very very good at.

Also you should always use another LLM to critique your primary one (or the same LLM with a clear context). I've found that gpt-5-high is VERY good at finding subtle bugs Claude will never catch. It can fix them immediately when I give it the Codex commentary though.
by josefritzishere | 2025-10-13 13:54:08+00:00
If you read the judges' decision; it's indefensible. The decison relies on Johnson v. Manitowoc County which is between a landlord and tenant... not a city government and a private citizen. The judge calls the situation "identical" which is patently false. https://www.govinfo.gov/content/pkg/USCOURTS-ca7-24-02448/pd...
by WillAdams | 2025-10-13 13:54:39+00:00
Yeah, I've been expecting someone to work up a system where:

- source file is .md

- file is compiled to .pdf _and_ the .md source file is included as an attachment

- when working with the file beyond viewing as a .pdf the .md is extracted and used instead of the .pdf

The LaTeX folks have a similar system ages ago where the .tex source would be included in a .pdf made from a .tex file for embedding in documents so that it could be sent in say an e-mail and then edited by the recipient --- absolutely awesome for discussing math via e-mail.
by yoda222 | 2025-10-13 13:54:48+00:00
Not a mathematician, just an engineer that used matrix a lot (and even worked for MathWorks at one point), I would say that most mathematicians don't care. Matrix is 2D, they don't have a good way to be laid out in 1D (which is what is done here, by giving them linear indices). They should not be represented in 1D.

The only type of mathematicians that actually care are: - the one that use software where using one or the other and the "incorrect" algorithm may impact the performance significantly. Or worse, the one that would use software that don't use the same arbitrary choice (column major vs row major). And when I say that they care, it's probably a pain for them to think about it. - the one that write these kind of software (they may describe themselves as software engineer, but some may still call themselves mathematicians, applied mathematicians, or other things like that).

Now maybe what the author wanted to say is that some language "favored by mathematician" (Fortran, MATLAB, Julia, R) are column major, while language "favored by computer scientist" (C, C++) are row major
by austy69 | 2025-10-13 13:55:19+00:00
I'm making a game that's inspired by the niche but adored "The Last of Us Factions", the multiplayer as part of the first Last of Us (only available on Playstation). I got a gaming PC a couple years ago and haven't been able to find anything quite like it.

Making it with the Rust game engine, Bevy and really enjoying it so far. Using Blender for making assets. I'm maybe a dumbass for making it as my first game, but I just don't really get excited by smaller projects.

Overall I've found modern games to be (1) overstimulating and (2) have algorithms in the background to keep me engaged that I don't trust (see: free to play model)
by AngryData | 2025-10-13 13:55:31+00:00
I had a dog when I was younger that was from a dog sled line but was many generations removed from pulling sleds. She seemed to love to pull on stuff, ropes, leashes, toys, people holding her, or whatever else, so we bought a dog harness and attached a garden wagon to her a few years in. And she was absolutely obsessed with pulling it around and seemed like she would have happily run herself to death pulling it around if we let her. The harder you tried to hold the wagon, the harder she would pull and the more fun she seemed to be having.

It is just anecdotal, but I 100% believe there was nothing she found more entertaining and fun than to pull that wagon because of her genetics. There was no training involved, within seconds of hooking her up with a harness she just knew what she had to do.
by holowoodman | 2025-10-13 13:55:34+00:00
Being the French, their tactics will rather be what it always has been: Not reduce their contribution, but vastly increase their received subsidies from the EU. That way, they can let the EU subsidize what they can no longer afford to pay for with their own money. The EU will go along with this because this is the accepted MO of France's EU contributions since forever, and increased spending towards France will increase the EU's overall budget and therefore importance. The only unhappy member states will be Germany and a few unimportant small payer states. But Germany has always gone along with those shenanigans, so no reason to think they won't happily open their wallet again...
by scotty79 | 2025-10-13 13:55:38+00:00
If the business couldn't hire a dev that knows that you don't write a query without ensuring it uses some index when it runs then the business deserved to die and I wouldn't place any blame on the dev who in business terms is just a resource. Bad resource, but just a resource, so they can't be blamed for the failure of the business.

And the root cause is hiring process that admits devs that can do db api call but have no idea what having database as a component of your app actually entails.
by James_K | 2025-10-13 13:55:46+00:00
> A piece of code that accepts a reference to some type A and only ever reads from it can correctly accept a reference to a subtype of A.

The same is true of a piece of code that writes through the reference or returns it. That's how sub-typing works.

> A piece of code that accepts a reference to a type A and only ever writes to it can correctly accept a reference to a supertype of A.

Have you ever programmed in a language with subtyping? Let me show you an example from Java (a popular object oriented programming language).

class Parent {} class Child { int x; } class Example { static void writeToChild(Child c) { c.x = 20; } static void main() { writeToChild(new Parent()); } }

This code snippet doesn't compile, but suppose the compiler allowed us to do so, do you think it could work? No. The function writeToChild cannot accept a reference to the supertype even though it only writes through the reference.

I've seen a lot of people in this comment section talking about read and write which I find really odd. They have nothing to do with variance. The contravariant property is a property of function values and their parameters. It is entirely unrelated to the body of the function. A language without higher order functions will actually never have a contravariant type within it. This is why many popular OOP languages do not have them.
by Paradigm2020 | 2025-10-13 13:55:48+00:00
I admire the dedication and love to idea / how much you've thought it trough from the app / logic side.

From the marketing side...

I'd make a selection on the website on first visit - I'm a chef / creator - I like to cook

Your cta (call to action) is... Not very effective

Instagram only has 7 followers and no posts. ...

I like the dedication but I'd definitely recommend to improve your marketing / promotion skills (if you build it they will come is a myth unfortunately...), if you wanna have a call about it feel free to hit me up, tijlatduckdotcom. I'm also in Europe so easy for timing.
by futurecat | 2025-10-13 13:56:11+00:00
I have primarily used git in the terminal for more than a decade. I also used magit when I was primarily working in emacs (magit's great!). I now primarily use lazygit. While I'm not a fan of the whole UI, this is the only git tool that makes me go super fast while creating a near-perfect commit history. I tried using jj but immediately stopped after installation as it required a learning curve that I wasn't ready to commit to yet.
by mantas | 2025-10-13 13:56:48+00:00
I am not an electrician, but big problem with home-solar is grid not being bi-directional. In my whereabouts it's common to have good „down“ power, but no permit for „up“ back to the grid. Which makes it not worth it for home users. Batteries make it somewhat better, but it's still far from ideal.

For big commercial arrays, the grid used to have main lines to certain old school plants. Now for solar new major lines are needed to middle-of-nowhere locations to connect solar and wind farms. While old-school plants were more concentrated and closer to major locations, it was less costly than major lines out-there and to many more locations. And, obviously, investors into solar/wind ain't willing to food those bills.

The problem with solar subsidies, especially when it comes to home solar, is that they're very skewed to favor better-off people.

As for Chinese, yes, something needs to be done. But for now I kinda understand people who ain't happy subsidies are ending up in China.
by umvi | 2025-10-13 13:58:00+00:00
I feel like anyone who spends just a couple of hours learning git will have a much better mental model than the crappy "Assembly line" model from the article.

Your real mental model of git should be an acyclic directed graph where the nodes are commits and the edges are ancestry. Commits represents snapshot of the project's state. Tags and branches are just text pointers to commits in the graph.

If you use this mental model, suddenly things like git rebase or git reset become far less mysterious and arcane since they are just simple graph operations. Like `git reset --hard X` means "Make current branch's text pointer point to X"
by Esophagus4 | 2025-10-13 13:58:17+00:00
I am not a CFA, and this is not financial advice (and I believe you learn what people really believe by what they hold, not what they say :) )

So telling you what I hold: I’m long the market, mostly in US equities (60%), developed economy international equities 20%), and intermediate term US bonds (20%).

My investment horizon is 20+ years, so in general, I don’t pay attention to the short term vol.
by walkabout | 2025-10-13 13:58:40+00:00
Yeah, I don’t hate bicyclists in the “I would try to make them feel less safe” sense (I tend to go way the opposite way, if anything) but I do dread seeing them when driving or walking in the same spaces. They’re really unpredictable, and their presence creates extremely unsafe-feeling situations for everyone around.

When I ride a bike, I don’t do it in places where, when I encounter a bike driving, it makes me especially anxious.
by jlaternman | 2025-10-13 13:58:59+00:00
I agree with this sentiment 100%.

Probably the speculative FOSS project I'm most excited to think about is an open alternative to YouTube – a universal video hosting platform or network, free from commercial incentives baked into the platform.

I've only started to think about this recently so haven't explored whether it's viable to e.g. run all video hosting in a torrent-like, distributed way, or perhaps a Mastodon-like model, but the goal seems like one of the best things free software could aim to achieve right now. YouTube needs to die, and it needs an alternative that could conceivably kill it.
by Orukka | 2025-10-13 13:59:04+00:00
Following the success of our Orukka Mastercard Payment rings to allow users tap to pay with no need for wallets and phones, We have now started pre orders for Orukka P2P rings. In the workd of Satoshi...I've been working on a new electronic cash system that's fully peer-to-peer, with no trusted third party." - Satoshi Nakamoto 2008
by leecb | 2025-10-13 13:59:05+00:00
> The Quasi-Zenith Satellite System (QZSS) (Japanese: 準天頂衛星システム, Hepburn: juntenchō eisei shisutemu), also known as Michibiki (みちびき, "guidance"), is a regional navigation satellite system (RNSS) and a satellite-based augmentation system (SBAS) developed by the Japanese government to enhance the United States-operated Global Positioning System (GPS) in the Asia-Oceania regions, with a focus on Japan.

https://en.wikipedia.org/wiki/Quasi-Zenith_Satellite_System
by twic | 2025-10-13 14:00:20+00:00
"servers" is the key word here. Some of the tools listed on that page are just slightly "improved" versions of common sysadmin utilities, and indeed, those are probably not worth it. But some are really development tools, things that you'd install on the small number of machines where you do programming. Those might be.

The ones that leap out at me are ripgrep (a genuinely excellent recursive grepper), jq (a JSON processor - there is no alternative to this in the standard unix toolkit), and hyperfine (benchmarking).
by jeroenhd | 2025-10-13 14:00:31+00:00
Windows doesn't have kernel mode SCTP so it was slow for most consumer devices for a long time. Even now, Linux SCTP is slow in comparison to other protocols. Plus, it's complicated enough already to get UDP and TCP traffic to make it's way through middleboxes. Also, not a lot of consumer routers support things like port forwards and combining SCTP with NAT doesn't seem to be widely tested. Things just didn't work out when SCTP stood to gain adoption.

It's an interesting protocol, but these days I think the internet has ossified so far that you're probably better off relying on hacks like QUIC and MPTCP to get the protocol features that SCTP stood to introduce.
by thiht | 2025-10-13 14:01:25+00:00
That goes against the UNIX philosophy IMO. Tools doing "one thing and doing it well" also means that tools can and should be replaced when a superior alternative emerges. That's pretty much the whole point of simple utilities. I agree that you should learn the classic tools first as it's a huge investment for a whole career, but you absolutely should learn newer alternatives too. I don't care much for bat or eza, but some alternatives like fd (find alt) or sd (sed alt) are absolute time savers.
Show HN: Malloc – phy solver for constrained balanced partitioning problems
by stuehieyr | 2025-10-13 14:01:28+00:00
I’m releasing malloc (MultiplicativeConstraint), a production-grade, open-source library for solving large, constraint-rich partitioning problems—think resource allocation, scheduling, clustering, supply chain, EDA, and HPC.

Why is this interesting?

Physics-inspired math: Uses spectral theory and heat-kernel action minimization—correlation with target objectives is ρ ≈ 0.996.

Enterprise scalability: Sparse matrix core solves 100,000-node problems in under 90 seconds with only 23MB memory.

Adaptable constraints: Neural module adapts to real-world, contradictory constraints with up to 83% satisfaction.

Key applications: Cloud resource allocation, HPC load balancing, clustering, logic optimization, graph partitioning, bin packing, and more.

Limitations: Not a general P=NP solution; works best when structural regularity exists.

Replicable results: All benchmarks, proofs (MATH.md), and performance demos are open in the repo.

Try it out: Repo + docs: https://codeberg.org/aninokuma/malloc

README covers the API, benchmarks, and supported problems.
by HSO | 2025-10-13 14:01:31+00:00
This is a persistent mythology of western economic history to "cleanwash" the past and "explain" the present inequality (or what was the present until recently)

Think about the components of all those innovations from the past and if they would have been possible (to scale) without violent and forcible extraction of resources from around the globe, incl forced labor.

Think about when GDP was constructed and how, and from which point stuff got counted into it (ie from which point in the production chain it added to a country´s gdp). If you take raw materials X and Y from somewhere, by force and for cheap, then make sth like a out of it and only count that topline, now you have a big gdp, congrats.

Eg even the "US" was not even "settled" (forcible land expansion) until the late 19th or early 20th century. So you have a steady influx of cheap/free land to support a growing population that keeps adding to the "gdp". Lo and behold, soon after this dynamic stopped, financial bubble and bust ensues.

The main lesson for me is that progress and growth are completely separate things/concepts. You can absolutely progress without "growing" (bloating) your gdp, if you change some things. You can absolutely regress while "growing" (bloating) your gdp. Look at "US" today.

Chicken are coming home to roost. This is why first instinct of Trump and his cohorts is now to expand again "US" borders. Go back to extraction to "grow", since they are institutionally and mentally incapable of progress without extraction. More importantly, without "growth" the system as it is will collapse. It behaves like a cancer that has close to killed its host. It´s over, and anyone who can see knows it on some level.
by a3w | 2025-10-13 14:01:34+00:00
I use a gui for 90% of my workflows. Another 9 percent points are hitting back in my console history to rerun commands, never mind if git or jj or POSIX that affect my working dir or index state.

What am I supposed to do, use the UI plus jj, and prompt an LLM to use which: git, or jj, in case I am too lazy to think of the right command in the remaining one percent of cases?

But in general, I like the "less states and DVCS features than git" approach, but would not switch back to mercurial just to avoid the whole "should we rebase or create merge-commits" discussions in our teams due to having a single default that might not be optimal for everyone, but just works.
by magicalhippo | 2025-10-13 14:02:02+00:00
I've tried some of these prompt injection techniques, and simply asked a few local models (like Gemma 2) if they thought it was very likely a prompt injection attempt. They all managed to correctly flag my attempts.

I know LLama folks have a special Guard model for example, which I imagine is for such tasks.

So my ignorant questions are this:

Do these MCP endpoints not run such guard models, and if so why not?

If they do, how come they don't stop such blatant attacks that seemingly even an old local model like Gemma 2 can sniff out?