• 0 Posts
  • 19 Comments
Joined 2 years ago
cake
Cake day: June 15th, 2023

help-circle
  • You are in a contract with the government. Maybe an involuntary one, but still a contract. This contract gives you rights and benefits, but also obligations and responsibilities.

    When the government does not uphold their end of the contract, or changes it to essentially only obligations for you and no benefits, then it becomes extortion. Still not exactly theft, but closer to what you mean.

    However, the vast majority of people get benefits that far outweight the costs of the contract. Safety, transportation, education, utilities, etc.


  • But how does the Rust compiler do that? What does it actually check? Could I write a compiler in C that does this check on a piece of Rust code?

    C is so simplictic, that if I can write a piece of functionality in C, I must understand its inner workings fully. Not just how to use the feature, but how the feature works under the hood.

    It is often pointless to actually implement the feature in C, since the feature already has a good implementation (see the Rust compiler for the memory safety). But understanding these features, and being able to mentally think about what it takes in C to implement them, is still helpfull for gaining an understanding of the feature.



  • I have this experience with a certain type of pedestrian traffic light “button”.

    I quote button, because nothing physically moves when you press it. I’m not sure if it registers pressure or heat, but you don’t even feel anything move when you press it.

    Usually when you press the button, a red text lights up on the button, telling you to wait. This text gives you feedback that the button registered your press, and the traffic light will schedule a green light for you.

    However, sometimes you didn’t press hard enough, and the text doesn’t light up. Simple solution: press harder.

    But there is a scenario where it doesn’t matter how hard you press, the button won’t light up. You keep staring at it, while slamming the damn thing with the fury of a Hulk wealding Mjolnir. Still, nothing lights up. The reason: the light instantly went green, so it never needed to light up the text telling you to wait. And all that time slamming your fist on the button, could have been spend crossing the intersection. Instead you have been standing there, looking like a drunk person having a fistfight with an inanimate object.




  • I remember a javascript library where the was a function that returned, according to the documentation, “a color”. Did it return an object with 3 fields? Were those fields RGB or some other color scheme? Is it a string encoding a color? What format is that string? None of these questions could be answered without just running the code, and analyzing the object you got back.


  • Do you mean that programming languages are hard to read/write, or that the languages themselves are poorly designed?

    In the former case, I invite you to read machine code. Not assembly, but straight machine code. Just zeros and ones as far as the editor can see. Any popular language is better than that.

    In the latter case, I invite you to look at the design of an arbitrary natural language. Weird grammer rules, regional differences, loan words that don’t fit in, etc. No programmming language is worse than that. Although I would argue that Javascript has all of those problems too in some degree.





  • But I love coding at work?!

    The problem is that every living entity in a 10 kilometer radius around me, seems to be hellbent on getting me to do anything but coding. Refining work estimates, fixing badge access rights, fixing a driver issue, telling people that you cannot do 1000 things at the same time, teaching the new developer how shit (doesn’t) works, mangling Jenkins into a functional state again, explaning that thing I did a year ago but is only now used (it was very high prio a year ago), writing documentation that noboby ever reads, progress meetings, specialty group meetings, knowledge sharing meetings, company wide meetings, etc.








  • Q. If you connect to google.com, how do you know you are talking to google.com, and not bing.com? A. You find the CA of the certificate that google.com send you, and you ask that CA if the certificate is valid.

    Q. How do you know that the CA is actually the CA, and not some fake actor? A. You find the CA of the CA, and ask it to validate the certificate of the CA.

    Q. How do you know that the CA of the CA is actually the CA of the CA? A. After several layers of this recursion, there is a hardcoded set of trusted certificates on your PC.

    If someone self-signs a certificate, then this chain of questions ends well before you end up with a hardcoded (and thus trusted) certificate.

    Let’s encrypt verifies that a certificate is created from a specific domain. Therefor it can tell is whether the cert belongs to a domain with certainty.