MurphyA/hacker-news huggingface dataset:
by vidarh | 2025-11-14 11:22:14+00:00
That may make sense for Prolog code - I don't know Prolog enough to say. But the places I like to use it, it significantly simplified code by letting me write grammars with more local and specific error reporting.

That is, instead of continuing to backtrack, I'd use a cut-like operator to say "if you backtrack past this, then the error is here, and btw. (optionally) here is a nicer error message".

This could of course alter semantics. E.g. if I had a rule "expr ::= (foo ! bar) | (foo baz), foo baz would never get satisfied, whereas with "expr ::= (foo bar) | (foo baz)" it could. (And in that example, it'd be totally inappropriate in my parser generator too)

I'm guessing the potential to have non-local effects on the semantics is why you'd consider it problematic in Prolog? I can see it would be problematic if the cut is hidden away from where it would affect you.

In my use, the grammar files would typically be a couple of hundred lines at most, and the grammar itself well understood, and it was used explicitly to throw an error, so you'd instantly know.

There are (at least) two ways of improving on that, which I didn't bother with: I could use it to say "push the error message and location" and pop those errors if a given subtree of the parse was optional. Or I could validate that these operators don't occur in rules that are used in certain ways.

But in practice in this use I never ended up with big enough code that it seemed worth it, and would happily litter the grammars with lots of them.
by myself248 | 2025-11-14 11:22:36+00:00
Oh, no, it was highly addictive. Socialization and safety at the same time? Interacting with grownups but nobody knows you're a dog? You can actually be good at something and get recognition for it without being judged by your physical age? Massively, massively powerful.

I managed to keep my IRL grades above failing, but as far as I was concerned they were no longer relevant, the people in the MUD were what mattered.
by rollcat | 2025-11-14 11:23:28+00:00
SSAC is already widely deployed for many games. I'm not a professional backend gamedev (just an enthusiast), so I don't know all the approaches / tricks, but here's off the top of my head:

> [...] see how good they are vs. everyone else [...]

It's called Elo or MMR. You match players with a similar rating. An unfair advantage in one area (e.g. aimbot, map hack) turns into a significant disadvantage in all of the other areas (strategy, team play, mechanics, situational awareness, decision making). In SC2 you can regularly see mid-high masters or low GMs play against map hackers and just destroy them. Match making simply works as intended.

As a cheater - aside from being a different (not more difficult, but different) kind of a challenger, how do you gain material advantage from this? Streaming the game? If you attract a community that cherishes cheaters? Well.

This is of course on top of normal AC.

> [...] how do you know if someone is cheating or just really good?

In versus - it will surface, as noted above. You will plateau, just like any other player. If you're "really good", you will become an outlier and get attention.

In a game like Warframe (PvE, you can farm goods that you can sell for in-game currency), the main limiting factor is your time. A very good loadout will shorten an exterminate mission from 4 to 3 minutes, and you can build a decent loadout within ~2 months of starting to play the game. To further shorten it to 2min, you need good mechanics, or - as noted - to cheat. That's assuming you run solo - but since this is a co-op game, there's often someone on your team who will clear the mission for you in 2min anyway. Choosing to cheat is your own risk.

I'd consider AC a core part of game design.

> Most cheaters are not blatantly cheating so it is hard to know for sure. Even something like aimbotting is almost always adjustable in cheat software to have varying levels of accuracy.

It depends on how high you want to go - you don't know where the radar is, and it only needs to spot you once. The problem space isn't just aimbotting, it's highly multidimensional. An arms race like any other, except your "enemy" (the host) has significantly more information.

You must combine client-side with server-side AC either way. A CS exploit will circulate the same way a regular aimbot will.
by pjmlp | 2025-11-14 11:23:55+00:00
No, I wasn't talking about APKs.

The NDK supports building shared objects with Makefiles, via ndk-build.

The original plan to deprecate ndk-build was reversed, due to the complaints.

Pretty much official,

https://developer.android.com/ndk/guides/build

I also stand corrected, it is actually GNU Make, not BSD Make.
by jumski | 2025-11-14 11:26:23+00:00
Good point! For the SQL functions I mentioned, I'm comfortable without triggers - all mutations go through functions (no direct table access), and only start_flow is user-fac ing.

That said, there ARE other places that would benefit from triggers (aggregate counts). I've avoided them because they're hot paths and I was worried about perf impact - relyi ng on pgTAP coverage instead.

Your defense-in-depth argument is solid though. I should revisit this and benchmark whether the safety is worth the perf cost. Something like RegreSQL would come in handy
by SideburnsOfDoom | 2025-11-14 11:26:34+00:00
> The rise in economic inactivity also seems to be UK-specific, which also points to reasons beyond Covid and "health"

Thanks for the link. It's good that it talks about things in context of the pandemic, since discussing public health without even mentioning it would be nonsensical. From there:

> And ill-health has consistently been a bigger factor behind inactivity in the UK than in most other advanced economies, with post-pandemic trends likely to have amplified these differences.

So, that supports the first part of your sentence - it seems to be UK-specific, but it directly contradicts the second. Which is still your own unsupported extraordinary conclusions that it's not health and unrelated to the pandemic.
by Libidinalecon | 2025-11-14 11:27:16+00:00
I just had 5.1 do something incredibly brain dead in "extended thinking" mode because I know what I asked it is not in the training data. So it just fudged and made things up because thinking is exactly what it can not do.

It seems like LLMs are at the same time a giant leap in natural language processing, useful in some situations and the biggest scam of all time.
by gadders | 2025-11-14 11:27:51+00:00
You accused me of saying there was a conspiracy. I said that was not what I said.

>> On the substance: “definitions of dying from COVID were meaningless” is hand-waving. Excess mortality does not care about coding quirks.

This is wrong as well. If I get run over and test positive for COVID, that's not a COVID death. If more people die because of cancer because they couldn't get access to oncology during lockdown, that's an excess death.

>>Your laundry list of culture-war anecdotes about restaurants, rallies, 6-foot rules, and cloth masks is not an argument about vaccines or mandates. It’s a vibes reel.

It's not a vibes reel and they're not culture war items. Nice try trying to make things political. It's an example of policy mistakes made be a panic-ed government, based on rubbish like modelling.

>>You have also walked back your own claim which I appreciate. You are now saying “the vaccines worked, but were over-prescribed,”

The vaccines worked to reduce the severity of illness, not transmission. Possibly some effect on transmission at the start, minimal later on, mandates and making people lose their jobs if they didn't get vaccinated were excessive.
by tjpnz | 2025-11-14 11:29:06+00:00
I was struggling with first year CS and made the decision to check out for a bit and build something - I decided to build a MUD and used this[0] book for ideas. MUDs expose you to a huge cross section of the CS curriculum (or what we were learning at the time) - simple data structures, sockets, network protocols, threading, parsers and data serialization to name a few. Most of my CS classes were on easy mode from that point.

I might be screaming into the void here, but if you're new, and contemplating a project to add to your resume, please don't build another React todos app. You're better than that.

0: https://www.goodreads.com/book/show/927128.MUD_Game_Programm...
by wqaatwt | 2025-11-14 11:30:33+00:00
> media feeds their people, that the rest of the world is 20 years behind and stuff

Well western or pretty media having no access to the country pretty much guarantees that everything they might be reporting is a mix of speculation and outdated information. Doing the best you can with whatever data is available doesn’t seem like an unreasonable approach.

> see Afghanistan's treatment of women for example

Or much of the the “advanced” gulf states..
by ethbr1 | 2025-11-14 11:32:33+00:00
The fact that SV was divorced from military spending for so long (80s-20s?) was really the anomaly.

Which is to say that instead of leveraging SV, military funding went through the primes.

The Steve Blank piece from Tuesday had a good summary: https://news.ycombinator.com/item?id=45887699

tl;dr: a strategic military recognition that relying exclusively on full-custom, military-spec weapon systems is unaffordable (on either a dollar or time-to-develop basis), when your competitor is a vertically-integrated Chinese civilian+military procurement system
by conartist6 | 2025-11-14 11:32:51+00:00
It comes down to tree sitter being the heart of a semantic IDE. If you use Tree sitter's data to apply a fix for a formatting problem or a lint error you are making a semantic edit to your code using it: you aren't describing that change in terms of the line/col in a text buffer then, but first in terms of the path to the node you wish to adjust in the syntax tree and the semantic rules used to target it.

Zed doesn't want to build a semantic IDE. They've said it a million times, they want to build a text editor, so they just aren't going to put the tree representation at the center of the experience. A text editor's UX is built around the text buffer so that it emulates experience of coding while sitting at a typewriter filling out punch cards. We can do better than the typewriter as the anchoring metaphor for all UX!

I think those projects I listed that build on top of Tree-sitter (all ignored by Zed) all see the potential of semantic changes and of Tree-sitter as a platform for making them.
by ralfd | 2025-11-14 11:33:00+00:00
This gave me a bit of culture shock. Do American children not dye/paint hard-boiled eggs for easter?

Hardboiled eggs are good two weeks at room temperature and 4 weeks in the fridge:

https://www-ndr-de.translate.goog/ratgeber/kochen/warenkunde...

That makes them a good food for (multiday) traveling/hiking too.
by nu11ptr | 2025-11-14 11:34:14+00:00
I have tried it recently. It felt like I was coding Java. I realize "feel" isn't very objective, but I don't really like C-like languages in general. I like Rust, but only because of it's heavier FP-influence. C# is one of those languages where you don't mean to, but you can't help just creating tons of files/boilerplate/etc., which feels just like Java. Just my perspective, others obviously feel differently.
by alfonsodev | 2025-11-14 11:34:33+00:00
I've been thinking a lot about this, and I want to build the following experiment, in case anyone is interested:

The experiment is about putting an LLM to play plman[0] with and without prolog help.

plman is a pacman like game for learning prolog, it was written by profesor Francisco J. Gallego from Alicante University to teach logic subject in computer science.

Basically you write solution in prolog for a map, and plman executes it step by step so you can see visually the pacman (plman) moving around the maze eating and avoiding ghost and other traps.

There is an interesting dynamic about finding keys for doors and timing based traps.

There are different levels of complexity, and you can also write easily your maps, since they are just ascii characters in a text file.

I though this was the perfect project to visually explain my coworkers the limit of LLM "reasoning" and what is symbolic reasoning.

So far I hooked ChatGPT API to try to solve scenarios, and it fails even with substancial amount of retries. That's what I was expecting.

The next thing would be to write a mcp tool so that the LLM can navigate the problem by using the tool, but here is where I need guidance.

I'm not sure about the best dynamic to prove the usefulness of prolog in a way that goes beyond what context retrieval or db query could do.

I'm not sure if the LLM should write the prolog solution. I want to avoid to build something trivial like the LLM asking for the steps, already solved, so my intuition is telling me that I need some sort of virtual joystick mcp to hide prolog from the LLM, so the LLM could have access to the current state of the screen, and questions like what would be my position if I move up ? What's the position of the ghost in next move ? where is the door relative to my current position ?

I don't have academic background to design this experiment properly. Would be great if anyone is interested to work together on this, or give me some advice.

Prior work pending on my reading list:

- LoRP: LLM-based Logical Reasoning via Prolog [1]

- A Pipeline of Neural-Symbolic Integration to Enhance Spatial Reasoning in Large Language Models [2]

- [0] https://github.com/Matematicas1UA/plman/blob/master/README.m...

- [1] https://www.sciencedirect.com/science/article/abs/pii/S09507...

- [2] https://arxiv.org/html/2411.18564v1
by scotty79 | 2025-11-14 11:35:45+00:00
> Of course everyone can make art. Toddlers make art.

That's my entire point. Artists were fine with everybody making "art" as long as everybody except them (with their hard fought skill and dedication) achieved toddler level of output quality. As soon as everybody could truly get even close to the level of actual art, not toddler art, suddenly there's a horrible problem with all the amateur artists using the tools that are available to them to make their "toddler" art.
by chii | 2025-11-14 11:36:44+00:00
> Karcher opening a megamall to sell all their offering

And their mall is monopolistic if it is only for Karcher products. However, because a competitor can easily open a mall next door, it means this Karcher mall is small, and so the enforcers should leave it be. Until the day Karcher buys up all the mall space, in which case, they (regulators) start purging their mall monopoly.

The threat of being purged because you've acquired a large enough monopoly should _always_ be there. It's part of doing business in a fair environment.
by probably_wrong | 2025-11-14 11:36:58+00:00
I can't speak for "people in general" but I know someone who only likes expensive, competitive hobbies. And since this person is not rich, they refuse to start any of them because they think there's no point in trying if you can't be the best at it.

I would argue that this sounds more like a job than a hobby, but then again, I also stopped playing MtG because I got tired of losing against people with deeper pockets than mine.
by rollcat | 2025-11-14 11:38:01+00:00
I normally recommend Tailscale, and that's a great starting point, for games that do not support any of the neat tricks natively. The problem: it's more difficult to build a community around that. You're introducing a point of friction, and a lot of newcomers will bounce. It's difficult enough to guide a non-technical friend, and Tailscale is top among the absolute easiest solutions.
by graemep | 2025-11-14 11:38:16+00:00
Not at all like slavery and I very much doubt that anyone will ever think so.

Slaves can state they want to be free, and often rebelled and resisted. Spartacus, the Zanj rebellion, the Haitian Revolution, and many more.

It requires constant indoctrination and denial of access to ideas and brutal suppression to even try to keep the resistance down even to those levels. No one censors what dogs can read (unlike, say, The Slaves Bible).

Dogs are demonstrably significantly intellectually inferior to human beings. other humans beings are not.

I do think it is lucky for them that other human species have not survived as they are demonstrably biologically different (at least not counting those we can interbreed with), probably unable to resist anything like as effectively, and would be far better slaves than humans and better experimental subjects than animals.
by handsclean | 2025-11-14 11:39:01+00:00
The university did not take this action directly in response to the issue, it took it in response to a call from a US senator regarding a law restricting freedom of speech. Such calls do not have a “no thanks” option. This is the normal way power is exerted, actually executing a punishment is the exception.

Your definition of freedom of speech is wrong per both US and international law. It is a freedom, the issue is the restriction of it, not just any punishment unjustly inflicted.
by sukhavati | 2025-11-14 11:40:11+00:00
for me the issue is that DuckLake's feature of flushing inlined data to parquet is still in alpha. one of the main issues with parquet is when writing small batches you end up with a lot of parquet files that are inefficient to work with using duckdb. to solve this ducklake inlines these small writes to the dbms you choose (postgres) but for a while it couldn't write them back to parquet. last I had checked this feature didn't yet exist, and now it seems to be in alpha which is nice to see, but I'd like some better support before I consider switching some personal data projects over. https://ducklake.select/docs/stable/duckdb/advanced_features...
by vrighter | 2025-11-14 11:40:30+00:00
I gave wifi to my AC, but went with a slightly different route. I used an ESP32 to reimplement its remote control and receiver. The ESP32 has dedicated hardware for implementing IR communications.

I then recreated the remote control in the browser and had the system both send the right codes when pressed, and also receive any other valid signals (ex. if I used the actual remote) to sync the web ui with the ACs current state.
by Anamnesiac | 2025-11-14 11:41:41+00:00
Truly understanding the computer has been detrimental for a career in tech for a while now. The jobs where that understanding is actually required are very few and filled by personal and academic affiliation.

Right now this understanding is a liability. Having someone able to do reality checks can only slow down a team and expose everyone else.

I don't think we will ever see deep knowledge of computers and ability to develop non trivial software independently being as valued as it was by the job market from 1990 to 2020. That was a fluke caused by a confluence of factors that won't repeat.

The edge of the tech hype has already moved on. We can at best look forward to a normalization to back where things were, remuneration wise, to late 20th century, at a much lower level of demand.
by somenameforme | 2025-11-14 11:42:08+00:00
I expect part of it is that the contemporary recommendations for VR are extremely meaty - something like 2160x2160 and 120hz with stereoscopic rendering meaning you're rendering every frame twice.

That's more than 1.1 billion pixels per second. At 24 bits a pixel that's something like 26Gb/s of raw data. And that's just in bandwidth - you also need to hit that 120hz of latency, in an environment where hiccups or input lag can cause physical discomfort for a user. And then even if you remote everything you need the headset to have enough juice to decompress and render all of this and hit these desired throughputs.

I'm napkin mathing all of this, and so I'm sure there have been lots of breakthroughs to help along these lines, but it's definitely not a straightforward problem to solve. Of course it's arguable I'm also just falling victim to the contemporary trappings of fidelity > experience, that I was just criticizing.
by egberts1 | 2025-11-14 11:42:29+00:00
Highlighting the nftables rules. For Vim/NeoVim editor, using your own color scheme and background.

Like grouping statements together within a rule with heavier emphasis on keywords that starts each of its statement.

Even has the easiest Vim installer, `make install`/`make uninstall`; none of that funky Vundle, or other relatively unknown Vim packagers.

Has over 2,500 semantic nodes, 15,000 syntax match statements, and under 5ms rendering.

This is a purely deterministic LL(1) full semantic parser.

https://github.com/egberts/vim-syntax-nftables

Skip the release (I cannot delete it), go full repo clone.

Is it ready? Yes, almost entirely, unless you are a firewall expert using few remaining nftables-supporting but esoteric features like ‘synproxy’. Gotta master that first before I can highlight it properly.
by pploug | 2025-11-14 11:43:08+00:00
> the prevailing trends in locker-room design is privacy, a way to make “a diverse user base” feel comfortable.

One thing that annoys me about this article is the subtle stab at woke / gender identity as a reason for this change. Both Germany and Sweden has a much higher percentage of transgender people compared to the US, and neither have these kinds of locker rooms.

Living in Germany where all-gender nude changing rooms, nude all-gender saunas and nude beaches are very normal and very much not sexualised, it is striking how different the underlying culture is here - Germans find nudity practical and sanitary, and at the same time they very much insist that you wear special bathing shoes.
by TuxSH | 2025-11-14 11:44:00+00:00
> I’ve lost track of how many times I’ve listened to Kate Gregory extol the virtues of const-ing all the things, but people still don’t systematically add it

Adding const to _function-local_ variables only really matters when you "leak" a pointer or ref, whether mutable or const, to a function or variable the compiler can't optimize away:

std::size_t sz = 4096; const std::size_t &szRef = sz; some_opaque_func(szRef); if (sz != 4096) std::abort(); // cannot be optimized away unless sz is const

as there is no way to know if something obtains a mutable ref to sz down the line.

In other cases like RVO, adding const is actually detrimental as it prevents the move-constructor from being selected (likewise with the move assignment operator).

Rust _needs_ to have const by default due to its aliasing model ("only one mutable ref per object") and you can't have cheap bound checks without this. But that, too, is a tradeoff (some classes of programs are hard to code in Rust)
by Libidinalecon | 2025-11-14 11:45:02+00:00
We are in a bad situation. Some of our biggest and best companies went from being "capex lite" to "capex light money on fire" and caused a capex light money on fire social contagion. The money is from debt financing. Things are bad and we don't even know who is completely full of shit because we are still at high tide.
by mlrtime | 2025-11-14 11:46:06+00:00
Also a old man from VMS/Sparc days, I'm still doing "devops" and just deployed a realtime streaming webapp tool for our team in a few days to k8s pods. It was incredibly easy and I get so much for free

Automatically created for me: - Ingress, TLS, Domain name, Deployment strategy, Dev/Prod environments through helm, Single repo configuration for source code, reproducible dev/prod build+run (Docker)...

If a company sets this up correctly developers can create tooling incredibly fast without any tickets from a core infra team. It's all stable and very performant.

I'd never go back to the old way of deploying applications after seeing it work well.