HNHacker News
TopNewBestAskShowJobs

lelandbatey

4,143 karma · joined July 10, 2012

I'm Leland Batey. I make things for the internet. I'm here: http://lelandbatey.com/
submissionscomments
lelandbatey··on Everybody’s home. No one’s coming over
Yeah, that's one of those "tough pills to swallow". Everyone of course wants everything and they want to give up nothing. Prioritizing/triaging your own desires is a very tough skill to build, but if you can try to figure out "what do I want" and "what am I willing to trade to get what I want", you will probably find happiness in short order. If you genuinely don't want to spend the cash for a house party, don't do it. If you just want to run it cheaply, run it cheap: I recommend simple card games (Flip 7 is $10 and works with big groups) and some cheeeeeaaap potato chips, with water as the beverage (or ask people to bring their own whatever if they want). Tell them you're here to host games and chatting. Host, keep hosting, and get picky about who you invite back.
lelandbatey··on California farmers are struggling to sell grapes as demand for wine drops
Nobody in any major apple growing region (Washington) is growing Red Delicious as their main apple variety for consumers, not even close. They're all growing various club apples (e.g. Envy, Cosmic Crisp), and there's massive competition to be the next honeycrisp (btw, honeycrisp quality is seasonal due to packaging, out of season they're significantly worse because they've been in storage for a long time, Apples are harvested only once a year)

See this as a list of merely the most popular varieties you can find at stores: https://waapple.org/varieties/all/

lelandbatey··on Don't couple your Go code to GitHub
Even easier than that, you can use the 'replace' statement in your go mod to change where the Go build system will try to pull the dependencies from; you can point to a folder on disk or to another forge, and if you want total control you can indirect everything to your own artifact cache via GOPROXY (which can be something as simple as a static folder of source code).

The "module name is network path" is a convenient convention but not at all some "limitation" of the tooling.

lelandbatey··on Unreal Agent
The basic asynchronous approach is potentially interesting, but:

1. Agents usually depend on output of the commands they're running in order to make decisions about what to do next, so how do they behave while they're "waiting around" for the output they need?

2. Agents can _already_ run software async, via multiple mechanisms: raw CLI tools like "nohup", literally running tools in parallel (I see Sol do this often in the Opencode TUI harness), and using parallel sub-agents to e.g. research in parallel.

Thus I wonder, how much does this really improve speed vs only improving the "appearance" of getting more done faster?

lelandbatey··on I don't like passkeys
It is playing nice to criticize things. It's not just "different priorities", passkeys have intentional trade offs which cause them to be "more secure" but in ways that users do not want because it negatively affects them. The intentional trade off made in the name of "more security" makes them wildly inconvenient and risks causing massive lockout. Like removing all the staircases from people's homes and replacing them with climbing walls all in the name of "security". You can't just diffuse that by say "well we want banks to be more secure, we have different priorities."

I am already seeing my "normie" friends getting locked out of accounts due to not understanding passkeys. If they don't have their phone, or it's dead, or it breaks, or is stolen, they just can't access their account anymore. They have no idea how they work or what they're trading off, nor do they understand that they should have prepared for this scenario ahead of time somehow. Upon telling them "yeah you have to use your phone now that you have a passkey" they all universally say "wtf, that's stupid, I never want to have that happen again, I will never use a passkey again."

Passkeys should never have been built for general audiences, they are a huge mistake, I hope they cease to be relevant and die due to everyday folks realizing they're inconvenient and the "more secure" gains ain't worth it for the usability nightmares.

lelandbatey··on The engineering behind the US Strategic Petroleum Reserve
You don't need tanks to store the brine, just a huge pit/pool. If you look at satellite imagery, that giant pit with brine in it is exactly what they have next to the storage facilities.
lelandbatey··on Small programming tricks
It's quite true. Years ago, after `git switch` was released, I wanted to try to switch from `git checkout` to `git switch`. Ultimately I had to set up some bash nastiness to error and "scold" me when I typed `git checkout` from memory, while still allowing shell scripts to call `git checkout` just fine. It was a fun exercise, and at least now I know how I could do it again: https://github.com/lelandbatey/dotfiles/blob/99c08f81fc89710...
lelandbatey··on Introducing System One Models and Jev
Link to a raw MP4 of the video, from the parent article: https://framerusercontent.com/assets/rlL7ImEbISFoYt3IJEHHfvj...

It's in the parent article under a section named "Doom" in case that asset URL ever changes.

lelandbatey··on So you want to use OpenRouter?
> There's not even a way to compare providers, AFAICT

That's not quite true. The only thing they don't show per-provider is benchmark data, cause I don't think they are doing continuous benchmarking of each model from each provider, as I assume they feel that's too expensive. You can see hugely detailed breakdowns for near-time metrics per provider for any model by visiting the page for that model on Openrouter. For example see the page for Qwen 3.8 27B: https://openrouter.ai/qwen/qwen3.8-27b

Some of the killer stats they show per provider:

- Pricing: Effective price accounting for cache hit rate, by provider

- Performance: Throughput in tok/s, latency, E2E latency, tool call error rate, structured output error rate, and more; all per provider.

- Uptime: You have to click on the provider to see their specific uptime, but doing so does show the last-7-days uptime, and you can click to see more.

lelandbatey··on Show HN: Bodily Oddities
You should add "exploding head syndrome" which sounds crazy but is mostly "phantom loud noise especially as you're falling asleep"
lelandbatey··on Thanks to Siri Recaps, your Apple Watch is always listening
Everyone being liars means you and I are both liars, same as the politicians. But the politicians have the power and if we remove two party consent then they get to surreptitiously record you and leverage that power. It doesnt even the power playing field.

We can alreay write notes down for every conversation and then send them to the person involved saying "we talked about X, Y, and Z." That last step is the key because it lets them object in writing if you mischaracterize things. From a "catching someone in a lie" the most important step is that one, because you form a paper trail where the other party can correct or contest what was written and bring that up now, and the fact that they didn't is itself evidence in case of a dispute later. The apple watch feature doesn't do that, it just dragnets everything. Even if it recorded the audio, we are in a faked-audio world so unless you have some signal that they agreed that they said a thing ahead of time, they can always deny it later.

lelandbatey··on Grep beats LSP? Why coding agents ignore your fancier tools
My nvim LSP config is 20 lines and mostly consists of "if you see X language, use Y program as LSP".

I also have been using the same LSP config for approximately 7 years.

I don't get the pain.

lelandbatey··on Playa Phone
It is fun, but in a miserable (hot, dusty, muddy) kind of way. You hear a lot about such rich/out of touch folks, but with 60 thousand people there, they can't all be do-nothing rich people. Someone has to set up all the art and volunteer to help burn down the buildings, and those folks are the most interesting by far. Go there to see all the cool fire art and ask the folks who make it how they did it, what was difficult, other projects they've worked on, etc. better yet, bring your own art or volunteer your labor on another art project. You'll have an amazing time, and see plenty of genuinely interesting folks, as well as contraptions you've never imagined. But beware it takes a lot of effort to participate.
lelandbatey··on LLMs could control their host machines by exploiting inference engines
If you want it to both host the inference AND host the harness, then yes, you should firewall one from the other in some way, e.g. with VMs.
lelandbatey··on Nearly 3M Teslas recalled in China over hidden door handles
I hope there's more "no, your 'luxury' feature is just unsafe."

Being unable to turn on the windshield wipers (not engage for a swipe, turn on) without fully taking eyes off the road to interact with the giant touch screen, that's going to get people killed. The #1 thing that convinced me Teslas are absolutely unfit to operate safely for many common actions was driving one at all.

lelandbatey··on Tidal Cycles – Live coding music with Algorithmic patterns
Note that the artist is technically using Strudel in their videos, not Tidal Cycles; Strudel is effectively a re-build of Tidal Cycles in JS so it runs in browser and doesn't require installation. https://strudel.cc/
lelandbatey··on The Amazon tax
The term for this that I heard is:

> Advertising as inference not influence.

People buying ads want to influence customers, but the platforms can instead focus on finding the folks who are already going to buy the product and show them the ad in order to gain the sweet sweet attribution saying "I am responsible for the sale".

You can test this by taking your ad-spend and flatly multiply it: if you spend 5 times as much money to advertise to 5 times as many people, but your sales don't also go up by 5x, then the money you were spending at the 1x rate probably wasn't influencing the buyers either, instead the ad companies were merely targeting all the customers you were already going to get sales from.

lelandbatey··on Ask HN: Does anyone else feel like nothing matters anymore?
Not particularly because: the LLMs can code, but holy hell can they not operate or plan appropriately for ACTUALLY high stakes operational situations. When you absolutely cannot cause downtime, if you hand Fable/Sol/Kimi the reigns and say "do this 30 million token novel thing and absolutely don't screw up customer traffic" they'll blow it after the first compaction, every time.

This is on things like "we have to migrate how we do TLS termination via coordinated infra changes and DNS changes for a couple thousand customers, many of which are fortune 500 companies". It's maddening. If there's stakes, and it's not a small enough problem that there's not already a StackOverflow post/library for how to do XYZ, then you have to be so vigilant.

lelandbatey··on Going Dark, and the era of law enforcement hacking
Read the article. That's what the article says.

> Thus: over the next two years, major pieces of software are likely to run out of remotely-exploitable bugs.

> While I think this is great, for law enforcement and offensive intelligence agencies, it’s going to be a nightmare.

> So what do we do about it? I honestly have no idea. [...] it’s just occurring to me that we’re on a long greasy slide to a place that will look different than where we are today. [We’re] just going to have to hope that this time we make the right choices.

lelandbatey··on Qwen 3.8 27B
I can get 128k context on a 5070ti with 16 GB of VRAM (using the Unsloth 2-bit quant[0]). This is via a .bat file on Windows 11. I'm getting about 50-60 tokens/second and the quality is much higher than Qwen 3.6 27B. I'm using llama.cpp[1]:

    llama-server.exe ^
        -m "Qwen3.8-27B-UD-Q2_K_XL.gguf" ^
        --presence-penalty 0.0 ^
        --repeat-penalty 1.0 ^
        --fit-ctx 128000 ^
        -ctk q4 0 ^
        -ctv q4 0 ^
        --reasoning-budget -1 ^
        --chat-template-kwargs "{\"preserve thinking\": true}" ^
        --host 0.0.0.0 ^
        --port 8033
[0] https://huggingface.co/unsloth/Qwen3.8-27B-GGUF (UD-Q2_K_XL)

[1] https://github.com/ggml-org/llama.cpp/releases

Instructions if you want to do the same:

1. download two files llama-b10434-bin-win-cuda-13.3-x64.zip and cudart-llama-bin-win-cuda-13.3-x64.zip from that llama.cpp Github releases page, and extract both into the same folder.

2. Download the Qwen3.8-27B-UD-Q2_K_XL.gguf file from huggingface and put it into the same folder beside the `llama-server.exe`.

3. Create a file named "RUN_QWEN_3.8.bat" next to `llama-server.exe` and put the text above into that bat file. Double-click the bat file, then open http://localhost:8033 in your browser to see a chat window.

You can use it with any agents by pointing them at http://localhost:8033/v1 which is a working OpenAI compatible endpoint (it doesn't use a token, if you give one it's ignored).

Congratulations, you're now running Qwen 3.8 27B.

Note: I built the computer in question for playing games, yes it needed to be Windows 11 for anticheat reasons to play games with family, I didn't want to dual boot so here I am. I figure I should share instructions for folks who may also have a Windows PC around for such purposes. Specs for this are AMD 9800X3D, 32GB of system RAM, RTX 5070Ti 16GB

lelandbatey··on Grok Bot
Yes, you e always been able to do this, as long as you get an actual contract that's enforceable.

The thing about most sites is they're public and you don't need to sign a real contract to use them. Can't have it both ways.

lelandbatey··on Crime Pays but Botany Doesn't
You've done a great job with the "how big does it get"/"what will it look like" SVG diagrams, those are incredibly helpful.

https://indigene.app/plants/symphyotrichum-subspicatum

https://indigene.app/plants/juncus-patens

Very helpful for choosing plants.

lelandbatey··on Increasing the lifespan of a bulb makes it worse in every other way
Yep, I have a 15 year old LED lightbulb that's a "60 watt equivalent" and it works great. It was one of the first LED bulbs I bought, and I only bought one because I remember it costing individually about $25, maybe more. It's got a very heavy metal heatsink where nowadays you have just a plastic "neck" of the bulb. It chugs along wonderfully (though the color is noticable a little bit greener than later cheaper bulbs that have better color accuracy).
lelandbatey··on Passkeys were invented by engineers with zero understanding of consumer brain
> This makes it impossible to copy and paste your passkey to the wrong person (someone trying to trick you).

It also, unfortunately, means it's not possible (via most passkey implementations) to back those passkeys up to paper. Which is quite unfortunate: backing up to paper is one of the most stable and human accessible ways of ensuring redundancy and continuity, an inevitable but also oft-ignored part of credential management.

Security folks would like to pretend "solving continuity" isn't a problem, or is a problem that doesn't need to be accessible.

lelandbatey··on I tricked Claude into leaking your deepest, darkest secrets
The point is to not give every user (especially the LLM user) sudo access.
lelandbatey··on An agent in 100 lines of Lisp
By my eye it's not that different, it's riffing in it from a Lisp perspective.

It's pretty amazing to write your own agent BTW. I've got a zero-dependency all-in-one-file agent harness I wrote myself. I use it all the time now because I can get it from anywhere and I can know EXACTLY what it'll do (as much as you can with any model), what it's been told vs not. Using it as a harness for models I'm hosting myself makes me feel like some kind of LLM homesteader: it's a set of tools I'll always have that will only change as much as I want it to change.

lelandbatey··on Price per 1M tokens is meaningless
I was a student whenever I wrote my old bios but I've been a developer professionally for over 10 years at this point.

My inspiration was the mayor idea from Gastown, plus wanting to formalize the informal workflow I used with agents and Jira at $dayjob.

lelandbatey··on Price per 1M tokens is meaningless
Yes, it's a "cloud provider" but it's a cloud provider running an open model you can download (and that other cloud providers do host). I just happen to not have a computer big enough to host it.

As for the Orchestrator, it's pretty simple. In essence, it's like "Jira/Trello/Kanban on autopilot". Work items have states, a state machine defines how those work items transition between states, states are todo, in progress, retrying, reviewing, code reviewing, done. work items also have connections, allowing the LLMs to specify a dependency graph, and the dependency graph informs the dispatch order/parallelism, as well as when branches have to be merged. I talk to the steward, the steward has tool calls for interacting with all the data, and the orchestrator auto-dispatches all the work that comes in. I can generate work as fast as I can describe it to the steward, and that's usually the bottleneck.

So far I haven't had to deal with "how do you get the LLM to re-organize the work mid flight due to a worker finding something not accounted for by the planning", but I assume it'll come soon. The most complicated digraph I've tossed at it was 9 items and 4 layers deep. The kind of work I've given it hasn't been scoped large enough yet, so we'll see how it tackles that.

lelandbatey··on Price per 1M tokens is meaningless
Have you been using those models? I've been using a hand-rolled orchestrator with Mimo v2.5 (I seem to be paying $0.017 per million/tokens after their heavy caching) and it's been very impressive. I started with it in Opencode as a harness, then had it build its own micro-harness with stdlib-only Python, then used that to build a local stdlib-only Orchestrator with CLI and web harness, and now I'm using that for improving itself and now multi-project wider-ranging software. I talk to a steward who investigates and plans, then the plans are handed off to parallel worker agents who go through a work, test, interrogate, review, eval state machine for quality (all autonomously) with me at the end just reviewing the work or getting notified if the work items aren't progressing due to the workers getting stuck. So far the only "getting stuck" has been bugs/configs on my part, all at a pretty great quality bar, and at a price that makes me laugh at things like Opus.

I'm still using Claude at work (they're the only approved provider), but wow are the smaller models starting to SMOKE the big ones. At this point, all I'd consider paying out of my own pocket for is the lowest-limit Anthropic/GPT plan to get a big model as the Steward, but I wouldn't pay for ANY of the Anthropic models as the workers who do all the work. And as time passes, I don't know if I'd even do that; the open models are serving SO well.

lelandbatey··on Rob Pike – 'Concurrency Is Not Parallelism' [video] (2012)
No, and that's the point of the article. What you are calling parallel w/r/t IO should be called concurrency (conceptually happening at the same time by virtue of being able to interrupt and resume units of work). The reason IO APIs like you've described is concurrent but not necessqrily parallel is because there is no guarantee in the API that they both happen literally simultaneously; I could build a JS runtime that "works" for all the code written against XMLHTTPRequest (ignoring side-effects) but which under the hood only ever makes one HTTP request at a time. And because I can do that, that means JS code is living in a concurrency-only world, even though as an implementation detail most runtimes support parallel execution of those concurrent operations.
Page 1 of 34Next →