Gary Trakhman
banner
gtrak.bsky.social
Gary Trakhman
@gtrak.bsky.social
20 years of 2004 experience.

Software Engineer, owns a 3d printer, tries to work out sometimes. Pretty good at VR table tennis.

Currently learning Rust. Programming should be fun.

mastodon.social/@gtrak
hellsite/@gtrakGT
That's the one
December 2, 2025 at 10:08 PM
I was just joking, I like labeled args. It's kind of weird with currying in ocaml iirc.
December 2, 2025 at 3:06 PM
That's why rust gives you more string types for the positional args
December 2, 2025 at 2:47 PM
This feels like trying to beat HFT firms as a solo investor
December 1, 2025 at 4:56 PM
You're absolutely right. Here's why

- standard intuition, but..
- a few good points

would you like to spend more tokens on me elaborating?
December 1, 2025 at 4:54 PM
I will parse CSVs on hard mode
December 1, 2025 at 12:56 PM
And algebraic effects now, which generalize exceptions
December 1, 2025 at 12:28 PM
Doing this for 14 years without LLMs might have something to do with using LLMs effectively, but I can't tell you how much of a timesaver it is, either.

It's possibly just a crutch, but every technology is kind of like that.
November 26, 2025 at 3:20 AM
Yeah, I think someone with situational awareness could have presented it as a proof-of-concept, and asked if there's any interest in turning it into a real contribution and what that might take. A PR presented as a real contribution puts maintainers on the defensive and weaponizes their politeness.
November 24, 2025 at 3:09 PM
What a colossal waste of time for everyone involved. I use LLMs for code generation, too, but if I get a plausible implementation out of it in a day, I expect to take about 4x as long reviewing it, refactoring it, and making it more robust, and then I still don't entirely trust it.
November 24, 2025 at 2:54 PM
The committer 'keeping AI on the straight and narrow' somehow resulted in headers crediting someone else. Pretty funny.
November 24, 2025 at 2:43 PM
That author seems a bit biased against Rust.

Here's more about the rewrite blog.cloudflare.com/20-percent-i...
November 21, 2025 at 9:04 PM
This is likely a lot better than my combination of thiserror nested enums for lib-code, wrappers around anyhow for bubbling stuff up to the edges, and From<> impls to convert from one to the other. I'll have to try it out.
November 21, 2025 at 7:27 PM
People are just bad about understanding and weighing the abstract tail risks from something like that. I don't think making the code extra beautiful and organized is a good use of time, but if I intend to work on something for a while, it's in my best interest to have few bugs and make changes easy
November 21, 2025 at 12:44 AM
This is related to the only argument I have against(?) type-safety. It makes bad code more maintainable, too, and maybe even a bit more than what it does for good code.
November 20, 2025 at 10:09 PM
This is timely b/c of all the unwraps everyone is having lately.

It's actually awesome, though.
November 20, 2025 at 9:25 PM
If you follow that principle, you end up pushing input validation to the edges of the application, which I think is a sensible way to do a lot of things. I'm not sure I understand why this use-case needed to be different.
November 20, 2025 at 9:09 PM
this is an interesting Result type I saw recently: docs.rs/async-nats/l...

docs.rs/async-nats/l...

The Ok side is another future with another Result type, and they both have the same Error type, which is weird. 2 awaits, and I think some variants can only happen in one or the other.
Context in async_nats::jetstream::context - Rust
A context which can perform jetstream scoped requests.
docs.rs
November 20, 2025 at 8:35 PM
Yeah but lib authors shouldn't bucket them for you. Just give me all the info, and I'll decide.

But I wish there were an easier way to move parts of enums around.
OCaml - Polymorphic variants
ocaml.org
November 20, 2025 at 8:21 PM
It doesn't really matter if an outage still would have happened. If this was in there, maybe there's another unwrap in there that causes outages all by itself and we haven't hit it yet.
November 20, 2025 at 7:03 PM
Also traits. Sometimes I miss ocaml functors in rust, but in ocaml I always missed all kinds of polymorphism. FCMs were too awkward to use regularly.
November 5, 2025 at 9:25 PM
I worked in Ocaml for five years, and I had a lot of surface criticisms but mostly liked it and would again.

Rust can do most of the same stuff and is more productive on some key dimensions that have nothing to do with memory safety or the borrow checker. Libraries, community, and flexibility.
November 5, 2025 at 6:53 PM