Cybersecurity has two sides: business and tech. It is invaluable to the business side, particularly in terms of making risks and threats legible, demanding mitigation and insurance strategies, compliance and certification.
Cybersecurity on the tech side, for most firms, is laughable. It indeed follows the herd model, where no one ever got fired for following "best practices", like forced password rotation every two weeks with no password reuse and absurd character requirements.
It takes a firm like Google to innovate with BeyondCorp / ZeroTrust initiatives and innovations. The rest of us are waiting for npm update to finish while CrowdStrike is consuming half the CPU of our MacBook Airs.
I predicted your #1 was Jordan Peterson. Tony Robbins just made an appearance on Theo Von's podcast, This Past Weekend. I haven't watched it yet, but Theo is fantastic at getting his guests to open up. I am deeply skeptical of Tony Robbins overall, but I'll probably queue up the podcast soon.
I have just read your README.md file and found your repo interesting indeed. The README is well written. I knew it was possible to read and parse /dev/input/* files, but was hesitant to get into the intricacies you described.
Anyway, great job sir! Now I will read your code out of curiosity :)
This pattern of the signal handler merely setting a global var seems robust. Of course, now the programmer must decide when and where to check the global value.
It must also be of an atomic type. POSIX specifies exactly one, namely “volatile sig_atomic_t”. I guess in C++11 etc. you can also use the language-provided atomics.
The original owner of the car has some ability to refuse the repair job. It may be impossible to (economically) bring the car back to its previous state. The insurance company prefers not to take the risk. They write a clean check and recover some cost by selling the salvage, which will likely be repaired and sold.