• MightyM (unregistered)

    I'm disappointed there is no Egon in the story.

  • QJo (unregistered)

    "... or scan the network for every printer or network drive and map it to the local machine."

    I had a premonition here ...

  • ZoomST (unregistered)
    story:
    "The inputs he in the spec generated the outputs they were supposed to."
    I what you did there.
  • muba (unregistered)

    I guess they didn't have the spirit it takes...

  • RFoxmich (unregistered)

    Where's the wtf, this is fairly typical of academic projects...and it's no surprise that academic spin-offs generate the same junk.

    HEY Back off ...I'm a scientist.

  • Warren (unregistered)

    Clearly, the printout was just meant to be displayed with Ghostview.

  • anon (unregistered)

    "bought the best booth their budget allowed"

    "Their booth was tucked away in a remote corner, between the trash bins and one of those pushy training companies"

    So, no budget at all....

  • ¯\(°_o)/¯ I DUNNO LOL (unregistered)

    Or maybe they got one of those windows viruses that spread via file shares and would spew binary crap to any printer it found? (Possibly because printers looked like file shares to it?) Where I worked in the mid '00s, we had that one hit a couple of times. I think we even had one HP printer die because of all the pages it spewed wore out its paper feed mechanism. Still ghost-worthy though.

    Apparently it spewed binary to the printers in a raw text mode, which interpreted every \0x0C as a form feed character, so every page would have a little bit of random crap on it, and the printer would push paper through at maximum speed. PC LOAD LETTER? What the hell does that mean?

  • (cs)

    40 YEARS OF PRINT JOBS, KILLED PROCESSES RISING FROM THE GRAVE, CPUS AND GPUS BOILING THERMAL PASTE, C# AND JAVA LIVING TOGETHER, MASS HYSTERIA.

  • (cs)

    At least Remy is honest about which part of the story is not invented:

    HTML Comments:
    (...) the submitter only included the acronym and what it stood for.
    In other words: Everything else is made up!
  • (cs) in reply to no laughing matter

    Well, I made up the idea that GHOST was an intentional pun. And some names, obviously. But man, that'd be a clever pun, wouldn't it?

  • (cs)
    article:
    GHOST (...) It stands for ‘Generic Hybrid Script for Transactional Objects’. ... Worse, it wasn’t truly a language in its own right- it compiled down into C#. ... which had been deprecated in 2003
    Posted by Ben L. on the C.S. class Sidebar WTF Computer Science course about Compilers, requires programming in Cool! Cool Programming language manual
    Cool 2013 Manual:
    This manual describes the programming language Cool: the Classroom Object-Oriented Language. ... Cool 2013 is a new language differing from all previous versions of Cool. Indeed Cool 2013 is a subset of Scala; in a ridiculous act of hubris, we will call Scala “Extended Cool.” ... The coolc compiler generates MIPS assembly code. Because we don’t have a MIPS-based machine to run them on, Cool programs are run on a MIPS simulator called spim.
    SPIM Homepage
    SPIM:
    SPIM A MIPS32 Simulator spim is a self-contained simulator that runs MIPS32 programs. It reads and executes assembly language programs written for this processor. spim also provides a simple debugger and minimal set of operating system services. spim does not execute binary (compiled) programs. ... spim implements almost the entire MIPS32 assembler-extended instruction set. ... Happy Birthday SPIM! spim turned 20 years old January 2010. I wrote the original version of spim as the target machine for my first compiler class at University of Wisconsin, Madison in the spring semester 1990. spim is likely older than most of the students currently using it!
  • Nobulate (unregistered)

    That was a feature of dot net 1.1, and subsequent versions implemented the exorcism collector (it lived under the garbage collection namespace).

  • faoileag (unregistered)

    Ok, let's see...

    the article:
    Walter built syntax primitives to ... scan the network for every printer or network drive and map it to the local machine ... Several acres of forest had been converted into the cracked scrawl of GHOST code. Each and every vendor with a poorly-secured printer on the network (all of them) had been taken over by GHOST

    Problem one: all printers are mapped to local machine. Bad enough, but can have one of two reasons:

    1. The developers accidentally used the syntax primitive to map the printers
    2. The GHOST to C# compiler is buggy and inserts the code to map all network printers accidentally. Both reasons are good examples for why it might be a bad idea to use homegrown software solutions instead of existing, well tested libraries/languages.

    Problem two: all the printers spewed forth GHOST code, so obviously SPIRIT started a print job that printed its own source code. Now that is a far more serious bug than merely shanghaing all networked printers because a) the SPIRIT executable should be CLR-code, not C# or even GHOST and b) not even know where the original source code resides.

    the article:
    and when the company folded
    Definitely no surprise. That company has so many problems that anything other than folding would amount to a wtf in its own right.
  • faoileag (unregistered) in reply to Remy Porter
    Remy Porter:
    Well, I made up the idea that GHOST was an intentional pun. And some names, obviously. But man, that'd be a clever pun, wouldn't it?
    Isn't it somewhat standard procedure to work one's way down from the acronym? 1. Find cool & funny & pronouncable acronym 2. Get dictionary to find suitable words whose first letters form the acronym

    15 years ago, you could play something like that online "Fear of Acronyms" - you would be presented with an acronym and had to find a funny meaning for it. After 30 or so seconds, all players would vote for the funniest "solution".

    Ok, TDWTF did it the other way round, but that's a sample of one ;-)

  • (cs)

    I bet that deprecated C# feature was named indexers, because I can't think of any other such feature on top of my head.

  • (cs) in reply to faoileag

    Ah, but you have to keep in mind- the acronym and what it stands for aren't the same. <thatsthejoke.jpg>

  • anonymous (unregistered)

    First article in a good while that's elicited both a WTF and a chuckle at the thought of an entire hotel suite of conference rooms filled with printers spitting out reams and reams of paper at the stroke of midnight.

  • (cs) in reply to ¯\(°_o)/¯ I DUNNO LOL
    ¯\(°_o)/¯ I DUNNO LOL:
    PC LOAD LETTER? What the hell does that mean?
    It means that you should put some US Letter-size paper in the printer. Or press a button to tell the printer to just get on with it and use the paper it already has. Or change the stupid options in the source program/driver to get the paper size right in the first place. Depends really.
  • (cs)

    I think I met the ancestor of this GHOST. In C programming lab in 1994, we had 15 computers all turning their back to the printer in the center of the room. An old 9pin dot-matrix with continuous paper feed. Lots of it.

    One day, the printer started spitting paper. We all thought someone had started printing his code for some reason. But as time went by, I started to wonder who was killing the Amazon rain forest and realised that it was printing everything that appeared on the screen of one of us. This was in MS-DOS days and hitting ctrl-P could result in MS-DOS printing everything on the "console" but here, we had Turbo-C printouts, which was normally not possible.

    I quickly identified the corresponding screen and asked the guy to reboot his machine. The printing stopped. At last.

    He started his work-in-progress application and again, the printer started printing everything on his screen.

    As we couldn't figure out why, we decided to throw the computer, the printer, the printouts and all floppies with the cursed code out the window (6th floor), and all ran down to dance a pogo on the remains, just because. No we did not throw the student who wrote the code with the rest of the tainted hardware but I still believe that this was a mistake.

  • My Name Indeed (unregistered)
    FTFY:
    depended on syntax conventions which had been released in 2003, meaning it depended on .NET 1.1.
  • faoileag (unregistered) in reply to Merlin2600
    Merlin2600:
    In C programming lab in 1994, we had 15 computers all turning their back to the printer in the center of the room. An old 9pin dot-matrix with continuous paper feed. Lots of it...
    That reminds me of what was called "mainframe lab" in my college at around the same time (some midrange hardware running BS2000).

    They had a "fast" printer attached to the mainframe, and "fast" actually meant fast. It could digest half a box of endless paper in a matter of minutes, so any accidentally started (large) printjob meant killing a medium-sized forest, say, darkwood.

    So we got a stern warning from the engineers running the lab in the first session: "Any accidentally started printjob over a couple of pages entails buying us a crate of beer".

    They usually got at least one per term.

  • DonaldK (unregistered)

    [slightly off topic] Am I the only person that learned the hard way not to yank the power to the printer but rather remove the printer's ability to get paper when the printer becomes haunted? And then clean the print queues. All of them. And the printer buffer. And then boot the printer. And then put ONE piece of paper into the printer... FOND MEMORIES

  • (cs) in reply to DonaldK
    DonaldK:
    [slightly off topic] Am I the only person that learned the hard way not to yank the power to the printer but rather remove the printer's ability to get paper when the printer becomes haunted? And then clean the print queues. All of them. And the printer buffer. And then boot the printer. And then put ONE piece of paper into the printer... FOND MEMORIES
    Yes. Everyone else was born with that as instinct. Why weren't you born with it????
  • neminem (unregistered)

    The print jobs are coming from INSIDE THE HOUSE!

    p.s. "The inputs he in the spec generated the outputs they were supposed to." Presumably this is also out of order because "parallel processing", and is also supposed to be funny?

  • anonymous (unregistered) in reply to dkf
    dkf:
    ¯\(°_o)/¯ I DUNNO LOL:
    PC LOAD LETTER? What the hell does that mean?
    It means that you should put some US Letter-size paper in the printer. Or press a button to tell the printer to just get on with it and use the paper it already has. Or change the stupid options in the source program/driver to get the paper size right in the first place. Depends really.
    Oh, you.
  • MrBester (unregistered)

    "Walter led by example and took a week’s vacation" If the chief architect can't be arsed to put in any grunt work to get his pet project to work then why should anybody else? The underlings should have gone on vacation as well after cancelling the booth for a product that didn't work...

  • (cs) in reply to Merlin2600
    Merlin2600:
    I think I met the ancestor of this GHOST.
    That would have been KOBOLD?
  • (cs)

    Maybe everyone has a runaway printing story. Here's mine.

    While working on a team with a long-term project, about once every month or two we'd find the printer dumping out every file of our source code. This went on for three years. Whenever we discovered the rampage, we killed the print jobs and tried to investigate. The cause of the problem eluded us.

    It turned out to be a fat-finger error. We were using a common set of macros assigned to dedicated function keys on our terminals. In order to print out a source file, one could just type its name and tap the F6 key. One person on our team would tap keys randomly without knowing it (including the F6 key). The resulting macro would be interpreted to mean that all files should be printed. During that three year period, he was unaware that he was triggering the problem.

    It's interesting that runaway printing is common, and the causes are uncommonly varied.

  • Krunt (unregistered) in reply to neminem
    neminem:
    The print jobs are coming from INSIDE THE HOUSE!

    p.s. "The inputs he in the spec generated the outputs they were supposed to." Presumably this is also out of order because "parallel processing", and is also supposed to be funny?

    "He in the spec" is a reference to the gentleman who wears a monocal, which is half of a pair of spectacles(specs) and thus is just a "spec". So, he in the monocal(spec) generated the outputs.

    I'm not quite sure how it went from SPRIT to SPIRIT though. Maybe it was designed to work with Apple products, hence the additional unnecessary "i" and of course due to parallelism the "I" wasn't in the right order with the rest of the letters.

  • (cs) in reply to Merlin2600
    Merlin2600:
    One day, the printer started spitting paper. We all thought someone had started printing his code for some reason. But as time went by, I started to wonder who was killing the Amazon rain forest and realised that it was printing everything that appeared on the screen of one of us. This was in MS-DOS days and hitting ctrl-P could result in MS-DOS printing everything on the "console" but here, we had Turbo-C printouts, which was normally not possible.

    I quickly identified the corresponding screen and asked the guy to reboot his machine. The printing stopped. At last.

    He started his work-in-progress application and again, the printer started printing everything on his screen.

    As we couldn't figure out why, we decided to throw the computer, the printer, the printouts and all floppies with the cursed code out the window (6th floor), and all ran down to dance a pogo on the remains, just because. No we did not throw the student who wrote the code with the rest of the tainted hardware but I still believe that this was a mistake.

    I'm sure you embellished the last paragraph... but anyway, starting the app with its output directed to PRN or LPT1 would do it.

    MYPROG > PRN:

    So, as a gag someone added this to the batch file that started Turbo-C and you allegedly destroyed a printer and computer over it. I wonder what happened when someone put a beep-bomb into AUTOEXEC.BAT the next day...

  • ¯\(°_o)/¯ I DUNNO LOL (unregistered) in reply to mikeTheLiar
    mikeTheLiar:
    40 YEARS OF PRINT JOBS, KILLED PROCESSES RISING FROM THE GRAVE, CPUS AND GPUS BOILING THERMAL PASTE, C# AND JAVA LIVING TOGETHER, MASS HYSTERIA.
    COBOL AND FORTRAN COMPILING TOGETHER, A DISASTER OF BIBLICAL PROPORTIONS!
  • ¯\(°_o)/¯ I DUNNO LOL (unregistered) in reply to operagost
    operagost:
    So, as a gag someone added this to the batch file that started Turbo-C and you allegedly destroyed a printer and computer over it. I wonder what happened when someone put a beep-bomb into AUTOEXEC.BAT the next day...
    My favorite gag was a TSR on the keyboard interrupt that would wait for a special key combination like SHIFT + CTRL + ALT being pressed at the same time while talking to the victim, then 1000 keystrokes later it would start replacing anything typed with HELP I AM TRAPPED IN A ZENITH Z-248 FACTORY (the gummint bought a lot of Z-248s back in the day)
  • (cs)
    Worse, it wasn’t truly a language in its own right- it compiled down into C#.

    Yes, because languages that are compiled to other languages are never real languages. That's why I don't even use that fancy "3rd-generation" programming language called "C", because it first compiles to that so called language "assembler" which is compiled machine code.

    Everyone knows machine code is the only real programming language because you don't have to compile it (and don't start using assemblers mind you! Those are just compilers in disguise!)

  • (cs)

    So...There was this Dilbert comic where the boss worried that their new third party application would hunt down the company's payroll data in the cloud and delete it...

    ...and the vendor confirmed it.

    They must program in GHOST; and they must have used the "HPDOTWADI" ("hunt payroll data down on the web and delete it") directive. Combined with the "SOMETIMES" parameter, of course.

  • Chelloveck (unregistered) in reply to faoileag
    faoileag:
    So we got a stern warning from the engineers running the lab in the first session: "Any accidentally started printjob over a couple of pages entails buying us a crate of beer".

    They usually got at least one per term.

    I was one of those students, either at that college or one like it. Back in the mid-80s I was taking a course in mainframe assembly programming. (Univac 1100 series. 36-bit words! No stack!) There was an assembler macro that was the spiritual equivalent of printf() which could be used to print debugging info. And by "print", I mean to the printer, of course.

    We had the luxury of dial-up modems (300 baud, baby!) so I'd write my programs in a text editor and upload them to the mainframe. Random fate once intervened and caused one line to be dropped. A loop counter. And the loop contained the print macro. And in the print macro I'd omitted the newline character. When I later went down to the batch station to pick up my printout I found an entire ream of 132-column greenbar completely filled with something like "Now executing loop 1Now executing loop 2Now executing loop 3..." and a hand-scrawled note on the last page reading "Job terminated by operator".

  • Anon (unregistered)

    Later Chris found out the company he was working for had gone bankrupt 10 years before...

  • Melnorme (unregistered)

    Judging from the description of the programming language, they may have accidentally typed in the "print quine" command.

  • (cs)

    And now we're back to completely horrible articles.

    How drunk were you when you wrote this? Are you on vacation in Colorado? No proofing, sentences that make no sense, even the formatting is off. How many monkeys on how many computers were used to write this?

    Also, no mention of the Inner Platform Effect?

  • (cs) in reply to no laughing matter
    no laughing matter:
    At least Remy is honest about which part of the story is not invented:
    HTML Comments:
    (...) the submitter only included the acronym and what it stood for.
    In other words: Everything else is made up!

    There's really nothing specific in the article, no code, no concrete system structure, so it might as well be 100% fiction.

  • BeenThereDoneThat (unregistered) in reply to QJo
    QJo:
    "... or scan the network for every printer or network drive and map it to the local machine."

    I had a premonition here ...

    +1

  • Anon (unregistered) in reply to Coyne
    Coyne:
    So...There was this Dilbert comic where the boss worried that their new third party application would hunt down the company's payroll data in the cloud and delete it...

    ...and the vendor confirmed it.

    They must program in GHOST; and they must have used the "HPDOTWADI" ("hunt payroll data down on the web and delete it") directive. Combined with the "SOMETIMES" parameter, of course.

    TRTWF is people who don't use the "fast" version of Dilbert:

    http://www.dilbert.com/fast/2009-08-30/

    And the stupid spam blocker

  • (cs) in reply to Krunt
    Krunt:
    "He in the spec" is a reference to the gentleman who wears a monocal, which is half of a pair of spectacles(specs)
    The specs! They do nothing!
  • IdleEric (unregistered)

    I wonder what it's like to use GHOST in the shell?

    eh? eh? nudge nudge

  • Sir Galahad the pure (unregistered)

    I really liked the story!

    We once had a colleague mistakenly send a 50+ page print job to the plotter. As this was only turned on when needed, said colleague did not notice it, simply sent the job again to the correct printer.

    Next week a colleague actually needs to plot, goes to the plotter, tuns it on and leaves for a break (to accommodate for the plotter warmup time) and returns to the plotter having filled half the plotter closet with A0-sized printouts. We checked the spooler logs, took two pieces of wood, tucked together the printouts with screws, thread and gaffer tape and hung it on colleagues door. Office prank FTW.

  • Dr. Coder (unregistered)

    It's like a bad case of the MUMPS

  • (cs) in reply to IdleEric
    IdleEric:
    I wonder what it's like to use GHOST in the shell?

    eh? eh? nudge nudge

    Obligatory xkcd: admin mourning

  • Andy (unregistered)

    Has nobody clicked on bedlam?

  • (cs)

    "scan the network for every printer or network drive and map it to the local machine"

    That seems like a terrifyingly unsafe thing to do. Today GHOST possesses all the printers; tomorrow it wipes all your data?

  • (cs)

    Welcome once again to The Daily 99% Fictional Creative Writing Exercise.

Leave a comment on “GHOST Busted”

Log In or post as a guest

Replying to comment #:

« Return to Article