HNHacker News
TopNewBestAskShowJobs

lifis

110 karma · joined July 7, 2025

submissionscomments
lifis··on Modeling what makes paper-folding puzzles hard
I don't understand what is supposed to be "hard". It seems utterly trivial to me.

In reverse order of the folds, just mirror all holes across the fold line.

lifis··on AI overly affirms users asking for personal advice
Avoiding this generally needs to be the main consideration when writing prompts.

When appropriate, explicitly tell it to challenge your beliefs and assumptions and also try to make sure that you don't reveal what you think the answer is when making a question, and also maybe don't reveal that you are involved. Hedge your questions, like "Doing X is being considered. Is it a viable plan or a catastrophic mistake? Why?". Chastise the LLM if it's unnecessarily praising or agreeable. ask multiple LLMs. Ask for review, like "Are you sure? What could possibly go wrong or what are all possible issues with this?"

lifis··on Go hard on agents, not on your filesystem
It seems that the LLM has not only designed the site, but also written the text on at least the frontpage, which is a pretty bad signal.

You need to rewrite all the text and Telde it with text YOU would actually write, since I doubt you would write in that style.

lifis··on More precise elevation data for GraphHopper routing engine
I think the issue in the article can further be mitigated with a better algorithm for determining road elevation profiles that accounts for the fact that roads are usually placed to minimize vertical displacement.

One can start assuming that the world is square tiled with square corners on the elevation measurement grid, and assuming that elevation in the square lies between the minimum and maximum value.

Now a road can be split into curve segments such that each segment lies in exactly one square. Then the profile of the road can be determined by guessing the altitude for the midpoint of each curve segment and interpolating.

The altitudes should be guessed to approximately minimize the road length and I think good and fast algorithms are easy to find.

For example, the altitudes of the midpoints can be assigned with a greedy/lazy approach: once one is determined, for each neighbor pick the closest valid altitude until all are assigned. To start, pick the maximum n such that the first n segments have non-empty altitude interval intersection and pick for all of them the endpoint of the intersection interval that is closest to the next interval (or the middle of the intersection interval if there is no next one).

Alternatively it can be formulated as a constraint problem with linear constraints and an objective function that depends on the interpolation. If weighted sum of absolute values is chosen, it's a linear program, otherwise the objective function will have higher degree

lifis··on Wine 11 rewrites how Linux runs Windows games at kernel with massive speed gains
The code doesn't really seem to use any kernel functionality other than spinlocks/mutexes and waiting and waking up tasks.

That same code should be portable to userspace by: - Allocating everything into shared memory, where the shared memory fd replaces the ntsync device fd

- Using an index into a global table of object pointers instead of object fds

- Using futex-based mutexes instead of kernel spinlocks

- Using a futex-based parking/unparking system like parking_lot does

Obviously this breaks if the shared memory is corrupted or if you SIGKILL any process while it's touching it, but for Wine getting that seems acceptable. A kernel driver is clearly better though for this reason.

lifis··on Wine 11 rewrites how Linux runs Windows games at kernel with massive speed gains
It seems like it would be possible to implement this in userspace using shared memory to store the data structures and using just one eventfd per thread to park/unpark (or a futex if not waiting for anything else), which should be fully correct and have similar or faster performance, at the cost of not being secure or robust against process crashes (which isn't a big problem for more Wine usage).

It seems that neither esync or fsync do this though - why?

Claude thinks that "nobody was motivated enough to write and debug the complex shared-memory waiter-list logic when simpler (if less correct) approaches worked for 95% of games, and when correctness finally mattered enough, the kernel was the more natural place to put it". Is that true?

lifis··on Show HN: Threadprocs – executables sharing one address space (0-copy pointers)
"Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should"

It's very cool, but would only be useful in some marginal cases, specifically if you don't want to modify the programs significantly and the reliability reduction is worth either the limited performance upside of avoiding mm switches or the ability to do somewhat easier shared memory.

Generally this problem would be better solved in either of these ways: 1. Recompile the modules as shared libraries (or statically link them together) and run them with a custom host program. This has less memory waste and faster startup. 2. Have processes that share memory via explicit shared memory mechanisms. This is more reliable.

lifis··on GrapheneOS will remain usable by anyone without requiring personal information
I think that's worse than reinstalling because there could be a non-persistent exploit in the secure element allowing a malicious OS to fake attestation
lifis··on The gold standard of optimization: A look under the hood of RollerCoaster Tycoon
That makes no sense since multiplication has been fast for the last 30 years (since PS1) and floating point for the last 25 years (since PS2) and anyway numbers relevant for game design are usually used just a few times per frame so only program size matters, which has not been significantly constrained for the last 40 years (since NES)
lifis··on Reports of code's death are greatly exaggerated
You can have the LLM itself generate it based on the documentation, just like a human early adopter would
lifis··on Launch HN: Voltair (YC W26) – Drone and charging network for power utilities
Why not just install cameras on the poles?
lifis··on Kotlin creator's new language: talk to LLMs in specs, not English
Also they seem to want to run this as a business, which seems absurd to me since I don't see how they can possibly charge money, and anyway the idea is so simple that it can be reimplemented in less than a week (less than a day for a basic version) and those alternative implementations may turn out to be better.

It also seems to be closed-source, which means that unless they open the source very soon it will very likely be immediately replaced in popularity by an open source version if it turns out to gain traction.

lifis··on Kotlin creator's new language: talk to LLMs in specs, not English
As far as I can tell it's not a new language, but rather an alternative workflow for LLM-based development along with a tool that implements it.

The idea, IIUC, seems to be that instead of directly telling an LLM agent how to change the code, you keep markdown "spec" files describing what the code does and then the "codespeak" tool runs a diff on the spec files and tells the agent to make those changes; then you check the code and commit both updated specs and code.

It has the advantage that the prompts are all saved along with the source rather than lost, and in a format that lets you also look at the whole current specification.

The limitation seems to be that you can't modify the code yourself if you want the spec to reflect it (and also can't do LLM-driven changes that refer to the actual code), and also that in general it's not guaranteed that the spec actually reflects all important things about the program, so the code does also potentially contain "source" information (for example, maybe your want the background of a GUI to be white and it is so because the LLM happened to choose that, but it's not written in the spec).

The latter can maybe be mitigated by doing multiple generations and checking them all, but that multiplies LLM and verification costs.

Also it seems that the tool severely limits the configurability of the agentic generation process, although that's just a limitation of the specific tool.

lifis··on Show HN: Klaus – OpenClaw on a VM, batteries included
You can solve that by requiring confirmation for anything except reading information from trusted sites. Web visits can be done without confirmation by reading a cached copy and not executing any JavaScript on it with network access (otherwise visiting arbitrary sites can leak information via the URLs sent to arbitrary servers)
lifis··on Show HN: How I topped the HuggingFace open LLM leaderboard on two gaming GPUs
Have you tried replicating those middle layers 3 or more times instead of just 2?
lifis··on RISC-V Is Sloooow
Or they could fix cross compilation and then compile it on a normal x86_64 server
lifis··on Redox OS has adopted a Certificate of Origin policy and a strict no-LLM policy
Just because they have been made before LLMs doesn't mean it can be done again, since there was just one success (GNU/Linux) and that success makes it much harder for new OSes since they need to better then it
lifis··on Redox OS has adopted a Certificate of Origin policy and a strict no-LLM policy
The submitter is supposed to be the good programmer; if not, then maintainers may or may not review it themselves depending on the importance of the feature.

And yes of course they need to be able to write the code themselves, but that's the easy part: any good developer could write a full production OS by themselves given access to documentation and literature and an enormous amount of time. The problem is the time.

lifis··on Redox OS has adopted a Certificate of Origin policy and a strict no-LLM policy
There are only 4 successful general purpose production OSes (GNU/Linux, Android/Linux, Windows, OS X/iOS) and only one of those made by the open source community (GNU/Linux).

And a new OS needs to be significantly better than those to overcome the switching costs.

lifis··on Redox OS has adopted a Certificate of Origin policy and a strict no-LLM policy
Because it takes a massive amount of developer work (perhaps more than anything else), and it's very unlikely they either have the ability to attract enough human developers to be able to do it without LLM assistance.

Not to mention that even finding good developers willing to develop without AI (a significant handicap, even more so for coding things like an OS that are well represented in LLM training) seems difficult nowadays, especially if they aren't paying them.

lifis··on Redox OS has adopted a Certificate of Origin policy and a strict no-LLM policy
Not sure how they can expect to make a viable full OS without massive use of LLMs, so this makes no sense.

What makes sense if that of course any LLM-generated code must be reviewed by a good programmer and must be correct and well written, and the AI usage must be precisely disclosed.

What they should ban is people posting AI-generated code without mentioning it or replying "I don't know, the AI did it like that" to questions.

lifis··on Show HN: OxiMedia – Pure Rust Reconstruction of FFmpeg and OpenCV
Seemingly written partially or fully with AI but no disclosure of it at all and details like how AI was used, what model was used, agentic harness and tests, whether and how it was checked by humans, whether you take responsibility for it, etc.?

WTF?

lifis··on Ask HN: How to be alone?
If you just want to talk about your day or receive psychological support or even answer questions like this one, LLMs are great: Opus 4.6 is currently considered the best, but also try Gemini and ChatGPT.

As for interacting with humans, if you are finding it hard, maybe you can try something that is easy because it has a structure, such as some sort of workshop where you either share in a circle or are paired with a random partner and share (ask LLMs for help in finding them).

Or even pay someone to talk to them, such as a psychotherapist or a counselor.

lifis··on What canceled my Go context?
All mainstream languages have it in one or more forms (either direct task I/O cancellation, or cancellation tokens or I/O polling that can include synthetic events) since otherwise several I/O patterns are impossible
lifis··on MacBook Neo
Skilled computer usage includes learning to type without looking at the keyboard
lifis··on Making Firefox's right-click not suck with about:config
The improvement that could be made is to reorganize the menu so that entries are grouped in "Image", "Link", "Text", "Page" and "Development" sections, which could either be submenus or titled sections depending on screen size and user preferences
lifis··on Motorola GrapheneOS devices will be bootloader unlockable/relockable
Switch to a bank that offers a fully functional web or Android app, as opposed to only allowing Google Android
lifis··on Don't make me talk to your chatbot
Why not charge for support?

And if it turns out to be your mistake (faulty product or missing documentation) as opposed to something the user could have reasonably solved by themselves, refund the charge and possibly provide compensation for the inconvenience.

lifis··on GPT‑5.3 Instant
You could perhaps show the "instant" reply right away and provide a button labeled "Think longer and give me a better answer" that starts the thinking model and eventually replaces the answer.

For this to work well, the instant reply must be truly instant and the button must always be visible and at the same position in the screen (i.e. either at the top or bottom, of the answer, scrolling such that it is also at the top or bottom of the screen), and once the thinking answer is displayed, there should be a small icon button to show the previous instant answer.

lifis··on The risk of a hothouse Earth trajectory
At least considering only temperature, it seems changes are never going to be irreversible since both stratospheric aerosol injection and intentional nuclear winter should always be able to cool down global temperatures
← PreviousPage 2 of 3Next →