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

help-circle



  • I had a boss years ago and I knew everything about his financial situation because he had hired me to trade S&P500 futures with/for him. He had about $20 million in stock, a beach house in South Carolina worth a couple million, and he owned a temp agency that paid him about $40,000 a month, so he was certainly rich by any normal human standards. But he had moved from San Francisco and was friends with a bunch of venture capital types who were all worth more than a couple of hundred million dollars, and it was obvious that his (relative) poverty absolutely burned him to his core. This was why he imagined that day-trading futures was going to be his key to the really big time - he could never see that the brokerages we dealt with were just scamming him.







  • It happened because the programmer changed the API from a call that accepted integer values between 0 and 32767 (minimum and maximum wheel speeds) to one that accepted float values between 0.0 and 1.0. A very reasonable change to make, but he quick-fixed all the compiler errors that this produced by casting the passed integer parameters all through his code to float and then clamping the values between 0.0 and 1.0. The result was that formerly low-speed parameters (like 5000 and 6000, for example, which should have produced something like a 20 mph ball with topspin) were instead cast and clamped to 1.0 - maximum speed on both throwing wheels and the aforesaid 125 mph knuckleball. He rewrote his tests to check that passed params were indeed between 0.0 and 1.0, which was pointless since all input was clamped to that range anyway. And there was no way to really test for a “dangerous” throw anyway since the machine was required to be capable of this sort of thing if that’s what the coach using it wanted.


  • the code they’re testing has painful hardwired dependencies on expensive external resources

    I’ve told this story elsewhere, but I had a coworker who wrote an app to remote-control a baseball-throwing machine from a PDA (running WinCE). These machines cost upwards of $50K so he only very rarely had physical access to one. He loved to write tests, which did him no good when his code fired a 125 mph knuckleball a foot over a 10-year-old kid’s head. This resulted in the only occasion in my career when I had to physically restrain a client from punching a colleague.