Per Vognsen

@pervognsen
2.5K Followers
358 Following
10K Posts
I like programming and understanding how stuff works. My background is in systems programming and game development.
I'm not a distributed systems person, but I guess this is a _much_ simpler version of something like https://en.wikipedia.org/wiki/Chandy%E2%80%93Lamport_algorithm. E.g. this part is similar to what I was describing as recording internal inputs during the checkpointing interval: "If a process receives a marker after having recorded its local state, it records the state of the incoming channel from which the marker came as carrying all the messages received since it first recorded its local state."
Chandy–Lamport algorithm - Wikipedia

Anyway, I think I have another solution. Let's take the article's two-component example of a CPU and a APU. For deterministic replay, normally you only need to record external inputs, not internal inputs (i.e. cross-component interactions). But you can use per-component "ragged checkpoints" to resolve the alignment problem. During the checkpointing interval you're also recording internal inputs, so you can step forward the lagging component in isolation to catch up when restoring a checkpoint.
Yesterday I was thinking about serialization of fiber-based state machines and remembered Near (RIP) had written an article exploring the problems and potential solutions: https://saveweb.github.io/near.sh/articles/design/cooperative-serialization.html.
Cooperative Serialization — Near's Respite

Jogged by @pervognsen talking about GBA work, I realise it's 18 years since my brother and I released his Wavelet Video Codec homebrew for the NDS.

DSVideo, you shone bright just before the iPhone domination.

https://www.gamebrew.org/wiki/DSVideo

DSVideo

DSVideo player is a DS Media Player offers a simple and intuitive interface.

GameBrew
Another tidbit about GBA, it had an 8-bit DAC with no hardware mixing and a really awful analog output stage. But almost every title other than the Golden Sun games seems to have used Nintendo's official audio driver, which did 8-bit software mixing, so it was much noisier than it needed to be when mixing multiple voices.
I spent some time looking at GBA stuff after posting about it a few days ago. It's been so long since I've touched ARM32 that I'd forgotten the insane shit you can do in one instruction, e.g. LDMEQFD SP!, {R0, R2-R5, PC}.
I normally never read HN but a specific thread was linked in the Hegel thread on Lobsters, so I guess I brought it upon myself for clicking through that link.
I've seen several independent, complete misconceptions of the Curry-Howard isomorphism just in the last week. Where are people getting these ideas, I wonder. Today's specimen, courtesy of the Hegel thread on HN: "Given Curry-Howard isomorphism, couldn't we ask AI to directly prove the property of the binary executable under the assumption of the HW model, instead of running PBTs?"

this is incredibly funny (it would be less funny if i had to live there though)

breaking the law by importing a twenty dollar tp-link

https://fed.brid.gy/r/https://bsky.app/profile/did:plc:yuup2vqg3cibjwhdw2ajq36g/post/3mhqya4pffc2b

James everything is analog (@analogist.net)

This is? Somehow? Not a huge joke??? [contains quote post or other embedded content]

Bluesky Social

Oy! @zeux talks about meshoptimizer on wookash podcast! https://www.youtube.com/watch?v=KtxiuFe83Hg

Great run down of all the topics there.

Optimizing Geometry for the GPU | Zeux

YouTube