I like programming and understanding how stuff works. My background is in systems programming and game development.
Public Key
npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Profile Code
nprofile1qqs2997jaa4rdfm255jpelzvp266kylr02c442jxkjx6hkxv8t8gjhqpz4mhxue69uhhyetvv9ujuerfw36x7tnsw43qrw3jgq
Show more details
Published at
2026-02-06T07:04:29Z Event JSON
{
"id": "6c161a799a3f2891c79fc4d31e022befc7bc1f511ec34137326369c42c9b5a89" ,
"pubkey": "a297d2ef6a36a76aa5241cfc4c0ab5ab13e37ab15aaa46b48dabd8cc3ace895c" ,
"created_at": 1770361469 ,
"kind": 0 ,
"tags": [
[
"proxy",
"https://mastodon.social/users/pervognsen",
"activitypub"
],
[
"client",
"Mostr",
"31990:6be38f8c63df7dbf84db7ec4a6e6fbbd8d19dca3b980efad18585c46f04b26f9:mostr",
"wss://relay.ditto.pub"
]
],
"content": "{\"name\":\"Per Vognsen\",\"about\":\"I like programming and understanding how stuff works. My background is in systems programming and game development.\",\"picture\":\"https://files.mastodon.social/accounts/avatars/000/523/512/original/f41d1d4bf379077f.png\",\"nip05\":\"[email protected] \",\"fields\":[]}" ,
"sig": "b28c830f3bc5748dca831dfc2b94176e7de94d90fbc98f5a8763bc03f31ff2925433557f5d770e90b69cecb0a6d48dfb57016c560813f25654331db6c204d73f"
}
Last Notes npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen @nprofile…mv7s Like https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/main/docs/gpu_validation.md? npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen There's long-running debate in programming about brevity vs descriptiveness for names, but something I don't see pointed out is that strong conventions (either universally or in your code base) like 'ptr' for memory pointer and 'idx' for sequence index are _more_ descriptive than 'pointer' and 'index'. A 'pointer' could be a mouse pointer and an 'index' could be a database index. npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen I almost can't believe this thing is on the Archive with ISOs and everything: https://archive.org/details/ldr_0496_6cd/linux%20%20back.jpg. This specific CD-ROM set is how I got started with Linux (Slackware 3.0 for the win). Back when FTP mirrors were things you shipped on CD-ROMs. npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen @nprofile…mv7s That cuts both ways. If 2^53 bits of integer precision aren't enough then 2^64 bits might not be enough either. E.g. some of the int128 proposals for timestamps (which strikes as overkill but I'm sure it can be justified). npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen ASCII characters are not pixels: a deep dive into ASCII rendering. https://alexharri.com/blog/ascii-rendering npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen @nprofile…mv7s I wonder if there's a way you can ship a mostly headless self-check so that when things break the user (a) finds out sooner than later (it doesn't silently misbehave in weird ways) and (b) they can capture some kind of standardized diagnostic log with enough info that you can resolve it quickly without endless back and forth over GH issues or whatever. npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen I distinctly remember that at least in Danish computer media at the time (and enthusiasts informed by that media) there were a ton of people who hated the Pentium. Even prior to launch and before the FDIV bug was known, so it definitely wasn't based on that. I was stuck on our old family 486 way past the Pentium 1 era. At this point I don't even remember what it was about, but I do remember it fueled a lot of defections to AMD and Cyrix CPUs. Maybe it was primarily a cost issue--anyone remember? npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen If you're writing a C library please don't require zero-terminated strings as inputs. It isn't even a good way of interfacing with other C code (e.g. I want to pass a substring of a zero-terminated string). npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen @npub1y0e…mm9n The 18 MB is referring to the generated Rust code, not the size in the static data segments when compiled/linked. I agree that's a large blow-up but you do see a significant blow-up when trying to convert from a raw byte array to an equivalent C static initializer using hex literals or whatever. npub152ta9mm2x6nk4ffyrn7ycz444vf7x743t24yddyd40vvcwkw39wqv3v7uc Per Vognsen @npub1y0e…mm9n Yeah, I've used the fixed-address trick before although usually only as a fast path, i.e. I would still have the relocation information, I just don't need to apply if I can mmap at the preferred base address. But I usually just use position-independent representations these days if this is something I care about.