• (disco)

    I choose to believe that Frank saw Greg's unauthorized change before he went to bed, and that his rage over this is what caused the aneurysm. Well done.

    Filed under: Sarcasm or not? You decide.

  • (disco) in reply to HardwareGeek

    Didn't need to see it, he had the code all in his head. It directly modified his brain structure live and caused a core dump (due to null pointer exception). Seriously, who changes things in production in a live environment?

  • (disco)

    The app became like Grandfather's clock

    "But it stopped short — never to go again — When the old man died."

    https://en.wikipedia.org/wiki/My_Grandfather%27s_Clock

  • (disco) in reply to lcrawford

    Obligatory LoB riff:

    "And his grandfather's grandfather's grandfather clock. And his grandfather's grandfather's grandfather's grandfather clock. And his grandfather's grandfather's grandfather's grandfather's... "

    "All right Stan, don't labour the point."

  • (disco)

    find himself looking up mnemonic tricks to remember long sequences of characters

    If he does that, Frank really didn't rub off on him. Not at all.

    Filed under: We Old Ones™ don't need no mnemoshit

  • (disco)

    I have to wonder whether this:

    for RecursiveWaypointCompressionThreadModuleIndexVerifierPropertyHandleIndex := 1 to 99 do ...

    is a parody. It's obvious, but I'll comment anyway on the fact that the index variable with the amusingly-long name is limited by a magic number.

  • (disco) in reply to Quite
    Quite:
    magic number

    Real Programmers™ aren't afraid of Magic Numbers®![Citation needed]

  • (disco)

    I don't like programmer's that die. I prefer those that actually live

    • D. Trump
  • (disco) in reply to RFoxmich
    RFoxmich:
    programmer's

    What implicit property of a programmer does he insinuate?

  • (disco)

    jQuery and PASCAL? What a combination.

    It is important for people with roles such as lead programmer, system administrator, database administrator, system architect, etc to know what is going on with things. However the solution to this is to use SVN, logging procedures, documentation, local dev environments with more restricted/cautious access to sensitive systems, etc.

  • (disco)

    Am I the only one thinks that Jordan was a low-life for telling Greg to keep Frank's death quiet? Is there nothing more to the life of a human than his status as an employee? Jordan feels she owns Frank, even after his death.

  • (disco) in reply to HardwareGeek
    HardwareGeek:
    I choose to believe that Frank saw Greg's unauthorized change before he went to bed, and that his rage over this is what caused the aneurysm. Well done.

    A perfect assassination performed by our ninja Hanzo...

  • (disco) in reply to chozang
    chozang:
    Am I the only one thinks that Jordan was a low-life for telling Greg to keep Frank's death quiet? Is there nothing more to the life of a human than his status as an employee? Jordan feels she owns Frank, even after his death.

    Am I the only one who thinks Chozang is one of those people who constantly looks for things to be offended by?

    Jordon and Greg are not Frank's family, they're coworkers. As such, it's perfectly reasonable for management to try to break the news of his passing in a manner that would cause the least disruption to business activities.

  • (disco)

    Y'all are missing the obvious conclusion: Frank wasn't human, but instead a hyper-advanced humanoid robot from the future whose operational code resided at least in part on his machine.

    It explains everything: his perfect memorization, his poor social skills, his absolute insistence that everything that changed only happened with his approval, and the fact that the first deviation from that destroyed him immediately. And did Greg ever see the body? Of course not!

  • (disco)

    It's pretty obvious that the code was mapped directly to Frank's brain, and that by replacing one very long variable with a very short one, Greg caused the brain aneurysm. This is an open-and-shut case of first degree murder.

  • (disco) in reply to Severity_One
    Severity_One:
    It's pretty obvious that the code was mapped directly to Frank's brain, and that by replacing one very long variable with a very short one, Greg caused the brain aneurysm. This is an open-and-shut case of first degree murdermanslaughter.
    FTFY. There is no evidence that Greg's intention was to kill Frank
  • (disco) in reply to Severity_One
    Severity_One:
    It's pretty obvious that the code was mapped directly to Frank's brain,

    Exactly.

    Server Message BlockSee My Brain

  • (disco)

    On a slightly more serious note (of course, this is all embellishment, and remarkably well done, considering the usual quality of Erik Gern's articles), it is unlikely that Jordan would know that Frank died of a brain aneurysm when Greg arrived. Unless this was a known medical condition (an aneurysm is something one can live with for years; it's when it ruptures that it causes a problem), an autopsy would be required to determine the cause of death. The autopsy takes a few (2 – 4) hours to perform, but the (preliminary) results generally take about 24 hours to be released to the deceased's doctor, then the doctor tells the family, and the family might tell the employer.

    PWolff:
    RFoxmich:
    programmer's
    What implicit property of a programmer does he insinuate?
    Properties. The verb is plural, so there is more than one property, but the programmer that possesses them is singular, so this raises the question, "Which programmer?"
  • (disco)

    Are you sure the name wasn't "Ron"? At my last place of work, Ron had written 200,000 lines of Pascal, without using source control. The repo was just a directory, no source control, on a server that would scrozzle its hard disk about once a week.

    Ron used variable names that were at least four words long. Things like CurrentPlowLastUpdateTimeIndexIntoHashBucket. Which was obviously only used as an index into CurrentPlowHashTableUpdateSkippedFirstPassInfo[ CurrentPlowLastUpdateTimeIndexIntoHashBucket ]. Lots of fun to wade through.

    The way we checked out code was to shout over the partition "Hey, can I mess with WebServer.pas?, I see four big oopsies in it". To which Ron would reply "That code has been working perfectly for 12 years, do not even think of touching a single line". So it went. Those kinds of working conditions led to me not being all that broken up when I got laid off from there. There's always some silver lining even in the unexpected canning.

  • (disco) in reply to Tsaukpaetra
    Tsaukpaetra:
    Didn't need to see it, he had the code all in his head. It directly modified his brain structure live and caused a core dump (due to null pointer exception).

    You know, this is exactly what I thought before I even clicked on the comments. But you people doing :hanzo:s 11 hours before the article is even visible to us mere mortals...just :P

    EatenByAGrue:
    Y'all are missing the obvious conclusion: Frank wasn't human, but instead a hyper-advanced humanoid robot from the future whose operational code resided at least in part on his machine.

    It explains everything: his perfect memorization, his poor social skills, his absolute insistence that everything that changed only happened with his approval, and the fact that the first deviation from that destroyed him immediately. And did Greg ever see the body? Of course not!

    Ah, the detailed write-up. Thank you!

  • (disco) in reply to Tsaukpaetra
    Tsaukpaetra:
    null pointer exception

    I'd rather supposse an IdentifierNameShorterThan40CharactersException.

  • (disco) in reply to PWolff
    PWolff:
    IdentifierNameShorterThan40FortyCharactersException
    FTFY and Discourse so this post isn’t empty.
  • (disco) in reply to HardwareGeek
    HardwareGeek:
    it is unlikely that Jordan would know that Frank died of a brain aneurysm when Greg arrived. Unless this was a known medical condition (an aneurysm is something one can live with for years; it's when it ruptures that it causes a problem)

    Jordan mentioned Frank being on the way out and Greg noticed, on his first day, that Frank had a lazy / twitching eye: the kind of loss of motor control that is used as an indicator for an aneursym. Photophobia, aka aversion to light, is another. (Notice Frank's workspace had all the blinds down? And he was working off of an old blue-hued CRT with much lower yields than a flat panel?) Frank's problems with typing? Could be due to motor control issues as well. But they could also be due to blurred or double vision; another indicator for an aneurysm.

    Taken alone, it's just circumstancial, but taken together there's enough evidence around to start applying the old adage 'dead man walking'. Which is apparantly what Jordan did; on Greg's first day.

    (I'll bet the reason Frank was grouchy is because he was also suffering a lot from headaches...)

  • (disco) in reply to Tsaukpaetra
    Tsaukpaetra:
    Seriously, who changes things in production in a live environment?

    Frank

    chozang:
    Am I the only one thinks that Jordan was a low-life for telling Greg to keep Frank's death quiet? Is there nothing more to the life of a human than his status as an employee? Jordan feels she owns Frank, even after his death.

    It's better for employee morale if they are left to speculate that the geezer finally did retire.

  • (disco) in reply to EatenByAGrue

    You... did notice the picture of the mentat on the article, didn't you?

  • (disco) in reply to redwizard
    redwizard:
    11 hours before the article is even visible to us mere mortals

    You know the howto on that is a public secret right?

  • (disco) in reply to PleegWat

    Shh! Don't give away the hax0rz secretz!

  • (disco) in reply to Ragnax
    Ragnax:
    Photophobia, aka aversion to light, is another. (Notice Frank's workspace had all the blinds down? And he was working off of an old blue-hued CRT with much lower yields than a flat panel?) Frank's problems with typing? Could be due to motor control issues as well. But they could also be due to blurred or double vision; another indicator for an aneurysm.

    Sadly this excellent piece of analysis puts paid to my suspicion that Frank was actually a vampire1 and what caused his disappearance was a crossroads encounter of the stake kind. Management, of course, wouldn't want it known that they employed vampires outside the c-suite.

    1 the noctophilia and the enormously retentive memory are giveaways. Frank didn't want anyone seeing him typing because of the unusually long, sharp, batlike fingernails. But no, aneurysm more convincing.

  • (disco) in reply to anotherusername

    Continuing the discussion from The Old Ways:

    anotherusername:
    Tsaukpaetra:
    Seriously, who changes things in production in a live environment?

    Frank

    chozang:
    Am I the only one thinks that Jordan was a low-life for telling Greg to keep Frank's death quiet? Is there nothing more to the life of a human than his status as an employee? Jordan feels she owns Frank, even after his death.

    It's better for employee morale if they are left to speculate that the geezer finally did retire.

    One of the old boys in an office where I worked once dropped dead of a heart-attack right in front of his co-workers. That was a morale-booster and no mistake. (I was the other side of the pond at the time.) Not long after that, one of our younger staff (she was a mother with a young family) dropped dead one Sunday afternoon while playing in her garden with her children. The same manager had to make the announcement as had made the previous announcement. It was a weird and wacky year.

  • (disco) in reply to Matt_Westwood
    Matt_Westwood:
    One of the old boys in an office where I worked once dropped dead of a heart-attack right in front of his co-workers. That was a morale-booster and no mistake.

    I've had a few cow-orkers that, yes, it would indeed be a morale booster.

  • (disco)

    Doesn't look like there are any code WTFs in here.

    This looks like every single thing I've ever encountered that was written using Delphi, that started out in Pascal.

  • (disco) in reply to HardwareGeek
    HardwareGeek:
    I've had a few cow-orkers that, yes, it would indeed be a morale booster.

    Having very recently encountered a death scare first hand, it does have a way of sharpening one's focus in life and rearranging a few priorities.

    (No worries now, BTW.)

  • (disco) in reply to rvleshrac
    rvleshrac:
    This looks like every single thing I've ever encountered that was written using Delphi, that started out in Pascal.

    I wonder when it became custom for Pascal developers to have some of their source files in the root directory of the system drive, and some in the system folder.

  • (disco) in reply to Quite

    Btw, Pascal identifiers are limited to 32 chars, anything behind will be ignored, so this is what the compiler actually see:

    RecursiveWaypointCompressionThre

    I remembered that someone abuse this fact to create a lot of variable names differs only on their tail, while they actually refer to the same variable. Tracing those source files is fun.

  • (disco)

    I take this in a more positive light.

    The restrictions and the code base were a test: Would Greg have the nerve and the acumen to successfully modify code in production?

    When he made his sly, surreptitious change, Frank knew immediately. He sighed, "You need no more training, you are ready." Then he smiled and relaxed, for the last time.

    Will Frank turn over in his grave at the changes Greg will make? Can you sleep when the wind blows?

  • (disco) in reply to cheong

    You think that's small? BIT identifiers are limited to 64 bits. Also, you have to spell them out. Like this:

    VARIABLE ONE ZERO ONE ONE ZERO ONE ZERO ZERO

  • (disco) in reply to cheong
    cheong:
    Pascal identifiers are limited to 32 chars

    I was always under the impression that that was a system-defined limit, not an actual language one. There certainly were versions of C that limited non-local identifiers to 7 characters (because of an invisible leading underscore) at the link stage.

    Thank god that limit is gone!

  • (disco) in reply to dkf

    Yup. At the time 640kb is considered "large enough for everyone", there had to be certain limit so the "identifier to placeholder" table won't go too big can cause core dump.

    The older the language, the tighter the limit.

  • (disco) in reply to PWolff
    PWolff:
    I wonder when it became custom for Pascal developers to have some of their source files in the root directory of the system drive, and some in the system folder.
    When I started with Pascal, it certainly was common to put all sources in the root directory. CP/M was never really big on subdirectories...
  • (disco)

    I know, I know, embellishment and all ... but I like the idea of Frank not only maintaining the repo for 22 years but successfully migrating it at some point to at least Windows 2000.

  • (disco) in reply to nerd4sale
    nerd4sale:
    CP/M was never really big on subdirectories...

    When I started to learn Fortran, we had two floppies - one for system, one for data etc. We were explicitly told to keep the system disk write protected all the time.

    Well, the root directory wasn't much of a problem, with a text file containing the task of the day, a text file containing my docu, one source file, and one executable file. And dozens of temporary files that accidentally didn't get deleted.

  • (disco) in reply to cheong
    cheong:
    Btw, Pascal identifiers are limited to 32 chars

    When I started learning the art of programming, all we had was an old BASIC dialect. At least variable names could have up to two (2, 0x02, 02, binary 10) characters. We never needed more. Meaning of a variable? See documentation (handwritten, of course - the printout on toilet paper"addition rolls" - don't know the proper English name for them - weren't exactly readable with text).

  • (disco) in reply to cheong
    cheong:
    there had to be certain limit so the "identifier to placeholder" table won't go too big can cause core dump.

    There was probably a limit on the length of line (no more than 255 characters, due to Pascal using a byte at the front for the string length) so truly massive identifiers wouldn't be possible in the first place. However, I wouldn't expect any current Pascal implementation to have tight limits; the object file format that they'd be targeting would be either ELF or COFF (because they'd be nuts to go to anything else on current OSes) and those have limits that are large enough that nobody really cares any more.

    It was probably C++ which forced everyone to scrap the tight limits, with their funky type-in-the-name symbol encoding scheme. Or rather with the schemes; that was not something standardised. (Did that change yet with C++11/14? The awful name encoding stuff was one of the major barriers to making things portable between different compiler chains on a platform.)

  • (disco) in reply to Tsaukpaetra
    He replaced the twenty-something variable name with i...
    Frank just passed away.

    I also came to this conclusion.

  • (disco) in reply to dkf

    The ISO 1990 removed the limit (but replace the limit with names must not exceed the length of a line compiler can handle because labels cannot across lines), while the "Free Pascal" still preserved it. Although the last line of that wiki seems to suggest the original limit might be 15 characters only.

  • (disco) in reply to Vault_Dweller
    Vault_Dweller:
    Severity_One:
    It's pretty obvious that the code was mapped directly to Frank's brain, and that by replacing one very long variable with a very short one, Greg caused the brain aneurysm. This is an open-and-shut case of first degree murdermanslaughter.
    FTFY. There is no evidence that Greg's intention was to kill Frank

    Quote from the article:

    One night, he came into the office and logged into Frank’s SMB server.

    So he came in after hours, probably dressed in black and wearing a balaclava, to surreptitiously change the code. He had means, motive and opportunity. He'd need a damn good lawyer to explain that away.

  • (disco) in reply to Severity_One

    You still have to prove that his intention was to kill Frank. How was Greg supposed to know that by changing code on a remote server (relative to Frank's current location at the time), it would have an impact on Frank? There are no previous circumstances to indicate that there is any long-distance connection between Frank and the server.

  • (disco) in reply to Vault_Dweller
    Vault_Dweller:
    You still have to prove that his intention was to kill Frank

    I don't know where it is in the jurisdiction you live in, but in Germany it is sufficient to prove that he knew or had to have known (that is, culpably didn't inform himself about it) that Frank might die from changing the code without his prior consent. (The rest of your statement holds under these circumstances.)

  • (disco) in reply to PWolff
    PWolff:
    I don't know where it is in the jurisdiction you live in

    South Africa, so anything goes :) .

    PWolff:
    prove that he knew or had to have known

    And how are you going to do that? The article (and, by extension, his testimony) states that his intention was to play a small prank on Frank. Nowhere does it state that he had any previous knowledge of the potential consequences.

  • (disco) in reply to Vault_Dweller
    Vault_Dweller:
    And how are you going to do that? The **article** (and, by extension, **his testimony**) states that his intention was to play a small prank on Frank. Nowhere does it state that he **had** any previous knowledge of the potential consequences.
    (Emphasis by me)

    I can't tell German law conception within one post, but I can say this: whether or not he had any knowledge is utterly irrelevant if an averagely responsible citizen in his position would have known.

    His testimony is but a very little hint, especially when defending him. (This should be same everywhere where jurisdiction isn't gone completely insane or two-species-of-humans, though.)

    Now, the article is Word of God, and therefore absolutely reliable, so he is innocent indeed. Unless it is a re-narration of an actual incident. (In which case we had to know what happened there, whithout all that bombast around it.)

Leave a comment on “The Old Ways”

Log In or post as a guest

Replying to comment #:

« Return to Article