• bvs23bkv33 (unregistered)

    Sam? Jon? did they have three letter limit on employee name?

  • Maia Everett (github) in reply to bvs23bkv33

    I'm more curious whether this happened in the Night's Watch.

  • Does he also eat buggers? (unregistered)

    Found an unknown invisible checkbox, so just use that? Sure, why not? Jon sounds like the kind of guy that would chew gum he found stuck to the underside of a bench in the park.

  • (nodebb)

    It's a good thing he didn't release code which randomly inserts and withdraws uranium rods in a nuclear reactor. You know, test sequence.

  • Foo AKA Fooo (unregistered) in reply to Mr. TA

    Actually, that's what happened at Chernobyl, but they keep telling the (slightly) less embarrassing story.

    Really, Jon sounded like he knew what he was doing, until for this one bit which ruined it all. Just reuse a checkbox without checking (pun intended) what it was for? Didn't the checkbox have a name, something with "test" or "debug" in it that should have made him suspicious?

  • Kanitatlan (unregistered) in reply to Mr. TA

    Been there, done that, whoops hole in the Ukraine

  • apeljohn (unregistered)

    Jon was the one who created the checkbox in the first place, for another purpose (the monkey-with-keyboard UI testing). He then rendered the checkbox invisible, so this test mode couldn't kick in when the software was in production.

    Later, he repurposed the checkbox - making it visible again, changing its name, and wiring it up to a new event handler. This would have worked fine if his IDE hadn't said "hi there! It looks like you're renaming a control..." and helpfully updated the old monkey-with-keyboard event handler to the new control name.

    TL;DR: The IDE was haunted... by the ghost of Clippy.

  • -to- (unregistered)

    Well, of course, the IDE modifying code behind the scenes (as in: you don't see what it's doing) is WFT-bait. You know nothing, Jon.

  • Foo AKA Fooo (unregistered) in reply to apeljohn

    Never thought I'd have to defend an IDE, but what it does seems correct to me. The concept of object identity is important in software, and if Jon was a competent programmer, he should at least have considered the possibility the IDE works like that.

    A name is justa label, and changing a name should not create a new object, just like renaming a file does not affect other references such as hard links (that even NTFS supports these days AFAICS).

    Furthermore, making it invisible was a very weak protection against such a feature to begin with. In HTML it would be downright negligent since there are so many ways to "click" a hidden button, but even if it's not HTML, it's too close to dangerous.

    Jon should count himself lucky that no million-dollar (I mean, billion-ruble) damage was done, and learn his lesson. Don't blame the messenger!

  • Yet Another User Name (unregistered)

    The traditional end to stories is that the submitter starts thinking about leaving the company. In this case it's the company who should be thinking about leaving the submitter.

  • Anonymous') OR 1=1; DROP TABLE wtf; -- (unregistered)

    Does Jon use source control? Did anyone review his changes? Surely if a click handler had gotten renamed, someone would have noticed during code review?

    Ahahahaha who am I kidding, of course nobody reviewed his code.

  • tbo (unregistered) in reply to Anonymous') OR 1=1; DROP TABLE wtf; --

    It says in the article he was the only software person at the company.

  • I dunno LOL ¯\(°_o)/¯ (unregistered) in reply to Foo AKA Fooo

    This is why un-named items are trouble waiting to happen. First don't leave them around unless you need them. Second, don't consider them convenient things to re-use. Third, name them or use some other thing which will keep some clue about their function nearby.

    And source-code control? If he used some sort of whizzy gooey editor that stored things in binary, good luck diffing it. That's why I make sure everything possible gets a plain-text representation if possible.

    But yeah, of course there was no code review, who needs to when nobody else is working on the code! I like to use every check-in as a chance for a quickie code review. Sometimes I'll even make a copy, revert a change I don't want checked in yet, then bring back the newest version after the check-in. Even if you're the only one working on the code, the you of six months in the future won't remember what the fuck you were doing that day (like making a check box for the monkey-test code) if you don't make good check-in comments.

  • Qazwsx (unregistered) in reply to Maia Everett

    The software really subverted the users' expectations.

  • Jon (unregistered)

    I'm the submitter (my name is not jon, and my company did not have a three letter name limit. :) ) I was the only dev, so no code review and at the time I'd heard of Git but my only experience with setting up/using source control was Subversion and it took over a week to get working (happened at another job) so I just used "store a backup of all your code every week or two" "source control". (I wish I'd known how easy it was to set up Git at the time, would have saved me a lot of headache.) This happened some years ago and I can't remember exactly how the bug got in the code - the explanation given is just as probably true as anything I can remember doing, and without a commit history I can't retrace what happened (plus I don't work there anymore).

  • medievalist (unregistered)

    I stopped using IDEs over a decade ago. For me, learning all the stuff this version of this tool does is a waste of neurons; you know a new one will be all the rage in 18 months. I've discovered I can use simpler tools and spend my efforts learning the task at hand instead of learning the latest greatest overly complicated toolset and be better off. Your own situation might be different, but I'm happier with just a plain old text editor, and more productive than many of my colleagues.

  • (nodebb)

    tl;dr: it was the Knight Capital/Power Peg problem. Let's go over this again: don't👏reuse👏flags.

  • oscar carserud (unregistered)

    I must remind you of the mac os 1 monkeylives flag. at $100.

Leave a comment on “Software Possession”

Log In or post as a guest

Replying to comment #:

« Return to Article