josef is a user on mastodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

I taught some C to my sis today and it's hard because she is smart and has questions
like, I wasn't prepared to have to explain PRNGs but I had to coz she wanted to know how random number generation is done because I mentioned that "int x;" gets a random number and she asked "so if I want a random number I should just look at some random memory location" and I couldn't in good conscience say "yeah, that is a perfectly valid way to do RNG"

josef @jk

@grainloom function that gets a random uint8_t by continually spawning a subprocess that attempts to dereference a random memory address. when eventually one doesn't segfault, it returns that byte. warning: random number distribution is heavily biased to 0 and also quite biased to 255

· Web · 1 · 9

@jk upon reading this toot Dennis Ritchie's ghost manifested in my room, took the UNIX manual from my shelf and smashed my laptop with it

@starbreaker @grainloom the implementation isn’t silly enough im afraid

@djsundog @jk @starbreaker @grainloom reimplement libc with a focus on maximizing implementation silliness

@io @grainloom @starbreaker @jk @djsundog reimplement libc by shelling out to, well, shell utilities.

did I reinvent plan9 yet?

@SoniEx2 @djsundog @jk @starbreaker @io that's almost what @Shamar 's Jehanne OS does/will do, AFAIK.
Eg. he's been throwing around ideas like "allocation should be done by writing to a file" and other stuch stuff.

@grainloom @Shamar @io @starbreaker @jk @djsundog memory should be a file.

the only syscalls should be mmap and system.

@Shamar @grainloom @io @starbreaker @jk @djsundog strcpy(mmap("/sys/mkfile", ???), "/tmp/memory"); mmap("/tmp/memory", ???); etc

@Shamar @io @starbreaker @jk @djsundog

Tbh I'd first recommend @SoniEx2 that they look more into Plan 9, before trying to implement something simply for aesthetic purity.

@Shamar @io @starbreaker @jk @djsundog @SoniEx2

But Jehanne is only based on #Plan9 , it's not Plan 9, so... you probably only reinvented Jehanne?

@jk @grainloom what is worrying is its probably feasible. one Asterisk telephone exchange at work (soon going to be replaced) has version of Asterisk/Zaptel that segfaults on British Telecom line test signals, that are sent late every evening, then restarts as if nothing has happened (other than console warning and the core dump in /tmp).

So it must be possible to use a script to keep running the cursed code and eventually return the "good" values 😉