HNHacker News
TopNewBestAskShowJobs

ndr

2,325 karma · joined February 3, 2013

Software Engineer, traveler and wonderer.
submissionscomments
ndr··on Open Source Low Tech
There are game-theoretically aligned ways.

See for example https://oneacrefund.org/ [0] where they have a revolving loan fund.

OAF lends materials and teachers to farmers to make the more productive, by the end of the program they got productive enough to pay back the loan and OAF can lend the same money to someone else.

It's super capillary, with many boots on grounds and quality problems.

Embedded into this there's a good feedback channel: farmers who don't think are getting a good service stop paying back the loan. This allows OAF to go and audit what's failing there.

[0] The person who started also appeared in a podcast where they explained the basics https://foreveron.com/podcast/episode-035/

ndr··on A Practical Guide to SSH Tunnels: Local and Remote Port Forwarding
This is what kamal does when you use localhost as registry [0] [1].

Pretty cool thing, I ship plenty of services to my tiny $5/mo vps with it without having to pay for a docker registry.

[0] https://kamal-deploy.org/docs/configuration/docker-registry/...

[1] https://github.com/basecamp/kamal/blob/eee0083b38661c3707c6b...

ndr··on I rewrote PostHog's SQL parser, 70x faster, while barely looking at the code
I do consume the parquets with DuckDB but had to read in firebird sql stuff.

I didn't think of checking, but I now learnt there's an extension for DuckDB but it's C++ and also embeds the same DLL [0] https://github.com/flozer/duckdb-firebird

ndr··on I rewrote PostHog's SQL parser, 70x faster, while barely looking at the code
Great loop spotting!

Recently I was messing around with parquet files in Python and ended up needing to ship the results on Windows, without a Windows machine to test on.

Shipping Python to end users is half mad already, and doing it on Windows is exactly the kind of thing I don't want to spend my life maintaining.

So I figured I'd rewrite it in Go. But that meant embedding a DLL, and how would I test it? I could spin up a VM, sure. But GitHub Actions already has a Windows environment, and there was my loop: let the agent push to the repo, run tests in GHA, rinse and repeat.

In under an hour it had a full rewrite of my Python, passing every test and producing row-for-row copies of my Parquet output. And it does work on the user machine!

Spotting a loop like that is as satisfying as noticing you can walk your chess opponent into a smothered mate. Truly empowering.

ndr··on Becoming a dad changes men's brains
https://archive.ph/UwObv
ndr··on DuckDB Internals: Why Is DuckDB Fast? (Part 1)
Of course I meant that it won't make data up.

It can only emit SQL and the json spec of the chart.

Since shipping I've reviewed dozens of queries and charts it produces answering the user. I'm yet to catch sonnet off guard.

ndr··on Fable Converted Pylint to Rust
Yes it's that, in particular `duplicate-code`.

`pylint . --disable=R0801` will work, `pylint profiling/ --enable=duplicate-code` doesn't seem to exit in a reasonable time. So that's likely hitting some pathological case, possibly accidentallyquadratic.tumblr.com material.

ndr··on Fable Converted Pylint to Rust
TBH this is true only on the root of black. If you do `uvx pylint src/` it takes 5s on my machine.

It's still impressive but it looks like a pathological case in a test directory.

ndr··on DuckDB Internals Part 1
This. I've recently used both duckdb and sqlite to power a dashboard for a small restaurant of a family member. It converts all their sales to a very tiny parquet files, daily.

The file fits in memory and can do all sort of computation in the browser itself. The backend is extremely simple, it just loads the JS and serves the parquet files.

It was also trivial to let the owner do their own queries, just give the schema to an LLM and let it use the charting library, no data hallucinations. If they need it in the dashboard they can either use that one or ask me to review that query.

To be honest, given how simple some things became, it's been really fun to work on.

ndr··on From Chesterton's fence to Chesterton's gap
Context is that which is scarce.

It's hard to predict what parts of shared understanding we have today is going to be scarce tomorrow. And one can't serialize _all_ of that current shared understanding in documents and integration tests.

https://marginalrevolution.com/marginalrevolution/2021/12/co...

ndr··on Pull Requests are Free Puppies [video]
Ugh HN removes the timestamp from the link!

https://www.youtube.com/watch?v=x8_ZZhRL3YU&t=1733s

ndr··on Pull Requests are Free Puppies [video]
Lightly edited transcript of Richard Hipp, creator of SQLite, from 28'53":

> Suppose you had a pull request for SQLite. "Hey, I've got this new feature for SQLite. Here's the pull request." When you want me to pull that into the tree, you say, "Oh, it's free."

> No, it's not free. What you're doing is asking me - you've got this cool feature, and you want me to maintain it for you, to document it for you, to test it for you, to maintain it for you for the next twenty-five years. That's not free.

> Linus Torvalds is famous for saying there's free as in beer and free as in speech. But there's another kind of freedom: free as in puppies. "Oh look, I've got a free puppy for you." You see where this is going?

> A pull request is a free puppy. And then you've just got a kennel full of puppies at the end of the day. And you can't just throw them out - you're morally obligated to take care of them for their natural life.

> I don't want any free puppies.

Originally posted at https://news.ycombinator.com/item?id=48567803 but may be worth its own entry

ndr··on From Chesterton's fence to Chesterton's gap
Thank you, I was too eager copy-pasting YT transcriptions.
ndr··on From Chesterton's fence to Chesterton's gap
Related to this, the concept of "free as in puppies" from D. Richard Hipp, creator of SQLite:

> Suppose you had a pull request for SQLite. "Hey, I've got this new feature for SQLite. Here's the pull request." When you want me to pull that into the tree, you say, "Oh, it's free."

> No, it's not free. What you're doing is asking me - you've got this cool feature, and you want me to maintain it for you, to document it for you, to test it for you, to maintain it for you for the next twenty-five years. That's not free.

> Linus Torvalds is famous for saying there's free as in beer and free as in speech. But there's another kind of freedom: free as in puppies. "Oh look, I've got a free puppy for you." You see where this is going?

> A pull request is a free puppy. And then you've just got a kennel full of puppies at the end of the day. And you can't just throw them out - you're morally obligated to take care of them for their natural life.

> I don't want any free puppies.

source: https://youtu.be/x8_ZZhRL3YU?t=1715

ndr··on SpaceX to buy Cursor for $60B
Is this what Cursor uses or a standard I'm unaware of?
ndr··on Reviving Papers with Code
Thank you for resurfacing this, it has been my daily commute read for years, it was great!
ndr··on Go: Support for Generic Methods
"Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp."

-- Greenspun's tenth rule

He had some lack of conviction to scope it so narrowly.

ndr··on Don't Subscribe So Casually
With what credit card provider?

I've done it multiple times when a vendor wasn't behaving fairly and it always went through.

I don't recommend doing it to a vendor you plan to have business with again in the future as they might ban you (eg food delivery apps)

ndr··on Learnings from 100K lines of Rust with AI (2025)
50k LOC wouled be the rust code without tests.

But it's not apples to apples because they seem to have done much more performance work though, this is far from code golfing.

ndr··on 560-610 minutes of exercise a week needed for substantial heart benefits
Evolution didn't spend millions of years so we could sit 8 hours a day and slouch through the rest.
ndr··on Learnings from 100K lines of Rust with AI (2025)
This is uncharitable, but makes a prediction. I imagine you'd bet the author won't be successfully using this, at MS/Uber or wherever they are, in a year time?

Rust makes no promise of being terser than C++, and RSL does less than this considering the optimization.

Also it's only 45/50k LOC so not so very from the 36k LOC.

ndr··on Learnings from 100K lines of Rust with AI (2025)
Also that, I suspect that's correlated to how practical is to have multiple people (with their agents) iterating on it.
ndr··on Learnings from 100K lines of Rust with AI (2025)
It just an anchor. If it were 50k would you say the same down to 25k? And if so how many more times would it apply?

The interesting thing is that it was manageable solo (in many ways it's _more_ manageable solo+AIs than with coworkers+(their)AIs), and in such a short amount of time.

ndr··on OpenAI Adopts Google's SynthID Watermark for AI Images with Verification Tool
It might not be intended for the public.

Similar to your printer fingerprinting: https://en.wikipedia.org/wiki/Printer_tracking_dots

ndr··on Bitcoin trader recovers wallet with help of Claude
how can that possibly work while supporting offline backup & restore?
ndr··on Heritability of human life span is ~50% when heritability is redefined
The standard biology formula for heritability is h = Var(genetic) / Var(phenotypic)

Which I bet is very useful for some kind of technical work, but it's amusingly confusing to lay people.

The author goes on to critique its misuses but the textbook example to make clear "heritability" is not as obvious as it sounds is that by this definition human bipedalism heritability is near zero because there's near zero variance.

ndr··on Grok 4.3
You should try all of them, then update your opinion about your information sources accordingly.
ndr··on I am building a cloud
exe.dev landing page is sublime. The call to action is "ssh exe.dev" and you can bet it works.
ndr··on Google's Internal Politics Leave It Playing Catch-Up on AI Coding
https://archive.ph/EV3b3
ndr··on Laws of Software Engineering
Same vibe, different angle:

> 11. Abstractions don’t remove complexity. They move it to the day you’re on call.

Source: https://addyosmani.com/blog/21-lessons/

← PreviousPage 2 of 17Next →