HNHacker News
TopNewBestAskShowJobs

zrail

9,006 karma · joined May 9, 2010

Pete Keen, Software Developer and Consultant, ex-Stripe

Author of Mastering Modern Payments: Using Stripe with Rails https://www.masteringmodernpayments.com

Author of Handle Your Business: The Succinct Guide to Money and Business for the Self Employed https://www.petekeen.net/handle-your-business

Email: pete@petekeen.com Blog: http://www.petekeen.com Resume: http://www.petekeen.com/resume

submissionscomments
zrail··on Booted up in 1993, this server still runs – but not for much longer (2017)
Eh, sorta. Fifty years ago was 1976 (I know, right?!). The 747 debuted in 1970 with high bypass engines. The A320 came out in 1988 with fly-by-wire and all Airbus aircraft since have been the same.

The biggest change from then to now is probably the amount of solid state electronics onboard. That's ridden roughly the same curve as other industrial and commercial applications.

zrail··on The smart home graveyard is getting crowded
What are you using for automations? I've been running HA for a long time but I keep trying to explore different options.
zrail··on Have an LLC
Yes, and the attached Schedule C will have the EIN at the top.
zrail··on Have an LLC
Sure. If you absolutely need one of those services then you do the thing. Most of the time there are alternatives, IME.

Example, since you edited to add examples: I have several business bank accounts and far too many Stripe accounts all registered as sole prop. I haven't had to take a loan but I do have a sole prop credit card. My understanding is that even with an LLC a bank is going to require a personal guarantee for a loan.

zrail··on Have an LLC
Sure. If you find yourself needing ARIN services and that's what they need to move forward then that's what you have to do. All I'm saying is that it's not a thing to set up preemptively.
zrail··on Have an LLC
> or EIN

Anyone can get an EIN for their sole proprietorship business (just one, though) and use it on tax forms.

zrail··on Have an LLC
Nobody said consumer fintech? You can just operate as a business. "Sole proprietor" is a real thing that almost every service knows how to deal with, and if one can't there's a competitor willing to right next door.
zrail··on Have an LLC
I feel like a lot of people (not holman) are looking for permission, as if having an LLC is a marker that says "I am a serious business doing serious business things." You don't need permission. You can just do things.

A formal business structure is good (but not required!) if you have employees and/or business partners, or if your attorney tells you you need one. IME as a solo entrepreneur an LLC (or two, in my case) just invited more paperwork into my life.

You know what actually functionally limits liability as a solo business? Good contracts backed up with business insurance.

zrail··on Rails World 2026 Opening Keynote [video]
He owns RailsWorld.
zrail··on Leaving DigitalOcean, one site at a time
Omarchy is funding mise. Make of that what you will.
zrail··on How to Write with an LLM
"Naturally gifted writer" is not a thing. The way to get better at writing is to write a lot.

Developing a voice comes naturally as you go through the pain of being a terrible writer to eventually being mediocre. Accepting the LLM's words is actively harmful to that process because it lets you skip over the part where you read over what you wrote and rewrite until it doesn't suck as much.

I mean, you do you. I'm not your dad.

zrail··on NATS publishes preliminary report on technical incident of 8 September
Note: NATS the UK airspace manager, not NATS the pubsub system.
zrail··on An empirical study of harness design for coding agents
"Everybody knows foul air causes sickness."

"Duh, of course Mars has canals."

Testing the "obvious", "duh" things is incredibly valuable science. It provides a more solid foundation on which to build because it reduces the assumption space.

zrail··on Stallman: Thousands Dead, Millions Deprived of Liberties (2001)
Disagree. RMS has unapologetically crossed some pretty bright societal lines. Being neurospicy doesn't absolve him of any of that.

(also I don't think Tourette's is fair to include in that set but whatever)

zrail··on Stallman: Thousands Dead, Millions Deprived of Liberties (2001)
From the accounts I've read, RMS is a deeply unpleasant and problematic person.

Doesn't mean he's wrong.

zrail··on Intelligence per Watt: Measuring Intelligence Efficiency of Local AI
Sure. Just don't go too big! One can only use so much hot water, after all.
zrail··on Intelligence per Watt: Measuring Intelligence Efficiency of Local AI
True, but you're only ever drawing from the buffer tank into an operating hot water heater that brings it up to the correct temperature.
zrail··on Intelligence per Watt: Measuring Intelligence Efficiency of Local AI
Let's say your GPU uses a constant 300W. It takes approximately 1.16 Wh to heat a liter of water 1 degree celsius under 100% efficiency. This setup won't be 100% efficient, so let's round up to 1.5 Wh per liter per degree (roughly 80% efficient). A typical domestic water heater in the US 40-50 gallons, so roughly 160 liters.

Let's say your incoming water temperature is 18C and you want it preheated to 50C, which is 32C degree differential, which means you'll need 32 * 1.5 * 160 = 7680 Wh, or 25 hours straight to heat the buffer tank from scratch.

You'll need to purchase a small water-to-water heat exchanger ($50), two pumps ($100 each), a power supply for said pumps, hose and/or copper pipe and fittings, and various other sundries, plus the cost of a buffer tank ($600ish), so figure all in roughly $1000, plus the cost of electricity to run the pumps.

At $0.22/kWh you're saving roughly $450 a year with this setup in foregone water heating, but because it's not 100% efficient you're spending $500 in electricity to run your GPU 24/7/365, and that's the maximum you can possibly save with the above assumptions. Scale up for more GPUs and down accordingly for less usage as you see fit.

Alternatively, use air as the heat conductor by placing the GPU laden machine in the same space as a hybrid heat pump water heater.

zrail··on Proposed Rule: Eliminating the Discretionary 60-Day Grace Period
The proposed rule will apply to E-1, E-2, E-3, H-1B, H-1B1, L-1, O-1, and TN (copied directly out of the document).
zrail··on Show HN: The same nine streaming subscriptions cost $702/year more than in 2021
I haven't tried it personally but my understanding from friends is that Pangram is very accurate, at least for now.

https://www.pangram.com/

zrail··on Show HN: What if the speed of light was 5 km/h?
The first few Discworld books explore this a little bit too. I think pterry dropped the concept after that, I don't really remember it later in the series.
zrail··on Running agents in a sandbox or VM is the wrong pattern
That does make more sense, thanks for the clarification.
zrail··on Running agents in a sandbox or VM is the wrong pattern
> A worker reads the tail of the log, performs exactly one step—either inference or tool execution—appends the result, and forgets everything. It holds zero session state between turns.

My current understanding of an agent session is that the entire session (modulo compaction, reordering tools, etc) is sent to the stateless inference engine every time inference happens. The quoted section doesn't seem workable unless "read the tail of the log" actually means "read the entire session log".

There are ways to make that work but workers being completely stateless makes it hard.

zrail··on Benchmarking Qwen3.8 27B quantizations: 4-bit holds up, 1-bit collapses
Too late to edit, but a few other things to note: I minmaxed the draft config. On my typical coding workloads it gets around 70% acceptance, more variable on prose.

The chat template is froggeric's fixed qwen template, v22.5 as of today.

zrail··on Benchmarking Qwen3.8 27B quantizations: 4-bit holds up, 1-bit collapses
I've been running Unsloth IQ3_S on my 5060ti with mmproj offloaded, getting 600-1000 prefill and 30-50 tg with this config:

       /data/llm/llama.cpp/build/bin/llama-server
        --threads 4
        --threads-batch 8
        --batch-size 4096
        --ubatch-size 256
        --port 9999
        --temp "1.0"
        --top-p "0.95"
        --top-k "20"
        --min-p "0.0"
        --presence-penalty "0.0"
        --reasoning auto
        --reasoning-preserve
        --reasoning-budget 4096
        --gpu-layers-draft all
        --spec-type draft-mtp,ngram-map-k4v,ngram-mod
        --spec-draft-n-max 3
        --spec-draft-p-min 0.75
        --spec-ngram-mod-n-match 24
        --spec-ngram-mod-n-min 4
        --spec-ngram-mod-n-max 16
        --spec-ngram-map-k4v-size-n 8
        --spec-ngram-map-k4v-size-m 16
        --spec-ngram-map-k4v-min-hits 1
        --n-gpu-layers all
        --ctx-size 131072
        --repeat-penalty 1.0
        --jinja
        --metrics
        --model /data/llm/models/unsloth/Qwen3.8-27B-UD-IQ3_S.gguf
        --chat-template-file /data/llm/models/qwen3.6-chat-template.jinja
        --fit off
        --flash-attn on
        --cors-origins localhost
        --mmproj /data/llm/models/unsloth/Qwen3.8/mmproj-BF16.gguf
        --no-mmproj-offload
        --parallel 1
        --kv-unified
        --cache-type-k q4_0
        --cache-type-v q4_0
        --cache-type-k-draft q4_0
        --cache-type-v-draft q4_0
zrail··on Nobody Has Actually Built a Software Factory
I think that's orthogonal to testing/ci/hooks and depends on what you're building and what stage you're at. Personally I would not run anything with real users without PRs and branch protection.
zrail··on Nobody Has Actually Built a Software Factory
1. Make your tests as fast as practicable

2. Split out "syntactically correct" fast checks like linters into a standalone script and call it along with the slower checks in a full-check script

3. Set the fast-check script as a pre-commit hook and the full-check script as a pre-push hook.

4. Give the model instructions that it needs to run the fast-check script after every change and the full-check script when it thinks it's done.

5. Run full-check in CI.

Then you're good as long as the model doesn't bypass the pre-push hook, and even then CI will catch it.

zrail··on Tailcat – Like netcat, but over Tailscale’s data plane
I dug into it a bit because I had the same question. The network layer here is wrapping around the Tailscale daemon's magicsock, which is the thing that does all the DERPing and NAT hole punching. Tailcat builds sort of a fake control plane that does a one way key exchange over DERP (the Meow message type) between client and server, then both sides do the normal CallMeMaybe dance to connect.
zrail··on Bookshelf – Self-hosted eBook library that runs on object storage
VersityGW is very handy.
zrail··on Homelab Ingress with Deterministic IPv6
Hey folks, author here. I wrote in depth about web ingress, one of the more complicated bits in my homelab. The discussion about my previous homelab piece was pretty interesting if you'd like some context: https://news.ycombinator.com/item?id=48872031
Page 1 of 34Next →