Matthias Endler

@mre
1.3K Followers
458 Following
1,053 Posts

LOLCODE parser disguised as a human.
I mostly talk about 🦀 Rust and 🧑‍💻 Open Source.
Reach out for Rust contract work / consulting!

https://corrode.dev

Some of my other projects:
http://codeprints.dev
http://analysis-tools.dev
http://openpodcast.dev
http://lychee.cli.rs

Consultinghttps://corrode.dev
Rust Bloghttps://corrode.dev/blog
Personal Bloghttps://endler.dev
Codehttps://github.com/mre

Jon Seager, VP of Engineering at Canonical and I had a discussion about using Rust in Ubuntu. 🦀 🎙️

Jon is super honest about the tradeoffs of the migration (we cover uutils and sudo-rs) as well as future projects. We also touch on the costs of legacy software in C.

Podcast here: https://corrode.dev/podcast/s05e05-canonical/

Thanks @jnsgruk!

#rustlang #rust #podcast

Canonical with Jon Seager - Rust in Production Podcast | corrode Rust Consulting

What does it take to rewrite the fou…

Corrode Rust Consulting

"It takes effort to build simple systems. It takes even more effort to keep them simple. That’s because you constantly have to fight entropy. Going from simple to more complex is much easier than the reverse."

https://corrode.dev/blog/simple/

Be Simple | corrode Rust Consulting

The phone buzzes at 3 AM. You roll out of bed, open your laptop, and see this in the logs: th…

Corrode Rust Consulting

Hey! I'm looking for work, preferably contracting. I'm an experienced Rust dev (9+ years hobby, ~6 years professionally) and I'm interested in backend, embedded, cryptography or security work (loosely, I've done a very wide range of work). I've mostly done development work professionally with some security on the side. I've won a few international CTFs and I'm part of the #1 global CTF team Kalmarunionen. You can contact me at pollyboutet@gmail.com. I'm based in Copenhagen, mostly looking for remote.

Boosts welcome! #GetFediHired #FediHire

#rustlang hot take: We should rename .unwrap() to .or_panic(). (And .expect() to .or_panic_with().) "Unwrap" is a terrible name for the panicking function, especially since we also have things like .unwrap_or() and .unwrap_or_default() which never panic.

🦀 It's not ready for an official announcement yet, but we're working on a small DB-backed worker queue in Rust.

https://github.com/mre/workers

It's a recurring ask from clients, and I couldn't find anything "production ready" out there.

It's built on top of crates.io's queue. We moved to sqlx (from diesel) as well.

Can we get some eyeballs on it? Feel free to comment here and/or create an issue. A retoot and a ⭐ would also help, of course... 😉

#rustlang #rust #workqueue

GitHub - mre/workers: A worker queue implementation

A worker queue implementation. Contribute to mre/workers development by creating an account on GitHub.

GitHub

“Optimize for what will feel the best once you’re used to it, rather than the easiest transition from what you already know.”

I like this thought from Niko Matsakis. I wish more UX would adopt it.

Where is the research on how to build effective tutorial bridges from what I know today, to what will be best then?

@mre in Rust In Production with Niko Matsakis

Patterns for Defensive Programming in Rust | corrode Rust Consulting

I have a hobby. Whenever I see the comment // this should never happen in code, I try to find out the exact conditions under which it could happen. And in 90% of cases, I find a way to do just that. More often than not…

Corrode Rust Consulting

Every ad now

🖊️ Cartoon by Stephen Collins

#AI

Insight 4:

Attitude matters more than benchmarks.

When Richard raised compile time concerns with Rust people: "here's why it's hard." With Zig people: "we're sorry it's not already hardware-limited fast."

(That's quite unfortunate tbh. In the podcast we talk about the difference in perception between people coming from e.g. C++ and people coming from functional programming with immediate feedback cycles.)

Insight 3:

Memory safety wasn't the win they expected (for their project). Roc uses arena allocators throughout with straightforward lifetimes.

They kept adding more unsafe code for performance. The borrow checker was protecting them from mistakes they weren't actually making.