• 0 Posts
  • 49 Comments
Joined 1 year ago
cake
Cake day: June 16th, 2023

help-circle


  • I learned it while at the same time learning (or really enhancing my previous knowledge of) javascript, thanks to an insane mostly-Finnish app development platform known as Qt Creator, which for no rational reason uses C++ for the under-hood-stuff and javascript for the UI front end. Just an absolutely horrible mismatch of mental states. For bonus points, the company that I worked for that used this monstrosity for its suite of apps got purchased by a huge west coast company and the apps were shut down and everybody was fired, after two years of my working on this shit.



  • c-suite

    CEO, CTO, CFO etc. In a '90s Internet startup like the company I worked for, the “C” really stood for “clueless”.

    giant printouts of insanely over-normalized databases

    Over-normalization is a database thing - a simple example of normalization would be a “People” table where instead of having the “Salutation” field just contain text like Mr, Mrs. etc., you have a separate “Salutations” table with all the possibilities listed and keyed with an ID (usually just a sequential number), and then the “People” table stores a Salutation ID for each entry instead of the actual text. It’s a valid and standard thing to do with database design, but it can be taken to extremes where absolutely every possible trivial thing that can be normalized is, producing an overcomplicated mess that is extremely difficult to work with programmatically.

    Printing out this over-normalized mess of a database on multiple sheets of paper which are then taped to the wall is utterly useless.

    How is a database a trick?

    The printout is the trick - it fools the bosses into thinking you’re doing something amazing and productive when you’re really just fucking around. It only works on the technically incompetent, of which there was no shortage in '90s Internet startups (or today).








  • Years ago I got a copy of MSDN which had apparently been put together by developers who all had giant monitors. On a normal laptop screen none of the text wrapped properly so every article had a horizontal scrollbar which you had to work left and right to read every fucking line. I eventually had to start copying the contents into a Notepad instance just to be able to read the damn things normally.

    This is why I think developers should always have to work on 10-year-old laptops with 800x600 screens.








  • 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 only projects I’ve ever found interesting in my career was the stuff where nobody had any idea yet how the problem was going to be handled, and you’re right that starting with tests is not even possible in this scenario (prototyping is what’s really important). Whenever I’ve written yet another text/email/calling/video Skype clone for yet another cable company, it’s possible to start with tests because you already know everything that’s going into it.