MurphyA/hacker-news huggingface dataset:
by c-smile | 2025-12-24 16:26:03+00:00
Lua syntax is pretty good for DSL (domain specific language) cases / configuration definitions.

For example Premake[1] uses Lua as it is - without custom syntax parser but with set of domain specific functions.

This is pure Lua:

workspace "MyWorkspace"
configurations { "Debug", "Release" }

project "MyProject"
kind "ConsoleApp"
language "C++"
files { "**.h", "**.cpp" }

filter { "configurations:Debug" }
defines { "DEBUG" }
symbols "On"

filter { "configurations:Release" }
defines { "NDEBUG" }
optimize "On"

In that sense Premake looks significantly better than CMake with its esoteric constructs.
Having regular and robust PL to implement those 10% of configuration cases that cannot be defined with "standard" declarations is the way to go, IMO.

[1] https://premake.github.io/docs/What-Is-Premake
by amadeuspagel | 2025-12-24 16:26:06+00:00
> The unglamorous answer is that this might be just a documentation problem. MDN is pretty good, even though Mozilla increasingly concerns me as a steward of the open web. What if it were just a little better?

What if it had a comment section where people could discuss these issues, like the PHP docs? What if it had a wiki, where people could collaborate on fixing them, like ArchWiki?
by postrv | 2025-12-24 16:26:37+00:00
I built narsil-mcp - a Rust-powered MCP server that gives AI assistants deep code understanding through 76 specialised tools.

What it does:
- Multi-language parsing (14 languages) via tree-sitter - Rust, Python, JS/TS, Go, Java, C/C++, C#, Ruby, Kotlin, PHP, Bash
- Semantic search - BM25, TF-IDF, hybrid ranking, and optional neural embeddings (Voyage AI/OpenAI)
- Security analysis - taint tracking, OWASP Top 10, CWE Top 25, secrets detection
- Supply chain - SBOM generation (CycloneDX/SPDX), dependency vulnerability checks via OSV, license compliance
- Static analysis - call graphs, control flow, data flow, type inference for dynamic languages
- Git integration - blame, history, hotspots, contributors

Why I built it:

Existing MCP servers for code are either limited to specific languages, require cloud APIs, or lack security analysis. I wanted something that runs entirely locally - no data leaves your machine - while providing the best possible depth of analysis.

Technical highlights:
- Single ~30MB binary - zero runtime dependencies
- Parses at ~2 GiB/s (tree-sitter is fast)
- Symbol lookup in <1µs, full-text search in <1ms
- Incremental indexing via Merkle trees
- WASM build available for browser-based tools

Works with Claude Code, Claude Desktop, Cursor, VS Code Copilot, and any MCP-compatible client.

GitHub: https://github.com/postrv/narsil-mcp

Happy to answer questions about the architecture or tree-sitter query patterns.
by Aurornis | 2025-12-24 16:26:38+00:00
> We both have full time jobs and can only cook “real meal” in the weekend now that WFH ended.

Do you have extra long hours and/or an extreme long (1 hour) commute?

It’s common in my social circles for parents to work 8-5 or 9-6 and still cook weekday meals that are healthy. With some meal and grocery planning it’s not that hard, unless you of course have on of those 90+ minute commutes and a job that keeps you in office until 8PM.

Unless your definition of “real meal” is something more than I’m thinking of, like something that requires hours of prep.

> It sucks, I enjoy cooking and want to eat at least somewhat health conscious…

There are a lot of healthy meal planning (ahead of time prep) or quick and easy recipes out there. It’s pretty easy to prepare a healthy meal with steamed vegetables and a warmed protein in 10 minutes. We can even make an entire healthy meal in 30 minutes start to finish after doing it for years.
by mechagodzilla | 2025-12-24 16:26:55+00:00
You haven't really been getting 'human written and thoughtful content' for a vast swath of search topics for probably 15-20 years now. You get SEO-hyper-optimized (probably LLM-generated for anything in the last 3 years) blog spam. In terms of searching for information and getting that information, there are a lot of topics where an LLM-generated result is vastly better just by virtue of not being buried inside blog spam. The slop ship sailed years ago.
by cosmic_cheese | 2025-12-24 16:27:04+00:00
How it performs with existing JS doesn’t really matter in the context of my post, though.

For a “lite web” browser that’s built for a thin, select slice of the web stack (HTML/CSS/JS), dragging around the heft of a full fat JS engine like V8 is extreme overkill, because it’s not going to be running things like React but instead enabling moderate use of light enhancing scripts — something like a circa-2002 website would skew toward the heavy side of what one might expect for a “lite web” site.

The JS engine for such a browser could be trimmed down and aggressively optimized, likely even beyond what has been achieved with MQJS and similar engines, especially if one is willing to toss out legacy compatibility and not keep themselves beholden to every design decision of standard JS.
by john01dav | 2025-12-24 16:27:09+00:00
> I am tired of fighting my own OS.

People cite bugs or incompatible software on Linux as a reason to avoid it and use Windows, but they fail to recgonize that Windows actively fights you. I'd take something that's slightly and mistakenly broken on an utterly open platform where I can fix it if I care enough over a closed platform that's actively trying to screw me over.
by rayiner | 2025-12-24 16:27:22+00:00
> Previously the Fifth Circuit had relied heavily on Ginsberg v. New York (1968) to justify rational basis review. But Ginsberg was a narrow scope - it held that minors don't have the same First Amendment rights as adults to access "obscene as to minors" material. It wasn't about burdens on adults at all.

Ginsberg was about burdens on adults. In that case, New York law prohibited the sale of content containing nude images to minors. The Supreme Court upheld the conviction of a store owner under that law, who had sold magazines containing nude pictures to underage buyers: https://www.oyez.org/cases/1967/47.

Ginsberg acknowledged that the magazines did not qualify as obscenity as to adults--selling the magazines in question to adults was protected First Amendment conduct. So the age checking necessarily required by the law was a burden on those First Amendment protected sales. Ginsberg necessarily found that burden to be a permissible one.
by mxuribe | 2025-12-24 16:27:32+00:00
I also wanted - and still want - matrix to succeed! But, i've also semi-given up. I still use it because there a small number of folks i still chat with; though that's dying off. I managed a synapse home server very early in matrix's life, for a few years, and yeah it was complex back then...and for me the security is fine. Sure, there are gaps and things to be address for security...but, overall the thing that grinds my gears are the heavy resources needed. I started returning to xmpp. Is xmpp "simpler" or "more secure"? I would reply: no. But, you know where xmpp is really great? Ridiculously low needs for resources for a server! I understand that in this day and age we have far more access to so much more computing power...But, why should we allow bloat just because we can? Sorry, nowadays if I'm just trying to provide for chat, I'm looking into xmpp. I have no experience with simplex, but i think i'll wait til it bakes a bit more (and also see the resources usage story in a year or so).

Its funny, I was such a matrix fan boy, and now i'm looking at a chat tech (xmpp) that has been around for tons of years - figure that!
by GaryBluto | 2025-12-24 16:28:16+00:00
> I think you halucinated this up. (Quote from original comment, pre malicious-edit)

No point in responding to a troll, but for the other people who may be reading this comment chain, he's used LLMs for various tasks. Not to mention that he founded TextSynth, an entire service that revolves around them.

https://textsynth.com/

https://bellard.org/ts_sms/
by klez | 2025-12-24 16:28:18+00:00
> I'm aware there are some important emails - but I challenge that there aren't as many as you think there are

The problem is not whether I think it's important. The problem is the customer thinking that's important. Or simply that I need to be aware of what they wrote. Or that I need to be aware of what another vendor wrote.

I'm not saying this is right, I'm saying it's where I'm currently sitting at.
by slfnflctd | 2025-12-24 16:28:24+00:00
Cooking with hotel coffee makers during a grind is a long standing tradition. Usually it's ramen or canned food, though.

For better or worse, this is becoming more difficult as the standard coffee maker in rooms these days is a one-cup-at-a-time model. So you need your own container, or you'll have to use the ice bucket (if they have one).

A chicken breast is a bit far fetched, but I could see it happening with someone who was craving chicken at an odd hour.
by goku12 | 2025-12-24 16:28:52+00:00
Makes sense. But why is that? Are they not educated enough to realize it? Or don't they bother to apply their common sense to such topics? Also, where do they get these weird alternative explanations from?

PS: I'm not from the US. What I know is from both mainstream and social media. I'm curious about the fundamental reasons on the ground too.
by cryptonector | 2025-12-24 16:29:05+00:00
I believe in u/pizlonator's parlance Yolo-C is any C compiler that isn't Fil-C.

Some parts of Pizlix are built with Yolo-C, including the kernel. My guess is that Fil-C is not yet able to build a Linux kernel and have it run well, or maybe it's only a bootstrapping issue (as u/pizlonator notes in another sub-thread).

Fil-C _itself_ needs two C libraries: one for Fil-C's run-time, and one for the program you've compiled with Fil-C. The C library for the program built with Fil-C has to be built with Fil-C, while the one for Fil-C's run-time can't itself be compiled with Fil-C and must be built with Yolo-C.

Lastly, YOLO is an acronym meaning "you only live once". It's something one says right before doing something dangerous, such as bungee jumping. The joke here is that any C compiler that is not the Fil-C C compiler is dangerous, thus "YOLO!".
by ndsipa_pomu | 2025-12-24 16:29:10+00:00
It was likely about control. Valve saw that Microsoft was becoming more controlling about the Windows platform and that's what pushed them towards developing SteamOS on Linux as that means that Valve can put resources into fixing anything that they want to. The Apple platform is also under control of a single entity, so it doesn't make too much sense for Valve to care about that (as well as Apple not being known as a gaming platform).

What you should do is just buy a SteamDeck for gaming.
by leptons | 2025-12-24 16:29:13+00:00
No it isn't. People should be free to use software they like, and not get subterfuge like they get from Apple. What Apple has now is a total monopoly on iOS browsers. It's far worse than what Microsoft did to get sued for antitrust violations when they simply bundled IE with Windows - at least Microsoft didn't forbid installation of any other browser engine like Apple is doing on iOS.

If Apple didn't purposely hobble Safari and forbid other browser engines so that developers had no choice but to develop an app for the app store where Apple can then skim 30% off all purchases, there wouldn't be as much of a need to allow other browser engines. For Apple it's completely about greed.

https://www.justice.gov/archives/opa/media/1344546/dl?inline
by aw1621107 | 2025-12-24 16:29:54+00:00
I believe C++26 now allows _ as a placeholder name [0]:

> We propose that when_ is used as the identifier for the declaration of a variable, non static class member variable, lambda capture or structured binding. the introduced name is implicitly given the [[maybe_unused]] attribute.

> In contexts where the grammar expects a pattern matching pattern,_ represents the wildcard pattern.

Some of the finer details (e.g., effect on lifetime and whether a _ variable can be used) differ, though.

[0]: https://github.com/cplusplus/papers/issues/878
by startupsfail | 2025-12-24 16:29:57+00:00
Seems like an interesting story, Ashawna - she was about 25 at the time, and as per Wikipedia, already worked on the military projects - the Sprint Missile System, and was at Xerox.

> The processor was reverse-engineered by Ashawna Hailey, Kim Hailey and Jay Kumar. The Haileys photographed a pre-production sample Intel 8080 on their last day in Xerox, and developed a schematic and logic diagrams from the ~400 images.
by dpark | 2025-12-24 16:30:19+00:00
> magically solves everything

This is the real problem. Too often frameworks/libraries are geared towards making things magic instead of making things solid. Magic solutions are usually very one dimensional. e.g. The Magic only works for a really narrow use case, or at low load. I don’t think this is specifically a problem with “mini frameworks” but homegrown stuff exhibits this more, if only because magic solutions tend to die in the wild when the bug tracker is full of “this only works for trivial case; make it actually work”.

When frameworks/libraries advertise how easy they are to get started, there is often a lot of magic to make it trivial to start and they don’t scale to real projects without breaking through all the magic abstractions.
Show HN: No more writing shitty regexes to police usernames
by choraria | 2025-12-24 16:30:40+00:00
Every product that allows usernames eventually ships the same broken solution. Someone adds a blacklist. Then a regex. Then another regex copied from StackOverflow. It works just long enough to ship, and then `admin`, `support`, city names, brand impersonation, and obvious slurs start leaking through anyway. Everyone knows it’s fragile, but it gets ignored because "it’s just usernames".

I’ve had to rebuild this logic across multiple products, and I got tired of pretending it’s a solved problem. So I built *username.dev*, an API that answers a more useful question than "is this taken?" — it tells you what a username actually represents.

Instead of returning a boolean, the API classifies usernames into real categories like brands, public figures, places, system-reserved terms, dictionary words, premium handles, and offensive content, and returns structured metadata you can actually make decisions with. That means blocking impersonation without breaking legitimate users, stopping abuse without maintaining massive regex lists, and even monetizing high-demand usernames if that’s part of your product.

Under the hood it’s intentionally boring infrastructure: Cloudflare Workers at the edge, KV for fast reads, D1 for usage and analytics, and a simple HTTP endpoint (`GET /check?input=foo`). P95 latency sits around 300ms globally. There’s no ML magic, no black box, and no attempt to be clever — just fast, deterministic classification.

Pricing is usage-based and prepaid because subscriptions for infrastructure like this are annoying. There’s a free tier with 1,000 requests and no credit card. Use it, throw it away, or rip the idea off.

If you think regex blacklists are "good enough", usernames don’t matter, or this is a trivial problem, you’re probably already shipping bugs — they’re just not loud enough yet.

Tell me why this is a bad idea, what edge cases I’m missing, or what you’ve duct-taped together instead.

— Sourabh
by aatd86 | 2025-12-24 16:30:52+00:00
Not in my experience (I use them every day).
GPT 5.1 (now 5.2) is absolutely much more accurate for coding tasks. I think that 5.1. might even be better than gemini 3.

For PDF parsing and understanding, it's only anecdotal as it happened to me only once but Gemini was more accurate, that one time (a scientific paper).

Claude, when I was still subscribed to it, was in between gemini and GPT for code tasks.
But the UI was too buggy and it was a bit too limited with their capacity threshold.
by Workaccount2 | 2025-12-24 16:31:24+00:00
Thing thing that gets me about people who complain about google (generally, not in just the tech bubble), is that 95% of the people complaining have used Google for decades, maybe even spending 2% of their waking life using a Google product...

and have never paid Google a single penny for anything.

That's why Google is so dominant. That's why they are so skilled at data collection. The built a system that converts user data into dollars, so users don't have to pay. And users love, absolutely love, like their first born child and high school sweetheart combined into one, not having to pay for things.

Google is not the reason google sucks. People's unwillingness to compensate for services they use is. And before you comment with how you use Kagi, and Nebula, and Patreon. Yes, thank you. You are in the <0.1% of internet users who get it.
by observationist | 2025-12-24 16:31:38+00:00
https://en.wikipedia.org/wiki/Autoped

It's interesting that the engines are roughly the same as the 4 stroke china girl engines you can get for bikes and scooters today, a 155cc and 191cc model.

I wonder if it was a weight/size to power tradeoff, or convention that stuck - was there a targeted engineering reason behind the similarity in size, or have enough things stayed similar in the world of standard parts and sizes that we still have roughly the same engine sizes?

Neat article.
by whynotmaybe | 2025-12-24 16:32:12+00:00
I think you're looking at it from the wrong angle.

Most of the EU corpus of law is based on culturally acceptable actions from their members.
The EU regulations don't strangle, the EU culture is just different.

Innovation for the sake of innovation and the pursuit of money isn't deeply entrenched in European culture.

So yes, innovation based on "go fast and don't care if you break stuff" comes mainly from outside of EU.
by intended | 2025-12-24 16:32:59+00:00
> No amount of bad speech can make people extremist on its own.

This is pretty much how extremism and cult recruitment work. Wording this as a disprovable statement was of utility.

People in well run companies listen to bigots and cranks. People listen to entertaining bigots and cranks all the time.

I mean, you are talking about the country which listened to the Brexit crowd.

Their current situation is also another massive self own, which happened because they listened to cranks!

Most of the west has been unprepared for how the information economy they grew up with from the 1940s onwards, has been taken over.

——-

I get the argument you are trying to make, that seeds only sprout when the conditions are right.

The supporting argument is adulterated since the advent of cable television and mass media. Rupert Murdoch has single handedly been able to decide what agendas survive for decades.
by rng-concern | 2025-12-24 16:33:21+00:00
I'm not sure how much of this is in my head, but when I first saw 4K sitcoms, their house looked like a movie set, not a house. It looked too real so the illusion was broken.

Watching a movie on my new smart TV, the actors looked more like actors, and less like the characters they were portraying. This could be from some other feature, like AI upscaling or something. But something is definitely off.

It could be it's just different and I'll get used to it, but I haven't yet. I haven't watched much on that TV yet though to tell.
by nutjob2 | 2025-12-24 16:33:55+00:00
You're wrong on facts and wrong on the comparison with the US system.

The US president can't propose laws, only Congress can, yet he can "set the agenda".

Only the EU Commission can propose laws, but the EU Council (composed of the heads of state or of government of the EU member states) sets the agenda.

"The European Council is a collegiate body and a symbolic collective head of state, that defines the overall political direction and general priorities of the European Union."

They are functionally equivalent.
by tracker1 | 2025-12-24 16:33:59+00:00
I'm talking about way more than just CPUs... And for your question, we'd pretty much miss out on modern-like mobile phones entirely. 90nm -> 18A/1.8nm is a LOT of reduction in size and energy... not to count the evolution in battery and display technology over the same period.

Now apply that to weapons systems in conflict against an enemy that DOES have modern production that you (no longer) have... it's a recipe for disaster/enslavement/death.

China, though largely hamstrung, is already well ahead of your hypothetical 2005 tech breakpoint.

Beyond all this, it's not even a matter of just slower, it's a matter of even practical... You couldn't viably create a lot of websites that actually exist on 2005 era technology. The performance memory overhead just weren't there yet. Not that a lot of things weren't possible... I remember Windows 2000 pretty fondly, and you could do a LOT if you had 4-8x what most people were buying in RAM.
by mxuribe | 2025-12-24 16:34:26+00:00
> ...The computational/storage costs for Matrix really were way too burdensome though. I ended up going with Jabber (Snikket). A jabber server costs essentially nothing to run...

Your experience seems to mirror my own. I still use matrix very little, but have defaulted to use xmpp. Well, really returned to it after so many, many years away from xmpp. I tried prosody, but then after a multi-server cleanup killed it off. I think it was fine. Up next, i'd like to try either self-hosting my own ejabberd server, or if i don't want manage yet another host might consider the paid option of Snikket...or maybe go through jmp.chat which if i recall correctly includes xmpp hosting with some jmp chat paid plan, etc.
by baby_souffle | 2025-12-24 16:34:36+00:00
This hypothetical independent shop you walk into is not filled with slop because it's curated; the store is intentionally keeping its inventory to a manageable level so that it can be screened first.

If the owner stopped caring and just decided to let any book that passed through the automated "does this book immediately and actively harm the customer?" screening machine then you'd have something that approximates the app stores.
Show HN: I built the fastest AI app builder that I can find
by yuedongze | 2025-12-24 16:34:59+00:00
A lot of times I use GenAI to quickly prototype something like an app idea or a UI/UX mock for a site. I'd like this text-to-UI experience to be as fast as possible to quickly iterate.

I've tried classic LLMs like ChatGPT/Claude/Gemini and dedicated text-to-app builders like Lovable/Blink/Bolt/Replit. For the former the experience is still a bit crude - a lot of times I have to manually spin up the pages they create to see what's going on. The latter looks fancy but requires a sign up, and then by the time I enter the prompt, the spinner spins forever to bootstrap a production ready app with databases and log-in, when my intention is just to use it myself and see if it works.

So after I sign out from work yesterday for Christmas break, I decided to vibe one myself and hence created Vibe Builder. The idea is simple:
- Single page HTML. TailwindCSS. HTML components and JS blocks. No need to create fancy frameworks or templates when you can just vibe on DOM elements.
- Build the app where you enter your prompt. Zero deployment hassle.
- Stream everything, never wait for AI to fully finish their thought.
- Optimize for time-to-first-UI-change. You get to se the changes live.
- And post on HN to see if it works.

This is just a V1, as you can see it only generates dead UI. but i already had fun asking it to generate wild app ideas or clones of existing apps and see how fast AI puts things together.

Next, I'm considering using HTMX to add interactivity to the components, as well as have a vibe API router that actually handles interaction.

Let me know if it builds the app you have in mind!