• Wyrd (unregistered)

    Yeah, that reminds me of BASIC on the C64. It let you ... RunEverythingTogetherLikeThisOnlyItWasAllInUPPERCASE.

    Oh and variable names could be about twenty characters long, but only the first THREE characters were actually used to differentiate one variable from another. So, for example the variable ABC123 would be the same as ABC321.

    Furry cows moo and decompress.

  • (cs) in reply to Throknor
    Throknor:
    Do they not teach BASIC anymore?

    In all probability? No.

  • (cs) in reply to Tom
    Tom:
    gurhall:
    DangerMouse9:
    Wouldn't copying it all and pasting it into a text document fix the spacing issues while trying to read through it?

    that way if a space on the compiler were say 1 pixel, but would be the full character size in a text editor you'd be able to read it and not wonder who the fuck Andy was.

    I honestly don't know whether to explain it to you or punch you.

    Best. Answer. Ever.

    claps

    agreed

  • Ytsbod (unregistered)

    andybean=no

  • Anonym (unregistered) in reply to Wyrd
    Wyrd:
    Yeah, that reminds me of BASIC on the C64. It let you ... RunEverythingTogetherLikeThisOnlyItWasAllInUPPERCASE.

    Oh and variable names could be about twenty characters long, but only the first THREE characters were actually used to differentiate one variable from another. So, for example the variable ABC123 would be the same as ABC321.

    Furry cows moo and decompress.

    No, the first TWO. As previously stated.
  • Jimmy (unregistered) in reply to masonreloaded

    The real WTF is they didn't pursue legal action against the developer who intentionally destroyed their software and get the developer thrown in jail for unauthorized access.

    And that they didn't have backup tapes of a pre-obfuscated version of said code.

  • Mr.'; Drop Database -- (unregistered) in reply to WhiskeyJack
    WhiskeyJack:
    Andy Goth:
    COMPUTER OVER.
    ANDY = VERY YES.
    That's not a good prize!
    Did you hire a bad developer?

    Did you hire four hundred thousand bad developers?

  • pvarney (unregistered)

    I was thinking this story was going to have a happy ending, where ANDY was the original developer, and setting ANDY=YES somehow magically unobfuscated everything.

  • SurturZ (unregistered)

    Reminds me of VIC20 BASIC. Removing whitespace and reducing all variable names to one or two characters was actually best practice, given how little memory you had to work with (3.5KB if memory serves).

    CAPTCHA: dignissim ... couldn't have said it better myself

  • The Dark (unregistered)

    Andy went to pieces?

  • Not as DULL as you (unregistered)

    dangermouse, I suspect that you need to read this:

    http://en.wikipedia.org/wiki/Compiler

    and probably (just a guess), compare that with this:

    http://en.wikipedia.org/wiki/Integrated_development_environment

    as I suspect you are confusing the two. Depending on the version of BASIC, you might also wish to read up on:

    http://en.wikipedia.org/wiki/Interpreted_language and http://en.wikipedia.org/wiki/Compiled_language

  • (cs) in reply to Technical Thug
    Technical Thug:
    20 FORX=1TO1000:NEXT
    As a kid (elementary school) I thought FORX (or more often FORK) were the actual commands. So I think forcing spaces in modern languages is didactically much better. (Used to learn by copying code from magazines and then fiddling with it.)
  • evert (unregistered) in reply to gurhall
    gurhall:
    DangerMouse9:
    Wouldn't copying it all and pasting it into a text document fix the spacing issues while trying to read through it?

    that way if a space on the compiler were say 1 pixel, but would be the full character size in a text editor you'd be able to read it and not wonder who the fuck Andy was.

    I honestly don't know whether to explain it to you or punch you.

    Just kick his face in. Not sure how it would help but it would probably help reduce stress.

  • (cs) in reply to Inquiring Mind
    Inquiring Mind:
    I dunno, I seem to process this ok in English. What's the ambiguity?

    Dunno, but I seem to recall that being able to use something close to natural language constructs was part of the point of COBOL.

    I've noticed from reading articles on COBOL that a lot of the code makes more sense if you just read it as a sentence, in stead of code.

    The example snippet on Wiki for the abbreviated conditional constructs is

    IF SALARY > 9000 OR SUPERVISOR-SALARY OR = PREV-SALARY

    Which makes perfect sense if you just read it as "If salary is greater than 9000 or supervisor-salary or is equal to prev-salary".

    If you're used to reading code written in a language like C, C++, Java, etc, you'd probably end up assuming SUPERVISOR-SALARY is a boolean.

  • (cs) in reply to tragomaskhalos
    tragomaskhalos:
    ML:
    I wonder if this "off-brand" BASIC was actually Commodore BASIC, which was very highly popular in the early 1980's. To quote Wikipedia:

    Commodore BASIC keywords could be abbreviated by entering at least one letter, and then a shifted version of the next letter on. In the default text mode, this shifted character appeared as a graphics symbol; e.g. the GOTO command could be abbreviated G{Shift-O} (which resembled GΓ onscreen). In cases of ambiguity, more unshifted letters of the command were needed, such as GO{Shift-S} (GO♥) being required for GOSUB since G{Shift-O} was already taken.

    Please tell me that people pronounced this stuff as written, eg "Mmmm, you forgot to go-heart the initialisation subroutine", or even "Go-gamma considered harmful" :-)

    Sounds like a bad word filter to me... "I told the program to Go-heart itself!"

  • MrOli (unregistered) in reply to Bob Dole

    Don't think you really thought this one through. Search and replace 'IF' with ' IF ' and you'll get some very broken code such as:

    LIFF=3 becoming L IF F=3

    What he actually needs to write is a parser for the language which 'cross compiles' to something readable.

    Ever written a compiler?

    Admittedly there are tools which make this easier (LEX/YACC), if, of course, you have the language grammar to hand or can perfectly write one from your knowledge of the language.

    I'm not sure I could rattle off the grammar for any language I profess to be 'expert' in.

  • ballantine (unregistered) in reply to Charles400
    Charles400:
    Well, I don't have to obfuscate my code... it looks like shit naturally!
    Admirable honesty, sir!
  • (cs) in reply to Code Slave
    Code Slave:
    Andy walks with me, Andy talks with me
    Does he tell you you have been pwned?
  • Rhialto (unregistered) in reply to MrOli
    MrOli:
    Don't think you really thought this one through. Search and replace 'IF' with ' IF ' and you'll get some very broken code such as:

    LIFF=3 becoming L IF F=3

    which is indeed exactly how a BASIC interpreter would tokenize the code. And why one would not write more than the first 2 significant characters of the variable name anyway.
  • Rhialto (unregistered) in reply to Throknor
    Throknor:
    Also, I don't think it saved the spaces - once the commands are tokenized, spaces are not just pointless but with 3.5K of RAM downright wasteful. I might be thinking of AppleSoft again though. (BTW, I'm not trying to be pedantic - just nostalgic. Much more of this and I might just dig out my //c.)
    I think indeed you must be thinking of AppleSoft basic then, since Commodore Basic would store the spaces, taking extra runtime to skip them.

    Although big parts of both BASICs would be the same, as they were both supplied by MicroSoft. With bugs and all.

  • Apropos (unregistered)

    ANDY=NO is so apropos. At my last job, there was a guy named Andy who would create tons of WTF's.

  • buey (unregistered)

    Forget the lawsuit, this guy's looking at criminal charges of extortion.

  • ObviousTroll (unregistered)

    I think that, after finding that, I would have written a parser to inject whitespace back into the code.

  • Petunia (unregistered) in reply to Dr. Phil

    Actually, in FORTRAN II you really could redefine numbers. We occasionally did this, in my student days, and it resulted in fascinating "bug hunts".

  • Petunia (unregistered) in reply to Petunia

    Oops - forgot quote for reply. This was response to: "and I'll further imagine that the compiler will choke on trying to redefine a number."

  • ThelaHunGinjeet (unregistered) in reply to masonreloaded

    no doubt the obfuscation increased as a result

  • Matt Burgess (unregistered)

    Very curious whether the "destroy your code so you must hire me as a contractor on a high rate" technique actually worked here. Also very curious whether he was sued or charged with anything. This sort of behaviour cannot possibly be legal. I would personally go out of my way to ensure this man never worked in the industry again.

  • iMalc (unregistered)

    This takes me back to my days of VIC-20 programming. I figured out how to embed backspace characters inside the code, such that when someone typed "list" to list the code, entire lines of code could be completely hidden, but they still execute of course. You could even replace what appears in the listed output by following backspace characters with a different string. So you could replace the first few lines of code of a program, which intentionally contained critical values and computations, with some kind of copyright message, for example.

  • (cs)

    This thread made my day! Yesterday I nearly mentioned wooden tables in a meeting because someone mentioned that the online version of some data we want is a pdf of a scan of a book and they need someone to 'digitize' it.

  • Aut (unregistered) in reply to gurhall
    gurhall:
    DangerMouse9:
    Wouldn't copying it all and pasting it into a text document fix the spacing issues while trying to read through it?

    that way if a space on the compiler were say 1 pixel, but would be the full character size in a text editor you'd be able to read it and not wonder who the fuck Andy was.

    I honestly don't know whether to explain it to you or punch you.

    But I do.

  • Aut (unregistered) in reply to ThomasP
    ThomasP:
    ContraCorners:
    How do you pronounce "f*ck?"

    fuh-star-kuh

    feh-splat-ick

  • Jacques (unregistered) in reply to david
    david:
    Anyone old enough to have used FORTRAN IV should remember these: DO10I=1 is an assignment to the variable DO10I, whereas: DO10I=1,10 is the top of a loop where I iterates from 1 to 10. Of course, there can be continuation lines before the ','.
    For even more obscurity, write the loop-start as DO10I = 1,10 and the assignment as DO 10 I = 1.10 since you can embed spaces even inside variable names :)

    And it's particularly satisfying if you're writing for a French project, as French readers will tend to see "1,10" as meaning "1.10" :)

  • Anonymous (unregistered) in reply to hikari
    hikari:
    Inquiring Mind:
    I dunno, I seem to process this ok in English. What's the ambiguity?

    Dunno, but I seem to recall that being able to use something close to natural language constructs was part of the point of COBOL.

    I've noticed from reading articles on COBOL that a lot of the code makes more sense if you just read it as a sentence, in stead of code.

    The example snippet on Wiki for the abbreviated conditional constructs is

    IF SALARY > 9000 OR SUPERVISOR-SALARY OR = PREV-SALARY

    Which makes perfect sense if you just read it as "If salary is greater than 9000 or supervisor-salary or is equal to prev-salary".

    If you're used to reading code written in a language like C, C++, Java, etc, you'd probably end up assuming SUPERVISOR-SALARY is a boolean.

    Separates us old folks from the kids.

    In COBOL we would never

    if a then

    but rather

    if a is equal to true then

    So we can easily parse those COBOL statement. It's a matter of asking yourself 'how does it read in English'

  • Anonymoose (unregistered) in reply to Aut
    Aut:
    ThomasP:
    ContraCorners:
    How do you pronounce "f*ck?"

    fuh-star-kuh

    feh-splat-ick

    Eff-stark.

  • John S (unregistered)

    Why did you leave? You obviously knew what you were getting into and you had a opportunity to be a hero with very little chance of failing. If you knew the compiler was generous with white space you could have used that to your advantage and probably learned a ton of stuff along the way. You let the problem win...

  • jordanwb (unregistered) in reply to hikari
    hikari:
    Throknor:
    Do they not teach BASIC anymore?

    In all probability? No.

    Actually yes. In the high school that I attended, in grade 10 (3 years ago), we learned to program small robots using PBASIC.

  • me (unregistered)

    No way is this story true, no company would allow themselves to be blackmailled in this way, and they would just sue the ex-lead developer.

  • Danny Milosavljevic (unregistered)

    Hmm, since I wrote my first programs on a C64, I don't find it that strange. None of the keywords had a mandatory whitespace suffix. The display was 40 columns wide so if you had unnecessary spaces or variable names longer than 2 characters, what you wanted to do wouldn't have fit onto the line anymore (it would wrap the text and you could write a statement spanning more than one line, but that was just as unreadable as it is today).

    So maybe this BASIC dialect was the same kind (Microsoft BASIC).

  • eric bloedow (unregistered)

    a LONG time ago i wrote a simple game in Apple Basic, and tried to use a variable called "score", but the compiler read it as "sc OR e"...

Leave a comment on “ANDY=NO”

Log In or post as a guest

Replying to comment #:

« Return to Article