MurphyA/hacker-news huggingface dataset:
by f1shy | 2025-10-20 16:39:07+00:00
Should this code:

while (true) { if (stop) { break; } // Perform some work completing in a reasonable time }

Be just:

While(!stop){ Do-the-thing; }

Anyway, the last part:

>> It’s quite frustrating that there’s no agreed upon way to interrupt and stack unwind a Linux thread and to protect critical sections from such unwinding. There are no technical obstacles to such facilities existing, but clean teardown is often a neglected part of software.

I think it is a “design feature”. In C everything is low level, so I have no expectation of a high level feature like “stop this thread and cleanup the mess” IMHO asking that is similar to asking for GC in C.
by techdmn | 2025-10-20 16:39:25+00:00
Speaking as a U.S. citizen, I think the problem should not be approached as "stop people from doing frivolous things", but rather "government should fund the commons". Of course this doesn't make government perfect, but generally it appears to be the most successful way to achieve things like caring for the elderly and disabled, building monuments, protecting wild areas, etc. Turns out we do all these things to some extent, just not as much as some (myself included) might like.

Which is to say, a well run society should have room for BOTH frivolity AND supporting the general welfare of its people. Perhaps our current troubles are the result of many people thinking that supporting the general welfare IS frivolous.
by adolph | 2025-10-20 16:39:28+00:00
I've read a little about Novo Nordisk's history and it is a pretty interesting story about aligning financial success with human flourishing. The pharmaco is a subsidiary of a anti-diabetes foundation started from proceeds from getting permission to produce insulin.

The foundation has an objective of providing support for scientific, humanitarian and social purposes. . . . In 2024, the foundation distributed a total of DKK 10.1 billion (approx. $1.39 billion) and paid out DKK 6.9 billion ($1.08 billion) in grants. [0]

0. https://en.wikipedia.org/wiki/Novo_Nordisk_Foundation
Ask HN: Testing AST or assembly output for a compiler
by backslash_16 | 2025-10-20 16:39:37+00:00
Hi Hacker News,

I'm working on a c compiler from scratch and am in a bit of a deadzone figuring out how I can test the generated AST and assembly output. I'm specifically having a hard time finding something that is viable for a one person project and which is also useful.

I did some research on Clang and saw they use a custom Filecheck library. This looks incredible for a production grade compiler but for mine I'm not sure if I want to put in all of the effort (especially because my host language F# doesn't have a Filecheck lib and I would have to re-create it).

Same with the AST - the best I can think of is creating the nodes in my host code language. This is verbose.

What have you done to test and check your compiler output, any good recommendations for me? I'm happy to research or read anything. Please keep in mind I'm going for a good effort to reward ratio.
by dathinab | 2025-10-20 16:39:50+00:00
If your threads run "cooperative multi threading" task (e.g. rust tokio runtime, JS in general etc.) then this kinda is a non problem.

Due to task frequently returning to the scheduler the scheduler can do "should stop" check there (also as it might be possible to squeeze it into other atomic state bit maps it might have 0 relevant performance overhead (a single is-bit-set check)). And then properly shut down tasks. Now "properly shut down tasks" isn't as trivial, like the "cleaning up local resources" part normally is, but for graceful shutdown you normally also want to allow cleaning up remote resources, e.g. transaction state. But this comes from the difference of "somewhat forced shutdown" and "grace full shutdown". And in very many cases you want "grace full shutdown" and only if it doesn't work force it. Another reason not to use "naive" forced only shutdown...

Interpreter languages can do something similar in a very transparent manner (if they want to). But run into similar issues wrt. locking and forced unwinding/panics from arbitrary places as C.

Sure a very broken task might block long term. But in that case you often are better of to kill it as part of process termination instead and if that doesn't seem an option for "resilience" reasons than you are already in better use "multiple processes for resilience" (potentially across different servers) territory IMHO.

So as much as forced thread termination looks tempting I found that any time I thought I needed it it was because I did something very wrong else where.
by lenerdenator | 2025-10-20 16:39:59+00:00
Not to speak for the other poster, but yes, they had people experiencing difficulties getting into the data centers to fix the problems.

I remember seeing a meme for a cover of "Meta Data Center Simulator 2021" where hands were holding an angle grinder with rows of server racks in the background.

"Meta Data Center Simulator 2021: As Real As It Gets (TM)"
by afavour | 2025-10-20 16:40:05+00:00
Both approaches are valid and applicable in different circumstances. To extend your example further, you often end up needing to do:

function MySubComponent({ disabled }: { disabled: Signal<boolean> }) { // ... } function MyComponent({ disabled }: { disabled: Signal<boolean> }) { return <MySubComponent disabled={disabled} /> }

passing the value on and on as you go down a component chain. Context lets you avoid all that.

Where signals offer an important benefit is in localizing re-rendering. If you use context with regular, non-signal values the entire VDOM tree has to be re-rendered when the context value changes (because there's no way to know what code depends on its value). With signals you can change the value of a signal in the context without changing the context itself, meaning that the only part of the VDOM tree that gets re-rendered is the one using the signal.

With performance considerations out of the way context becomes a really interesting way to provide component composition without having to specify the same props over and over as you make your way down a chain.
by teddyh | 2025-10-20 16:40:10+00:00
I deplore this weakening and dilution of the term “self-hosting”. In my opinion, if your services had downtime today, you are not “self-hosting”. If you depend on anything which has “cloud” in its name, you are not “self-hosting”. If you cannot reasonably quickly access your hardware physically, like inserting or replacing an add-on card, you are not “self-hosting”.

EDIT: It’s like saying “I don’t take the bus! I ‘self-drive’ my own car! (By which I mean that I employ an agency to provide a driver to drive a car for me, which I rent!)” or “I self-grow and self-harvest all my own food! By which I mean that I pay a farmer to grow food and harvest it for me.”

Words have meaning.

(Further: <https://news.ycombinator.com/item?id=21240357>)
by jascha_eng | 2025-10-20 16:40:12+00:00
I have a RAG setup that doesn't work on documents but other data points that we use for generation (the original data is call recordings but it is heavily processed to just a few text chunks). Instead of a reranker model we do vector search and then simply ask GPT-5 in an extra call which of the results is the most relevant to the input question. Is there an advantage to actual reranker models rather than using a generic LLM?
by justinator | 2025-10-20 16:40:20+00:00
If I -- someone in their mid 40's -- had a friend my age who had a string of sex partners that were are 16, 17, 18 and gained access to those individuals through a network constructed from fame and friends, they would cease to be my friend because that is pretty disgusting, laws be-damned.

(and you seem to not factor in that many statutory rape laws have age gap determinants)

But I see that you are different.
by rurban | 2025-10-20 16:40:36+00:00
I once tried to get a IAR C++ embedded codebase to compile with g++ and it's stdlib on a very small chip. It eventually compiled but never worked. I'll have to rewrite it in C instead.

There were many hacks, like filling the stack with sentinels to detect it at run-time. The linker script was horrible. Rewrote everything from scratch. The resulting code was many KB too large for the available space, it would have needed to slim down the stdlib. Even with the much better optimizations and LTO it was still too big.

Nice for that time, but essentially unusable. The company needed 10 years for that code, my plan is to rewrite it in 2 weeks.
by caymanjim | 2025-10-20 16:40:46+00:00
This is the real problem. Even if you don't run anything in AWS directly, something you integrate with will. And when us-east-1 is down, it doesn't matter if those services are in other availability zones. AWS's own internal services rely heavily on us-east-1, and most third-party services live in us-east-1.

It really is a single point of failure for the majority of the Internet.
by card_zero | 2025-10-20 16:40:59+00:00
[Something about supply chains.] Who makes bottles? Do the farmers have plows, or just pointy sticks? I guess it could look like the neolithic, if you allow them pottery, and that's a kind of survival, but do you also want to protect them from invasion and diseases? How much survival is the aim? Wouldn't science, and innovation, and creativity, help improve survival? So ... imagination? Comic books? Pets? Poodle manicurists? But of course survival ceases to be the main goal by this point.
by infecto | 2025-10-20 16:41:38+00:00
I think you missed the forest for the trees. I am sure the student population has some dropoff during summer months but the point is that for businesses that a growing month over month which most of these have since creation, you take the highest number (latest) and annualize it.

I am also willing to bet that the student dropoff is not pronounced. I am more thinking of a business that sells beach umbrellas, they make a lot of sales in the summer months and then next to nothing in the winter months. That would be dishonest.
by victorbjorklund | 2025-10-20 16:41:45+00:00
Oh totally, that is not anyone's goal I think. The goal is more about enabling teams already running Elixir to also do their ML stuff in Elixir or teams that needs to do something that would benefit from the BEAM actor model but also need to do some AI stuff to do it all in Elixir. Lots of neural networks created in Python or R can then run in Elixir.
by duxup | 2025-10-20 16:41:45+00:00
>Yet firms like OpenAI, Anthropic, and xAI pay millions in salaries to top talent. Why? Can’t others just study the papers and replicate?

That argument doesn't make any sense.

AI companies are not trying to "replicate".

Measuring research against your ability to just "replicate" a business also makes no sense.
by bartread | 2025-10-20 16:41:52+00:00
Even Java's Swing, introduced in 1999 (or maybe 98 in beta?), dealt with the problem of dynamic layouts fairly well. Of course, it performed like an absolute dog to begin with, but most of the performance kinks were dealt with during the Java 1.3 era (2000), and by 1.4 in 2002/3 or so, performance was absolutely fine, with most of the rendering quirks of the native look and feels having been dealt with as well.

Moving to C#/WinForms in late 2004 after working with Swing for 4 years felt absolutely jarring by comparison. No concept of layout managers and very limited options for dynamic layout in general (docking was about it, IIRC), really hard to customise components (if it was possible at all - for many it wasn't because they were just thin wrappers around Win32). It was terrible by comparison and I seriously considered quitting the job I was in, even though I liked the company, and finding a role in a Java shop again instead because I hated WinForms so very much.

Swing is obviously ancient history now. Is it still a thing? Do people still use it? Are there still Java desktop apps? I've no idea. But even 20-odd years later Microsoft have never managed to surpass it for desktop app development. WPF is OKish, and certainly addresses a lot of the problems of WinForms, but it's always felt over-complicated and the syntax of XAML has never really been a plus point in my opinion. Silverlight was... a debacle.

And, really, since 2013 I've only paid attention to distributed systems, web, and back end development (all of which have their own problems and complexities) so I've really lost touch with Microsoft's desktop development paradigm.

But I do find myself often yearning for the "simplicity" of desktop app development. Of course, that simplicity comes at a cost: you're trading it for complexity in licensing, distribution, deployment, and support because you have no control over your target environment, and you have to support almost unlimited combinations of machine configuration (which is not necessarily a picnic when you have thousands, tens of thousands, or hundreds of thousands of customers for each product). And, let's be real: nobody misses InstallShield and MSIs.
by iLemming | 2025-10-20 16:42:07+00:00
I genuinely never understood running Emacs in terminal, instead running terminal in GUI Emacs. That, until a day I joined a team where most development happens on remote EC2s, where people create joined tmux sessions.

Besides, it turns out, setting up emacslient for quick editing, or even for bringing up Dired to use as a directory lookup and switcher is also very nice.
by ACCount37 | 2025-10-20 16:42:32+00:00
That's mostly my own experience. The results of reverse engineering can be sexy, but the work itself sure isn't, so we aren't exactly swimming in high quality writeups.

But given how much of RE is just going into unfamiliar places and learning unfamiliar things? And how much of it is repetitive but-not-easy-to-automate tasks? I fully expect LLMs to proliferate.
by blazingbanana | 2025-10-20 16:42:54+00:00
I've done quite a few projects with ChatGPT. I just can't vibe (no pun intended) with any of the agent tools or AI plugins etc. Also not having to worry about API costs is the main reason so I can be as spammy as I like.

Site for a drum and bass community. Isn't quite there but nearly - test.dnbfamily.com - EDIT: This is best viewed on a mobile at the moment

Completely vibe coded local LLM note formatter (I broke the latest release, need to fix) - https://formait.app/

Two android apps:

When you can't decide what to watch (swipe left + right like tinder) - https://play.google.com/store/apps/details?id=com.blazingban...

Bluetooth mesh app - https://play.google.com/store/apps/details?id=com.blazingban...

C# app that monitors trading performance of CTrader, locks down the application if your PNL goes too high or low (configurable) so that you don't lose all your money when you're tilted. Built for a friend that does a fair amount of trading.

So many little scripts and stuff for personal or work projects.

----

What are you trying to learn from the videos?
by shadowpho | 2025-10-20 16:43:20+00:00
>Honestly I would much rather handle that sort of project in an embedded environment and not something running linux.

That’s because you haven’t done it. There’s a lot more code to write in embedded case and lots of pitfalls to fall into.

>OTA updates are a solved problem with many different strategies to choose from.

No. Just no. Esp32 provides nice libraries to do update but acquisition/logic/code to use that is up to you. You still have to write a lot of code around the libraries and more importantly — debug and think of how to use it.

For example — let’s say you pushed an update that crashes early in boot (or other points). No problem, you’ve designed an AB update system so you just roll back to A.

Not so fast because A partition will try to update back to the botched update after roll back. Causing device to go into a update/crash loop and killing the esp32 in the process (flash has a limited number of erase cycles)

So you say “ok I’ll just store the update number in flash and only update 3x times before blacklisting”.

Well congrats now you gotta go write more code! And this time you get to have fun with nvs library which is great but not trivial. And once again if you make a bug you’ll face either a dead and recoverable device or dead for real device.

>reconnecting is usually as simple as a loop that tries to reconnect if you're not currently connected

Oh god no. Take a look here: https://docs.espressif.com/projects/esp-idf/en/stable/esp32s...

Specifically this part:

>Generally, it is easy to write code in "sunny-day" scenarios, such as WIFI_EVENT_STA_START and WIFI_EVENT_STA_CONNECTED. The hard part is to write routines in "rainy-day" scenarios, such as WIFI_EVENT_STA_DISCONNECTED. Good handling of "rainy-day" scenarios is fundamental to robust Wi-Fi applications.

How well does your code handle “I’m connected to Wi-Fi but don’t have an IP?” Or it has an ip but can’t hit your server? Or it can’t hit dns? There’s a bunch of errors and transitionary state that just sucks.

Meanwhile you mention “just buffer the data in SD card”. Once again, write a pile of code, and then put a layer on top of it to store your data. This is a more straight forward problem but adding data to SQLite file and then sending it out is just so much easier.

And then you have to work with time. “Just buffering data” also requires keeping track of time because now you can’t use receive time as your capture time. Now you gotta write more code to synchronize the time on esp32 to your server which is a solved problem on Linux.
by dathinab | 2025-10-20 16:43:23+00:00
yes, maybe except if you don't have a single tight loop and stop checks are not just done once in the loop body but manually sprinkled through various places of your code (e.g. thing a long running compute task split into part 1,2(tight loop),3(loop),4 then you probably want a stop check between each of them and in each inner iteration of 3 but probably not in each inner iteration of 2 (as each check is an atomic load).
by BobaFloutist | 2025-10-20 16:43:38+00:00
That's no way to live. The optimal amount to get scammed is >0, because to 100% avoid it you have to cheapen and weaken your life to an unreasonable extent.

It's like how the only 100% secure system is offline, off, unplugged, wiped, and slagged. Or how the only way to be 100% safe from communicable disease is to be the last living human.

And that's what makes our tolerance for grift and scams so obnoxious. It's one thing when dishonest people lie and cheat and steal, it's another entirely when our institutions and leaders forgive, excuse, enable, and even embrace it.
by dsign | 2025-10-20 16:44:04+00:00
This is very well thought-out. But if regulation has such power, shouldn't we find better ways to use it?

Yeah, I know, it's very hard to craft good legislation. In fact, there's this problem of agency: the will to have things be a certain way is not always in the humans, or does not always emanate from the direct needs of the people. Many of the problems of modern capitalism are because there's emergent agency from non-human things, i.e. corporations. In the case of US, agency emerging from the corporate world has purportedly sequestered democracy. But there also agency emerging from frenzied political parties that define themselves as opposition to each other with a salted no-mans-land in the middle. This emerging agency thing is not new; it existed before in other institutions, e.g. organized religion. In any case, the more things there are vying for power, the less power people have to govern themselves in a way that is fair.

With AI, there's a big chance we will at least super-charge non-human agency, and that if we can avoid the AIs themselves developing agency of their own.
by dcre | 2025-10-20 16:44:16+00:00
Why is the calendar year the relevant unit? If you insist on years, then if you consider the year from June to June, $2,138 would be misleading small.

The point of ARR is to give an up to date measure on a rapidly changing number. If you only report projected calendar year revenue, then on January 1 you switch from reporting 2025 annual revenue to 2026 projected revenue, a huge and confusing jump. Why not just report ARR every month? It's basically just a way of reporting monthly revenue — take the number you get and divide it by 12.

I am really skeptical that people are being bamboozled by this in some significant way. Zitron does far more confusing things with numbers in the name of critique.
by pessimizer | 2025-10-20 16:44:36+00:00
Like most people I jump back and forth when I speak, disclaiming, correcting, and appending to previous utterances. I do this even more when I write, eradicating entire sentences and even the ideas they contain, within paragraphs that which by the time they were finished the sentence seemed unnecessary or inconsistent.

I did it multiple times while writing this comment, and it is only four sentences. The previous sentence once said "two sentences," and after I added this statement it was changed to "four sentences."
by solarkraft | 2025-10-20 16:44:41+00:00
Aurora is a big deal! I’ve been waiting for the Rust SDK to come to the web.

I’m not fully through the talk yet, but it looks like they’re first modernizing the old application and planning to eventually switch base to Aurora, which seems sensible!

Either way, Rust SDK on the web, finally! This will hopefully make it easier to write other Matrix clients, since the JS SDK is pretty undocumented (and outdated).
by sailingparrot | 2025-10-20 16:44:49+00:00
> the token-at-a-time approach of the in-vogue LLMs. Speaking for myself, I don't generate words one a time based on previously spoken words

Autoregressive LLMs don't do that either actually. Sure with one forward pass you only get one token at a time, but looking at what is happening in the latent space there are clear signs of long term planning and reasoning that go beyond just the next token.

So I don't think it's necessarily more or less similar to us than diffusion, we do say one word at a time sequentially, even if we have the bigger picture in mind.
by Waterluvian | 2025-10-20 16:45:01+00:00
I know there's a lot of anecdotal evidence and some fairly clear explanations for why `us-east-1` can be less reliable. But are there any empirical studies that demonstrate this? Like if I wanted to back up this assumption/claim with data, is there a good link for that, showing that us-east-1 is down a lot more often?
by otterley | 2025-10-20 16:45:15+00:00
Have you ever built a service designed to operate at planetary scale? One that's built of hundreds or thousands of smaller service components?

There's no such thing as infinite scalability. Even the most elastic services are not infinitely elastic. When resources are short, you either have to rely on your customers to retry nicely, or you have to shed load during overload scenarios to protect goodput (which will deny service to some). For a high demand service, overload is most likely during the first few hours after recovery.

See e.g., https://d1.awsstatic.com/builderslibrary/pdfs/Resilience-les...
by kseistrup | 2025-10-20 16:45:23+00:00
> We've combined the soul of the original Amiga with the cutting-edge V4 AC68080 performance, delivering a machine that honors its legendary past while redefining what’s possible. Whether you're a lifelong Amiga enthusiast or discovering it for the first time, this is the Amiga experience you've been waiting for. Designed with precision and passion, the new Apollo A6000 offers unmatched speed, stunning graphics, and modern connectivity, all while preserving the iconic simplicity and spirit that made the Amiga a household name.
by graypegg | 2025-10-20 16:45:55+00:00
As it should! Just know that people between your age and their age see the common through-line here, and it might not be as serious as it feels. I’ll become blind to it as well in a while haha, sadly comes with becoming more wise.

Personal anecdata: 69 showing up in any math class was comedy gold in early 2010s highscool. The class was interrupted for impromptu 1 word stand up.