HNHacker News
TopNewBestAskShowJobs

zachmu

919 karma · joined August 6, 2019

submissionscomments
zachmu··on DoltLite: A SQLite fork with Git-style version control, built with 2k agent PRs
You can call it what you want I guess, but "vibe coded" around these parts is a simple pejorative, it means the authors don't know what the code does and the product is poor quality.

Most successful agent-coded projects have a few essential features that it's worth calling out: 1) The human driving it has real domain expertise; 2) There's an oracle for correctness; 3) The agent has a real-world example to copy, adapt, or translate.

This project had all these elements. The human driving the agent understood the technical and product decisions that make a version-controlled database work, because he's been doing that for 8 years. The project uses the existing 5.7M query test suite for SQLite3 as its oracle, as well as adapted versions of Dolt's extensive test suite to verify the version-control features that SQLite has no tests for. And the agent had a human-written implementation of the core product (Dolt) to crib from.

All of this is to say: yes, agents wrote this code, but if you or another randomly chosen software engineer sat down and tried to duplicate this result you wouldn't succeed. You wouldn't know what the agent had gotten wrong at every step of development, or even what questions to ask to find out where the errors might be. Despite the existence of a correctness oracle, the agent on its own cannot iterate to 100% correctness without a domain expert steering it. And that expert also has to have an extensive understanding of the existing code base that's being copied. You can't just say "Claude, implement version control in SQLite3, make no mistakes", it's not going to work.

zachmu··on DoltLite: A SQLite fork with Git-style version control, built with 2k agent PRs
Here are some ideas

https://www.dolthub.com/blog/2024-10-15-dolt-use-cases/

zachmu··on DoltLite: A SQLite fork with Git-style version control, built with 2k agent PRs
You use it to write version-controlled applications, so that your structured table data gets the same collaboration and auditing benefits that your source code enjoys. This is a couple years of out date but should give you an idea for how it's being used in the real world.

https://www.dolthub.com/blog/2024-10-15-dolt-use-cases/

For DoltLite, the big use case is embedded local-first development. It's a DB you can write to locally offline, then sync to a remote server when you have connectivity. Crucially, this works in both directions, and tolerates writes from multiple offline clients by merging their changes together.

zachmu··on What if database branching was easy?
I remember that engineering decision. You guys were pretty early customers for your throughput and durability requirements (we hadn't even added standby replication yet when you started your integration). We've come a long way in the years since then.
zachmu··on What if database branching was easy?
Neon is basically this same idea: postgres on a copy-on-write file system.

These aren't really "branches" though, they're hard forks. You can't merge them back after making changes. Dolt is still the only SQL database with branch and merge.

zachmu··on What if database branching was easy?
Can you be more specific about what complications you ran into? As for performance, Dolt is faster overall than MySQL on sysbench now.

https://docs.dolthub.com/sql-reference/benchmarks/latency

zachmu··on Chicago charges Medicaid 8x the national median for an ambulance ride
Figures are per ambulance ride.
zachmu··on Welcome to the Wasteland: A Thousand Gas Towns
https://docs.dolthub.com/other/faq#why-is-it-called-dolt-are...
zachmu··on Welcome to the Wasteland: A Thousand Gas Towns
What's the incentive for people to contribute to an open source project?
zachmu··on Welcome to the Wasteland: A Thousand Gas Towns
Regardless of whether this particular project goes anywhere, it's at least very interesting that Yegge has discovered a way to make multi-agent setups work better. Giving them discrete personas ("you are a senior database engineer with 30 years of experience") and narrower scopes makes them much more effective. This was surprising to me but makes a lot of sense in retrospect.
zachmu··on Welcome to the Wasteland: A Thousand Gas Towns
It is DOLT, you were right.
zachmu··on Welcome to the Wasteland: A Thousand Gas Towns
lol it's DOLT, not DoIt.

Yegge's Medium uses a serif font so you can tell, but in many faces you can't.

(We still get this comment constantly and it's very unfortunate)

zachmu··on Ask HN: How do you safely give LLMs SSH/DB access?
We build DoltDB, which is a version-controlled SQL database. Recently we've been working with customers doing exactly this, giving an AI agent access to their database. You give the agent its own branch / clone of the prod DB to work on, then merge their changes back to main after review if everything looks good. This requires running Dolt / Doltgres as your database server instead of MySQL / Postgres, of course. But it's free and open source, give it a shot.

https://github.com/dolthub/dolt

zachmu··on Amazon employees: 'I'd rather go back to school than work in an office again'
You'll never hear more nonsense about the industry than when the topic of H1Bs comes up.
zachmu··on Amazon employees: 'I'd rather go back to school than work in an office again'
I have, and this is an absurd assertion
zachmu··on Amazon employees: 'I'd rather go back to school than work in an office again'
> 80%+ h1bs

This is laughable, cite a source or get out.

zachmu··on The 4-chan Go programmer
when I was learning Go, I read a guide that told you to fire off a goroutine to walk a tree and send the values back to the main goroutine via a channel. I think about that "just an example" guide a lot when I see bad channel code.

For me the biggest red flag is somebody using a channel as part of an exported library function signature, either as a param or a return value. Almost never the right call.

zachmu··on The 4-chan Go programmer
You are a bad bad man
zachmu··on CockroachDB license change
Think of it as a replacement for spanner with a postgres frontend. It's about global availability and replication without application-level sharding.
zachmu··on CockroachDB license change
Sometimes it's a reasonable choice to pay for software, especially if you're a large company that can easily afford it. It's not like "just using postgres" in a manner similar to Cockroach's capabilities is trivial, building your own solution also has a whole set of risks.

If you're absolutely opposed to ever paying for a software solution, then sure, avoid commercial projects. I'm happy to spend my (company's) money on useful software.

zachmu··on CockroachDB license change
The BSL doesn't make it closed source, it prevents a competitor from running their own DBaaS business using Cockroach as the backend. This has happened to various open source projects, AWS started selling their technology and ate their lunch.

BSL is a totally fair compromise for commercial open source licensing imho.

If you see BSL as the first step to an announcement like today's, that's a fair criticism. Not sure how often that happens. But BSL doesn't disqualify software from being open source.

zachmu··on OpenAI Announces SearchGPT
Seems like this spells the end of any website that vends information or answers to questions, as opposed to narratives. Narrative based writing (or images) will be fine, people will still visit and see ads. But anything matching the search term "how do I" or "when was the" is toast.

Most websites in this business are, generously, hot garbage. And it's getting worse. So I imagine AI search will be quite successful at displacing them.

The problem moving forward: how do we keep information-based websites in business so that AI can scrape them? There's a real risk of AI eating its own seed corn here. Seems only fair that AI scrapers pay for the content since they're not generating ad views (and are in fact stealing future ad views). But I have no idea how you would enforce that.

zachmu··on Go range iterators demystified
Say more? What are you using Dolt for that you would find this useful?
zachmu··on Go range iterators demystified
This is true, you can just return the method without invoking it.

I don't tend to use that convention though, because most of the time when I use this pattern, I'm returning a function that uses a parameter I pass in. You can see this in the predicate example. I prefer keeping my call sites consistent and always using functions that return a function when invoked, rather than sometimes invoking them and sometimes just passing the func reference. YMMV.

zachmu··on Reverse engineering Ticketmaster's rotating barcodes
People always cite exclusivity deals / monopoly power when it comes to Ticketmaster's dominance, but I also recall reading post-mortems about several failed competitors that indicate the problem Ticketmaster solves (massive spikey demand with strict guarantees on the seats selected) is quite technically challenging. I know, it doesn't seem like it would be that hard to solve, you're probably already thinking how you would do it. But you can't ignore that many others have tried and failed.
zachmu··on Moaan InkPalm Plus is weird, cheap, small, and my kind of e-reader
I always keep the radios off, yes.

Even with the radios off, the Oasis struggles to get more than a week of life, it's kind of astounding how bad it is.

zachmu··on Writing generic collection types in Go: the missing documentation
You guys weren't supposed to find it
zachmu··on Moaan InkPalm Plus is weird, cheap, small, and my kind of e-reader
That's good to know, that's a total deal breaker for me.

I have the Libra 2 and I get about a month from a charge with my normal reading habits.

zachmu··on Moaan InkPalm Plus is weird, cheap, small, and my kind of e-reader
The Oasis is a great device with one fatal flaw: battery life. For some reason they nerfed the battery relative to the paperwhite so it lasts about a week instead of about a month. Probably won't bother a lot of people but it really bothered me. I read a lot and hate having to think about recharging.

I ended up with the Kobo Libra 2, which has all the same features as the Oasis but also has a month-long battery. I love it overall, great little device. Includes some quality of life features beyond the Oasis, including auto color tone shifting of the front-light in the evening (cool to warm), being able to adjust the light by swiping up the left side of the screen, and more options for progress indicators / headers and footers than the kindle has.

Kobo changes their lineup constantly, which means the Libra 2 has been replaced with a more expensive color version I haven't tried. Color on an e-ink screen is not an interesting feature to me, esp. not when it makes the device more expensive.

zachmu··on Moaan InkPalm Plus is weird, cheap, small, and my kind of e-reader
Looks like the Clara Color doesn't have physical buttons?

https://us.kobobooks.com/collections/ereaders/products/kobo-...

Kobo changes their lineup constantly though, the Libra 2 I have (with physical buttons) is no longer available.

Page 1 of 9Next →