MurphyA/hacker-news huggingface dataset:
by hammock | 2025-10-31 20:51:11+00:00
I always chuckle (or squirm) when someone suggests “picking a random person to be the president” rather than our current broken campaigning system.

Far better than that option, would be for a random family to inherit that power forever, than for a different random family be chosen every 4 years. Because at least then the “royal” family has some accountability to govern for long-term success, lest their descendants be dragged into the street and hung by an unhappy mob with pitchforks.
by kelnos | 2025-10-31 20:51:21+00:00
> robots.txt is a polite request to please not scrape these pages

People who ignore polite requests are assholes, and we are well within our rights to complain about them.

I agree that "theft" is too strong (though I think you might be presenting a straw man there), but "abuse" can be perfectly apt: a crawler hammering a server, requesting the same pages over and over, absolutely is abuse.

> Likewise if enforcing a rule of no scraping is of utmost importance you need to require an API token or some other form of authentication before you serve the pages.

That's a shitty world that we shouldn't have to live in.
by overvale | 2025-10-31 20:52:00+00:00
The Politics of Succession, by Andrej Kokkonen, Jørgen Møller, Anders Sundell

https://www.google.com/books/edition/The_Politics_of_Success...

> this book also shows that the development and spread of primogeniture - the eldest-son-taking-the-throne - mitigated the problem of succession in Europe in the period after AD 1000. The predictability and stability that followed from a clear hereditary principle outweighed the problems of incompetent and irrational rulers sometimes inheriting power. The data used in the book demonstrates that primogeniture reduced the risk of depositions and civil war following the inevitable deaths of leaders.
by talkingtab | 2025-10-31 20:52:35+00:00
In complex situation you can often deal with parts of a problem to the detriment of the whole. There should be some expression "its the whole, stupid", because we all tend to do this.

Long ago I worked at a significant corporation. We won't name names. They decide to completely rewrite their software because the original architecture was limiting. A good decision. So for one YEAR different groups went off - in silos - and worked on their area of the project. On the day, of the release they put all the pieces together only to find that NONE OF THE PIECES fit. The company was doomed.

We talk about intellectual terms - like Agile, like Silos, like whatever. None of that matters. It is intellectual. Only one thing matters. Functionality. If you get better results from thinking in silos, then that is the best. If you get best results from 'agile' then great.

But to a large extend arguing agile vs silos vs some other thing is just an indication you are not paying attention to the real thing.

One strategy for all of this is just "hello world". Want to build a new, shiny software thingy? On day one, get it to say "hello world". Then every day forever after make sure it can say "hello world" AND can show some new feature. Like every day demo what it can do.

That's it. If you can do that in a silo, great. If you can do that in agile, or waterfall, or whatever that is great. As long as you can *show* that the product can do more today than yesterday.

"Decrease collaboration". Sigh.
by raggi | 2025-10-31 20:53:04+00:00
_an answer_ is performance - the necessity of creating copyable/copied messages for inter-actor communication everywhere in the program _can be_ expensive.

that said there are a lot of parts of a lot of programs where a fully inlined and shake optimized async state machine isn't so critical.

it's reasonable to want a mix, to use async which can be heavily compiler optimized for performance sensitive paths, and use higher level abstractions like actors, channels, single threaded tasks, etc for less sensitive areas.
by jraph | 2025-10-31 20:53:53+00:00
Any analogy is flawed and you can kill most analogies very fast. They are meant to illustrate a point hopefully efficiently, not to be mathematically true. They are not to everyone's taste, me included in most cases. They are mostly fine as long as they are not used to make a point, but only to illustrate it.

I agree with this criticism of this analogy, I actually had this flaw in mind from the start. There are other flaws I have in mind as well.

I have developed more without the analogy in the remaining of the comment. How about we focus on the crux of the matter?

> A web server that accepts a GET request and replies 2xx is distinctly NOT "locked" in any way

The point is that these scrappers use tricks so that it's difficult not to grant them access. What is unreasonable here is to think that 200 means consent, especially knowing about the tricks.

Edit:

> you're more than welcome to put an authentication gate around your content.

I don't want to. Adding auth so llm providers don't abuse my servers and the work I meant to share publicly is not a working solution.
by array_key_first | 2025-10-31 20:54:08+00:00
I don't think Spotify is evil, but I do think their business model doesn't make sense.

I mean, it sounds great. Pay 10-15 bucks a month and listen to all the music you want, whenever you want. What an amazing business idea!

But has anyone stepped back and asked if this is actually possible? Because when your artists are getting paid crumbs I don't see how this system continues.
by ilaksh | 2025-10-31 20:54:15+00:00
They did say some packages were more. I bet some are 5%, maybe 10 or 15. Maybe more.

Well one example could be llama.cpp . It's critical for them to use every single extension the CPU has move more bits at a time. When I installed it I had to compile it.

This might make it more practical to start offering OS packages for things like llama.cpp

I guess people that don't have newer hardware aren't trying to install those packages. But maybe the idea is that packages should not break on certain hardware.

Blender might be another one like that which really needs the extensions for many things. But maybe you so want to allow it to be used on some oldish hardware anyway because it still has uses that are valid on those machines.
by miki123211 | 2025-10-31 20:54:43+00:00
1. It's easier to centralize cryptographic cert issuance than passport issuance.

You may allow embassy personnel to issue passports, while still requiring a computer system in the homeland to verify that the person actually exists in some government register (and that photos match) before the certificate can be issued.

If you give embassy personnel blank passport templates, they can issue passports with completely fake identification details, for people who have never existed. The moment computers get into the mix, that may no longer be possible, or at least leave an audit trail.

2. There's no risk of surveillance. Reading data from the chip still requires you to read the MRZ, so you can't do that remotely.

There's nothing a chip gives you that you wouldn't get from a normal passport (beyond a very easy and hard-to-fake way to verify that the passport is authentic).
by mrsvanwinkle | 2025-10-31 20:54:50+00:00
I can objectively say your reply minimizes the previous two posts who shared childhood traumas by the objective fact that you are implying (if they are not able to satisfy your Scientific Endeavor) that, if there is no delineation, then their repression of childhood trauma is equivalent and minimized or perhaps exalted if coffee is your religion to the repression of your religious experience of this coffee shop. If you were perhaps a child victim in this coffee shop maybe? You literally erased the trauma part. That is the delineation if you still need to think about this out loud
by supergarfield | 2025-10-31 20:55:03+00:00
Carmack gives updating in a loop as the one exception:

> You should strive to never reassign or update a variable outside of true iterative calculations in loops.

If you want a completely immutable setup for this, you'd likely have to use a recursive function. This pattern is well supported and optimized in immutable languages like the ML family, but is not super practical in a standard imperative language. Something like

def sum(l): if not l: return 0 return l[0] + sum(l[1:])

Of course this is also mostly insensitive to ordering guarantees (the compiler would be fine with the last line being `return l[-1] + sum(l[:-1])`), but immutability can remain useful in cases like this to ensure no concurrent mutation of a given object, for instance.
by louthy | 2025-10-31 20:55:13+00:00
> Lol, Belgian acts like Technotronic's with 'Pump Up the Jam' and the hyper-commercialisation of the Eurodance scene were not really comparable …

I didn’t say that. I said Belgian techno, not Eurodance, specifically the scene itself, which inspired the UK rave scene (amongst other influences like acid house, which is a different lineage).

The Belgian hardcore techno [1] DJs would play Detroit techno and over time that evolved to have more rave elements like the big synth stabs, hoovers, etc. that then evolved into the hardcore breakbeat sound that dominated the UK rave scene.

From the link [1]:

”Hardcore (also known as hardcore techno)[4][5] is a genre of electronic dance music that originated in the Netherlands, Belgium, and Germany[6] in the early 1990s...

In 1990, German producer Marc Trauner (also known as Mescalinum United) released the first hardcore techno track with "We Have Arrived".[17][18] The British group Together released its track "Hardcore Uproar", also in 1990. Music journalist Simon Reynolds has written books on hardcore techno, covering bands related to the Belgium hardcore scene like Second Phase and T99 or Dutch hardcore bands such as L.A. Style and Human Resource. Many of the iconic "stabs" that would become part of hardcore were popularized by these and other Belgian techno producers during the early 1990s, like the "Mentasm"[19] and the "Anastasia" stabs.[20] In the early 1990s, the terms "hardcore" and "darkcore" were also used to designate some more aggressive or high tempo forms of techno, breakbeat and drum and bass which were very popular in England, and from which have emerged several famous producers like N-Joi, The Prodigy, Altern-8 and Goldie. One of the earliest uses of the word in the context of English releases/the English rave scene which gained prominence was 1990's "Hardcore Uproar" by Together. The track's title was derived from a promoter of acid house parties of the same name that hosted controversial raves in and around the town of Blackburn, and was agreed on between the members of Together and Hardcore Uproar's organisers in exchange for letting them feature a recording of the crowd at one of their nights in the track. Symbolically, according to Together member Suddi Raval, the night they attended to acquire the recording also turned out to be the final event under the Hardcore Uproar banner before its founders were forced to disband and stop the raves by the police. A slogan associated with these events and the anti-establishment ethos behind them, "High On Hope", was later used on a 1991 release on Blackburn-based label All Around the World, aptly under the artist name Hardcore Uproar.[21][22] Later English hardcore introduced sped up hip-hop breakbeats, piano breaks, dub and low frequency basslines and cartoon-like noises, which has been retrospectively called 'old skool' hardcore (a.k.a. breakbeat hardcore) and is widely regarded as the progenitor of happy hardcore (which later lost the breakbeats) and jungle (which alternatively lost the techno style keyboard stabs and piano breaks”

https://en.wikipedia.org/wiki/Hardcore_(electronic_dance_mus...
by majormajor | 2025-10-31 20:56:34+00:00
So basically:

Provide a setup prompt "I am an interpretability researcher..." twice, and then send another string about starting a trial, but before one of those, directly fiddle with the model to activate neural bits consistent with ALL CAPS. Then ask it if it notices anything inconsistent with the string.

The naive question from me, a non-expert, is how appreciably different is this from having two different setup prompts, one with random parts in ALL CAPS, and then asking something like if there's anything incongruous about the tone of the setup text vs the context.

The predictions play off the previous state, so changing the state directly OR via prompt seems like both should produce similar results. The "introspect about what's weird compared to the text" bit is very curious - here I would love to know more about how the state is evaluated and how the model traces the state back to the previous conversation history when the do the new prompting. 20% "success" rate of course is very low overall, but it's interesting enough that even 20% is pretty high.
by estimator7292 | 2025-10-31 20:56:44+00:00
RPis just aren't interesting. It's a full fat computer on a small board that does everything a normal computer does, just small.

PCs just aren't interesting because they're all fundamentally the same thing and are capable of the same set of tasks.

RPis aren't interesting because 99.9999% of projects they're put in are better served by a microcontroller and not an entire linux system. If not just a 555. It's boring to throw an entire linux computer into a project. You've utterly given up on the hardware and have assumed you can do everything with software.
by raggi | 2025-10-31 20:57:16+00:00
i forget if this part unwinds to the exact same place, but some of this kind of design constraint in tokio stems from the much earlier language capabilities and is prohibitive to adjust without breaking the user ecosystem.

one of the key advertised selling points in some of the other runtimes was specifically around behavior of tasks on drop of their join handles for example, for reasons closely related to this post.
by moduspol | 2025-10-31 20:57:27+00:00
I have literally watched my in-laws plan and book a vacation from their smartphones. From their house, where they also have computers.

They're quite different from my side of the family, but the biggest thing is that they've never been big planners. Everything is by the seat of their pants. If you're like that, you're probably OK with taking one of the first three SEO-optimized search results and making it work.

Meanwhile, I'm not booking anything until I have a proposed itinerary.
by pedalpete | 2025-10-31 20:57:46+00:00
This is fascinating, and somewhat directly related to the work we do increasing slow-wave response during sleep.

For those who are not aware, slow-wave are the hallmark of deep sleep and closely linked to the flushing the glymphatic system, which is what they are referring to in this article.

We can't create slow-waves, but we can increase their effectiveness through precisely timed auditory stimulation. I'll be posting a Show HN next week which dives into the data of how this works, but if you want to know more, there is info on our website and links to over 50 published peer-reviewed papers. https://affectablesleep.com

This paper specifically looks at amyloid clearance as a result of this glymphatic flush https://doi.org/10.1093/ageing/afad228

While many people will point to "getting more sleep" that isn't really the answer. More time asleep does not automatically mean increased glymphatic flush. Additionally, as we age, the power of the pump gets weaker, and more sleep does not help with that.

We believe the focus on counting minutes of sleep misses the point of what makes sleep truly restorative and beneficial, which are the neurological processes, and downstream physiological changes as a result. This is why we talk about restorative function, and that should be the focus of sleep health, not time.

After all, you wouldn't measure your diet based on how much time you spend chewing, would you?
by Karrot_Kream | 2025-10-31 20:57:53+00:00
This is the logic behind the war on drugs and we all saw how that turned out. Obviously there's nuance to be had as I think some vices, in both type and magnitude, are worse/more destructive than others. But crusades against vice rarely turn out well. Instead you'll see the same people huddled around in underground betting rooms and backroom card game tables where organized crime or just other muscle-for-hire are ready to break your knees for not paying your debt back.
by AnthonyMouse | 2025-10-31 20:58:00+00:00
The first one mostly works but it generally has two problems. First, they just put "re-pass all the old junk that was about to expire" into this year's omnibus and then there's so much of it at once that the bad stuff gets re-enacted by default. That's better than the status quo but only a little. And second, you don't really want constraints on the government to expire. To some extent you can put those in the constitution, but a lot of this is things like anti-corruption laws that, if the current government is corrupt, they're not going to want to re-enact.

The second one is great. Direct democracy but you can only use it to repeal things. Let the general population veto the omnibus and make them go back and split it out.
by Shog9 | 2025-10-31 20:58:16+00:00
It does not. What it does do is submit the form, so if you trigger some fast change to the page or async behavior from the click event, you may never see it because the submission happens and the page reloads (or a different page loads if form action is set to a different URL). If you're relying on event bubbling, the click handler may run after the form is submitted, which is even less likely to do what you intend.

If you aren't expecting this (and don't know how to discover it e.g. by examining browser dev tools, server logs, etc.) then you'll assume the button is broken and... probably try something else.

Even if you do discover it, you may try something that won't quite have the same reliability - at one point it was common to see folks putting preventDefault() or return false in their click handlers to squelch the (correct) behavior, rather than changing the type of button.
by martinvonz | 2025-10-31 20:58:26+00:00
> I just resolve them? I think I don't understand this question.

In order to make changes to commit A when there are conflicting changes in B, I was thinking that you would have to use interactive rebase instead because you can no longer make those changes in the working copy and use `git commit --fixup`, right? And because there will now be conflicts in commit B, you will be in this "interrupted rebase" state where you have conflicts in the staging area and it's a bit tricky (IMO) to leave those and look around somewhere else and then come back and resolve the conflicts and continue the rebase later.

> Yes, but wouldn't this be the same in JJ, when you do your changes on top of A, and later squash them into D?

The difference is that we don't end up in an interrupted rebase. If we squashed some changes into A and that resulted in conflicts in B, then we would then create a new working-copy commit on top of the conflicted B (I call all of the related commits B even if they've been rewritten - I hope that's not too confusing). We then resolve the conflicts and squash the resolution into B and the resolution gets propagated to the descendants. We are free at any time to check out any other commit etc.; there's no interrupted rebase or unfinished conflicts we need to take care of first. I hope that clarifies.
by hinkley | 2025-10-31 20:58:31+00:00
The biggest tool in the performance toolbox is stubbornness. Without it all the mechanical sympathy in the world will go unexploited.

There’s about a factor of 3 improvement that can be made to most code after the profiler has given up. That probably means there are better profilers than could be written, but in 20 years of having them I’ve only seen 2 that tried. Sadly I think flame graphs made profiling more accessible to the unmotivated but didn’t actually improve overall results.
by tangrammer | 2025-10-31 20:58:38+00:00
Fish don't exist—they're a category humans invented. Files don't exist —they're abstractions over magnetic patterns. Your OrderService doesn't exist either —it's just a name you gave to clustered functions.

If systems are just collections of definitions, why do we scatter those definitions across code, diagrams, wikis, Slack threads, and tribal knowledge?

This article explores compound identities —using sets of semantic keywords instead of flat strings to define system entities. The key insight: `#{:semantic-namespace/error :domain.payment/timeout}` reads like plain English ("an error in the payment domain, specifically a timeout"), and becomes queryable:

```clojure ;; What can go wrong with payments? (find-docs #{:domain.payment})

;; What are all critical errors? (find-docs #{:severity/critical}) ```

A mid-sized project has 500-1000 such definitions (errors, events, endpoints, metrics, permissions, etc.). Right now they're scattered. What if they were unified, typed, and queryable in one registry?

The system becomes self-describing. Everything else (API docs, monitoring dashboards, tests) can be generated from the definitions.

Built in Clojure but the concept applies broadly. Would love feedback on the approach.
by ActorNightly | 2025-10-31 20:58:50+00:00
>Then it celebrates a law that actually curtails free speech.

Yes. There are already laws that curtail free speech - i.e yelling fire in a crowded theater as the popular example. Its not hard to extend this to the act of lying about information on air.

The optimal solution is that the government should have the power to enforce a ban on certain individuals on social media, which should be done through a court procedure where facts are presented and if the person is deemed to be spreading misinformation, the ban applies.

And the famous right wing argument of "don't give government power because it will use it to oppress you" doesn't work anymore.
by fakedang | 2025-10-31 20:59:01+00:00
Gemini is much much better using AI studio though.

And no, Claude sucks ass. It's like Anthropic does not want to make money. For a company that's targeting enterprise customers, they are totally unprepared. Like forget customer support, they can't even sell properly. They brag about insane capabilities on the Max plan but good luck trying to buy that on a team plan with company billing.

Even if OpenAI doesn't have the best model, at least they know what to do to make money.
by lll-o-lll | 2025-10-31 20:59:45+00:00
As a curious bystander, it will be interesting to see how the Zig async implementation pans out. They have the advantage of getting to see the pitfalls of those that have come before.

Getting back to Rust, even if not natural, I agree with the parent that the actor model is simply the better paradigm. Zero runtime allocation should still be possible, you just have to accept some constraints.

I think async looks simple because it looks like writing imperative code; unfortunately it is just obfuscating the complex reality underlying. The actor model makes things easier to reason about, even if it looks more complicated initially.
by 1718627440 | 2025-10-31 20:59:47+00:00
> if foo is a branch

It does `git pull <default remote> foo`.

> vs a remote

It gives an error, because you haven't specified the remote.

I don't know what behaviour you find intuitive here?

> how do you fix it if you messed up/which is preferred when both exist?

git pull is YOLO mode, so I never do it, but I would just reset the branches where I want them to be? You get a summary with the old and new commit hashes, so resetting is really easy.