News for hackers. Stuff that matters.

znkr

Re:Authentication Is Largely Solved. Authorization Isn't on Wednesday September 09, 2026 @01:46PM (#49630378)
If you solve authentication separately from authorization, this is what happens
Re:Claude Is Not a Compiler on Tuesday July 21, 2026 @01:21PM (#48995326)
Timeline from the article sounds a lot like a logical clock, which is a well known primitive in distributed systems: https://en.wikipedia.org/wiki/Logical_clock
Re:How Our Rust-to-Zig Rewrite Is Going on Friday July 17, 2026 @02:51AM (#48944103)
You mean like driving a car?
Re:AI in mathematics is forcing big questions on Saturday June 27, 2026 @04:43PM (#48701572)
We put asterisks next to proofs that use the axiom of choice. If a machine comes up with proof that’s not verifiable by humans, you can very well be sure that there will be asterisks.
+1 The worst code I had to maintain was code that tried to follow DRY (without the trying to understand what the original intention of that principle was). The only way out of that mess was widespread code duplication.
Re:Hey, N00B, We Didn't Hire You to Complete Tasks on Saturday June 20, 2026 @12:46AM (#48606418)
> It makes even less sense in an era of LLMs.

I would argue that out makes even more sense in the era of LLMs. LLM shaped tasks are tasks that we would hand out to junior engineers. Now, I can implement one of these tasks in 1hr instead of waiting for a junior engineer to finish this in 1-3 days. This means the equation for investing in junior engineers has shifted towards disfavoring investment.

Re:The world in which IPv6 was a good design on Sunday April 19, 2026 @04:18AM (#47822659)
Moving running computers around and maintaining connection would have required large trucks and very long cables at the time the internet was invented.
Re:Rust Is Just a Tool on Saturday February 28, 2026 @06:13AM (#47193731)
> If a project in an unsafe language has ever had a memory bug (I'm looking at you, Bun), the maintainers objectively have a track record of not being capable of manual memory management. You wouldn't put a person who has a track record of crashing busses at the wheel of a school bus.

If you’re serious, you should stop using Rust (which happens to contain an unsafe language): https://github.com/rust-lang/rust/issues/44800

Re:Java Hello World, LLVM Edition on Sunday December 07, 2025 @09:40AM (#46181985)
LISP ;-)
Re:Cloudflare outage on December 5, 2025 on Saturday December 06, 2025 @03:19AM (#46171591)
I am sure they have this. What tends to happen is that the gradual rollout system becomes too slow for some rare, low latency rollout requirements, so a config system is introduced that fulfills the requirements. For example, let’s say you have a gradual rollout for binaries (slow) and configuration (fast). Over time, the fast rollout of the configuration system will cause outages, so it’s slowed down. Then a requirement pops up for which the config system is too slow and someone identifies a global system with no gradual rollout (e.g. a database) to be used as the solution. That solution will be compliant with all the processes that have been introduced to the letter, because so far nobody has thought of using a single database row for global configuration yet. Add new processes whenever this happens and at some point everything will be too slow and taking on more risk becomes necessary to stay competitive. So processes are adjusted. Repeat forever.
Re:Is Matrix Multiplication Ugly? on Saturday November 22, 2025 @03:54AM (#46013280)
Maybe it helps to think of matrix multiplication as a special case of the composition of linear transformation. In the finite dimensional case they can be expressed as matrix multiplications.
The whole article starts with the implicit assumption that all bases are orthonormal and then throws linear algebra out of the window completely.
Bismarck was afraid of workers unionizing and transformed a working healthcare system owned by workers into a state owned one. That move significantly reduced the utility of worker unions, which was the goal behind it.
I don’t think it’s a wordplay with the r-word, but rather a reference to the famous Shakespeare quote: “Hoist with his own petard”. It’s become an English proverb. (A petard is a smallish bomb)
Re:M5 MacBook Pro on Wednesday October 15, 2025 @12:44PM (#45595226)
Search for memory wall. Moore’s law died a decade ago for DRAM
Re:Diff Algorithms on Wednesday October 01, 2025 @09:09AM (#45437272)
I actually used the examples from that paper for testing. The results that they are showing in the paper are different from mine and I think that git changed as well. I believe the conclusions from that paper no longer hold.
Re:Diff Algorithms on Wednesday October 01, 2025 @06:57AM (#45436321)
Good point, thanks!
Re:Diff Algorithms on Wednesday October 01, 2025 @02:55AM (#45435072)
One use case where I never want to miss it is in tests: Understanding what the differences between the expectation and the actual result are is invaluable.
Re:Diff Algorithms on Wednesday October 01, 2025 @01:41AM (#45434637)
A minimal diff is one where the number of edits is minimal. The context around edited lines does not count as edits, because they are matching lines. That said, minimal is definitely only a proxy, that’s why is a good property to relax.
Re:God Created the Real Numbers on Saturday August 30, 2025 @05:09AM (#45073151)
> Even if something does align better with real numbers, it's still just x+0i

Beware, it’s not always useful to work in complex numbers, you sometimes want to do something different for reals and complex numbers. The prime example here is complex analysis. Defining differentiation is based on limits, on the complex plane there are a lot more directions to approach a limit vs just two on the real line. This has some interesting implications. For example, any function differentiable on the complex plane is infinitely differentiable.

> The equal sign should be reserved for comparisons, because that is what it means in mathematics.

This is touching on a pet peeve of mine: Mathematics and programming are similar in many aspects, but this is not one of them. In mathematics = is not a comparison, but a statement.

More generally, mathematics is about tautologies, that is statements that are always true. In programming, a comparison is evaluated to either true or false.

That doesn’t mean that there’s no room for conditionals in mathematics (one example is piecewise function definitions). But it’s not the same. Heck, even the definition of “function” is different between mathematics and programming.

Re:Modern C++ – RAII on Friday May 30, 2025 @07:46AM (#44135205)
I agree, this is a real benefit of RAII compared to defer. That said, there are disadvantages of making the resource freeing part invisible. Not having to debug destructors that do network IO (e.g. closing a buffered writer that writes to the other side of the world) or expensive computation (e.g. buffered IO writing to a compressor) is a define plus. Don’t get me started on error handling…
Re:Modern C++ – RAII on Friday May 30, 2025 @07:29AM (#44135108)
When I switched from C++ to a bunch of other languages, I missed RAII initially. However, I quickly learned that other languages just do it differently and often even better (ever had to check an error when closing a resource?). Nowadays, I think that RAII is a solution to a C++ problem and other languages have a better solution for resource management (try-with-resources in Java, defer in Go, with in Python).
Re:Modern C++ – RAII on Friday May 30, 2025 @07:12AM (#44134977)
It’s mostly fine, until you run into memory leaks due to circles or because some part of your program holds onto the root of some large shared pointer graph and you have no idea which part. If you take it very far, like some code bases I worked with did, you discover that everything needs to be shared pointer now, because most lifetimes are no longer explicit but implicitly defined by the life time of the shared pointer that holds it.
Re:Modern C++ – RAII on Friday May 30, 2025 @07:04AM (#44134909)
I used to program a lot in C++ but switched to a number of different programming languages since then. Everything in C++ is this way and it’s hard to understand that things don’t have to be this way when you’re in the trenches of C++.
Re:Safety in an Unsafe World on Sunday November 17, 2024 @04:48AM (#42163125)
Not a guru, but my take is that the actor model is one method of architecting a system to separate synchronization from other concerns. There are other ways to do that, often specific to a particular problem and with more or less separation. As always, there are many tradeoffs involved.
Re:Show HN: Go Plan9 Memo, Speeding Up Calculations 450% on Friday October 18, 2024 @08:47PM (#41884747)
Go has a couple of SIMD uses. Copies is one of them.

Older »