MurphyA/hacker-news huggingface dataset:
by ifwinterco | 2025-10-30 09:49:08+00:00
For a startup, boring tech stacks are absolutely the correct choice. Using an opinionated framework like Django can be a very good idea for the same reason - it provides a structure which you just have to follow without too many decisions to make, and any new hires with experience in the framework can hit the ground running to a larger extent.

The only exception is if you are doing something where your tech stack is integral to your product (e.g. you need crazily high performance or scale or something from the get go).

Split out the front ends into separate services but leave the back end as a monolith, just try not to get logically separate parts too entangled so you have a decent chance of separating them later if and when "later" arrives
by alex-moon | 2025-10-30 09:49:20+00:00
Baader-Meinhof complex in action: I have _just_ ordered a book of Rovelli's (Reality is Not What It Seems - https://en.wikipedia.org/wiki/Reality_Is_Not_What_It_Seems), it should be in my hands by the end of the week. I am fascinated by the ongoing work in quantum gravity, it's tantalising by its nature.

This is a great interview and I must say I like the man a lot more than I did before. He has articulated something here that I have long felt: that it is as important in politics as it is in philosophy or theoretical physics to be able to state one's assumptions, to suspend one's assumptions for the sake of argument and to drop/change one's assumptions in the face of evidence.

I feel like this is a vital skill that we, as a society, need now maybe more than ever, in literally any field in which there is any meaningful concept of "correct" (which I think is most fields). I also think it's a skill you basically learn at university - and that that is a problem. I don't know what an approach to cultivating it more widely would look like.
by bob1029 | 2025-10-30 09:50:26+00:00
> Most obviously, RCA has an infinite regress problem

Root cause analysis is just like any other tool. Failure to precisely define the nature of the problem is what usually turns RCA into a wild goose chase. Consider the following problem statements:

"The system feels yucky to use. I don't like it >:("

"POST /reports?option=A is slow around 3pm on Tuesdays"

One of these is more likely to provide a useful RCA that proceeds and halts in a reasonable way.

"AWS went down"

Is not a good starting point for a useful RCA session. "AWS" and "down" being the most volatile terms in this context. What parts of AWS? To what extent were they down? Is the outage intrinsic to each service or due to external factors like DNS?

"EC2 instances in region X became inaccessible to public internet users between Y & Z"

This is the kind of grain I would be doing my PPTX along if I was working at AWS. You can determine that there was a common thread after the fact. Put it in your conclusion / next-steps slide. Starting hyper-specific means that you are less likely to get distracted and can arrive at a good answer much faster. Aggregating the conclusions of many reports, you could then prioritize the strategy for preventing this in the future.
by dns_snek | 2025-10-30 09:50:36+00:00
It's even worse because LLM providers don't even need to be doing anything malicious for the conclusions to be garbage.

The vast majority of information that the LLM "reads" about any given product is going to come from listicles and other poorly researched "reviews", ad placements, astroturfed comments, and marketing material. They launder all of this together, "summarize" it and present it as rigorous market research. Garbage in, garbage out.
by gherkinnn | 2025-10-30 09:50:36+00:00
This is beside the point. And I can't imagine how anyone would want to write templates in anything other than JSX and yet here we are.

Rails and friends aren't about a single technical choice, but providing a complete and opinionated framework to build web apps that conceptually fit in to one person's head.

Rails is that. Django is that. Laravel is that. Next is the opposite, where Next-specifica around caching won't fit in to a single head, let alone the app you're building.
by zelphirkalt | 2025-10-30 09:50:48+00:00
What I was referring to is:

> [...] at work we don't even use the .toml yet because it's relatively new, we still use a python_requirements.txt and install into a venv that is global to the system.

Unless your `python_requirements.txt` also carries checksums, like uv's lock files or poetry's lock files, that is. Though of course things get spicy and non-reproducible again, if you have then multiple projects/services, each with their own `python_requirements.txt`, all installing into that same global venv ...
by locknitpicker | 2025-10-30 09:51:10+00:00
> Of course you can, wtf?

Explain then what is your alternative to unit and integration tests.

> Mock are often the reason of tests being green and app not working :)

I don't think that's a valid assumption. Tests just verify the system under test, and test doubles are there only to provide inputs in a way that isolates your system under test. If your tests either leave out invariants that are behind bugs and regressions or have invalid/insufficient inputs, the problem lies in how you created tests, not in the concept of a mock.

Workman and it's tools.
by sixeyes | 2025-10-30 09:52:42+00:00
I mean, it's a vs code fork. You can install support for "most" languages, if you mean LSP and syntax highlighting stuff. Most of this won't be managed by Cursor (the company) so i don't think they can list any bc they don't know.

If you mean regarding AI output, it would depend on the model, which for claude and GPT-5 again isn't Cursor-created. So again, they don't know.
by prasoon2211 | 2025-10-30 09:53:29+00:00
Most people actually using python do not start off in scripts. Usually, I would mess around in IPython / Jupyter for a couple days until I have something I'm happy with. Then I'll "productionize" the project.

tbh this has been a sticking point for me too with uv (though I use it for everything now). I just want to start of a repl with a bunch of stuff installed so I can try out a bunch of stuff. My solution now it to have a ~/tmp dir where I can mess around with all kinds of stuff (not just python) and there I have a uv virtualenv installed with all kinds of packages pre-installed.
Show HN: Metrics, Logs, Traces and Events in One Place. This Is Arc
by ignaciovdk | 2025-10-30 09:54:26+00:00
Hey HN,

I’ve posted here before about Arc, and wanted to share a quick update. We’ve been heads down the last few weeks, and things are moving fast, performance is up, features are landing, and the community response has been awesome.

Arc uses DuckDB as the SQL engine, with MessagePack, Arrow, and Parquet under the hood. Right now we’re seeing around 2.45M RPS for metrics, and about 1M RPS for logs, events, and traces. It now supports retention policies, deletes, and continuous queries that aggregate data as it comes in.

We also built a VS Code extension to explore and query Arc, added Apache Superset integration, and are working on Telegraf and a Grafana datasource next.

Feedback is always welcome. good, bad, or brutal. It all helps.

Happy Thursday!
by ViewTrick1002 | 2025-10-30 09:54:38+00:00
For any larger project I would recommend working with a cargo workspace to compile as little as possible on each check/test/run/build.

Then you can build a DAG of crates and stick e.g. the Protobuf stuff in its own separate corner where it only needs to be recompiled on full rebuilds or when you work on it.

Feels a bit shitty to have to resort to managing crates instead of modules simply due to the compile times, but it is what it is.

https://doc.rust-lang.org/cargo/reference/workspaces.html
by flohofwoe | 2025-10-30 09:54:41+00:00
It's still very educational. It shows how ObjC method calls work under the hood, because even calling objc_msgSend() from plain C involves a certain amount of non-obvious magic (because of the variable argument list and return types).

And tbh I'm kinda surprised how little assembly code it is, less than most UI framework hello-worlds in high level languages ;)
by pjmlp | 2025-10-30 09:54:44+00:00
Not the first, has everyone forgotten the Surface/PixelSense table?

https://blog.azureinfra.com/surface/

https://de.wikipedia.org/wiki/Datei:Surface_table.JPG

https://www.theverge.com/2012/6/19/3096652/microsoft-surface...

"Microsoft Surface PixelSense 'Coffee Table' Hands On"

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

Granted, this is very hard to search for, when not being around the time it was available, as most results will be about the current tablets marketed as surface.
by zelphirkalt | 2025-10-30 09:55:02+00:00
Sounds like the Common Lisp approach, where there are editions or what they call them and those are sets of dependencies at specific versions.

But the problem with that is, when you need another version of a library, that is not in that edition. For example when a backdoor or CVE gets discovered, that you have to fix asap, you might not want to wait for the next Maven release. Furthermore, Maven is Java ecosystem stuff, where things tend to move quite slowly (enterprisey) and comes with its own set of issues.
by mort96 | 2025-10-30 09:55:19+00:00
I don't even think open sourcing Minecraft would hurt them financially. People don't buy Minecraft because that's the only way to play the game; it's not, it's easy to find ways to run Minecraft for free. The reason people buy it is to join servers.

Most serious servers only allow players with valid paid Minecraft accounts to join, because it allows the server owner to ban people or otherwise keep track of people. I don't see any reason why this would change just because the game client was made open source.
by chaokunyang | 2025-10-30 09:55:39+00:00
I understand your concern. Personally, I’m open to using AI as part of the development process, but the majority of the code in this repository has been written manually and carefully reviewed.

The AGENTS.md file was added only recently. Its original purpose wasn’t to hand code generation entirely to an AI, but rather to use AI as a pair‑programming debugger — for example, having it walk through tricky binary parsing issues byte‑by‑byte. Serialization in a compact binary format can be hard to debug, and AI can sometimes save hours by quickly pinpointing structural mismatches.

That said, serialization is a fundamental piece of infrastructure, so we remain conservative: any AI‑assisted changes go through the same rigorous review and test process as everything else. As technology evolves, I think it’s worth exploring new tools — but with care.
by graemep | 2025-10-30 09:55:43+00:00
That is impressive. It feels like an entire framework with a lot more functionality and has a lot of things I have been wishomg Django had.

Very few dependencies outside testing. I like that. I was surprised flask is one though.

I am thinking about using it for some sections (a management/dashboard bit, and probably the admin) of a site, the rest of which is plain Django. Are there likely to be any problems doing that?
by nevon | 2025-10-30 09:57:39+00:00
This is not exactly true. The az names are indeed randomized per account, and this is the identifier that you see everywhere in the APIs. The difference now is that they also expose a mapping from AZ name (randomized) to AZ id (not randomized), so that you can know that AZ A in one account is actually in the same datacenter as AZ B in a different account. This becomes quite relevant when you have systems spread across accounts but want the communication to stay zonal.
by 59nadir | 2025-10-30 09:57:59+00:00
This "per hour" and "per day" business has to end. No one cares about "per day" and it makes it much harder to see the actual talked about load on a system. The thing that matters is "per second", so why not talk about exactly that? Load is something immediate, it's not a "per day" thing.

If someone is talking about per day numbers or per month numbers they're likely doing it to have the numbers sound more impressive and to make it harder to see how few X per second they actually handled. 11 million events per day sounds a whole lot more impressive than 128 events per second, but they're the same thing and only the latter usually matters in these types of discussions.
by probably_wrong | 2025-10-30 09:58:07+00:00
Since I'm assuming that Bret Devereaux [1] isn't here to raise the point, I'll do it instead: "ancient people" is a term that, as we colloquially understand it, tends to exclude most of the ancient people, namely, the peasants. Sure, a Roman would sit with their aqueducts, but for that one person in the city you need a couple orders of magnitude more people working the fields.

As I understand Bret's last post about the life of peasants[2] regarding how they saw life,

> the lives of these peasants work in a series of cycles. There’s a reason agrarian societies of these sort often do not think in terms of time as a linear progression, but instead as a set of ‘ages’ or ‘cycles,’ with the present, in a sense, endlessly repeating in a static sort of rhythm. For these societies technological and social progress, while real is often so slow as to be almost or entirely imperceptible on a normal human lifespan.

[1] https://acoup.blog

[2] https://acoup.blog/2025/10/17/collections-life-work-death-an...
by alecco | 2025-10-30 09:58:12+00:00
It's incredible how this comment got a bunch of replies not understanding the question.

Explanation: Tether is not holding a stack of paper bonds in a safe. They must use some broker (or similar) to operate and hold the treasuries for them. And they are hiding how this is working. So the parent's question is who do they (Tether) hold it (treasuries) through (as in what broker/investment bank/whatever).

My answer is nobody outside Tether knows. And they are one of the dodgiest companies out there. We are totally audited, bro, trust me. They could be doing leveraged investments. Or they could just be Madoff 2.0. Nobody really knows. And the US government seems to be looking the other way because they are desperate for any buyers of treasuries.
by yanhangyhy | 2025-10-30 09:58:27+00:00
Well, I actually know this issue quite well. China’s “bachelor problem” isn’t really that serious, although it is one of the reasons for the declining birth rate. While the main cause of China’s low fertility rate is the soaring cost of having children, it’s also strongly related to the rise of feminism and the growing hostility between men and women. In China, Taiwan, Japan, and South Korea, this problem is among the worst in the world. Basically, men hate women and women hate men; the marriage system has managed to make both sides unhappy, so people just stop getting married.

As for the “bachelor problem,” it roughly falls into two categories. One group consists of older men — they’re actually quite fortunate, since they’re a key target of positive government assistance. In rural areas, for instance, the government often helps them build houses and provides them with monthly living stipends so they can survive without working. China’s living costs are relatively low, so this policy can be sustained.

The other group is younger men. Their solutions are either marrying foreign women or staying single and enjoying life. With modern technology, single life isn’t really difficult anymore. In recent years, the number of cross-border marriages has surged, mainly involving women from Southeast Asian countries. Thailand, Vietnam, and Laos’ red-light districts are also frequent destinations for these men. Currently, influencers who promote foreign marriages are very popular on Chinese websites.
by ChrisMarshallNY | 2025-10-30 09:59:01+00:00
Very cool, if impractical (it’s likely that you’d never get an ASM app through the App Store Approval process).

ARM Assembly is a much more Byzantine creature, than the old 8- and 16-bit versions I used, way back in the Pleistocene.

I’m always a fan of starting from the “bare metal,” to learn, but these days, it’s a long trip. When I was just a wee sprog, it was only a couple of steps away.
by username332211 | 2025-10-30 09:59:10+00:00
Or, if you were less charitable about the nature of Bronze Age social organization, you could say it's a society of former slaves hopelessly romanticizing their former masters.

On a related note, I think the whole mystery of the Bronze Age collapse becomes fairly obvious once you consider the nature of Bronze Age societies and the way they'd be affected by a technology [iron] that allows a village with a can-do attitude to resist the predations of the local god-king. (Or to become predators themselves, perhaps by taking to the sea.)
by TZubiri | 2025-10-30 10:00:01+00:00
>curl -LsSf https://astral.sh/uv/install.sh | sh

Don't do this shit, especially if you were told to do this shit.

If you are going to do this shit, separate the commands, read the bash script (and roll it down, if another file is downloaded, download that manually and inspect it).

If you are going to ask people to do this shit, split the command into two. Someone that asks me to do something insecure is either a malicious actor that is trying to compromise me, or someone careless enough to be compromised themselves.

I don't care what uv is, I can pip install stuff thank you. I install 2 or 3 things tops. I don't install 500 packages, that's sounds like a security nightmare.

Change your ways or get pwned people. Don't go the way of node/npm

p.s: Stop getting cute with your TLDs, use a .com or the TLD from your country, using gimmick TLDs is opaque and adds an unnecessary vector, in this case on the politics of the British Overseas Territory of Saint Helena, Ascension, and Tristan da Cunha.
by HeavyStorm | 2025-10-30 10:00:18+00:00
Not sure how many people are writing programs with lots of numeric calculations.

Most programs in my experience are about manipulating records: retrieve something from a database, manipulate it a bit (change values), update it back.

Over here OOP do a good job - you create the data structures that you need to manipulate, but create the exact interface to effect the changes in a way that respect the domain rules.

I do get that this isn't every domain out there and _no size fits all_, but I don't get the OP complaints.

I currently think that most of the anger about OOP is either related to bad practices (overusing) or to lack of knowledge from newcomers. OOP is a tool like any other and can be used wrong.
by boredhedgehog | 2025-10-30 10:02:32+00:00
Footnotes and endnotes always carry a hidden burden: They interrupt the reading flow and direct the mind of the reader away from the characters and the plot and towards linguistics. If the translator follows a philosophy that prioritizes the subjective experience of the reader over a deeper understanding of the material, this "mode switch" is something he will try to avoid.

Personally, I tend to agree that a need to explain a translation represents a failure to come up with a satisfying equivalent in the target language.
by INTPenis | 2025-10-30 10:03:55+00:00
It's not a mirror, it's a proxy. If someone encroaches on their free speach and shuts down their hosting account that "mirror" will not save them.

Just saying, this is an important distinction to me and I've been hosting tor nodes since the 2000s.

Archiving information, and making it available, is sometimes more powerful than anonymous proxying.

Especially if there's an anonymous proxy available to that archive. ;)
by ggambetta | 2025-10-30 10:04:41+00:00
Great presentation, loved the format! Looking forward to the other two parts.

I did a bit of ordered dithering on the ZX Spectrum Raytracer (https://gabrielgambetta.com/zx-raytracer.html#fourth-iterati...), it was surprisingly easy to implement and the results were great.

I wonder why it wasn't done more in the 80s (other than manual pixel art), probably just performance. I do remember seeing ordered dithering patterns in the 90s, in Windows 3.1 and in The Secret of Monkey Island VGA (I guess the backgrounds were hand-painted and scanned?).
by simsla | 2025-10-30 10:05:11+00:00
European here.

One of the problems is that many of our society's systems are predicated on a growing population. Social security and pensions, for example, are structured not unlike a pyramid scheme: for every old person we should have more than one working young person. People take more than they give. Fixing that will be painful, but possible.

More worrying is how many countries' birth rates have fallen below the replacement rate. Some SE Asian countries are interesting case studies here (Japan, S Korea), but it's not looking good, and much of western Europe is heading in the same direction. Maybe the worry is overblown and populations will eventually stabilize at a lower point, but currently it seems like a declining population will just add to the stressors that are putting people off from having children, so it could just as well keep snowballing.

All that's to say, I don't worry too much about over/underpopulation, but I do worry about a shrinking population.
by CamouflagedKiwi | 2025-10-30 10:05:38+00:00
It's not necessary to have mocks for unit tests. They can be a useful tool, but they aren't required.

I am fine with having fake implementations and so forth, but the whole "when function X is called with Y arguments, return Z" thing is bad. It leads to very tight coupling of the test code with the implementation, and often means the tests are only testing against the engineer's understanding of what's happening - which is the same thing they coded against in the first place. I've seen GP's example of tests being green but the code not working correctly a number of times because of that.
by Fokamul | 2025-10-30 10:06:06+00:00
It's likely in future, you won't need app store approval process. I hope that EU will nuke Apple with some huge fines.

And there will be corporate tax per each EU country, it's ridiculous corporates are raking huge money here and paying basically nothing on taxes, well only in Ireland and they're having party.

Anyway, asm is great if you are using iOS emulator and need to do something and since you have root there, well :) (not apple meme simulator)