11,969 karma · joined November 13, 2012
github: infogulch
twitter: infogulch
email: hello+hn@infogulch.com
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...)
I would contend that listening to a podcast or being on a handsfree phone call would be on par with the Claw Phone.
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.
> 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.
So where are we going? Mitchell will be deciding for Ghostty. If github's current trajectory is anything to go by, everyone else will need to decide where to go sooner rather than later.
I'm worried that it will be a Babel scattering event and this open source superpower that github catalyzed (how to describe it?) will just evaporate.
I'm also worried that wherever we go next could have the same fate as github.
So what then? Radicle is the only thing that I've seen that could theoretically 'solve' the problem, though it still needs a lot of work: https://radicle.dev/
Care to share your code? This may become a bug report.
> [SQLITE_FCNTL_DATA_VERSION] is the only mechanism to detect changes that happen either internally or externally and that are associated with a particular attached database.
Another user itt says the stat(2) approach takes less than 1 μs per call on their hardware.
I wonder how these approaches compare across compatibility & performance metrics.
Would it help if subscriber states were also stored? (read position, queue name, filters, etc) Then instead of waking all subscription threads to do their own N=1 SELECT when stat(2) changes, the polling thread could do Events INNER JOIN Subscribers and only wake the subscribers that match.
Could the compiler not identify this case and perform the transformation automatically?
My understanding is that if you want aggregations or sub accounts then you need to duplicate transactions and maintain them yourself. This may seem like it would be annoying, but I suspect it would mostly be a matter of code organization.
I expect typical TigerBeetle (TB) clients will develop and maintain an application-level library that builds up a set of TB transactions that encode each business-level transaction. For example, if a "business transaction" is "marking a purchase order as received", the corresponding set of TB transactions might include: 1. moving the received qty from the pending receipt qty account to the inventory qty account for the received line items, 2. adding the total cost to the inventory value account for this item, 3. adding the price to the Accounts Payable (AP) account for this vendor, 4. adding the shipping price to the AP account for the delivery company, etc. But then you might want some aggregations, so you'd do the same thing again and add the price to the "total inventory value" and "total accounts payable" accounts, etc.
In fact you might want 3, 4 or even more parallel ledgers at different levels of aggregation, which could all be maintained within the application library. I wonder if there's a name for this technique. My only concern is that if you break down your business transaction into fine grained detail like this and then duplicate it with multiple aggregations then that 8000 transaction limit starts looking a lot smaller.