• 0 Posts
  • 95 Comments
Joined 2 years ago
cake
Cake day: August 9th, 2023

help-circle



  • Somewhat. Mostly because you have a lot of suburban people in America who like manicured lawns and expect you to do the same. Even without an HOA, you still have people calling the city if your lawn gets too out of sorts.

    In the documentary “The Power Of Nightmares”, it’s mentioned that Sayyid Qutb (an Egyptian political theorist who’s ideas directly influenced Osama Bin Laden) saw Americans being overly concerned with lawncare as a decadent and repulsive thing. I can’t say he’s wrong. He wasn’t even around to see what TruGreen does to things. It should be noted, too, that his criticism wasn’t from afar. He spent two years as a student in the US after WWII, and he didn’t come away liking the place.




  • A lot of it was fair criticism at the time. Linux fixed some of what was wrong. Having a good sudo config mostly resolves the problem of having one superuser account, and big, multiuser systems are a lot less common now, anyway. X’s network transparency features aren’t that useful in modern computing contexts, either, though I have found a few over the years.

    But mostly, it’s because the landscape changed from a hundred Unix vendors vs a bunch of other OSen, to now where it’s Windows vs Linux vs OSX. By that comparison, the two with Unix-derived history look well thought out.

    (This also implies that NextStep was the one old Unix vendor that has survived in a meaningful way. I don’t think anyone would have guessed that 30 years ago.)






  • When handling things that are serialized over the wire, you have to do it this way. Yes, you can use typed serialization formats, but in a string-based serializer, there’s nothing stopping the other system from sending “0.0000005” on a field that should be an int. If you don’t validate that it’s an int, you would just pass that value to your equivalent of parseInt().

    If you do validate that it’s an int, then it still didn’t matter if the language has static typing or not. You’re doing that at runtime or you’re not.

    In Rust, doing "0.00005".to_string().parse::<i32>().unwrap() causes a panic on the unwrap() from an invalid digit. However, that’s runtime. It’s not something the type system can handle statically. The real benefit here, I think, is that it at least forced you to consider that the invalid input could have unexpected results. This is a pretty good reason to be careful about putting unwrap() on everything. The compiler isn’t going to save you here.


  • Non-profit scams. You can set one up, put out a call for donations claiming you do some blah blah blah work, and give yourself most of the money in the form of a salary/bonus. Only a small percentage of the money ever needs to go to anyone in need.

    This happens in all sorts of corporate and religious charities. The NFL was technically non-profit for many years, and that should say it all.


  • Depends on who is talking and the context.

    If I go to a WH40k night at a FLGS, and someone points to a specific guy and says they’re good at 40k, I’ll probably take their word for it. They’re in an environment where they’ve been tested regularly and that guy probably is one of the better ones at the shop. Are they able to play at a major tournament and place well? Maybe, maybe not.

    For a new hire for programming, depends on who is saying it. Were they in the team for the hiring process? Do they have a track record of picking up good talent?

    I also have a working theory that it’s not too hard to better than 75% of people who do a given thing. For example, here’s a breakdown of Chess.com ELO ratings (taken from the other site, dated April 2023):

    Getting to 75% would be a little over 900 ELO. Which is interesting, because not only is that fairly low, but it’s also below the 1200 that you typically get assigned as a new player. Though Chess.com does assign that based on your self reported skill level at signup.


  • Have experiences and respect other life. That’s really it.

    The Earth created lifeforms that can understand the universe. Even if there are other conditions out there that can create life like that, it’s not common. There is unfathomable empty space between planets and their moons. To say nothing of between planets or stars or galaxies.

    Good news! You’re one of these rare combinations of matter that can understand the universe. In a real way, we are the universe trying to understand itself. Scientists explore it in a deep way, and should be respected for that, but you don’t need a PhD to participate. A single celled organism who figured out better ways to swim in its little pool helped the universe understand itself. The first human to taste a strawberry helped the universe understand itself. Have experiences.

    There’s a lot of other life also participating in this, and they should be respected, too.




  • I understand the motivated reasoning of upper management thinking programmers are done for. I understand the reasoning of other people far less. Do they see programmers as one of the few professions where you can afford a house and save money, and instead of looking for ways to make that happen for everyone, decide that programmers need to be taken down a notch?


  • That might be the underlying problem. Software project management around small projects is easy. Anything that has a basic text editor and a Python interpreter will do. We have all these fancy tools because shit gets complicated. Hell, I don’t even like writing 100 lines without git.

    A bunch of non-programmers make a few basic apps with ChatGPT and think we’re all cooked.


  • I know it because I’ve actually implemented RSA as an exercise and know how it works.

    What you’re talking about with hashes is an implementation detail. It’s an important one, because using exactly the same algorithm for signing and encryption has some security pitfalls, and it will usually be slower. However, the function you call is exactly the same. The hash is encrypted with the private key. It can be verified by generating the same hash, decrypting with the public key, and matching the two hashes.

    See also: https://cryptobook.nakov.com/digital-signatures/rsa-signatures

    Signing a message msg with the private key exponent d:

    • Calculate the message hash: h = hash(msg)
    • Encrypt h to calculate the signature: s = hd (mod n)

    The operation “hd (mod n)” is just RSA encryption, but with the private key.