- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
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.
Admin
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?
Admin
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
Admin
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."
Admin
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
Admin
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.
Admin
Real Programmers™ aren't afraid of Magic Numbers®![Citation needed]
Admin
I don't like programmer's that die. I prefer those that actually live
Admin
What implicit property of a programmer does he insinuate?
Admin
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.
Admin
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.
Admin
A perfect assassination performed by our ninja Hanzo...
Admin
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.
Admin
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!
Admin
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.
Admin
Admin
Exactly.
Server Message BlockSee My BrainAdmin
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.
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?"Admin
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.
Admin
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
Ah, the detailed write-up. Thank you!
Admin
I'd rather supposse an IdentifierNameShorterThan40CharactersException.
Admin
Admin
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...)
Admin
Frank
It's better for employee morale if they are left to speculate that the geezer finally did retire.
Admin
You... did notice the picture of the mentat on the article, didn't you?
Admin
You know the howto on that is a public secret right?
Admin
Shh! Don't give away the hax0rz secretz!
Admin
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.
Admin
Continuing the discussion from The Old Ways:
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.
Admin
I've had a few cow-orkers that, yes, it would indeed be a morale booster.
Admin
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.
Admin
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.)
Admin
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.
Admin
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.
Admin
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?
Admin
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
Admin
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!
Admin
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.
Admin
Admin
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.
Admin
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.
Admin
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).Admin
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.)
Admin
I also came to this conclusion.
Admin
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.
Admin
Quote from the article:
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.
Admin
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.
Admin
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.)
Admin
South Africa, so anything goes :) .
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.
Admin
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.)