
🚀 Sr Eng @v7labs 👨💻 Elixir Fan 🌐 https://xitter.cf/t.co/JUhgTo2oZX | https://xitter.cf/t.co/P3ugfHdAHu | https://xitter.cf/t.co/mGDPPW4o98 | https://xitter.cf/t.co/dPt1Z9gy5g | https://xitter.cf/t.co/P7OOZOWLJI | https://xitter.cf/t.co/1IbweEfgcw 📖 Wrote https://xitter.cf/t.co/xPnRYbTY0y
London
Joined January 2011
- Tweets16.8K
- Following749
- Followers3K
- Likes20.2K
Chris Gregori retweeted
Kage's first sponsor is live - @beehiiv 🙌
62,000 people browsed Kage last month looking for design references and prompts to paste into their coding agents
Glad to have Beehiiv in front of them for the next two weeks. If you're writing a newsletter, they're the ones to use 💪🏼
Chris Gregori retweeted
Since we’re all rewriting everything in Rust, here’s my contribution: Dialyzer.
~3× faster on cold runs, matching warnings on tested projects. Uses more memory though.
Chris Gregori retweeted
Ten years of Sad Affleck memes and it turns out he'd just been trying to install CUDA drivers the whole time.
Chris Gregori retweeted
In programming, "speed" is not so simple to measure. There are a few measures you look at:
Concurrency: The number of things your system can handle at once.
Throughput: The actual number of requests served per second in real world conditions.
Latency: How long it takes for any one request under real world conditions to complete. This includes queueing delay.
Queueing Delay: How long a request has to wait at the front door before your system even starts processing it.
You typically are playing a balancing act between maximizing throughput and minimizing latency on any single server, while increasing number of servers (capacity) to account for actual load.
A system under load does not behave the same as a system with spare capacity. Raw speed doesn't save you under contention, because "just do the thing as fast as it can possibly be done" is just insufficient.
Instead, you have to write your code in such a way that any one given thing can "yield" to other things. If you don't, the requests you're working on finish quickly, but once all of your threads/processes are fully utilized, you have no way to handle more load without introducing queueing (which eventually becomes failures/timeouts) on callers.
This brings us to queueing delay. When the system is processing all of the data that it can, the callers have to all just sit there and either wait, retry or fail. If your system were able to accept more concurrent work, you can lower this queuing delay under heavy load. If you can't do that, you end up trading away too much of your goodput (requests that actually succeed within their deadline) in exchange for consistently low latency for the operations that you do handle.
When building systems at scale, the general guiding light is keeping the queue delay low, and keeping goodput as high as possible.
To do this, you accept as much work as the internal system can track (increasing memory usage typically), allowing latency to go up, in order to accept more concurrent traffic internally. You still need backpressure and load shedding, since no scheduler saves you from arrival rates that permanently exceed what you can serve, but within those bounds you keep goodput maximized.
For this to actually work, your internal schedulers need to be able to do something called "preemption". This is where any given operation cannot take an entire CPU core for longer than some given period of time, or for some amount of operations. A "preemptive scheduler" balances work fairly across all of the operations that are asking for CPU cycles. (Work stealing, where idle cores pull queued work from busy ones, helps too, but plenty of cooperative runtimes have that. Preemption is the key part.)
The BEAM is a powerhouse for this. It preempts processes by counting "reductions," so no process can hog a scheduler. Immutability and share-nothing processes make that preemption cheap and harmless: a process is never paused while holding a lock someone else needs, and every process has its own heap and garbage collector, so there are no global stop-the-world pauses. This allows BEAM applications to achieve maximal goodput, with very low failures due to queue delay, while spreading latency across all work fairly.
Without that preemption, you would see a huge spread among the latency of your system. i.e some requests happening practically immediately, while other requests take pathologically large amounts of time to complete.
I get that people want programming language not to matter these days, but at a very minimum you cannot escape the limitations of your runtime. The BEAM's runtime is built for operating at scale, and will always be smoked on benchmarks for tight loop operations where there is no resource contention.
#ElixirLang
Chris Gregori retweeted

José Valim@josevalimOct 5
🇵🇱
PolandConnected via WebAccount-level information, not a live location or per-post device.
Oh FFS. It turns out the req/s in the initial vibed Rust version is within the same order of magnitude as the initial vibed Elixir/Go versions, and even performs worse in some of them.
The history is in the repository! The Rust version only got faster with a bunch of additional work. The initial Elixir/Go versions presented in the tweet below saw none of this additional work. It was comparing a 300 commits Rust version with a 2-3 commits Elixir/Go version.
Source: github.com/basecamp/once-cam…
I've had agents implement and optimize the Campfire web app in Elixir, Go, and Rust. Yes, Ruby is the slowest. I didn't care about that when the pay-off was huge in terms of productivity and developer joy. But if you're no longer reading the code? github.com/basecamp/once-cam…
Readers added context they thought people might want to know
The shown benchmarks use non-equivalent implementations: Elixir routes all DB queries through a single GenServer with Redis for jobs (retained from Rails), while Rust uses in-process queues, omits CSRF tags/fields, and applies other caching changes.
github.com/basecamp/once-…
raw.githubusercontent.com/basecamp/once-…
github.com/basecamp/once-…
github.com/basecamp/once-…
x.com/zachsdaniel1/s…
Chris Gregori retweeted
LOTR might genuinely be one of the greatest things humans have ever put on a screen and I’m not even exaggerating. You can watch it as a kid and think it’s about hobbits and swords and this terrifying ring. Then you watch it as an adult and realize it’s basically about everything that actually matters.
Power corrupts people and evil usually starts really small..Good people can be tempted and courage isn’t about being fearless. Friendship can literally carry you when you can’t carry yourself anymore. The smallest person in the room can change the course of history. You do the right thing not because you know you’re going to win, but because it’s the right thing to do.
Honestly… I think it should be mandatory viewing for kids at some point. Not just “watch the movie” but actually dissect it. Why does Boromir fail? Why can Sam resist what other people can’t? Why does Frodo show Gollum mercy? Why is Aragorn a good leader when he spends half the story reluctant to have power? What happens when someone becomes consumed by resentment, fear, or the desire to control other people? Then make kids apply those questions to their own lives. Friendship, temptation, loyalty, courage, responsibility, choosing who you want to be when nobody is forcing you to choose correctly. There are probably more useful lessons about becoming a decent human being buried in those movies than in half the stuff we make kids memorize in school…and those are learnings and lessons that would stick and could carry you through all of life.
My favorite part is that the heroes aren’t these invincible characters either. They’re tired, scared, tempted, and completely outmatched. Half the time they have no idea what they’re doing but they just keep going….
Then somehow Peter Jackson took ALL of THAT and made three epic movies at the same time, filled them with real sets, real landscapes, thousands of extras, incredible music,… and made something that still looks better than movies being made with $200M budgets 25 years later.
I really don’t think we’ll ever get another thing like it.
Chris Gregori retweeted
Come on. Your agents run all SQL queries through a single genserver, with all queries awaited via `GenServer.call`. This is a moronic Elixir implementation. I've staid fairly agnostic on the whole "rewrite everything in rust" thing but if this is the Elixir that your agents are writing, I'd hate to be a rust expert looking at their rust.
github.com/basecamp/once-cam…
I've had agents implement and optimize the Campfire web app in Elixir, Go, and Rust. Yes, Ruby is the slowest. I didn't care about that when the pay-off was huge in terms of productivity and developer joy. But if you're no longer reading the code? github.com/basecamp/once-cam…
Readers added context they thought people might want to know
The shown benchmarks use non-equivalent implementations: Elixir routes all DB queries through a single GenServer with Redis for jobs (retained from Rails), while Rust uses in-process queues, omits CSRF tags/fields, and applies other caching changes.
github.com/basecamp/once-…
raw.githubusercontent.com/basecamp/once-…
github.com/basecamp/once-…
github.com/basecamp/once-…
x.com/zachsdaniel1/s…
Chris Gregori retweeted
I have a branch with various performance improvements to the Elixir version, focused on specifically the websocket side of things. I didn't spend much time on the rest.
The load generation code was flawed in overload scenarios because any socket that had an issue just stayed disconnected forever, so I assume no benchmarks were run in this fashion prior. Now those reconnect on disconnect and continue sending traffic (a more realistic scenario).
Most relevant finding:
In an overload situation, the rust implementation delivers a whopping 1% of messages to all connected clients, and the Elixir implementation delivers 100% of messages to all clients, applying natural backpressure to writes.
Speed is cool. Rust is fast. Speed is not even close to the most important thing when building real applications.
I've had agents implement and optimize the Campfire web app in Elixir, Go, and Rust. Yes, Ruby is the slowest. I didn't care about that when the pay-off was huge in terms of productivity and developer joy. But if you're no longer reading the code? github.com/basecamp/once-cam…
Readers added context they thought people might want to know
The shown benchmarks use non-equivalent implementations: Elixir routes all DB queries through a single GenServer with Redis for jobs (retained from Rails), while Rust uses in-process queues, omits CSRF tags/fields, and applies other caching changes.
github.com/basecamp/once-…
raw.githubusercontent.com/basecamp/once-…
github.com/basecamp/once-…
github.com/basecamp/once-…
x.com/zachsdaniel1/s…
Chris Gregori retweeted
One of my recent favorite AI use cases: asking it to try and break the stuff I built. Adding lots of data, long names, unusual emails, labels, etc. Coming up with worst case scenario basically.
This is a vibe-coded demo, but you get the idea.
Chris Gregori retweeted
Sites every design engineer should have bookmarked:
dialkit.dev - Dial-based UI controls
glass.samasante.com - Beautiful glass effects
uisfx.com - UI sound effects for the web
typeface.fyi - Find the perfect typeface
libraries.dev/orbs - Interactive animated backgrounds
screenshottocode.com - Turn screenshots into code
kage.design - 1,000+ real UI components for design inspiration
Save this for your next build ↓
Chris Gregori retweeted
After co-inventing ChatGPT, I kept asking myself: why have superhuman chat models not led to AGI?
I’ve spent the last 2 years in stealth building a new way to train models (RLCD), and a new type of frontier AI model that we are releasing today: Jev
• 20-200x faster
• 40-400x cheaper (w/ output tokens free)
• Frontier composable intelligence optimized for decisions
AFAICT the shortest path to AI-based economic revolution
Chris Gregori retweeted
github.com/k-dense-ai/scient… - Turns AI into a scientific agent
circleloaders.dominikakissi.… - 24 free modern circle loaders
openui.com - The Open Standard for Generative UI
kage.design - 257 design inspirations, ready to build
glass.samasante.com - Open-source liquid glass effect for the web
Chris Gregori retweeted
Where do you get inspiration before building a new landing page ?
Real product designs.
Reusable UI sections.
Build-ready inspiration.
AI Skills.
A pretty useful bookmark for #Frontend developers.
Try kage.design
145 products analysed
1358 components with prompts for AI agents
257 design example
Full screen landing page capture
Categorised, analysed and turned into prompts
100% free.
kage.design
Chris Gregori retweeted
On the left - convex's landing page
On the right - a one shot of a new dev tool using kage.design's prompt and Fable 5.1
100% totally free - try it out
Chris Gregori retweeted

Tibo@thsottiauxSep 3
🇺🇸
United StatesConnected via WebAccount-level information, not a live location or per-post device.
We will give one banked reset for every day you don't have access to Astra on your paid ChatGPT plan, starting today. Team is moving mountains to give access as fast as we can.
First one will land in ~ 3 hours. There is still time to create your account if you don't have one.
Chris Gregori retweeted

Theo - t3.gg@theoSep 3
🇺🇸
United StatesConnected via United States App StoreAccount-level information, not a live location or per-post device.
GPT-6 Astra is world class at Blender and 3 dimensional reasoning. This was a 1-shot game it created, all running in browser.
Chris Gregori retweeted
Stowdrop [Mac] [$ 19] by @codestirring
A small, fast, private memory for your Mac. Features include quick capture, full-text search, and task management.
payonceapps.com/application/…























