I guess another thing is once the related conversation is identified you can use some other mechanism to retrieve it all or in parts etc.
HN user
infogulch
location: Kansas City
github: infogulch
twitter: infogulch
email: hello+hn@infogulch.com
So you draw some distillates out of the conversation, do a vector embedding of each, and insert the pairs into pg. Then retrieval is distill -> find top N nearby vectors. Indexing, etc. Seems like a smart way to organize long term memory.
Also I can't help but notice that this solution combines technologies whose origins literally span 6 decades: relational databases (80's), vector embeddings (00's), and LLMs (20's).
What kinds of prompts do you use to get the distillates, and what shape are they? I guess I've been assuming you extract more than one distillation out of a conversation per memory access, do you?
Yes that would probably help!
LLMs are far from great writers. They struggle to form long coherent sentences and lean on punctuation like emdash and semicolon to ensure grammatical correctness when splicing together short phrases.
This makes me wonder if the reason why agents love weird punctuation is because the labs run the base models through a RL training step that forces them to correct their grammar; but instead of rewriting short spliced sentences into long coherent sentences, they just learn to splice them together with punctuation that passes the automatic grammar checker.
I'm not trying to be obtuse, and correct me if I'm wrong, but "context" is just words, often rendered as markdown because it's easy for both LLMs and humans to produce and edit. Since its in a database and they're not necessarily full documents, I'll use the phrase "markdown snippets" for now. Feel free to quibble with the phrasing, I'm trying to understand what it does.
You save 2 respectability points by using postgres over nosql. (joke)
depending on their role/group assignment, its available to their AI client to recall
So you generate/extract markdown snippets from the local context of each agent along a few axes like: what problem the user is working on and their approach, what role they're acting as and tools they're using, etc, and store those snippets in a postgres db with indexes over the category.
So how is that then exposed to the receiving agents? Is it fully opt-in / pull only? Or do they get some related threads automatically injected in their context. What does it look like? "Jan was working on something similar yesterday, her agent found these docs helpful: a.md, b.md" ?
Lots of people have their own voice and tend to prefer certain phrases. This has been the case for a long time and is generally not a big issue.
Now LLMs come along and they also have their own phrasing preferences. But now it's a problem because what used to be personal preferences of a single person that manifests in 5000 words per day from one person tops, is now the bias of a single model multiplied x10,000,000,000 generated tokens per day so any bias sticks out like a sore thumb.
So instead of markdown files in a repo, it's markdown files in a nosql database?
Sure, maybe you can find a paint that is black in all bands except for the ones used by the satellite. It won't use carbon black.
The entire underside of these satellites is a big phased array antenna. Maybe you can paint it so it absorbs all the other wavelengths, but it would be counterproductive to absorb the radio wavelengths used by the antenna itself since ground emitters would have to increase the gain to get through it.
Couldn't we just permanently solve the stack copying issue by always using a per-stack base pointer + offset for all stack objects? Copy stack -> update base pointer -> done. Trying to access a stack object on a different thread? That's retarded don't do that allocate it on the heap instead.
Some customers may have experienced unscheduled collaborative compute with external parties.
Reminds me of the hilarious "rapid unscheduled disassembly"
Sure, but one might imagine that linkers are generic and reusable, so you can just pick one off the shelf instead of making a new one 1-1 for each language. Empirically this line of reasoning seems to be incorrect.
Neat! Barcodes are much more complex that I knew before looking into it. I used JsBarcode [1] to create a special barcode that reprograms a cheap barcode scanner we got on Amazon to be able to scan both UPS and FedEx tracking numbers. It is published on CodePen [2].
To me, paperless means they ATTACH MY STATEMENT TO THE EMAIL. Not signing up to any paperless until they do, none yet have met this bar. The statement is supposed to be a snapshot of the status of the account at a given moment, if you have to open their website to view it they could regenerate it from whatever crap data they have lying around at the given moment. If it can change every time you look at it, it's a quantum statement, it's not a snapshot, it's a vibe. This defeats the entire purpose of getting a statement, I don't know how anyone tolerates this.
Ah so the fork is permanent. How unfortunate, guess I need to avoid QNAP software entirely.
OpenZFS released the zpool expansion as stable last year. Hopefully QNAP is charting a path to allow their users to migrate from their fork to OpenZFS, though of course these kinds of things take time to develop. I would be really worried if they are diverging further from OpenZFS rather than converging.
IPC scopes would be a great solution!
Anybody used a tinybox? https://tinygrad.org/#tinybox
The most "affordable" option is red v2 with 64GB GPU ram and costs $12,000. This is only ("only") 1.5x-3x the price of a beefy desktop (https://pcpartpicker.com/builds/), and could crush inference work even on bigger models. It could support coding tasks for a small team of developers, or run an AI agent for every person in your household...
I'm happy to hear you really care about perf.
I might have assumed io_uring would be the high throughput kernel interface for Linux.
Can iroh run on a proxy server which forwards requests to backends that don't integrate with iroh directly?
What is the CPU overhead at link saturating speeds?
How does Iroh's performance compare to wireguard?
io_uring taught us that if syscalls are expensive, queue them up in a buffer with one syscall to transfer the thread to the os to process it. So, queue up the new process mutations in a buffer with a single syscall to process all of them in a batch. This model should have replaced repetitive syscalls across the kernel years ago.
I guess you can try again when you post the video.
Yes buffering / dropping on buffer overload is the right frame and the right way to do it in practice. I have seen it done properly. Yes it can cause some social friction but as long as your conversation partner is aware that because you are driving you may buffer/drop conversation packets and they accept that they might have to occasionally exercise patience or repeat themselves then it's fine.
This week I built https://github.com/infogulch/caddy-zone-manager, "A Caddy app that performs desired-state synchronization of DNS records to a target zone using Caddy’s existing libdns DNS-provider ecosystem."
I thought that since caddy is already managing dns records anyway to pass DNS-01 ACME validations and update HTTPS records, wouldn't it be nice if I could just have it manage all of them and keep my desired DNS state checked into git?
This is exactly the duct tape scenario. There are a bunch of systems that bound the problem: Caddy's app lifecycle, the Caddyfile configuration system, libdns interfaces, DNS semantics, the Go language. Sure, there are a lot of little decisions that need to be made that fall into the "taste" category (no promises), and the sync engine itself is a new brand component, but by and large once the idea was formulated the problem domain is narrow enough for an LLM to stitch the systems together.
It was done in about two days of personal time. I read through all the code and rewrote a good portion of it manually. I probably could have written it from scratch myself with two weeks of full time effort (honestly I would have stumbled a bit on DNS recordset semantics which I was not very familiar). Instead it cost me $100. (I will reconsider my LLM usage patterns for the next project...)
In my experience the driving-behavior part of my brain can run virtually autonomously, like how you don't really have to spend 100% of your brain to walk down the street. This means that the words-thinking part of my brain is almost completely free, with the exception of short high-attention spikes for risky maneuvers like onramp merging. This is why listening to music or podcasts is a very popular driving activity. In many places even handsfree phone calls are allowed as long as both hands are available and your vision isn't obstructed.
I would contend that listening to a podcast or being on a handsfree phone call would be on par with the Claw Phone.
Does it use ffmpeg to render inline images to ASCII?
SQLite is remarkably versatile. Just a couple weeks ago an extension to do cross-process queues, streams, pub/sub etc in SQLite was released:
Show HN: Honker – Postgres NOTIFY/LISTEN Semantics for SQLite | 327 points | 94 comments | https://news.ycombinator.com/item?id=47874647
Live notifications was one of the big missing pieces to implement whole apps on a sqlite backend, and now there's a decent solution.
The full quote:
Gofmt's style is no one's favorite, yet gofmt is everyone's favorite - Rob Pike https://go-proverbs.github.io/#:~:text=Gofmt%27s%20style%20i...
The best part about gofmt is there is no discussion about how to format Go code. The style itself is fine, skipping endless hours of pointless debate is priceless.
AV2 video codec delivers 30% lower bitrate than AV1, final spec due in late 2025 (videocardz.com) | Oct 2025 | 277 points | 223 comments | https://news.ycombinator.com/item?id=45547537
While I agree that it doesn't make much sense to use a minimizer on code the reader could understand, the code-golfed byte count of a CVE repro communicates its complexity in a certain visceral way.