James Munns

@jamesmunns.com

Notable Protocol Enjoyer. Doing stuff, mostly in Rust and on Embedded systems. Co-host @sdr-podcast.com DMs (matrix): @jamesmunns:beeper.com DMs (signal): jamesmunns.255 he/him Kein Ort für Nazis

Huh, for some reason I assumed data was resident in AUS, where Fastmail is based, and wouldn't have guessed it was hosted in Philly and STL. I'll probably move my personal and work emails over to EU hosting, it's neat that this is an option. Still a huge fan of fastmail!

Fastmail@fastmail.com · 3d ago

Fastmail data can now live primarily in the EU, on servers our own engineers set up in Amsterdam. Current customers can switch in settings; new accounts pick a region at signup. 

 Our CEO Bron's post walks through exactly what lives where.
www.fastmail.com/blog/fastmai... #Fastmail #Email

Met up with a friend I hadn't seen in a while, and some new friends of friends. We got to talking about music, specifically "music that you can turn your brain off to", if you know what I mean. Here's all the stuff I/others shared, feel free to reply or repost or whatever. In no particular order:

There is no such thing as a minor API/schema change, and forwards/backwards compatibility is a trap made only to catch developers unawares. Endpoints are free, clients can call ones that match their needs, servers can stop offering them when deprecated, and either can polyfill. In this essay I will

I find it rather funny that rust programmers' "obsession" with "memory safety" can be laughed at from both sides of the programming language spectrum. functional pl enthusiasts might say that just being memory safe[^1] is not enough and rust does not help enough with program correctness[^2]. \

It turns out that if you put a String in an Error type of the Result for a hot function, say, deserializing 125k f32s, making that Error type 24 bytes instead of 1 will make your entire deserialization process 15% slower. I might put serde custom error support behind an opt-in flag for postcard v2.

30 weeks into the year: still about 2kg behind, but not *more* behind. Started making good progress again! This one was a bit more like the first ~5 months, though there were some annoying plateau weeks. Down a total of 14.3kg/31.5lbs, and 50.3% done! See you in 6 weeks :)

A chart of weight over time moving generally downward, starting at 103.4, and showing a current trendline ending at 89.1
James Munns@jamesmunns.com · 2mo ago

24 weeks into the year: a little behind, and mostly flat (but still down!) This 6 week stretch had a lot of "cheat" weeks: a 1w work trip to the US, family coming to visit me, and 1w+ in Prague (and a lot of Czech food and beer!) Down a total of 11kg/24 lbs, and 38.8% done. About 2kg behind now.

I don't know who needs to hear this, but you can click and drag the subtitles in a youtube video to anywhere in the player. This is particularly useful for a software tutorial where the latest things being typed are at the bottom of the screen covered up by subtitles.

It is such a ridiculous reality that to be an effective engineering lead/manager/CTO, you really ought to: * Be fairly good at engineering, to make reasonable decisions, understand all the choices in front of you * *Never* do active engineering as it takes too much of your time away from overseeing

Adam Chalmers@adamchalmers.com · 2w ago

i'm tired of "founder mode". it's time to go "engineering lead who still codes a lot and reports to the CEO but should probably spend more time building cross-team consensus" mode.

TIL that `addr_of(_mut)!` and `&raw (const|mut)` in Rust to create raw pointers *must* only be used on pointers of valid allocations when projecting to a field, following the in-bounds pointer arithmetic rules. This means that you cannot use *either* with a pointer derived from `ptr::dangling()`

One of the most annoying things for me for modeling IPC/RPC in Rust (let alone cross language) is that you always need to name types and methods in three places: * A type/method definition * In the "server impl" location * In the "client usage" location It's just boilerplate-y, esp across crates.

I’ve been tinkering with Clash and wondered if I could make validating eSPI controller drivers easier. That idea became Tamal. 😊 Clash core + Rust tools! It’s experimental, but should be useful. Why I built it: balbi.sh/posts/tamal-... Code: github.com/felipebalbi/... #haskell #clashlang #fpga

Tamal: an eSPI exerciser

Introducing Tamal — mole's idea retargeted to Intel's eSPI. An experimental FPGA exerciser that plays eSPI controller, drives legal and illegal cycles with deterministic timing, and captures everythin...

balbi.sh