MurphyA/hacker-news huggingface dataset:
by xpe | 2025-12-28 14:12:44+00:00
See also the type-state pattern. It is commonly used in Rust along with the builder pattern [1]. Quoting:

"""The typestate pattern is an API design pattern that encodes information about an object’s run-time state in its compile-time type. In particular, an API using the typestate pattern will have:

- Operations on an object (such as methods or functions) that are only available when the object is in certain states,

- A way of encoding these states at the type level, such that attempts to use the operations in the wrong state fail to compile,

- State transition operations (methods or functions) that change the type-level state of objects in addition to, or instead of, changing run-time dynamic state, such that the operations in the previous state are no longer possible.

This is useful because:

- It moves certain types of errors from run-time to compile-time, giving programmers faster feedback.

- It interacts nicely with IDEs, which can avoid suggesting operations that are illegal in a certain state.

- It can eliminate run-time checks, making code faster/smaller."""

Some other languages can do it as well: see [2] for a discussion.

[1]: https://cliffle.com/blog/rust-typestate/

[2]: https://www.reddit.com/r/rust/comments/17l8eez/is_there_any_...
by huali | 2025-12-28 14:13:22+00:00
I just shipped variable community detection using Label Propagation to identify which variables and methods naturally belong together. Instead of guessing refactoring boundaries, the tool now visualizes tightly-coupled groups that should be extracted as Composables/Hooks.

Works with Vue 3 and React. Install via VS Code extension, playground, or MCP server. Includes refactoring skills to guide the actual extraction process.

Dependency graphs + community analysis = clearer path to clean architecture.
by potato3732842 | 2025-12-28 14:13:36+00:00
This is one of those things that suffers greatly from selection bias and language games. The people unbothered by minor impolite stuff don't come on the internet and complain. The people who think everyone going 5-over is a crisis do.

If you define dangerous as "how dare that BMW not use a blinker" type moves, yeah that stuff is everywhere.

If you define dangerous as "Y likely to cause an accident given X exposure" then it must be tautologically rare because if people were behaving seriously dangerously get bit by it in fairly short order. I can't remember the last time I saw a "wow, that was really pushing it and in poor taste" move. Weeks perhaps.
by DivingForGold | 2025-12-28 14:14:19+00:00
"creative regulatory evasion".

Credit where credit due: "creative regulatory evasion" was first attributed to Professor Michael P. Fleming of the University of Cincinnati College of Law to describe the tactics employed by the small loan industry to circumvent early 20th-century usury law.

Seems this would likely be one of the most salient terms the DOJ would use at trial.
by dangus | 2025-12-28 14:14:37+00:00
I use a graphical IDE. That still means my hands are on the keyboard 90% of the time. Graphical IDEs still use a lot of keyboard shortcuts.

And like I said, the trackpad isn’t bad, it’s just not the world’s best trackpad.

To reiterate further, macOS demands you use the trackpad for gestures that aren’t demanded in other operating systems. They want you to buy their $150 trackpad even though you’re sitting at a desk and could easily use a $20-50 third party mouse.
by pron | 2025-12-28 14:14:46+00:00
The "temporal" in TLA+ isn't about □ and ⬦. It's about ' and the abstraction-refinment relation with stuttering at its core (contrasted with o and its non-stuttering meaning). Of course, you can't really specify anything in TLA+ without □ (unless you rely on TLC, which inserts the □ for you).

You cannot specify much in TLA+ without ' and □, andtThe "temporal" part of TLA+ - i.e. the TLA logic - is essential; but saying it's like "all temporal logics" is ignoring the abstraction-refinement relation, which is the heart of TLA+ (that's what ⇒, basic implication, in TLA+ means) and other temporal logics miss.

Of course, you could hypothetically use the + part of TLA+, the formalised set theory, to specify everything, but that would be very inconvenient.
by SpicyG | 2025-12-28 14:15:08+00:00
I think that’s a real tradeoff, but I’d frame it slightly differently.
The rigidity here is intentional at the gate, not across the whole system. The constraint is that admissibility rules must be explicit and versioned, not that they never change. Evolution happens by introducing new admissible inputs (new proofs, new schemas, new validators), while the old ones continue to fail or succeed deterministically.
If the system requires coordinated internal evolution to handle change, then yes, you drift toward a monolith. But if evolution is pushed to the edges (new request types, new validators, new execution paths) while the gate remains simple, the core doesn’t need to evolve in lockstep.
I see this less as “rigidity vs flexibility” and more as where change is allowed to accumulate. If change accumulates inside the core, complexity grows superlinearly. If it accumulates at the boundary as new admissible forms, the core stays boring even as the surface evolves.
There’s definitely an inflection point where negotiated state becomes unavoidable, but the goal is to push that point as far out as possible, not pretend it doesn’t exist.
by tomcam | 2025-12-28 14:16:07+00:00
It was also a Cold War. My father-in-law and mother-in-law were both gifted mathematicians and mainframe programmers. She also designed CPUs. She is a sweet sweet person and a major badass. She is my hero. She’s in her 80s and was more accomplished in her 20s than you and I put together will ever be.
by amluto | 2025-12-28 14:16:41+00:00
>> And it wants to identify keys by 32-bit truncated hashes.

> That's 64 bits these days.

The fact that it’s short enough that I even need to think about whether it’s a problem is, frankly, pathetic.

> Messaging involves two verifications. One to insure that you are sending the message to who you think you are sending the message. The other to insure that you know who you received a message from. That is an inherent problem. Yes, you can use a shared key for this but then you end up doing both verifications manually.

I can’t quite tell what you mean.

One can build protocols that do encrypt-then-sign, encrypt-and-sign, sign-then-encrypt, or something clever that combines encryption and signing. Encrypt-then-sign has a nice security proof, the other two combinations are often somewhat catastrophically wrong, and using a high quality combination can have good performance and nice security proofs.

But all of the above should be the job of the designer of a protocol, not the user of the software. If my peer sends me a message, I should provision keys, and then I should pass those keys to my crypto library along with a message I received (and perhaps whatever session state is needed to detect replays), and my library should either (a) tell me that the message is invalid and not give me a guess as to its contents or (b) tell me it’s valid and give me the contents. I should not need to separately handle decryption and verification, and I should not even be able to do them separately even if I want to.
by acdha | 2025-12-28 14:17:35+00:00
I would keep in mind how much the title communicates your intentions on future posts. The conversation about preventing invalid states has to be somewhat inferred when it could have been explicitly stated, and that’d be really useful comparing other approaches - e.g. the classic OOP style many people learned in school also avoid these problems as would something like modern Python using Pydantic/msgspec so it’d be useful to discuss differences in practice, and especially with a larger scope so people who don’t already agree with you can see how you came to that position.

For example, using the input parsing scenario, a Java 1.0 tutorial in 1995 would have said that you should create a TimeDuration class which parses the input and throws an exception when given an invalid value like “30s”. If you say that reliability requires FP, how would you respond when they point out that their code also prevents running with an invalid value? That discussion can be far more educational, especially because it might avoid derails around specific issues which are really just restating the given that JavaScript had lots of footgun opportunities for the unwary developer, even compared to some languages their grandmother might have used.
by stevenjgarner | 2025-12-28 14:18:12+00:00
The dollar's share hit a historical bottom around 45-46% in the early 1990s (specifically hitting roughly 45.8% in 1991 and remaining in the high 40s/low 50s through 1994). By the end of 1994 and into 1995, the share began to rise again, eventually peaking at over 70% in 2001.

Another factor was that the 1990's was the Pre-Euro Era, the peak of the "multi-polar" reserve system. Before the Euro was launched in 1999, global reserves were split among many more national currencies (the French franc, the Dutch guilder, etc.), which naturally diluted the dollar's total share more than the current "USD vs. Euro" system.
by reactordev | 2025-12-28 14:18:48+00:00
Cute but without sim capabilities. As a professional remote nomad, Starlink is king. The router is decent but not for hard wired things. You could put this in between and be double NAT’ed but why? If you need to transfer files on the go, AirDrop or hotspot on your device and connect from the other. I’m not exactly sure what niche this product is filling without supporting SIM cards for being a true travel router.
by thomassmith65 | 2025-12-28 14:19:44+00:00
As often as not, these days, when someone online criticizes the West, it's for something absurd (eg: Churchill interfering with Hitler's continental invasions, or America using the word 'regime' when discussing Iran). Obviously, other times the criticism is wholly justified.

What "dominant Western narratives" apply here? I'm not going to bicker. I'm just curious.
by potato3732842 | 2025-12-28 14:22:18+00:00
IDK why this is downvoted. In practice everything is this way. Anything over a few grand is basically an invitation to lawyer up and fight. Whether it's a traffic fine or some local zoning BS this is always how it goes.

And by "IDK" I mean "I have some suspicions but they're not flattering to the community".
by dwood_dev | 2025-12-28 14:22:44+00:00
I use ACME with Google Public CA for this reason. No one bats an eye at GPCA. Also, their limits are dramatically higher than LE.

Good news for your manual renewal friends, renewals drop to 197 days in February, halving again the year after, halving again until it reaches 47. So they will soon adopt automation, or suffer endless renewal pain.
by PaulHoule | 2025-12-28 14:23:15+00:00
I don’t see what the point is for consoles that aren’t PCs. Pair an XBOX ONE controller with a decent PC and install Steam and it is not the sweaty experience that PC gaming was in the 1990s, but a lean-back “just works” experience, you can play the same games with the same controller. Instead of waiting for the upgrade cycle you can get the latest hardware from AMD, Intel or even Apple. If you want to spend more and get a top flight graphics card you can get high frame rates at 4k. And it’s a PC, you can hook up a keyboard and a mouse and do all your PC stuff too so it better justifies the price.

The PS5 has sold a respectable number of units but when I needed a mostly media box to sit next to a TV I got a used PS4 Pro because the PS5 was much more expensive, I have Steam on a few machines. There are only 15 exclusives for the PS 5, one is a remake of my favorite game from the early 2010s but that’s not worth it to me.

Microsoft should come out with XBOX gaming PCs, whether it is own-brand like the Surface or are licensed through partners like ASUS and Dell.
by softwaredoug | 2025-12-28 14:23:34+00:00
There is a flip side to this. Yes it was stabilizing to have “boring” news where every provider largely had the same stories. But there was a narrower Overton window of issues to be discussed. A single thread of attention at any one time.

There are advantages to the disjointed, small, grassroots, often histrionic, news of today. We get a lot more perspectives in our news. We get so many it’s overwhelming (and we sadly need to jump into our corners to feel safe).

Anyone can start a Substack now and the market can decide if they’re a journalist. In my town there are several more trusted and prominent than the local broadcast news. Some specialize in a topic like housing. Some focus on govt going’s on. And of course there are local nutjobs (or I think they are, others disagree?

It’s messy and not nearly summarized, but in some ways it’s better and more detailed than bland evening news.
by blitz_skull | 2025-12-28 14:23:53+00:00
I always find it fascinating when science catches up to the Bible.

The Bible clearly articulates some form of generational “pass-through” for the sins of the father passing to the children.

While I do think it largely refers to a spiritual judgement, it’s hard to ignore the real-world examples of abuse that always seem to repeat themselves without a huge effort on the part of, someone, usually the child after they’ve grown up, to break the cycle.

Source: I’ve seen a lot of brokenness in our country’s foster system.
by Modified3019 | 2025-12-28 14:24:10+00:00
Copy of post:

>@vxunderground

>Clarification post, previous post about Ubisoft lead to some confusion. That's my fault. I'll be more verbose. I was trying to compress the information into 1 singular post without it exceeding the word limit.

>Here's the word on the internet streets:

>- THE FIRST GROUP of individuals exploited a Rainbow 6 Siege service allowing them ban players, modify inventory, etc. These individuals did not touch user data (unsure if they even could). They gifted roughly $339,960,000,000,000 worth of in-game currency to players. Ubisoft will perform a roll back to undo the damages. They're probably annoyed. I cannot go into full details at this time how it was achieved.

>- A SECOND GROUP of individuals, unrelated to the FIRST GROUP of individuals, exploited a MongoDB instance from Ubisoft, using MongoBleed, which allowed them (in some capacity) to pivot to an internal Git repository. They exfiltrated a large portion of Ubisoft's internal source code. They assert it is data from the 90's - present, including software development kits, multiplayer services, etc. I have medium to high confidence this true. I've confirmed this with multiple parties.

>- A THIRD GROUP of individuals claim to have compromised Ubisoft and exfiltrated user data by exploiting MongoDB via MongoBleed. This group is trying to extort Ubisoft. They have a name for their extortion group and are active on Telegram. However, I have been unable to determine the validity of their claims.

>- A FOURTH GROUP of individuals assert the SECOND group of individuals are LYING and state the SECOND GROUP has had access to the Ubisoft internal source code for awhile. However, they state the SECOND GROUP is trying to hide behind the FIRST GROUP to masquerade as them and give them a reason to leak the source code in totality. The FIRST GROUP and FOURTH GROUP is frustrated by this

>Will the SECOND GROUP leak the source code? Is the SECOND GROUP telling the truth? Did the SECOND GROUP lie and have access to Ubisoft code this whole time? Was it MongoBleed? Will the FIRST GROUP get pinned for this? Who is this mysterious THIRD GROUP? Is this group related to any of the other groups?

>Find out next time on Dragon Ball Z

>12:12 PM · Dec 27, 2025
by krapp | 2025-12-28 14:24:26+00:00
I can actually remember when the consensus on HN was that TikTok was a novel, fresh experience that reminded them of the "old web" and its spark of creativity.

Now the consensus seems to be that it's a Chinese mind-control tool and it represents everything the misanthropes here hate about modern culture, the web and the generations that participate in it.

It seems to be exactly the same generational impulse as our parents railing against the "boob tube" and "devil music" or (to quote RMS) "(c)rap music." Although they weren't entirely wrong they weren't nearly as correct as they insisted they were. I suspect the same is true about the current moral panic around social media, and TikTok in general. Yes there are legitimate concerns, but it isn't the ontological evil people make it out to be either. It isn't actually controlling people's minds. It isn't actually more addictive than heroin.

And to answer NiloCK without another comment, what's worse will be "TikTok but everything is AI generated by the platform itself." Say what you will about TikTok, at least a lot of it is still human expression.
by networkdude | 2025-12-28 14:25:21+00:00
Not an audio guy but a network guy. This looks like a really nice tool for doing physical diagrams to include port information. Normally the tools I use for this like Visio, draw.io, or dia do the logical layer nicely but it’s very difficult to lay out the ports consistently and have them flow.

If others have better options for doing physical layer drawings I’d love any tips! :)
by Keyframe | 2025-12-28 14:25:33+00:00
Right, you do what you think is best. I'm in no position to tell you what to do. Having said that, it comes off as robotic and impersonal. Personally, I'd rather read you trying to write with your own words what you wanted to write. That is, if you're not AI yourself which there are high chances of and I'm leaning on that theory.
by kofdai | 2025-12-28 14:25:41+00:00
Hello HN,

I've spent the last year building AXIS, a system that fundamentally
reframes how we use language models in reasoning tasks.

The core insight: LLMs are unreliable as reasoners, but powerful
as knowledge extractors. So why not separate these concerns?

[Current Problem]

Standard LLM reasoning suffers from "stochastic fog"—the probabilistic
nature of token selection causes context drift and hallucinations.
The model becomes a single point of failure.

[The AXIS Approach]

Instead of: LLM → Output

AXIS does: Input → [Phase 1: Mining] → Lattice Simulation →
[Phase 2: Mining] → Verified Output

Key features:

1. Rejection Loop
Every LLM output is intercepted by a Verifier (SymPy/NumPy).
If it contradicts mathematical or physical constraints, it's rejected.
The LLM is rebooted and asked again. This repeats until consistency.

2. Physical Context Purge
After each trial: torch.mps.empty_cache() + gc.collect()
This severs the "contextual drift" that fuels hallucinations.
Each trial is statistically independent.

3. Deterministic Verification
The final output is assembled, not generated.
Raw verified data → hard-coded templates → no AI prose = 0% hallucination.

4. 5D Semantic Lattice (optional, but powerful)
Each logical node occupies a 5D space:
- s1: Physical Actuality (does data align with constants?)
- s2: Logical Necessity (can it be derived from axioms?)
- s3: Contextual Consistency (matches the context stack?)
- s4: Ethics (passes safety guardrails?)
- s5: Empirical History (aligns with past confirmations?)

[Results]

On the Complex Plane Coefficient Problem:
- Standard GPT-4: Generates plausible but incorrect coefficients
- AXIS + Gemma-2-2b: Rejects bad answers 4 times, converges to a=0, b=0, c=0
- Reproducibility: 100% (10 trials, identical output)
- No GPU needed; runs on Mac

[What I'm Looking For]

1. Is the 5D Lattice approach sound? Is dimensionality orthogonal?
2. What's the computational overhead of repeated rejection?
3. Are there existing systems that do something similar?
4. What are the failure cases?

Code and minimal examples are in the repo. Happy to discuss.

HuggingFace:https://huggingface.co/kofdai/AXIS-Sovereign-Logic-Engine

Looking forward to feedback.
by relaxing | 2025-12-28 14:25:42+00:00
> When converting to grayscale, you typically calculate the value of the pixel and then set all color components to that value. The point of this is to keep the luminance the same as it was in the original color pixel. If you’re doing this correctly, the perceived brightness stays the same.

This is precisely wrong.

To maintain perceived brightness, you want to set the color channels to the original value weighted by a scale factor that accounts for the eyes’ sensitivity to each color channel.
by teunispeters | 2025-12-28 14:25:47+00:00
One of the interesting things in the ISO 15118-2 (and ISO 15118-20) protocols for EV charging, is that they include a check for "is your contract certificate expiring soon?".

So yeah, certificate timelines can be monitored, completely with warnings ahead of time.

Corollary : the service checking the certificates should have a reasonably accurate time.
by Modified3019 | 2025-12-28 14:25:58+00:00
Copy of tweet:

>@KingGeorge

>Seems like R6 is completely fucked. It’s unreal how bad.

>Hackers have done the following.

>1. Banned + unbanned thousands of people.

>2. Taken over the ban feed can put anything.

>3. Gave everyone 2 billion credits + renown.

>4. Gave everyone every skin including dev skins.

>5:09 AM · Dec 27, 2025
by GabriDaFirenze | 2025-12-28 14:26:33+00:00
I think I see where you're coming from but, from personal experience, AI has not much to do with one's interest in learning how to paint or draw. I've picked up drawing again this year not only as a passion but it's something I can create with my own hands. It doesn't matter that AI can do it and can do it much better, it's that I can do it. For fun, for relaxing, for meditating, ...
by amiga386 | 2025-12-28 14:27:03+00:00
It's on the author to advertise how they'd like communicated with.

A phone number != an email address != a WhatsApp/Signal/Telegram account != a Twitter/Facebook/Mastodon/etc. handle != a specific handle on a specific Discord/Slack/IRC service != "I go to the Lamb and Flag in Punterby on Wednesdays, maybe see me there"

It's irrelevant whether a low level protocol or its clients deliver everything or not. What matters is human A reaching human B. If human B wants to be reached, they will tell people in advance what their communication preferences are. And they will recognise that not all communication methods are fungible nor want to be or can be made to be. You can't expect ActivityPub to have the same behaviour as SMTP any more than you could IRC.
by gofenix | 2025-12-28 14:28:41+00:00
I've been building web apps for years, and I got tired of the complexity. So I created Nex – a minimalist web framework that strips away the cruft and lets you ship features fast.

*What makes Nex different:*

- *Zero JavaScript complexity* – Server-side rendering with HTMX, no React/Vue needed
- *File-based routing* – Drop a file in `src/pages/`, get a route automatically
- *Hot reload* – Instant feedback while developing
- *Real-time ready* – Built-in Server-Sent Events for live dashboards, chat, streaming
- *Production-ready* – Docker included, deploy to Railway/Fly.io in minutes

*Who it's for:*

Indie hackers, startups, and anyone building internal tools, dashboards, or real-time apps. Not for enterprise complexity – that's what Phoenix is for.

*Quick example:*

```elixir
defmodule MyApp.Pages.Todos do
use Nex.Page

def mount(_params) do
%{todos: fetch_todos()}
end

def render(assigns) do
~H"""
<h1>My Todos</h1>
<form hx-post="/add_todo" hx-target="#todos">
<input type="text" name="title" required />
<button>Add</button>
</form>
<ul id="todos">
<li :for={todo <- @todos}>{todo.title}</li>
</ul>
"""
end

def add_todo(%{"title" => title}) do
todo = create_todo(title)
~H"<li>{@todo.title}</li>"
end

end
```

*Get started:*

```bash
mix archive.install hex nex_new
mix nex.new my_app
cd my_app
mix nex.dev
```

Check out the examples (chatbot with streaming, guestbook, dynamic routes) to see what's possible.

I'd love feedback from the community – what would make this more useful for your projects?