Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]

Armin Ronacher's Thoughts and Writings

Armin Ronacher's...
I'm Leaving Sentry Every ending marks a new beginning, and today, is the beginning of a new chapter for me. Ten years...
3 weeks ago
3
3 weeks ago
Every ending marks a new beginning, and today, is the beginning of a new chapter for me. Ten years ago I took a leap into the unknown, today I take another. After a decade of working on Sentry I move on to start something new. Sentry has been more than just a job, it has been a...
Armin Ronacher's...
Rust Any Part 3: Finally we have Upcasts Three years ago I shared the As-Any Hack on this blog. That hack is a way to get upcasting to...
4 weeks ago
2
4 weeks ago
Three years ago I shared the As-Any Hack on this blog. That hack is a way to get upcasting to supertraits working on stable Rust. To refresh your memory, the goal was to make something like this work: #[derive(Debug)] struct AnyBox(Box<dyn DebugAny>); trait DebugAny: Any +...
Armin Ronacher's...
Bridging the Efficiency Gap Between FromStr and String Sometimes in Rust, you need to convert a string into a value of a specific type (for example,...
a month ago
2
a month ago
Sometimes in Rust, you need to convert a string into a value of a specific type (for example, converting a string to an integer). For this, the standard library provides the rather useful FromStr trait. In short, FromStr can convert from a &str into a value of any...
Armin Ronacher's...
Ugly Code and Dumb Things This week I had a conversation with one of our engineers about “shitty code” which lead me to...
2 months ago
3
2 months ago
This week I had a conversation with one of our engineers about “shitty code” which lead me to sharing with him one of my more unusual inspirations: Flamework, a pseudo framework created at Flickr. Two Passions, Two Approaches There are two driving passions in my work. One is the...
Armin Ronacher's...
Seeking Purity The concept of purity — historically a guiding principle in social and moral contexts — is also...
2 months ago
2
2 months ago
The concept of purity — historically a guiding principle in social and moral contexts — is also found in passionate, technical discussions. By that I mean that purity in technology translates into adherence to a set of strict principles, whether it be functional programming,...
Armin Ronacher's...
Fat Rand: How Many Lines Do You Need To Generate A Random Number? I recently wrote about dependencies in Rust. The feedback, both within and outside the Rust...
2 months ago
2
2 months ago
I recently wrote about dependencies in Rust. The feedback, both within and outside the Rust community, was very different. A lot of people, particularly some of those I greatly admire expressed support. The Rust community, on the other hand, was very dismissive on on Reddit...
Armin Ronacher's...
How I Use AI: Meet My Promptly Hired Model Intern After Musk's acquisition of Twitter, many people I respect and follow moved to Bluesky. I created...
2 months ago
3
2 months ago
After Musk's acquisition of Twitter, many people I respect and follow moved to Bluesky. I created an account there and made an honest attempt of making it my primary platform. Sadly, I found Bluesky to be surprisingly hostile towards AI content. There is an almost religious...
Armin Ronacher's...
Build It Yourself Another day, another rant about dependencies. from me. This time I will ask you that we start and...
3 months ago
2
3 months ago
Another day, another rant about dependencies. from me. This time I will ask you that we start and support a vibe shift when it comes to dependencies. You're probably familiar with the concept of “dependency churn.” It's that never-ending treadmill of updates, patches, audits,...
Armin Ronacher's...
Automatic Server Reloading in Rust on Change: What is listenfd/systemfd? When I developed Werkzeug (and later Flask), the most important part of the developer experience for...
3 months ago
1
3 months ago
When I developed Werkzeug (and later Flask), the most important part of the developer experience for me was enabling fast, automatic reloading. Werkzeug (and with it Flask), this is achieved by using two procsses at all times. The parent process holds on to the file...
Armin Ronacher's...
Reflecting on Life Last year I decided that I want to share my most important learnings about engineering, teams and...
3 months ago
1
3 months ago
Last year I decided that I want to share my most important learnings about engineering, teams and quite frankly personal mental health. My hope is that those who want to learn from me find it useful. This is a continuation to this. Over the years, I've been asked countless times:...