beyond a certain net worth, negotiating with people less privileged than you (cab drivers, house help, carpenters etc) causes rot to the soul.
just overpay and move on
The course will keep getting deeper, since I'm growing fast. After studying Neon carefully, I'll use TigerBeetle's ideas to build a faster version that separates storage and compute, making the course even deeper. Technically, I'm sure I can build a great database product.
Two years ago, I was a Postgres newbie. I didn't even know how to install it. Now I feel like I really understand Postgres. Learning Postgres is only hard for DBAs. For developers, it's easy, and the ideas behind it are even easier, as long as you use the right approach.
The Consensus tracks over 120 of the best developer blogs, and that number grows each week. There's now a dedicated feed page for this group. And RSS as well. No subscription needed.
https://t.co/W3LPVayzAi
Few people care more about software performance than @cmuratori. Give him a few minutes of your attention with this episode, and he'll convince you to learn to read Assembly (no, really, I finally started to read it, it's really not that scary, esp with an AI that can help explain the sequences). Timestamps:
00:00 Intro
05:17 Games at Microsoft
12:52 Building games
16:00 Why performance matters
27:12 Why you should learn to read assembly
30:36 Designing for optimization
42:51 How to get better at writing performant software
49:04 Understanding how the CPU works
55:53 Building games then and now
1:05:56 How game engines changed building games
1:10:48 Why new games compete with old games
1:13:25 GTA 6: why is it taking so long?
1:16:59 Casey's critique of clean code
1:21:48 Casey's take on TDD
1:24:30 What is good code?
1:27:32 What makes a good software engineer?
1:33:56 Why Casey doesn't code with AI
1:39:01 AI's impact on the game industry
1:44:43 AI and burnout
1:50:21 Why you should read papers
Brought to you by:
• @AntithesisHQ – verify your system’s correctness without human review or traditional integration tests – and avoid bugs or outages https://t.co/AKYm4cbVCU
• @sentry – application monitoring software considered “not bad” by millions of developers https://t.co/uoolyqTjhe
• @turbopuffer – a vector and full-text search engine built on object storage. It’s fast, cheap, and extremely scalable https://t.co/w9y67Gs8ab
Three interesting things we talked about:
1. Is performance starting to matter to businesses?
Enterprise software buyers care mainly about cost, compliance, and capabilities – but not performance. Even so, there are some products gaining major popularity and market share due to their performance, such as File Pilot (next-gen file explorer) and the Blick video editor. Is the tide turning?
2. Profiler-driven performance optimization is the wrong way to optimize
The standard way of optimizing is to profile the application, tweak hotspots, then check if the stats have improved. But this only finds a local minimum; Casey says every engineer he’s worked with who was a great “optimizer” began by establishing what the hardware could theoretically do, and then did not stop until they’d closed the gap to that performance level.
3. Take a grain of salt with conventional wisdom that premature optimization is the “root of all evil”
Many devs use it as an excuse to delay performance optimization, but Casey says that not optimizing in time could mean that only performance hotspots can be fixed later, and not the architectural issues that create poor performance. Architect your system to be performant, or you’ll have trouble solving problems without a rewrite!
Let it be known that WAL is literally just a write-only ledger. That's it. That's the magic. The database itself is technically a stateful cache of the WAL.
Most don't realize that nearly *every* database is built with a WAL.
Postgres. MySQL. SQLite. Mongo. Kafka. ClickHouse.
WALs are fundamental for fast, reliable, transactional data processing. Everyone should know how they work.
I found a minimal reproducer for SQLite's WAL-Reset bug (100 lines of C) that triggers data loss and/or data corruption in seconds. The integrity_check Tailscale did would not necessarily alert you to the former.
Exclusive for Standard subscribers. Otherwise, upgrade SQLite!