I think people really don't appreciate just how incomplete Linux kernel API docs are, and how Rust solves the problem.
I wrote a pile of Rust abstractions for various subsystems. For practically every single one, I had to read the C source code to understand how to its API.
Simply reading the function signature and associated doc comment (if any) or explicit docs (if you're lucky and they exist) almost never fully tells you how to safely use the API. Do you need to hold a lock? Does a ref counted arg transfer the ref or does it take its own ref?
When a callback is called are any locks held or do you need to acquire your own? What about free callbacks, are they special? What's the intended locking order? Are there special cases where some operations might take locks in some cases but not others?
Is a NULL argument allowed and valid usage, or not? What happens to reference counts in the error case? Is a returned ref counted pointer already incremented, or is it an implied borrow from a reference owned by a passed argument?
Is the return value always a valid pointer? Can it be NULL? Or maybe it's an ERR_PTR? Maybe both? What about pointers returned via indirect arguments, are those cleared to NULL on error or left alone? Is it valid to pass a NULL ** if you don't need that return pointer?
WFCommonJunction::getProfileGender
MY GENDER IS BETWEEN ME AND GOD, YOU CANNOT KNOW IT, GAME FOR THE NINTENDO WII
@AzulCrescent Could be that, or the system doing AI post-processing on its own. There was this case a while back: in this photo, her arms are in different positions in each mirror. It wasn't intended that way: the phone made that decision instead, probably taking different views at different times and stitching them together.
Mental health, memory: be kind
Many people I deal with, especially in Italy, habitually ask, "Do you remember?" If you say, "I don't remember," some insist on saying, "C'mon, how come you don't remember that?" providing more details. Few also get annoyed that you don't remember things and want to know why.
I have memory issues, primarily due to trauma. Many of my memories fade away quickly.
This behaviour usually makes me feel bad. Not remembering things is not easy for me. Insisting on the above behaviour makes me feel worse in every detail.
There are people like me out there. It's ok to ask, "Do you remember?" but if the person does not, please do not insist. Please be kind.
@hikari this is for military travelers, as the treaty with the USSR at the end of the second world war granted military personnel of the allies specific privileges (transiting East Germany without customs inspection)
civilian travelers to West Berlin had to do different paperwork and use different lanes at the checkpoints
stumbled upon this fascinating old video explaining how to behave while driving from West Germany to West Berlin as a British(?) tourist in 1989. were they having to maintain a polite fiction they were Allied military personnel? https://www.youtube.com/watch?v=YUJ7GbxWGoM
It's been 30 years but I'm still mad at the punk who snuck SMARTDRV.EXE into the install process but fucked it up so that it's BEFORE the @ ECHO OFF line.
interestingly Netscape Communicator 4.08 doesn't have an uninstaller: it has a deinstaller.
sometimes it's easier to take care of yourselves if you imagine you are just a little creature and you must care for the creature
Trans woman, bisexual, someone's fiancée, forever a programmer, poly, and former total mess