HN user

conradludgate

1,399 karma

I write code sometimes. https://conradludgate.com

Posts14
Comments545
View on HN

Hi, I work on Lakebase (but not on storage), here's how I understand it.

For Lakebase and Neon, our architecture needs the caching layer regardless (what we call Pageservers). Performing reads from S3 directly is too slow so we reconstruct pages and keep them on an nvme server for faster querying. Changing the format on S3 to be Parquet effectively introduces no additional copies over our existing architecture

Fearless concurrency has always been regarding data races. There's no fear of undefined behaviour due to a race condition.

Rust has never promised to solve race conditions as a whole.

Deno Desktop 1 month ago

How is it a poor choice of words? It might not be "native" UI, but they never claimed as such.

I've always felt that native UI on Linux always looks incredibly ugly and I'd much rather use a nicely styled HTML+CSS layout instead.

In my experience, Electron mostly gets flak for being bloated and slow, it not being native is sometimes a secondary point people add on top.

I've always wanted to build a direct-browser integration that could use HTML+CSS for the layout, but avoids needing a JS runtime. Idk how lightweight servo is but one day I hope I will see my idea come to light

Stop Using JWTs 1 month ago

It can also be encoded as a bloom filter for very fast checks. Then you can defer to the replicated LSMTree that's stored replicated on your local node

Glad I've jumped ship to Zed+ACP. I liked the idea of the new agent window view, but it's obviously slop and hasn't had a any polish or care put behind it given the number of bugs I keep seeing.

Zed is so much more stable and sleek and the agent view (threads) actually integrates nicely in a real editor. The side editor in the agent window was so much worse than the vscode base I expected, I have no idea how they dropped the ball so hard here.

I take this to mean they threw a bunch of incoherent bullet points at the AI for it to denoise and render into paragraphs

What I generally tend to do is have a long conversation with an LLM for at least 30 minutes, and then have that turn into the first draft. It might be considered lazy, but I've never been very good at editing prose - I always end up making a mistake that makes it more confusing.

If after the conversation I find it's an idea worth sharing (usually with colleagues), then getting the LLM to turn it into something readable is the best option available to me. If I had to do it myself, it likely wouldn't make it before I move onto something else. And it has had my genuine input throughout the long conversation, I wouldn't call it incoherent nor am I an idiot for not being able to express myself in long form writing

It was alluded to in the post - contributors turn into maintainers. Someone who contributes has a small but plausible chance of sticking around.

For an open source project that isn't a business, that's really the only way to recruit people

You can just say it 2 months ago

This might apply to the AI integrations in Gmail, but someone's own agent setup might have more references saved privately than yours. You can't ask your AI to search through my personal notes.

It's a signal, and probably a high success signal in open source slop discovery, but it's more of a correlation than a causation. I've seen lots of changes that bear the co-authored tag that have had a lot of thought behind the code changes.

It's worth stating that historically these right-wing culture protests have been a bit more violent in nature than most protests are. I'm not suggesting that everyone in the protest is violent, but there's enough mob mentality that makes me (someone who lives in London) uncomfortable.

Hi, I do this at work.

It's not a one-shot prompt. I'm chatting with the agent for a while collecting knowledge and forming a substantive set of documentation or references. This takes a lot of time and effort to collect.

After this, I just get the agent to refine a doc for humans to read. I'm not very good at writing for humans, and it takes me far too much time that I usually give up and move onto other more important things instead. So it benefits everyone that I have vetted a set of documents in my expertise domain and shared them, even if not written by me they contain my ideas.

This is what I've found to be very successful for me. My flavour of ADHD has historically made it hard for me to start new projects as I get very stuck on all of the little details from the start, while also thinking about the high level aspects.

Being able to spend my energy on the architectural decisions and validate my understanding before spending time on optimising the internals has actually allowed me to follow through with some of my designs.

Experimentation is then faster. If the data model wasn't good enough, I can actually experiment with it immediately, before we accidentally ship something to production and then have to deal with a very annoying data migration problem. The exact code doesn't matter to begin with when we just want to make sure the data is efficient to decode and is cache friendly.

I recently built a project I had in my mind for 3 years but could never work on because all the individual components were overwhelming. It involved e2e encryption, consensus, p2p networking, CRDTs, and API design. It was very nice to see it come together. The project ended up failing due to some underlying invariant, so it was nice to validate that and finally get it out of my head.

I miss the clear distinction between exclusive access and shared access when I work in GC languages. Knowing clearly when you are allowed/expected to modify a value, and when you are expected to only read the value ends up being very useful and it has poisoned my brain when working in Python/JS/Go where some values are internally pointers and there's no standard to learn once for when a mutation is safe or if you should always make a copy

My understanding of the way this is presented is that merges don't _block_ the workflow. In git, a merge conflict is a failure to merge, but in this idea a merge conflict is still present but the merge still succeeds. You can commit with conflicts unresolved. This allows you to defer conflict resolution to later. I believe jj does this as well?

Technically you could include conflict markers in your commits but I don't think people like that very much

ECH doesn't benefit you if you're connecting directly to one IP. Middleboxes can track that you're connecting to this IP.

ECH prevents tracking through routing layers where your ClientHello might contain foo.example.com or bar.example.com but route via the same IP (Cloudflare). A middlebox can see you are using a cloudflare hosted website, but not know what cloudflare website.

There's no benefit encrypting the SNI with 10.20.30.40 if they can see you're connecting to 10 20.30.40 anyway