Yes, typo
Yes, typo
Yeah, that. Typo. It had grown by a factor of 7 or so. So, basically, that part of the pay was cut by 85%
Going all in on the stock option program, even if it was a little risky. I remember the argument: There’s no lottery or casino that’ll give me odds like these. I also left when we’d grown to the point where middle management didn’t want to understand that when the program ran out (4 years) and had to be restarted at the new validation, that was basically a static pay cut for me. I get paid a lot more now, but I still made more from stocks than work last year.
Second, our apartment. It’s a lot like a row house, except it’s in the city. The other part backs right up to the park.
Third, maxing out parental leave with both of our kids at a company that (as, more or less, a recruiting gimmick) topped up parental leave pay from the capped 80% to, iirc, 100% with no cap. They turned out be quite dumb about this and had shuffled me into a corner when I came back. I was ready to put my back into it, but well, I guess not then.
(The one without the parentheses is older Python 2, the example with is newer Python 3)
“Appendable” seems like a positive spin on the “truncated YAML-file is frighteningly often valid” problem…
Yep. I even got this back when cleaners moved my mouse from in front of key keyboard spacebar to the right of the keypad, until I noticed what had happened.
I put my mouse between my body and the keyboard and it goes away.
Good luck!
It was harder to explain why picking on Python for this is dumb, before gotofail… (Not saying that’s what you’re doing, but it feels close, so this is relevant.)
For whitespace, my rule is this: If any level of indentation depends on the length of any word or name, you’re doing it wrong. If using a more descriptive name causes indentation where previously there was none, that’s fine, but if moving the opening parens causes the interior to be indented more, less so. (Yes, Golang’s structs)
Well, with the newer optional typing, it became def foo(name: Optional[str]) -> Optional[str]: ...
and now def foo(name: str | None) -> str | None: ...
(No need to import Optional) It’s quite nice.
As for Rust, recall that Result is also a very similar union type. I think a lot of the aversions people have had to static typing have mostly just been about poor expressiveness in clunky type systems.
Ok, TIL there’s a thing called Required, but otherwise, one way to do this is to rename the other part/field/key(s), so that old code reveals itself in much the same way as using a deleted field (because it does, actually)
Another way is explicitly have a separate type for records with/without the feature. (if one is a strict subset, you can have a downgrade/slice method on the more capable class.
Lastly, I would say that you need static typing, testing, both. People from static-land get vertigo without types, and it does give good night sleep, but it’s no substitute for testing. Testing can be a substitute for static typing in combination with coverage requirements, but at that point you’re doing so much more work that the static typing straight jacket seems pretty chill.