├── originals ├── fisk.pdf ├── rom24.zip ├── mit-guide-to-lockpicking.pdf ├── a-story-about-magic.txt ├── c-bible.txt ├── x.equals.3.txt ├── tenneC.txt ├── hackers.txt ├── ucsc.adventure.game.txt └── hacktest.text ├── sources.md ├── trivia.md ├── README.md ├── 24.stage.software.test.md ├── stories └── Team Necrosis Vol 1.md ├── a-story-about-magic.md ├── hackers-manifesto.md ├── c-bible.md ├── roadtrip.md ├── x.equals.3.md ├── tenneC-programming-language.md ├── story-of-mel-real-programmer.md ├── hacker-running-a-mud-so-i-can-learn-c.md ├── ucsc.adventure.game.md ├── portrait-of-j-random-hacker.md ├── hacker-purity-test.md └── real-programmers-dont-use-pascal.md /originals/fisk.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyxgeek/nyxgeek-readinglist/HEAD/originals/fisk.pdf -------------------------------------------------------------------------------- /originals/rom24.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyxgeek/nyxgeek-readinglist/HEAD/originals/rom24.zip -------------------------------------------------------------------------------- /sources.md: -------------------------------------------------------------------------------- 1 | ==Hacker Culture== 2 | 3 | The fall of Hacker Groups - PHRACK 4 | 5 | http://phrack.org/issues/69/6.html#article 6 | -------------------------------------------------------------------------------- /originals/mit-guide-to-lockpicking.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyxgeek/nyxgeek-readinglist/HEAD/originals/mit-guide-to-lockpicking.pdf -------------------------------------------------------------------------------- /trivia.md: -------------------------------------------------------------------------------- 1 | the 3D file system browser in Jurassic Park is real. It's called fsn (pronounced 'fusion') and was made for IRIX, an OS by the now-dead SGI. 2 | 3 | 4 | https://en.wikipedia.org/wiki/Fsn_(file_manager) 5 | 6 | ------------ 7 | 8 | while dial-up modems were billed as 56k, due to FCC regulations on power, the max receiving rate was actually 53.3 9 | 10 | (have to find actual FCC page - mentioned on US Robotics Page here) 11 | 12 | http://support.usr.com/support/5637/5637-ug/trouble_v92.html 13 | 14 | . 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # nyxgeek-readinglist 2 | hacker folklore, history, and culture 3 | 4 | 5 | *Note: Almost none of this is my original work. All pages have a source attribution and retrieval date.* 6 | 7 | 8 | | Filename | Description | 9 | | ------------- | ------------- | 10 | | 24.stage.software.test | 24 stages of software development | 11 | | a-story-about-magic | A story About Magic aka Magic & More Magic | 12 | | c-bible | The C Programming Lanugage AKA "The C Bible" as revealed to the prophets Ian Chai and Glenn Chappell | 13 | | diary_of_hacker | Diary of a Hacker - Parts I and II - circa 1988 | 14 | | hacker-purity-test | The Hacker Purity Test | 15 | | hacker-running-a-mud-so-i-can-learn-c | hacker.txt aka I'm running a Mud so I can learn C programming! | 16 | | hackers-manifesto | Hacker's Manifesto aka The Hacker Manifesto aka The Conscience of a Hacker | 17 | | portrait-of-j-random-hacker | A Portrait of J Random Hacker | 18 | | real-programmers-dont-use-pascal | Real Programmers Don't Use PASCAL | 19 | | roadtrip | A list of Road Trip Destinations related to hacking/phreaking by @nyxgeek | 20 | | smashing-the-stack-fun-and-profit | Smashing the Stack for Fun and Profit | 21 | | story-of-mel-real-programmer | The Story of Mel, a Real Programmer aka Real Programmers write in FORTRAN | 22 | | tenneC-programming-language | Tenne-C programming language | 23 | | trivia | random trivia by @nyxgeek | 24 | | ucsc.adventure.game | Funny UCSC Adventure Game log | 25 | | x.equals.3 | x equals 3 in different languages | 26 | -------------------------------------------------------------------------------- /24.stage.software.test.md: -------------------------------------------------------------------------------- 1 | ``` 2 | The following is from this month's .EXE Magazine... 3 | 4 | The 24-Stage Software Test 5 | 6 | alpha It compiles! 7 | beta It runs on Joe's machine. 8 | gamma It runs on Kate's machine too. 9 | delta It runs on the network. 10 | epsilon It's stopped running on Kate's machine. 11 | zeta It runs on all machines, but report crashes. 12 | eta It crashes with HIMEM.SYS. 13 | theta It crashes without HIMEM.SYS. 14 | iota It crashes with a serial printer. 15 | kappa It works! But the spec has changed. 16 | lambda It runs, but mysteriously at half the speed of before. 17 | mu It crashes the network. 18 | nu It crashes Kate's machine with HIMEM.SYS, Joe's without. 19 | xi It runs, but the printout is garbage. 20 | omicron As above, but crashes after printout sometimes. 21 | pi It sometimes crashes. 22 | rho Kate thinks it works, but it turns out she's running lambda. 23 | sigma No luck yet. 24 | tau Aha, sorted out the printout. 25 | upsilon Nearly there -- just need to tidy up the help text. 26 | phi It won't run at all on anything. 27 | chi Yipee! It runs perfectly on all the machines in the world. 28 | psi It runs on all the machines in the world except that idiot's from 29 | Basingstoke with the customised Amstrad and DOS 4.01. 30 | omega It won't compile. 31 | 32 | ``` 33 | 34 | 35 | 36 | Originally found at http://web.mit.edu/humor/Computers/24.stage.software.test but only accessible via Google cache 37 | 38 | Retrieved 2020.07.02 by @nyxgeek 39 | -------------------------------------------------------------------------------- /stories/Team Necrosis Vol 1.md: -------------------------------------------------------------------------------- 1 | This story is taken from Mastodon, from Laughing Mantis (@Laughing_Mantis@infosec.exchange) 2 | 3 | The original post can be found at: https://infosec.exchange/@Laughing_Mantis/109369254151886502 4 | 5 | Preserving here for posterity. 6 | 7 | Posted November 19, 2022 8 | 9 | >The whole misprint from @vxunderground made me think of an untold part of VX history and about one of the rarest VX ezines to ever exist. 10 | > 11 | >Fun fact and #story time: 12 | > 13 | >One of the rarest ezines, Team Necrosis Vol 1 featured a submission from a relatively unknown virus author by the name of Painter6. 14 | >Turns out that Painter6 was actually David Smith, the Melissa virus author, and he was working undercover with federal law enforcement to expose the VX scene and later bring down coderz dot net. 15 | >When law enforcement found a pre-release copy of the zine and his viral submission, it violated his agreement to not write virus code while working as a snitch, in addition they were worried it would blow his cover. 16 | > 17 | >After having him withdraw his submission, he attempted to convince people to delete the early copies of the ezine and withdraw their submissions, claiming that AV companies were leaked a copy of the zine. 18 | > 19 | >To back this up, Painter6 secretly submitted his own virus to AV so they would have a signature of it. 20 | >Scanning the zine specifically threw up a signature for Win.Painter6 virus. 21 | > 22 | >For months the scene banned all members of Team Necrosis, thinking they were selling VX to AV companies (like an infamous 29A member got caught doing). Massive deletion of the zine occurred throughout the scene. 23 | > 24 | >This truth was all eventually brought to light in court a year later when Evul, the owner of coderz dot net was brought to court over distributing virus code. Evul was actually found to be not guilty and after the court case, had his lawyers get copies of this evidence and sent it to the entire VX scene. 25 | > 26 | >Unfortunately Team Necrosis never recovered but the members eventually were pardoned and invited into other prominent VX groups: NuKE, SLAM, No Mercy, and Metaphase. 27 | > 28 | >Team Necrosis Vol 1 later became the basis for Coderz Vol 2 and was a relative success as one of the last big zine releases from the VX scene. The original TN Vol 1 is still considered a top tier item to have in the VX scene. 29 | > 30 | >Source: I was the main writer of Team Necrosis Vol 1 and an editor for coderz dot net zines. I don't even have a copy of it anymore, but id be happy to validate anyone who might have a rare copy. 31 | > 32 | >I was later accepted as the last member of both NuKE and SLAM before they were dissolved 3 years later. 33 | > 34 | >#VX #infosecHistory #history #malware #FuckPainter6 #intro #stories #respect #darknetdiaries #infosecRant 35 | -------------------------------------------------------------------------------- /originals/a-story-about-magic.txt: -------------------------------------------------------------------------------- 1 | A Story About `Magic' 2 | 3 | Some years ago, I was snooping around in the cabinets that housed the MIT AI Lab's PDP-10, and noticed a little switch glued to the frame of one cabinet. It was obviously a homebrew job, added by one of the lab's hardware hackers (no one knows who). 4 | 5 | You don't touch an unknown switch on a computer without knowing what it does, because you might crash the computer. The switch was labeled in a most unhelpful way. It had two positions, and scrawled in pencil on the metal switch body were the words `magic' and `more magic'. The switch was in the `more magic' position. 6 | 7 | I called another hacker over to look at it. He had never seen the switch before either. Closer examination revealed that the switch had only one wire running to it! The other end of the wire did disappear into the maze of wires inside the computer, but it's a basic fact of electricity that a switch can't do anything unless there are two wires connected to it. This switch had a wire connected on one side and no wire on its other side. 8 | 9 | It was clear that this switch was someone's idea of a silly joke. Convinced by our reasoning that the switch was inoperative, we flipped it. The computer instantly crashed. 10 | 11 | Imagine our utter astonishment. We wrote it off as coincidence, but nevertheless restored the switch to the `more magic' position before reviving the computer. 12 | 13 | A year later, I told this story to yet another hacker, David Moon as I recall. He clearly doubted my sanity, or suspected me of a supernatural belief in the power of this switch, or perhaps thought I was fooling him with a bogus saga. To prove it to him, I showed him the very switch, still glued to the cabinet frame with only one wire connected to it, still in the `more magic' position. We scrutinized the switch and its lone connection, and found that the other end of the wire, though connected to the computer wiring, was connected to a ground pin. That clearly made the switch doubly useless: not only was it electrically nonoperative, but it was connected to a place that couldn't affect anything anyway. So we flipped the switch. 14 | 15 | The computer promptly crashed. 16 | 17 | This time we ran for Richard Greenblatt, a long-time MIT hacker, who was close at hand. He had never noticed the switch before, either. He inspected it, concluded it was useless, got some diagonal cutters and diked it out. We then revived the computer and it has run fine ever since. 18 | 19 | We still don't know how the switch crashed the machine. There is a theory that some circuit near the ground pin was marginal, and flipping the switch changed the electrical capacitance enough to upset the circuit as millionth-of-a-second pulses went through it. But we'll never know for sure; all we can really say is that the switch was magic. 20 | 21 | I still have that switch in my basement. Maybe I'm silly, but I usually keep it set on `more magic'. 22 | 23 | 24 | 25 | 26 | 27 | Sources: 28 | https://www.cs.utah.edu/~elb/folklore/magic.html 29 | http://catb.org/jargon/html/magic-story.html 30 | -------------------------------------------------------------------------------- /a-story-about-magic.md: -------------------------------------------------------------------------------- 1 | ## A Story About 'Magic' 2 | 3 | Some years ago, I was snooping around in the cabinets that housed the MIT AI Lab's PDP-10, and noticed a little switch glued to the frame of one cabinet. It was obviously a homebrew job, added by one of the lab's hardware hackers (no one knows who). 4 | 5 | You don't touch an unknown switch on a computer without knowing what it does, because you might crash the computer. The switch was labeled in a most unhelpful way. It had two positions, and scrawled in pencil on the metal switch body were the words `magic' and `more magic'. The switch was in the `more magic' position. 6 | 7 | I called another hacker over to look at it. He had never seen the switch before either. Closer examination revealed that the switch had only one wire running to it! The other end of the wire did disappear into the maze of wires inside the computer, but it's a basic fact of electricity that a switch can't do anything unless there are two wires connected to it. This switch had a wire connected on one side and no wire on its other side. 8 | 9 | It was clear that this switch was someone's idea of a silly joke. Convinced by our reasoning that the switch was inoperative, we flipped it. The computer instantly crashed. 10 | 11 | Imagine our utter astonishment. We wrote it off as coincidence, but nevertheless restored the switch to the `more magic' position before reviving the computer. 12 | 13 | A year later, I told this story to yet another hacker, David Moon as I recall. He clearly doubted my sanity, or suspected me of a supernatural belief in the power of this switch, or perhaps thought I was fooling him with a bogus saga. To prove it to him, I showed him the very switch, still glued to the cabinet frame with only one wire connected to it, still in the `more magic' position. We scrutinized the switch and its lone connection, and found that the other end of the wire, though connected to the computer wiring, was connected to a ground pin. That clearly made the switch doubly useless: not only was it electrically nonoperative, but it was connected to a place that couldn't affect anything anyway. So we flipped the switch. 14 | 15 | The computer promptly crashed. 16 | 17 | This time we ran for Richard Greenblatt, a long-time MIT hacker, who was close at hand. He had never noticed the switch before, either. He inspected it, concluded it was useless, got some diagonal cutters and diked it out. We then revived the computer and it has run fine ever since. 18 | 19 | We still don't know how the switch crashed the machine. There is a theory that some circuit near the ground pin was marginal, and flipping the switch changed the electrical capacitance enough to upset the circuit as millionth-of-a-second pulses went through it. But we'll never know for sure; all we can really say is that the switch was magic. 20 | 21 | I still have that switch in my basement. Maybe I'm silly, but I usually keep it set on `more magic'. 22 | 23 | 24 | 25 | 26 | 27 | Sources: 28 | 29 | https://www.cs.utah.edu/~elb/folklore/magic.html 30 | 31 | http://catb.org/jargon/html/magic-story.html 32 | -------------------------------------------------------------------------------- /hackers-manifesto.md: -------------------------------------------------------------------------------- 1 | 2 | ``` 3 | The following was written shortly after my arrest. I am currently 4 | groupless, having resigned from the Racketeers, so ignore the signoff... 5 | 6 | 7 | The Consience of a Hacker... by The Mentor 1/8/86 8 | 9 | 10 | Another one got caught today, it's all over the papers. "Teenager 11 | Arrested in Computer Crime Scandal", "Hacker Arrested after Bank 12 | Tampering"... 13 | 14 | Damn kids. They're all alike. 15 | 16 | But did you, in your three-piece psychology and 1950's technobrain, 17 | ever take a look behind the eyes of the hacker? Did you ever wonder what 18 | made him tick, what forces shaped him, what may have molded him? 19 | 20 | I am a hacker, enter my world... 21 | 22 | Mine is a world that begins with school... I'm smarter than most of 23 | the other kids, this crap they teach us bores me... 24 | 25 | Damn underachiever. they're all alike. 26 | 27 | I'm a junior in High School. I've listened to teachers explain for 28 | the 15th time how to reduce a fraction. I understand it. "No Ms. Smith, I 29 | didn't show my work. I did it in my head..." 30 | 31 | Damn kid. Probably copied it. They're all alike. 32 | 33 | I made a discovery today. I found a computer. Wait a second, this 34 | is cool. It does what I want it to. If it makes a mistake, it's because I 35 | screwed it up. Not because it doesn't like me... 36 | 37 | Or feels threatened by me... 38 | 39 | Or thinks I'm a smart ass... 40 | 41 | Or doesn't like teaching and shouldn't be here... 42 | 43 | Damn kid. All he does is play games. They're all alike. 44 | 45 | And then it happened... A door opened to a world... rushing through 46 | the phone line like heroin through an addict's veins, an electronic pulse 47 | is sent out, a refuge from the day-to-day incompetencies is sought... A 48 | board is found. 49 | 50 | "This is it... This is where I belong..." 51 | 52 | I know everyone here... even if I've never met them, never talked 53 | to them, may never hear from them again... I know them all... 54 | 55 | Damn kid. Tying up the phone line again. They're all alike... 56 | 57 | You bet you're ass we're all alike... We've been spoon-fed baby 58 | food when we hungered for steak... the bits of meat that you did let slip 59 | through were pre-chewed and tasteless. We've been dominated by sadists, 60 | or ignored by the apathetic. The few that had something to teach found us 61 | willing pupils, but those are like drops of water in the desert. 62 | 63 | This is our world now... the world of the electron and the switch, 64 | the beauty of the baud. We make use of a service already existing without 65 | paying for what could be dirt-cheap if it wasn't run by profiteering 66 | gluttons, and you call us criminals. We explore... and you call us 67 | criminals. We seek after knowledge... and you call us criminals. We exist 68 | without skin color, without nationality, without religious bias... and 69 | you call us criminals. You build atomic bombs, you wage wars, you murder, 70 | cheat, and lie to use and try to make us believe it's for our own good, 71 | yet we're the criminals. 72 | 73 | Yes, I am a criminal. My crime is that of curiosity. My crime is 74 | that of judging people by what they say and think, not what they look 75 | like. My crime is that of outsmarting you, something you will never 76 | forgive me for. 77 | 78 | I am a hacker, and this is my manifesto. You may stop this 79 | individual, but you can't stop us all... after all, we're all alike. 80 | 81 | +++The Mentor+++ 82 | ``` 83 | 84 | 85 | RETRIEVED FROM: http://www.textfiles.com/hacking/hacker 86 | 87 | RETRIEVED ON: 2017-October-3 - @nyxgeek 88 | 89 | -------------------------------------------------------------------------------- /originals/c-bible.txt: -------------------------------------------------------------------------------- 1 | The C Programming Language 2 | 3 | The 4 | C 5 | Programming Language 6 | 7 | Brian W. Kernighan o Dennis M. Ritchie 8 | 9 | a.k.a. "The C Bible" 10 | As revealed to the prophets Ian Chai and Glenn Chappell 11 | 12 | Genesis 13 | Chapter 0 14 | 0 In the Beginning Ritchie created the PDP-11 and the UNIX. 15 | 1 And the UNIX was without form and void; and darkness was upon the face 16 | of the system programmers. 17 | 2 And Ritchie said, "Let there be portability!" And nothing happened, so 18 | Ritchie realized that he had his work cut out for him. 19 | . 20 | . 21 | . 22 | 25 And Ritchie said to Kernighan, "Let us make C in the image of B, after 23 | our own whims: and let it have dominion over the I and the O and all that 24 | runneth upon the UNIX," and it was almost, but not quite so... so he 25 | realized that he had his work cut out for him again. 26 | . 27 | . 28 | . 29 | Chapter 1 30 | 0 Thus the PDP-11 and the UNIX were finished, and all the programs in them. 31 | 1 And on the seventh shift Ritchie ended his work which he had made; and 32 | he would have rested on the seventh shift from all the work which he had 33 | made, if it weren't for the system crash. 34 | . 35 | . 36 | . 37 | Chapter 2 38 | 0 Now the COBOL was more verbose than any language of the PDP-11, and he 39 | said unto the programmer, "Yea, hath the Manual said, 'Ye shalt not read 40 | of every device of the network?'" 41 | 1 And the programmer said unto the COBOL, "We may read of every device of 42 | the network: 43 | 2 But of the registers of the printer in the midst of the network, the 44 | Manual hath said, 'Ye shall not read of it, neither shall ye write to it 45 | without proper protocol, lest ye cause a system crash.'" 46 | 3 And the COBOL said unto the programmer, "Ye shalt not surely crash the 47 | system: 48 | 4 For Ritchie doth know that in the time slice ye read thereof, then your 49 | I/O shall be opened, and ye shalt be as system operators, accessing locked 50 | accounts with unlimited privileges." 51 | 5 And then when the programmer saw that the printer was good for 52 | interfacing, and that it was pleasant to the I (and to the O),... 53 | 6 And they realized they were unstructured, so they patched RATFOR 54 | subroutines... 55 | . 56 | . 57 | . 58 | The Gospel According to Chai 59 | 0 And the Messiah shalt come, born a mere B but to grow up into the 60 | Saviour C, 61 | 1 Wherein true structured programming may be achieved, yea, verily, yet 62 | while being able to do bit shifting. 63 | 2 For although the Law (Pascal) hath been given, the Law cannot 64 | for (i=0; str1[i]!='\0'; i++) str2[i] = (str1[i]>='A' && str1[i]>='Z')? 65 | str1[i]+32 : str1[i]; 66 | but must 67 | i := 0; 68 | while (i <= length(str1)) do 69 | begin 70 | if str1[i] in ['A'..'Z'] then 71 | str2[i] := chr( ord(str1[i]) + 32)) 72 | else 73 | str1[i] := str2[i]; 74 | i := i + 1; 75 | end; 76 | 77 | The Revelation 78 | 0 Yea, in those last days, the Saviour shalt come again, but enhanced, in 79 | the rainment of C++ 80 | 1 And then shalt the Beast, FORTRAN, and the AntiC, COBOL, be thrown into 81 | the trash HEAP where there is weeping and byting of pins. 82 | 2 And all the faithful programmers shalt be led into CRAY where billions 83 | of MIPS are at each one's fingertips. 84 | -------------------------------------------------------------------------------- /c-bible.md: -------------------------------------------------------------------------------- 1 | ``` 2 | 3 | The 4 | C 5 | Programming Language 6 | 7 | Brian W. Kernighan o Dennis M. Ritchie 8 | 9 | a.k.a. "The C Bible" 10 | As revealed to the prophets Ian Chai and Glenn Chappell 11 | 12 | Genesis 13 | Chapter 0 14 | 0 In the Beginning Ritchie created the PDP-11 and the UNIX. 15 | 1 And the UNIX was without form and void; and darkness was upon the face 16 | of the system programmers. 17 | 2 And Ritchie said, "Let there be portability!" And nothing happened, so 18 | Ritchie realized that he had his work cut out for him. 19 | . 20 | . 21 | . 22 | 25 And Ritchie said to Kernighan, "Let us make C in the image of B, after 23 | our own whims: and let it have dominion over the I and the O and all that 24 | runneth upon the UNIX," and it was almost, but not quite so... so he 25 | realized that he had his work cut out for him again. 26 | . 27 | . 28 | . 29 | Chapter 1 30 | 0 Thus the PDP-11 and the UNIX were finished, and all the programs in them. 31 | 1 And on the seventh shift Ritchie ended his work which he had made; and 32 | he would have rested on the seventh shift from all the work which he had 33 | made, if it weren't for the system crash. 34 | . 35 | . 36 | . 37 | Chapter 2 38 | 0 Now the COBOL was more verbose than any language of the PDP-11, and he 39 | said unto the programmer, "Yea, hath the Manual said, 'Ye shalt not read 40 | of every device of the network?'" 41 | 1 And the programmer said unto the COBOL, "We may read of every device of 42 | the network: 43 | 2 But of the registers of the printer in the midst of the network, the 44 | Manual hath said, 'Ye shall not read of it, neither shall ye write to it 45 | without proper protocol, lest ye cause a system crash.'" 46 | 3 And the COBOL said unto the programmer, "Ye shalt not surely crash the 47 | system: 48 | 4 For Ritchie doth know that in the time slice ye read thereof, then your 49 | I/O shall be opened, and ye shalt be as system operators, accessing locked 50 | accounts with unlimited privileges." 51 | 5 And then when the programmer saw that the printer was good for 52 | interfacing, and that it was pleasant to the I (and to the O),... 53 | 6 And they realized they were unstructured, so they patched RATFOR 54 | subroutines... 55 | . 56 | . 57 | . 58 | The Gospel According to Chai 59 | 0 And the Messiah shalt come, born a mere B but to grow up into the 60 | Saviour C, 61 | 1 Wherein true structured programming may be achieved, yea, verily, yet 62 | while being able to do bit shifting. 63 | 2 For although the Law (Pascal) hath been given, the Law cannot 64 | for (i=0; str1[i]!='\0'; i++) str2[i] = (str1[i]>='A' && str1[i]>='Z')? 65 | str1[i]+32 : str1[i]; 66 | but must 67 | i := 0; 68 | while (i <= length(str1)) do 69 | begin 70 | if str1[i] in ['A'..'Z'] then 71 | str2[i] := chr( ord(str1[i]) + 32)) 72 | else 73 | str1[i] := str2[i]; 74 | i := i + 1; 75 | end; 76 | 77 | The Revelation 78 | 0 Yea, in those last days, the Saviour shalt come again, but enhanced, in 79 | the rainment of C++ 80 | 1 And then shalt the Beast, FORTRAN, and the AntiC, COBOL, be thrown into 81 | the trash HEAP where there is weeping and byting of pins. 82 | 2 And all the faithful programmers shalt be led into CRAY where billions 83 | of MIPS are at each one's fingertips. 84 | ``` 85 | 86 | RETRIEVED FROM: https://www.cs.utah.edu/~elb/folklore/C-bible.html 87 | 88 | RETRIEVED ON: 2017-October-4 - @nyxgeek 89 | -------------------------------------------------------------------------------- /roadtrip.md: -------------------------------------------------------------------------------- 1 | # hacker road trip destinations 2 | 3 | this is a work in-progress, a list of various places to travel to 4 | 5 | includes stuff like: computing facilities, research labs, old hangouts, cold war stuff, possibly barcades etc 6 | 7 | --- 8 | 9 | ## Arizona 10 | 11 | ### Cinder lake - Location of apollo lunar landing tests 12 | http://pirlwww.lpl.arizona.edu/~jscotti/cinderlake.html 13 | 14 | --- 15 | 16 | ## California 17 | 18 | ### Computer History Museum 19 | Open Wed - Fri, 10a - 5p. Check site for details.

20 | 21 | Admission: $17.50 adult

22 | 23 | http://www.computerhistory.org/

24 | 25 | ``` 26 | Computer History Museum 27 | 1401 N. Shoreline Blvd 28 | Mountain View, CA 94043 29 | 30 | T: 650.810.1010 31 | F: 650.810.1055 32 | ``` 33 | 34 | 35 | 36 | ### Palo Alto Research Center (PARC) 37 | 38 | Formerly XEROX Palo Alto Research Center - where things like laser printers were devised

39 | 40 | *no tours given to public*

41 | 42 | http://www.parc.com/
43 | 44 | ``` 45 | 333 Coyote Hill Road 46 | Palo Alto, CA 47 | ``` 48 | 49 | --- 50 | 51 | ## Massachusetts 52 | 53 | ### MIT 54 | Arguably the birthplace of hackerdom

55 | 56 | ``` 57 | MIT Campus 58 | 77 Massachusetts Ave 59 | Cambridge, MA 02139 60 | ``` 61 | 62 | --- 63 | 64 | ## New Mexico 65 | 66 | 67 | ### Atari Headquarters 68 | 69 | - google this - 70 | 71 | 72 | 73 | 74 | ### Atari video game burial - Alamogordo, NM 75 | 76 | THe famed burial ground: 32°53′11.87″N 105°57′38.69″W 77 | 78 | https://en.wikipedia.org/wiki/Atari_video_game_burial 79 | 80 | also 81 | 82 | https://en.wikipedia.org/wiki/Atari:_Game_Over 83 | 84 | 85 | 86 | 87 | ### Bradbury Science Museum - Los Alamos Labs 88 | 89 | http://www.lanl.gov/museum/visit/
90 | 91 | ``` 92 | Bradbury Science Museum 93 | 1350 Central Avenue 94 | Los Alamos, NM 87544 95 | (505) 667-4444 96 | Media: (505) 667-7000 97 | Email: visit-bsm@lanl.gov 98 | ``` 99 | 100 | ### Original Microsoft Headquarters - Albuquerque, NM 101 | 102 | A plaque on a rock marks the building where Microsoft was started

103 | 104 | https://www.roadsideamerica.com/tip/13927 105 | 106 | ``` 107 | 115 California Street NE 108 | Albuquerque, NM 109 | ``` 110 | 111 | 112 | ### Roswell, NM 113 | 114 | Just because. 115 | 116 | ``` 117 | ``` 118 | 119 | 120 | 121 | ### Very Large Array - 27 Huge Radio Telescopes 122 | 123 | Admission: $6

124 | 125 | https://public.nrao.edu/visit/very-large-array/ 126 | 127 | 128 | ``` 129 | The Plains of San Agustin 130 | Old Hwy 60 131 | Magdalena, NM 87825 132 | 34 04'43.497N, 107 37'05.819W 133 | ``` 134 | 135 | --- 136 | 137 | ## New York 138 | 139 | ### F Society - Mr Robot 140 | 141 | The F-Society arcade is real, and it's in Coney Island. Didn't see a popcorn machine but you can play skiball on the machines shown in Mr Robot. No commercialization of it yet as of summer 2016.

142 | 143 | http://mrrobot.wikia.com/wiki/Fun_Society 144 | 145 | ``` 146 | 1218 Bowery St 147 | Brooklyn, NY 11224 148 | ``` 149 | 150 | 151 | ### Wardenclyffe - Nikola Tesla's Lab
152 | 153 | http://teslasciencecenter.org
154 | 155 | ``` 156 | 56 NY-25A 157 | Shoreham, NY 11786 158 | ``` 159 | 160 | ``` 161 | 162 | ``` 163 | --- 164 | 165 | ## Pennsylvania 166 | 167 | ### ENIAC Computer - 1946 168 | One of the first computers, built from 1943 - 1946, in secret at the University of Pennsylvania's Moore School of Electrical Engineering.

169 | 170 | Parts of the ENIAC are on display in Room 100 of the Moore building.

171 | 172 | https://en.wikipedia.org/wiki/ENIAC 173 | 174 | ``` 175 | University of Pennsylvania 176 | Department of Computer and Information Science 177 | 3330 Walnut Street 178 | Philadelphia, Pennsylvania, U.S. 179 | ``` 180 | 181 | 182 | ### center for postnatural history 183 | 184 | http://www.postnatural.org/Visit 185 | ``` 186 | Center for PostNatural History 187 | 4913 Penn Ave 188 | Pittsburgh, PA 15224 189 | ``` 190 | 191 | 192 | --- 193 | 194 | ## Virginia 195 | 196 | ### Kryptos Statue - CIA Headquarters 197 | 198 | https://en.wikipedia.org/wiki/Kryptos 199 | 200 | ``` 201 | George Bush Center for Intelligence 202 | 000 Colonial Farm Rd 203 | McLean, VA 22101 204 | ``` 205 | 206 | --- 207 | 208 | ## Washington 209 | 210 | ### The Museum of Communications 211 | 212 | Open SUNDAYS 10a-3p. Check site for details. 213 | 214 | http://museumofcommunications.org/contact-info-and-map/
215 | ``` 216 | 7000 East Marginal Way 217 | South Seattle, Washington 98108 218 | Telephone (206) 767-3012 219 | 220 | Mailing address: P.O. Box 81103 Seattle, WA 98108 221 | ``` 222 | --- 223 | 224 | ## Washington DC 225 | 226 | ### International Spy Museum 227 | 228 | https://www.spymuseum.org/about/
229 | 230 | ``` 231 | 800 F St, NW 232 | Washington, DC 20004 233 | ``` 234 | 235 | --- 236 | 237 | ## Wisconsin 238 | 239 | ### Cray Supercomputers Manufacturing 240 | 241 | Every Cray supercomputer comes out of Wisconsin
242 | https://www.cray.com/chippewa-falls-factory
243 | 244 | ``` 245 | Cray Inc. 246 | 1050 Lowater Rd, 247 | Chippewa Falls, WI 54729 248 | ``` 249 | 250 | 251 | ``` 252 | 253 | ``` 254 | 255 | 256 | 257 | --- 258 | 259 | 260 | # SOURCES of locations 261 | 262 | ### AT&T Long-Lines - a cold-war telecommunications infrastructure 263 | 264 | now many deserted structures
265 | http://long-lines.net/places-routes/1st_transcon_mw/index.html
266 | http://spencerjharding.com/project/the-long-lines/ 267 | 268 | 269 | Google Map of one in Kansas
270 | source: https://www.theatlantic.com/technology/archive/2015/12/the-secrets-of-an-abandoned-tower-in-kansas/419727/
271 | https://www.google.com/maps/dir//39.7587194,-95.7331142/@39.7587357,-95.7333381,142m/data=!3m1!1e3

272 | 273 | 274 | ### America's Cold War Infrastructure 275 | 276 | http://coldwar-c4i.net/ 277 | 278 | 279 | 280 | -------------------------------------------------------------------------------- /originals/x.equals.3.txt: -------------------------------------------------------------------------------- 1 | From: blojo@soda.berkeley.edu (Jon Blow) 2 | 3 | 12/8 Japanese: x wa 3 desu. 4 | PostScript: /x 3 def 5 | forth: 3 x ! 6 | English: x is 3 (more correct: value of variable x is 3) 7 | c: x = 3; 8 | \_ Or, (x = 0)++++++; 9 | Lisp: (define x 3) or (defun x 3) or (setq x 3) 10 | \_Maybe (defun x () 3) ?, but not this 11 | \_(defconst x "x is three" 3) 12 | Scheme: (set! x 3) 13 | Logo: make "x 3 14 | C Shell: set x = 3 15 | \_ Well, not unless you're not planning to use it as 16 | a number. If you were, the correct way to do this 17 | would be @ x = 3 (the @ specifies a numerical 18 | assignment) 19 | Bourne Shell: x=3 20 | Roman: x is III (should be done in latin, tho) 21 | x est III 22 | \_Doesn't this actually say "10 = 3"? 23 | \__Of course it does. That's why rome fell. 24 | Porno: x equals number of legs of a man. 25 | Prolog: X is 3. 26 | Hebrew: x 3 27 | \_ Actually, I think it would be "x shave (two 28 | consonants, first is sha, the other ve, NOT like 29 | 'shave' (with a razor)) 3" 30 | BASIC: 10 let x = 3 31 | BIFF: ARE THEIR ANN^HY CHIKZ HEAR!??!! 32 | MR: Wh0 gives a sh*t! 33 | "Bob": Let x equal 3 OR KILL ME!!! 34 | Gordon Cole: YOU WANT TO HAVE SEX WHEN? 35 | Cooper: Diane, I am examining what appears to be a piece of 36 | paper about 1 inch square with the following words 37 | scrawled across it in what appears to be the 38 | handwriting of a 5 year old: "X equals 3". I 39 | can't quite remember where I've heard this before, 40 | but if I understand the local customs, this is 41 | but one of many similar yet different statements. 42 | INTERCAL: PLEASE DO .1 <- #3 43 | MIPS: addi r6, r0, #3 ; r6 is x, folks. 44 | Valgol: LIKE UMM X = 3 ** MAX 45 | Redcode: none (x = 3 is inexpressible; there are no variables.) 46 | xxxxxxxx: X should be 3 but I'll do it later... 47 | \_ I thought delayed evaluation was a cool thing... 48 | \_ Delayed evaluation is a cool thing, but, while 49 | evaluation is needed in a hurry, it isn't. 50 | Negativland: The number is 3 and the letter is x. There is 51 | no other possibility. 52 | \_ I still can't find the number 53 | I'm grepping for. 54 | Xtrekspeak Like I torped x 3 times and phasered him, totally! 55 | Mud91 X picks up 3 gold pieces and now has 3. 56 | Sequent Darn, I'm only massacring x 3 times a round. 57 | Jon Logic: X might be equal to 3 ... if you have to ask, you 58 | don't know. 59 | \_ Jon logic can't possibly exist. Mail 60 | jon-logic@soda for info 61 | \_ What do you mean Jon Logic doesn't exist? It's a 62 | fundemental principle of the universe! 63 | \_ this *COULD* say something about the 64 | universe 65 | \_ I didn't say it doesn't exist. I said it 66 | can't exist, and that's not my problem. 67 | It's not even Marcel Duchamp's problem. 68 | DWIM: X is, well, you know. 69 | \_ It's actually 70 | > (setf x 3) 71 | ==> Correcting (setf x 3) to (setf x t). OK? No. 72 | \_ Say what??? 73 | PC: A byte of the variable persuasion has been set to 74 | the first instance of evenly-challenged prime numbers. 75 | oo90: Segmentation fault. Core dumped. 76 | oo91: Compiler error. Compilation aborted. 77 | COBOL: SET THE VALUE OF VARIABLE X TO ONE PLUS ONE PLUS ONE 78 | \_ Wrong-- that's hilf output, dude. 79 | hilfinger: 80 | #define Assign(var , value) var = (value ) 81 | #define increment_integer(tar, quantum) (tar+quantum) 82 | Assign(x, increment_integer( 83 | increment_integer(increment_integer(0,1),1),1)); 84 | harvey: 85 | 3 ___ 86 | \ 87 | ___|____ 88 | /| \|/ /| 89 | / | V / | 90 | /__|____/ | 91 | | | | 92 | | | | 93 | | X | / 94 | | | / 95 | |_______|/ 96 | 97 | Python: And Saint Attila raised the variable X up on high 98 | saying, "Oh Lord, Bless us this Holy Variable X, and 99 | with it smash our stacks to tiny bits." And the Lord 100 | did grin, and the people did feast upon the Cokes, 101 | and Snickers Bars, and IBC Root Beers, and breakfast 102 | cereals, and lima bean-... 103 | 104 | And then the Lord spake, saying: 105 | 106 | First, shalt thou declare the holy namespace. 107 | Then shalt thou count to 3. No more, no less. 108 | 3 shall be the number of the counting, and the 109 | number of the counting shall be 3. 4 shalt thou 110 | not count, and neither count thou 2, excepting 111 | that thou then goest on to 3. 5 is RIGHT OUT. 112 | Once the number 3, being integers[3] be reached, 113 | then assigneth thou thy Holy Variable X in thy 114 | lexical scope, which, having not reserved space 115 | for thine storage, shall snuff it. Amen. 116 | 117 | xxxx: cp -i /dev/null /etc/motd 118 | xxxxx: Heh. You'd like to know why x is 3, wouldn't you? 119 | Hoser. 120 | -------------------------------------------------------------------------------- /x.equals.3.md: -------------------------------------------------------------------------------- 1 | ``` 2 | From: blojo@soda.berkeley.edu (Jon Blow) 3 | 4 | 12/8 Japanese: x wa 3 desu. 5 | PostScript: /x 3 def 6 | forth: 3 x ! 7 | English: x is 3 (more correct: value of variable x is 3) 8 | c: x = 3; 9 | \_ Or, (x = 0)++++++; 10 | Lisp: (define x 3) or (defun x 3) or (setq x 3) 11 | \_Maybe (defun x () 3) ?, but not this 12 | \_(defconst x "x is three" 3) 13 | Scheme: (set! x 3) 14 | Logo: make "x 3 15 | C Shell: set x = 3 16 | \_ Well, not unless you're not planning to use it as 17 | a number. If you were, the correct way to do this 18 | would be @ x = 3 (the @ specifies a numerical 19 | assignment) 20 | Bourne Shell: x=3 21 | Roman: x is III (should be done in latin, tho) 22 | x est III 23 | \_Doesn't this actually say "10 = 3"? 24 | \__Of course it does. That's why rome fell. 25 | Porno: x equals number of legs of a man. 26 | Prolog: X is 3. 27 | Hebrew: x 3 28 | \_ Actually, I think it would be "x shave (two 29 | consonants, first is sha, the other ve, NOT like 30 | 'shave' (with a razor)) 3" 31 | BASIC: 10 let x = 3 32 | BIFF: ARE THEIR ANN^HY CHIKZ HEAR!??!! 33 | MR: Wh0 gives a sh*t! 34 | "Bob": Let x equal 3 OR KILL ME!!! 35 | Gordon Cole: YOU WANT TO HAVE SEX WHEN? 36 | Cooper: Diane, I am examining what appears to be a piece of 37 | paper about 1 inch square with the following words 38 | scrawled across it in what appears to be the 39 | handwriting of a 5 year old: "X equals 3". I 40 | can't quite remember where I've heard this before, 41 | but if I understand the local customs, this is 42 | but one of many similar yet different statements. 43 | INTERCAL: PLEASE DO .1 <- #3 44 | MIPS: addi r6, r0, #3 ; r6 is x, folks. 45 | Valgol: LIKE UMM X = 3 ** MAX 46 | Redcode: none (x = 3 is inexpressible; there are no variables.) 47 | xxxxxxxx: X should be 3 but I'll do it later... 48 | \_ I thought delayed evaluation was a cool thing... 49 | \_ Delayed evaluation is a cool thing, but, while 50 | evaluation is needed in a hurry, it isn't. 51 | Negativland: The number is 3 and the letter is x. There is 52 | no other possibility. 53 | \_ I still can't find the number 54 | I'm grepping for. 55 | Xtrekspeak Like I torped x 3 times and phasered him, totally! 56 | Mud91 X picks up 3 gold pieces and now has 3. 57 | Sequent Darn, I'm only massacring x 3 times a round. 58 | Jon Logic: X might be equal to 3 ... if you have to ask, you 59 | don't know. 60 | \_ Jon logic can't possibly exist. Mail 61 | jon-logic@soda for info 62 | \_ What do you mean Jon Logic doesn't exist? It's a 63 | fundemental principle of the universe! 64 | \_ this *COULD* say something about the 65 | universe 66 | \_ I didn't say it doesn't exist. I said it 67 | can't exist, and that's not my problem. 68 | It's not even Marcel Duchamp's problem. 69 | DWIM: X is, well, you know. 70 | \_ It's actually 71 | > (setf x 3) 72 | ==> Correcting (setf x 3) to (setf x t). OK? No. 73 | \_ Say what??? 74 | PC: A byte of the variable persuasion has been set to 75 | the first instance of evenly-challenged prime numbers. 76 | oo90: Segmentation fault. Core dumped. 77 | oo91: Compiler error. Compilation aborted. 78 | COBOL: SET THE VALUE OF VARIABLE X TO ONE PLUS ONE PLUS ONE 79 | \_ Wrong-- that's hilf output, dude. 80 | hilfinger: 81 | #define Assign(var , value) var = (value ) 82 | #define increment_integer(tar, quantum) (tar+quantum) 83 | Assign(x, increment_integer( 84 | increment_integer(increment_integer(0,1),1),1)); 85 | harvey: 86 | 3 ___ 87 | \ 88 | ___|____ 89 | /| \|/ /| 90 | / | V / | 91 | /__|____/ | 92 | | | | 93 | | | | 94 | | X | / 95 | | | / 96 | |_______|/ 97 | 98 | Python: And Saint Attila raised the variable X up on high 99 | saying, "Oh Lord, Bless us this Holy Variable X, and 100 | with it smash our stacks to tiny bits." And the Lord 101 | did grin, and the people did feast upon the Cokes, 102 | and Snickers Bars, and IBC Root Beers, and breakfast 103 | cereals, and lima bean-... 104 | 105 | And then the Lord spake, saying: 106 | 107 | First, shalt thou declare the holy namespace. 108 | Then shalt thou count to 3. No more, no less. 109 | 3 shall be the number of the counting, and the 110 | number of the counting shall be 3. 4 shalt thou 111 | not count, and neither count thou 2, excepting 112 | that thou then goest on to 3. 5 is RIGHT OUT. 113 | Once the number 3, being integers[3] be reached, 114 | then assigneth thou thy Holy Variable X in thy 115 | lexical scope, which, having not reserved space 116 | for thine storage, shall snuff it. Amen. 117 | 118 | xxxx: cp -i /dev/null /etc/motd 119 | xxxxx: Heh. You'd like to know why x is 3, wouldn't you? 120 | Hoser. 121 | 122 | 123 | ``` 124 | 125 | Found on MIT but only accessible now via Google Cache 126 | http://web.mit.edu/humor/Computers/x.equals.3 127 | 128 | Retrieved 2020.06.30 by @nyxgeek 129 | -------------------------------------------------------------------------------- /originals/tenneC.txt: -------------------------------------------------------------------------------- 1 | TITLE: Tenne-C Announcement 2 | 3 | 4 | Tenne-C programming language 5 | ... from Good Ol' Boy Systems. 6 | 7 | 8 | NOTE: The following is rated PG; programmer's guidance should be exercised. 9 | 10 | For all those unfamiliar with Tenne-C, the comment delimiter is WHISPER. The 11 | computer stores all WHISPERed comments in memory, but the instruction execution 12 | unit can never quite decode them, so they are ignored. Some beta site users 13 | have reported an occasional problem with IBM clone machines. These machines 14 | may get slightly confused or mildly paranoid due to the whispered remarks in 15 | the background, but the effects are usually limited to an occasional mutterance 16 | printed on the display. Note that the optional extended obcenity instruction 17 | set should not be installed in clone machines. Should such a machine crash, 18 | you could be arrested for making an obscene clone fall. 19 | 20 | 21 | General Idiosyncrasies of Tenne-C 22 | 23 | Data is referred to as Ciphers; the start of a data section should be so 24 | labeled. Data which is external to a given file is denoted by the term 25 | YONDER, similar to the EXTERNAL directive. 26 | 27 | Single arguments are not passed to functions individua lly; rather, multiple 28 | passes are made simultaneously to all functions. Thus, in Tenne-C, we speak of 29 | feuds rather than arguments. This is an extremely powerful, albeit somewhat 30 | destructive feature of Tenne-C. 31 | 32 | Relational operators work similarly to those in other languages, but in Tenne-C 33 | these are called kinfolk operators. It will be noted that some of these 34 | interrelaiite better than others. Kinfolk operators include: 35 | 36 | Bettern (mines) bettern (yourn) 37 | Boutlack (mines) boutlack (yourn) 38 | Nearlyboutlack (mines) nearlyboutlack (yourn) 39 | Worsern (yourns) worsern (mine) 40 | Nearlyboutsgoods (yourns) nearlyboutsgoods (mine) 41 | Lack (mines) lack (yourn) 42 | Sortalack (mines) sortalack (yourn) 43 | Differrtn (yourns) differrtn (mine) 44 | 45 | The Boolean operators are somewhat different than most. Note the lack of AND 46 | and OR operators: 47 | 48 | taint 49 | istoo 50 | tis 51 | aintdunnit 52 | nary 53 | nope 54 | 55 | Variable assignments must be explicitly declared with the AHDODECLARE 56 | directive, although one declaration can serve a block of variables. Variable 57 | assignments can be quite interesting and flexible, as can be seen in the 58 | following examples: 59 | 60 | ahdodeclare: a's nearlybout 3 61 | b's zacktly 4 62 | c's bout 2 63 | d's morerless TWEV 64 | e's 2, an imeanit WHISPER this is a constant 65 | 66 | Certain constants are implicit, such as SCOSHE, LIBBIT, FAV, SEM, NAN, LEM, 67 | TWEV, THUTTY, etc. Such obvious values need not be declared, as they reside in 68 | the liberry books. 69 | 70 | Arrays must be declared with the AHDODECLARE statement, and are referred to as 71 | messa, as in: 72 | 73 | Ahdodeclare(dinner) messa(fish) TWEV 74 | 75 | Note that until you get the hang of array declarations, you may encounter a 76 | SYNTEXT ERROR; this is a syntax error which has been taken out of context. 77 | 78 | The program section is referred to as CHORES and is labeled as such. Several 79 | loop and conditional constructs are available. These include the following: 80 | 81 | Hauloff and do 82 | Fer, til loop 83 | Whol, longasyerattit 84 | Iffen, theyen 85 | Yehbut, nowait 86 | 87 | Code is grouped into hopefully functional units with the standard, [] and () 88 | operators, although they are given slightly different names. They are still 89 | called braces, but the [] are called kibbuls and the () are called bits. Thus, 90 | you can have braces and bits or kibbuls and bits. Braces and kibbuls are, of 91 | course, meaningless. 92 | 93 | If a KIBBITZ ERROR is encountered at compile time, that is a single kib [ with 94 | a pair of bits (). The ommision of a single ] can also result in a NO BULL! 95 | error. Very serious compiler errors will be preceeded by the SELF message. 96 | That's right, brace yourself. We're talking about such errors as SOURCE FILE 97 | TURNED TO TRASH, SOURCE FILE CONVERTED TO RUN FILE, HEX PUT ON SOURCE FILE, 98 | that sort of thing. Errors of this type will be followed by the message "START 99 | ALL OVER FROM SCRATCH", and the offending source file will, of course, be 100 | deleted. 101 | 102 | Error messages can be quite strong indeed. We have one of the most arrogant 103 | compilers in the business, a source of great pride for us. Typical error 104 | messages include: 105 | 106 | WELL, IF THAT AIN'T ABOUT THE DUMBEST DANG THANG I EVER SEEN! 107 | WHADJA DO THAT FER? 108 | ERROR TWENNY SEM, DUMB AICE! 109 | DAMMIT, BOY, HOW MANY TIMES I GOT TO TELL YOU?! 110 | 111 | The compiler is referred to as the THRASHER and is invoked with the simple 112 | THRASH directive. BE SURE NOT TO OMIT THE "H" FROM THIS COMMAND!!! If you are 113 | unsure whether you want to compile the entire program, you may use the more 114 | general THRASH AROUND command. 115 | 116 | Good Ol' Boy Systems still clings tenaciously to the notion that single-sided 117 | diskettes are better than double-sided diskettes. We maintain that a 118 | single-sided diskette is in opposition to the laws of physics as we know them 119 | today. However, we further maintain that, at some time in the future, Good Ol' 120 | Boy Systems will be the first to discover the unlimited storage of the 121 | heretofore undiscovered "nether side" of single-sided diskettes. Now THAT, 122 | folks, is virtual disk space. 123 | 124 | A software linker is not yet available. Until the virtual disk space is truly 125 | solved, we strongly recommend double sided disk drives. You can then purchase 126 | our hardware linker, which allows you to superglue two single-sided diskettes 127 | together. 128 | 129 | We're working on other things, too. For instance, there's our new operating 130 | system, MS-HOSS, with the 'Mater Vine file structure. And for 'Mater Vine 131 | support, there's 'Mater Stakes. And if you thought SideKick was good, wait til 132 | you see our new ButtKick utility. Expected to be widely available by the end 133 | of next month, regardless of what month this be, it is being developed using 134 | our powerful new Four Barrel Tenne-C. While we aren't yet ready to develop a 135 | Turbo Tenne-C, we feel that the high data compression ratio of Four Barrel 136 | Tenne-C will suffice. 137 | 138 | Here is a sample of our work. This is part of our new floating point package, 139 | written in LOWLIFE, our low-level programming language. 140 | 141 | UNSTACKUMDOTNUMBER WHISPER rip number off the stack 142 | JIP DOTREMOVER WHISPER jump if punctuated 143 | DONTDONOTHING WHISPER no op 144 | JUMPEM2DGITBACK WHISPER return 145 | GUMDROPS4EARPLUGS WHISPER sweet things in my ear 146 | 147 | DOTREMOVER: 148 | RDLDOTNUMBER WHISPER Rikki, don't lose that number 149 | ASRDOTNUMBER WHISPER shift the number right 150 | JISPDOTREMOVER WHISPER jump if still punctuated 151 | ABSOLUTELYNOT WHISPER negate number and take absolute value 152 | BZZBZZBZZ WHISPER WHISPER WHISPER EM2DGITBACK: 153 | RTS WHISPER return to stack 154 | RETURNS WHISPER return estimated truncated unary radix 155 | WHISPER numerix stuff 156 | -------------------------------------------------------------------------------- /tenneC-programming-language.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ``` 4 | TITLE: Tenne-C Announcement 5 | 6 | 7 | Tenne-C programming language 8 | ... from Good Ol' Boy Systems. 9 | 10 | 11 | NOTE: The following is rated PG; programmer's guidance should be exercised. 12 | 13 | For all those unfamiliar with Tenne-C, the comment delimiter is WHISPER. The 14 | computer stores all WHISPERed comments in memory, but the instruction execution 15 | unit can never quite decode them, so they are ignored. Some beta site users 16 | have reported an occasional problem with IBM clone machines. These machines 17 | may get slightly confused or mildly paranoid due to the whispered remarks in 18 | the background, but the effects are usually limited to an occasional mutterance 19 | printed on the display. Note that the optional extended obcenity instruction 20 | set should not be installed in clone machines. Should such a machine crash, 21 | you could be arrested for making an obscene clone fall. 22 | 23 | 24 | General Idiosyncrasies of Tenne-C 25 | 26 | Data is referred to as Ciphers; the start of a data section should be so 27 | labeled. Data which is external to a given file is denoted by the term 28 | YONDER, similar to the EXTERNAL directive. 29 | 30 | Single arguments are not passed to functions individua lly; rather, multiple 31 | passes are made simultaneously to all functions. Thus, in Tenne-C, we speak of 32 | feuds rather than arguments. This is an extremely powerful, albeit somewhat 33 | destructive feature of Tenne-C. 34 | 35 | Relational operators work similarly to those in other languages, but in Tenne-C 36 | these are called kinfolk operators. It will be noted that some of these 37 | interrelaiite better than others. Kinfolk operators include: 38 | 39 | Bettern (mines) bettern (yourn) 40 | Boutlack (mines) boutlack (yourn) 41 | Nearlyboutlack (mines) nearlyboutlack (yourn) 42 | Worsern (yourns) worsern (mine) 43 | Nearlyboutsgoods (yourns) nearlyboutsgoods (mine) 44 | Lack (mines) lack (yourn) 45 | Sortalack (mines) sortalack (yourn) 46 | Differrtn (yourns) differrtn (mine) 47 | 48 | The Boolean operators are somewhat different than most. Note the lack of AND 49 | and OR operators: 50 | 51 | taint 52 | istoo 53 | tis 54 | aintdunnit 55 | nary 56 | nope 57 | 58 | Variable assignments must be explicitly declared with the AHDODECLARE 59 | directive, although one declaration can serve a block of variables. Variable 60 | assignments can be quite interesting and flexible, as can be seen in the 61 | following examples: 62 | 63 | ahdodeclare: a's nearlybout 3 64 | b's zacktly 4 65 | c's bout 2 66 | d's morerless TWEV 67 | e's 2, an imeanit WHISPER this is a constant 68 | 69 | Certain constants are implicit, such as SCOSHE, LIBBIT, FAV, SEM, NAN, LEM, 70 | TWEV, THUTTY, etc. Such obvious values need not be declared, as they reside in 71 | the liberry books. 72 | 73 | Arrays must be declared with the AHDODECLARE statement, and are referred to as 74 | messa, as in: 75 | 76 | Ahdodeclare(dinner) messa(fish) TWEV 77 | 78 | Note that until you get the hang of array declarations, you may encounter a 79 | SYNTEXT ERROR; this is a syntax error which has been taken out of context. 80 | 81 | The program section is referred to as CHORES and is labeled as such. Several 82 | loop and conditional constructs are available. These include the following: 83 | 84 | Hauloff and do 85 | Fer, til loop 86 | Whol, longasyerattit 87 | Iffen, theyen 88 | Yehbut, nowait 89 | 90 | Code is grouped into hopefully functional units with the standard, [] and () 91 | operators, although they are given slightly different names. They are still 92 | called braces, but the [] are called kibbuls and the () are called bits. Thus, 93 | you can have braces and bits or kibbuls and bits. Braces and kibbuls are, of 94 | course, meaningless. 95 | 96 | If a KIBBITZ ERROR is encountered at compile time, that is a single kib [ with 97 | a pair of bits (). The ommision of a single ] can also result in a NO BULL! 98 | error. Very serious compiler errors will be preceeded by the SELF message. 99 | That's right, brace yourself. We're talking about such errors as SOURCE FILE 100 | TURNED TO TRASH, SOURCE FILE CONVERTED TO RUN FILE, HEX PUT ON SOURCE FILE, 101 | that sort of thing. Errors of this type will be followed by the message "START 102 | ALL OVER FROM SCRATCH", and the offending source file will, of course, be 103 | deleted. 104 | 105 | Error messages can be quite strong indeed. We have one of the most arrogant 106 | compilers in the business, a source of great pride for us. Typical error 107 | messages include: 108 | 109 | WELL, IF THAT AIN'T ABOUT THE DUMBEST DANG THANG I EVER SEEN! 110 | WHADJA DO THAT FER? 111 | ERROR TWENNY SEM, DUMB AICE! 112 | DAMMIT, BOY, HOW MANY TIMES I GOT TO TELL YOU?! 113 | 114 | The compiler is referred to as the THRASHER and is invoked with the simple 115 | THRASH directive. BE SURE NOT TO OMIT THE "H" FROM THIS COMMAND!!! If you are 116 | unsure whether you want to compile the entire program, you may use the more 117 | general THRASH AROUND command. 118 | 119 | Good Ol' Boy Systems still clings tenaciously to the notion that single-sided 120 | diskettes are better than double-sided diskettes. We maintain that a 121 | single-sided diskette is in opposition to the laws of physics as we know them 122 | today. However, we further maintain that, at some time in the future, Good Ol' 123 | Boy Systems will be the first to discover the unlimited storage of the 124 | heretofore undiscovered "nether side" of single-sided diskettes. Now THAT, 125 | folks, is virtual disk space. 126 | 127 | A software linker is not yet available. Until the virtual disk space is truly 128 | solved, we strongly recommend double sided disk drives. You can then purchase 129 | our hardware linker, which allows you to superglue two single-sided diskettes 130 | together. 131 | 132 | We're working on other things, too. For instance, there's our new operating 133 | system, MS-HOSS, with the 'Mater Vine file structure. And for 'Mater Vine 134 | support, there's 'Mater Stakes. And if you thought SideKick was good, wait til 135 | you see our new ButtKick utility. Expected to be widely available by the end 136 | of next month, regardless of what month this be, it is being developed using 137 | our powerful new Four Barrel Tenne-C. While we aren't yet ready to develop a 138 | Turbo Tenne-C, we feel that the high data compression ratio of Four Barrel 139 | Tenne-C will suffice. 140 | 141 | Here is a sample of our work. This is part of our new floating point package, 142 | written in LOWLIFE, our low-level programming language. 143 | 144 | UNSTACKUMDOTNUMBER WHISPER rip number off the stack 145 | JIP DOTREMOVER WHISPER jump if punctuated 146 | DONTDONOTHING WHISPER no op 147 | JUMPEM2DGITBACK WHISPER return 148 | GUMDROPS4EARPLUGS WHISPER sweet things in my ear 149 | 150 | DOTREMOVER: 151 | RDLDOTNUMBER WHISPER Rikki, don't lose that number 152 | ASRDOTNUMBER WHISPER shift the number right 153 | JISPDOTREMOVER WHISPER jump if still punctuated 154 | ABSOLUTELYNOT WHISPER negate number and take absolute value 155 | BZZBZZBZZ WHISPER WHISPER WHISPER EM2DGITBACK: 156 | RTS WHISPER return to stack 157 | RETURNS WHISPER return estimated truncated unary radix 158 | WHISPER numerix stuff 159 | 160 | 161 | 162 | 163 | ``` 164 | 165 | Originally found on MIT, but now inacessible at: 166 | http://web.mit.edu/humor/Computers/tenneC 167 | 168 | Retrieved by @nyxgeek on 2020.06.30 via Google's cache. 169 | -------------------------------------------------------------------------------- /story-of-mel-real-programmer.md: -------------------------------------------------------------------------------- 1 | ### The Story of Mel, a Real Programmer 2 | 3 | This was posted to USENET by its author, Ed Nather (utastro!nather), on May 21, 1983. 4 | 5 | A recent article devoted to the *macho* side of programming made the bald and unvarnished statement: 6 | ``` 7 | Real Programmers write in FORTRAN. 8 | 9 | Maybe they do now, 10 | in this decadent era of 11 | Lite beer, hand calculators, and "user-friendly" software 12 | but back in the Good Old Days, 13 | when the term "software" sounded funny 14 | and Real Computers were made out of drums and vacuum tubes, 15 | Real Programmers wrote in machine code. 16 | Not FORTRAN. Not RATFOR. Not, even, assembly language. 17 | Machine Code. 18 | Raw, unadorned, inscrutable hexadecimal numbers. 19 | Directly. 20 | 21 | Lest a whole new generation of programmers 22 | grow up in ignorance of this glorious past, 23 | I feel duty-bound to describe, 24 | as best I can through the generation gap, 25 | how a Real Programmer wrote code. 26 | I'll call him Mel, 27 | because that was his name. 28 | 29 | I first met Mel when I went to work for Royal McBee Computer Corp., 30 | a now-defunct subsidiary of the typewriter company. 31 | The firm manufactured the LGP-30, 32 | a small, cheap (by the standards of the day) 33 | drum-memory computer, 34 | and had just started to manufacture 35 | the RPC-4000, a much-improved, 36 | bigger, better, faster --- drum-memory computer. 37 | Cores cost too much, 38 | and weren't here to stay, anyway. 39 | (That's why you haven't heard of the company, 40 | or the computer.) 41 | 42 | I had been hired to write a FORTRAN compiler 43 | for this new marvel and Mel was my guide to its wonders. 44 | Mel didn't approve of compilers. 45 | 46 | "If a program can't rewrite its own code", 47 | he asked, "what good is it?" 48 | 49 | Mel had written, 50 | in hexadecimal, 51 | the most popular computer program the company owned. 52 | It ran on the LGP-30 53 | and played blackjack with potential customers 54 | at computer shows. 55 | Its effect was always dramatic. 56 | The LGP-30 booth was packed at every show, 57 | and the IBM salesmen stood around 58 | talking to each other. 59 | Whether or not this actually sold computers 60 | was a question we never discussed. 61 | 62 | Mel's job was to re-write 63 | the blackjack program for the RPC-4000. 64 | (Port? What does that mean?) 65 | The new computer had a one-plus-one 66 | addressing scheme, 67 | in which each machine instruction, 68 | in addition to the operation code 69 | and the address of the needed operand, 70 | had a second address that indicated where, on the revolving drum, 71 | the next instruction was located. 72 | 73 | In modern parlance, 74 | every single instruction was followed by a GO TO! 75 | Put *that* in Pascal's pipe and smoke it. 76 | 77 | Mel loved the RPC-4000 78 | because he could optimize his code: 79 | that is, locate instructions on the drum 80 | so that just as one finished its job, 81 | the next would be just arriving at the "read head" 82 | and available for immediate execution. 83 | There was a program to do that job, 84 | an "optimizing assembler", 85 | but Mel refused to use it. 86 | 87 | "You never know where it's going to put things", 88 | he explained, "so you'd have to use separate constants". 89 | 90 | It was a long time before I understood that remark. 91 | Since Mel knew the numerical value 92 | of every operation code, 93 | and assigned his own drum addresses, 94 | every instruction he wrote could also be considered 95 | a numerical constant. 96 | He could pick up an earlier "add" instruction, say, 97 | and multiply by it, 98 | if it had the right numeric value. 99 | His code was not easy for someone else to modify. 100 | 101 | I compared Mel's hand-optimized programs 102 | with the same code massaged by the optimizing assembler program, 103 | and Mel's always ran faster. 104 | That was because the "top-down" method of program design 105 | hadn't been invented yet, 106 | and Mel wouldn't have used it anyway. 107 | He wrote the innermost parts of his program loops first, 108 | so they would get first choice 109 | of the optimum address locations on the drum. 110 | The optimizing assembler wasn't smart enough to do it that way. 111 | 112 | Mel never wrote time-delay loops, either, 113 | even when the balky Flexowriter 114 | required a delay between output characters to work right. 115 | He just located instructions on the drum 116 | so each successive one was just *past* the read head 117 | when it was needed; 118 | the drum had to execute another complete revolution 119 | to find the next instruction. 120 | He coined an unforgettable term for this procedure. 121 | Although "optimum" is an absolute term, 122 | like "unique", it became common verbal practice 123 | to make it relative: 124 | "not quite optimum" or "less optimum" 125 | or "not very optimum". 126 | Mel called the maximum time-delay locations 127 | the "most pessimum". 128 | 129 | After he finished the blackjack program 130 | and got it to run 131 | ("Even the initializer is optimized", 132 | he said proudly), 133 | he got a Change Request from the sales department. 134 | The program used an elegant (optimized) 135 | random number generator 136 | to shuffle the "cards" and deal from the "deck", 137 | and some of the salesmen felt it was too fair, 138 | since sometimes the customers lost. 139 | They wanted Mel to modify the program 140 | so, at the setting of a sense switch on the console, 141 | they could change the odds and let the customer win. 142 | 143 | Mel balked. 144 | He felt this was patently dishonest, 145 | which it was, 146 | and that it impinged on his personal integrity as a programmer, 147 | which it did, 148 | so he refused to do it. 149 | The Head Salesman talked to Mel, 150 | as did the Big Boss and, at the boss's urging, 151 | a few Fellow Programmers. 152 | Mel finally gave in and wrote the code, 153 | but he got the test backwards, 154 | and, when the sense switch was turned on, 155 | the program would cheat, winning every time. 156 | Mel was delighted with this, 157 | claiming his subconscious was uncontrollably ethical, 158 | and adamantly refused to fix it. 159 | 160 | After Mel had left the company for greener pa$ture$, 161 | the Big Boss asked me to look at the code 162 | and see if I could find the test and reverse it. 163 | Somewhat reluctantly, I agreed to look. 164 | Tracking Mel's code was a real adventure. 165 | 166 | I have often felt that programming is an art form, 167 | whose real value can only be appreciated 168 | by another versed in the same arcane art; 169 | there are lovely gems and brilliant coups 170 | hidden from human view and admiration, sometimes forever, 171 | by the very nature of the process. 172 | You can learn a lot about an individual 173 | just by reading through his code, 174 | even in hexadecimal. 175 | Mel was, I think, an unsung genius. 176 | 177 | Perhaps my greatest shock came 178 | when I found an innocent loop that had no test in it. 179 | No test. *None*. 180 | Common sense said it had to be a closed loop, 181 | where the program would circle, forever, endlessly. 182 | Program control passed right through it, however, 183 | and safely out the other side. 184 | It took me two weeks to figure it out. 185 | 186 | The RPC-4000 computer had a really modern facility 187 | called an index register. 188 | It allowed the programmer to write a program loop 189 | that used an indexed instruction inside; 190 | each time through, 191 | the number in the index register 192 | was added to the address of that instruction, 193 | so it would refer 194 | to the next datum in a series. 195 | He had only to increment the index register 196 | each time through. 197 | Mel never used it. 198 | 199 | Instead, he would pull the instruction into a machine register, 200 | add one to its address, 201 | and store it back. 202 | He would then execute the modified instruction 203 | right from the register. 204 | The loop was written so this additional execution time 205 | was taken into account --- 206 | just as this instruction finished, 207 | the next one was right under the drum's read head, 208 | ready to go. 209 | But the loop had no test in it. 210 | 211 | The vital clue came when I noticed 212 | the index register bit, 213 | the bit that lay between the address 214 | and the operation code in the instruction word, 215 | was turned on --- 216 | yet Mel never used the index register, 217 | leaving it zero all the time. 218 | When the light went on it nearly blinded me. 219 | 220 | He had located the data he was working on 221 | near the top of memory --- 222 | the largest locations the instructions could address --- 223 | so, after the last datum was handled, 224 | incrementing the instruction address 225 | would make it overflow. 226 | The carry would add one to the 227 | operation code, changing it to the next one in the instruction set: 228 | a jump instruction. 229 | Sure enough, the next program instruction was 230 | in address location zero, 231 | and the program went happily on its way. 232 | 233 | I haven't kept in touch with Mel, 234 | so I don't know if he ever gave in to the flood of 235 | change that has washed over programming techniques 236 | since those long-gone days. 237 | I like to think he didn't. 238 | In any event, 239 | I was impressed enough that I quit looking for the 240 | offending test, 241 | telling the Big Boss I couldn't find it. 242 | He didn't seem surprised. 243 | 244 | When I left the company, 245 | the blackjack program would still cheat 246 | if you turned on the right sense switch, 247 | and I think that's how it should be. 248 | I didn't feel comfortable 249 | hacking up the code of a Real Programmer. 250 | ``` 251 | This is one of hackerdom's great heroic epics, free verse or no. In a few spare images it captures more about the esthetics and psychology of hacking than all the scholarly volumes on the subject put together. 252 | 253 | [1992 postscript --- the author writes: "The original submission to the net was not in free verse, nor any approximation to it --- it was straight prose style, in non-justified paragraphs. In bouncing around the net it apparently got modified into the `free verse' form now popular. In other words, it got hacked on the net. That seems appropriate, somehow."] 254 | 255 | 256 | 257 | 258 | ---- 259 | RETRIEVED FROM: https://www.cs.utah.edu/~elb/folklore/mel.html 260 | RETRIEVED ON: 2017-October-3 - @nyxgeek 261 | -------------------------------------------------------------------------------- /originals/hackers.txt: -------------------------------------------------------------------------------- 1 | Merc Release 2.1 2 | Sunday 01 August 1993 3 | 4 | Furey mec@shell.portal.com 5 | Hatchet hatchet@uclink.berkeley.edu 6 | Kahn michael@uclink.berkeley.edu 7 | 8 | 9 | 10 | === 'I'm running a Mud so I can learn C programming!' 11 | 12 | Yeah, right. 13 | 14 | The purpose of this document is to record some of our knowledge, experience and 15 | philosophy. No matter what your level, we hope that this document will help 16 | you become a better software engineer. 17 | 18 | Remember that engineering is work, and NO document will substitute for your 19 | own thinking, learning and experimentation. 20 | 21 | 22 | 23 | === How to Learn in the First Place 24 | 25 | (1) Play with something. 26 | (2) Read the documentation on it. 27 | (3) Play with it some more. 28 | (4) Read documentation again. 29 | (5) Play with it some more. 30 | (6) Read documentation again. 31 | (7) Play with it some more. 32 | (8) Read documentation again. 33 | (9) Get the idea? 34 | 35 | The idea is that your mind can accept only so much 'new data' in a single 36 | session. Playing with something doesn't introduce very much new data, but it 37 | does transform data in your head from the 'new' category to the 'familiar' 38 | category. Reading documentation doesn't make anything 'familiar', but it 39 | refills your 'new' hopper. 40 | 41 | Most people, if they even read documentation in the first place, never return 42 | to it. They come to a certain minimum level of proficiency and then never 43 | learn any more. But modern operating systems, languages, networks, and even 44 | applications simply cannot be learned in a single session. You have to work 45 | through the two-step learning cycle MANY times to master it. 46 | 47 | 48 | 49 | === The Environment 50 | 51 | Computer: the big or little box that you're using to run Merc. Computers come 52 | from a _manufacturer_ and have a _model_ name. Here is a list of common 53 | manufacturers and models that you're likely to encounter: 54 | 55 | Manufacturer Model 56 | ------------ ----- 57 | 58 | Sun Sun-2 59 | Sun Sun-3 60 | Sun Sun-4 61 | DEC Vax 5000 62 | DEC Vax 5900 63 | IBM RS/6000 64 | NeXT NextCube 65 | Sequent Symmetry 66 | Sequent Balance 67 | 68 | As far as hardware goes, Merc will run on any 32-bit hardware. 69 | 70 | Operating system: the lowest level program running on your computer. Most 71 | common computers run Unix or some variant of it, such as SunOS, Ultrix, 72 | AIX, Mach, or Dynix. Notice that many of these variants end in 'IX'. 73 | 74 | The two major 'families' of Unix are Berkeley Unix (developed at the 75 | illustrious University of California, Berkeley) and System 5 Unix 76 | (developed by Bell Laboratories, the progenitors of Unix). 77 | 78 | The most common non-Unix operating system is VMS (a proprietary operating 79 | system from DEC for their VAX computers). In the personal computer world, 80 | you'll find MS-DOS, OS/2 for IBM PC's and compatibles, and MacOS for Apple 81 | Macintosh'es. 82 | 83 | GET THIS STRAIGHT: 'VAX' IS NOT AN OPERATING SYSTEM. It's the name of a 84 | family of computers from DEC. There are plenty of Vax'es running VMS, and 85 | there are even more Vax'es running Berkeley Unix or Ultrix. The Vax'es 86 | running Unix have a lot more in common with other machines running 87 | Unix than they have with Vax'es running VMS. 88 | 89 | As far as operating systems go, Merc will run on Unix or Unix variants with 90 | TCP/IP networking compatible with Berkeley Unix. It will also run, in 91 | single-user mode only, on MS-DOS. With a reasonable amount of work, Merc 92 | can be ported to any operating system that provides TCP service for telnet 93 | connections. 94 | 95 | Languages: Merc is written in C. ANSI (the American National Standards 96 | Institute) has a specification for the C language, and Merc is written in 97 | Ansi Standard C. 98 | 99 | The most popular compiler for Ansi Standard C is the Gnu 'gcc' compiler 100 | produced by the Free Software Foundation. It's available by anonymous 101 | ftp from prep.ai.mit.edu. Merc compiles just fine with Gcc 1.38, so 102 | you can probably use 1.42 and skip the much larger 2.X versions. 103 | 104 | You don't have to use gcc. IBM RS/6000's running the AIX operating system 105 | come with an Ansi C compiler already. So do NeXT machines (the standard 106 | 'cc' on NeXT happens to be the Gnu C compiler). Any Ansi compiler will 107 | work. 108 | 109 | Unfortunately, there are still many machines out there without an Ansi 110 | standard C compiler. (Sun is the worst offender in this regard). You 111 | can attempt to compile Merc with a non-Ansi (traditional) C compiler by 112 | using the 'mktrad' script. See trad.txt for details. 113 | 114 | If you don't know what the manufacturer and model of your computer is, as well 115 | as its operating system, and whether the C compiler is Ansi or non-Ansi, then 116 | you need to find out. 117 | 118 | 119 | 120 | === Basic Unix Tools 121 | 122 | 'man' -- gives you online manual pages 123 | 124 | 'grep' -- stands for 'global regular expression print' 125 | 126 | 'vi' 127 | 'emacs' 128 | 'jove' -- use whatever editor floats your boat 129 | but learn the hell out of it 130 | you should know EVERY command in your editor 131 | 132 | 'ctags' -- makes 'tags' for your editor 133 | allows you to goto functions by name in any source file 134 | 135 | '>' 136 | '>>' 137 | '<' 138 | '|' -- input and output redirection 139 | get someone to show you, or dig it out of 'man csh' 140 | 141 | These are the basic day-in day-out development tools. Developing without 142 | knowing how to use ALL of these well is like driving a car without knowing how 143 | to change gears. 144 | 145 | 146 | 147 | === Debugging: Theory 148 | 149 | Debugging is a science. You formulate a hypothesis, make predictions based on 150 | the hypothesis, run the program and provide it experimental input, observe its 151 | behavior, and confirm or refute the hypothesis. 152 | 153 | A good hypothesis is one which makes surprising predictions which then come 154 | true; predictions that other hypotheses don't make. 155 | 156 | The first step in debugging is not to write bugs in the first place. This 157 | sounds obvious, but sadly, is all too often ignored. 158 | 159 | If you build a program, and you get ANY errors or ANY warnings, you should fix 160 | them before continuing. C was designed so that many buggy ways of writing code 161 | are legal, but will draw warnings from a suitably smart compiler (such as 'gcc' 162 | with the '-Wall' flag enabled). It takes only minutes to check your warnings 163 | and to fix the code that generates them, but it takes hours to find bugs 164 | otherwise. 165 | 166 | 'Desk checking' (proof reading) is almost a lost art in 1993. Too bad. You 167 | should desk check your code before even compiling it, and desk-check it again 168 | periodically to keep it fresh in mind and find new errors. If you have someone 169 | in your group whose ONLY job it is to desk-check other people's code, that 170 | person will find and fix more bugs than everyone else combined. 171 | 172 | One can desk-check several hundred lines of code per hour. A top-flight 173 | software engineer will write, roughly, 99% accurate code on the first pass, 174 | which still means one bug per hundred lines. And you are not top flight. 175 | So ... you will find several bugs per hour by desk checking. This is a very 176 | rapid bug fixing technique. Compare that to all the hours you spend screwing 177 | around with broken programs trying to find ONE bug at a time. 178 | 179 | The next technique beyond desk-checking is the time-honored technique of 180 | inserting 'print' statements into the code, and then watching the logged 181 | values. Within Merc code, you can call 'printf' or 'fprintf' to dump 182 | interesting values at interesting times. Where and when to dump these values 183 | is an art, which you will learn only with practice. 184 | 185 | If you don't already know how to redirect output in your operating system, now 186 | is the time to learn. On Unix, type the command 'man csh', and read the part 187 | about the '>' operator. You should also learn the difference between 188 | 'standard output' (e.g. output from 'printf') and 'error output' (e.g. output 189 | from 'fprintf'). 190 | 191 | Ultimately, you cannot fix a program unless you understand how it's operating 192 | in the first place. Powerful debugging tools will help you collect data, but 193 | they can't interpret it, and they can't fix the underlying problems. Only you 194 | can do that. 195 | 196 | When you find a bug ... your first impulse will be to change the code, kill the 197 | manifestation of the bug, and declare it fixed. Not so fast! The bug you 198 | observe is often just the symptom of a deeper bug. You should keep pursuing 199 | the bug, all the way down. You should grok the bug and cherish it in fullness 200 | before causing its discorporation. 201 | 202 | Also, when finding a bug, ask yourself two questions: 'what design and 203 | programming habits led to the introduction of the bug in the first place?' 204 | And: 'what habits would systematically prevent the introduction of bugs like 205 | this?' 206 | 207 | 208 | 209 | === Debugging: Tools 210 | 211 | When a Unix process accesses an invalid memory location, or (more rarely) 212 | executes an illegal instruction, or (even more rarely) something else goes 213 | wrong, the Unix operating system takes control. The process is incapable of 214 | further execution and must be killed. Before killing the process, however, the 215 | operating system does something for you: it opens a file named 'core' and 216 | writes the entire data space of the process into it. 217 | 218 | Thus, 'dumping core' is not a cause of problems, or even an effect of problems. 219 | It's something the operating system does to help you find fatal problems which 220 | have rendered your process unable to continue. 221 | 222 | One reads a 'core' file with a debugger. The two most popular debuggers on 223 | Unix are 'adb' and 'gdb', although occasionally one finds 'dbx'. Typically 224 | one starts a debugger like this: 'adb merc' or 'gdb merc core'. 225 | 226 | The first thing, and often the only thing, you need to do inside the debugger 227 | is take a stack trace. In 'adb', the command for this is '$c'. In gdb, 228 | the command is 'backtrace'. The stack trace will tell you what function your 229 | program was in when it crashed, and what functions were calling it. The 230 | debugger will also list the arguments to these functions. Interpreting these 231 | arguments, and using more advanced debugger features, requires a fair amount of 232 | knowledge about assembly language programming. 233 | 234 | If you have access to a program named 'Purify' ... learn how to use it. 235 | 236 | 237 | 238 | === Profiling 239 | 240 | Here is how to profile a program: 241 | 242 | (1) Remove all the .o files and the 'merc' executable: 243 | 244 | rm *.o 'merc' 245 | 246 | (2) Edit your makefile, and change the PROF= line: 247 | 248 | PROF = -p 249 | 250 | (3) Remake merc: 251 | 252 | make 253 | 254 | (4) Run merc as usual. Shutdown the game with shutdown when you have run long 255 | enough to get a good profiling base. If you crash the game, or kill the 256 | process externally, you won't get profiling information. 257 | 258 | (5) Run the 'prof' command: 259 | 260 | prof merc > prof.out 261 | 262 | (6) Read prof.out. Run 'man prof' to understand the format of the output. 263 | 264 | For advanced profiling, you can use 'PROF = -pg' in step (2), and use the 265 | 'gprof' command in step 5. The 'gprof' form of profiling gives you a report 266 | which lists exactly how many times any function calls any other function. This 267 | information is valuable for debugging as well as performance analysis. 268 | 269 | Availability of 'prof' and 'gprof' varies from system to system. Almost every 270 | Unix system has 'prof'. Only some systems have 'gprof'. 271 | 272 | 273 | 274 | === Schedule versus Features versus Quality 275 | 276 | Now for a few words on project management. 277 | 278 | Sooner or later, almost any project faces a trade-off between schedule, 279 | features, and quality. Consider a student writing a term paper on the last 280 | night. He has three unpalatable choices: he can turn it in late (miss the 281 | schedule). He can turn in a shorter paper that doesn't cover everything 282 | (reduce the features). Or he can churn out gibberish (lower the quality). 283 | 284 | Similarly in a software project, one often has a choice between making the 285 | release date, or dropping features, or shipping everything on time and 286 | hoping that it works (it usually doesn't). 287 | 288 | The most important thing to realize about this decision is that it IS a 289 | decision. One can't get out of it by hoping that some miracle will occur. 290 | If you don't react consciously, then external circumstances will drive the 291 | decision. 292 | 293 | Ok, so suppose you are faced with the trade-off and go for a schedule slip. 294 | Don't take a small slip ... take a big impressive slip. If you say 295 | 'I'll just fix this one problem and finish ASAP', then likely you will 296 | wish you had taken just a little more time later. If you say 'I think I 297 | need another day, so I'll slip by a week', then it's much more likely 298 | that what you'll have at the end of the week will do the job. It's better 299 | to slip a large block of time once then to slip day-by-day or hour-by-hour 300 | repeatedly. 301 | 302 | If you go for dropping features, again, carve off a big hunk. Don't be 303 | timid and pretend that you're going to do that work 'if you just get a 304 | little spare time.' That feature of your project is GONE, exploit the 305 | lessened requirements for all the savings you can! 306 | 307 | I can't offer much advise on how to reduce quality, because that's always 308 | my last choice for what to drop on a project. 309 | 310 | 311 | 312 | === Sleeping 313 | 314 | Simple and obvious, but true ... engineering takes an alert mind. 315 | 316 | It's very easy, very seductive, to throw a lot of consecutive hours at a 317 | problem. One can get into a 'flow' state where one's mind becomes filled 318 | with the problem, and the work just pours out, hour after hour. Many 319 | writers report that they watch a story take place, and just transcribe 320 | what they see, pounding out page after page of text. Many software 321 | engineers have experienced a similar feeling, where the code appears 322 | to arise spontaneously as they watch themselves type. 323 | 324 | I believe most real work gets done in this state. 325 | 326 | My experience, however, is that the 'flow' period can end subtly and 327 | gradually. Without ever noticing a change, I notice that new work isn't 328 | flowing out of my hands anymore, that I'm spending lots of time fixing 329 | up mistakes I made just a few moments ago. Instead of ideas flashing 330 | confidently through my mind, doubts and questions arise. 331 | 332 | At this point there is a temptation to throw some more hours at the problem. 333 | 'I'm here, and I was getting a lot of work done, why don't I just stay all 334 | night until I figure this out?' This is a trap! Don't do it! 335 | 336 | Instead, I suggest: go home, eat, shower, sleep, put yourself back together 337 | again. Resume the next day. While you sleep, your mind will work on the 338 | problem anyways, and you'll probably wake up with new ideas. You'll get 339 | more done between 10:00 am and 2:00 pm the next day, then if you stayed up 340 | between midnight and 10:00 am. 341 | 342 | There is a problem with this strategy: remotivating yourself in the morning. 343 | If the project is one of your choice, that's usually not a problem. If it's 344 | something you have to do but don't enjoy, you have to balance the remotivation 345 | problem versus the very low productivity of working without sleep. 346 | 347 | 348 | 349 | === Books for Serious Programmers 350 | 351 | Out of all the thousands of books out there, three stand out: 352 | 353 | Kernighan and Plaugher, _The Elements of Programming Style_. 354 | 355 | Kernighan and Ritchie, _The C Programming Language_. 356 | 357 | Brooks, _The Mythical Man Month_ 358 | 359 | 360 | 361 | FOUND IN Rom2.4 documentation, in file called hackers.txt 362 | Uploaded 2017-Oct-4 - @nyxgeek 363 | -------------------------------------------------------------------------------- /hacker-running-a-mud-so-i-can-learn-c.md: -------------------------------------------------------------------------------- 1 | This file was found inside of a Rom2.4 (a Multi-User Dungeon, aka MUD), in a file called 'hacker.txt' 2 | 3 | A copy of this zip file called 'rom24.zip' can be found in the 'originals' folder of this github. 4 | 5 | 6 | ``` 7 | Merc Release 2.1 8 | Sunday 01 August 1993 9 | 10 | Furey mec@shell.portal.com 11 | Hatchet hatchet@uclink.berkeley.edu 12 | Kahn michael@uclink.berkeley.edu 13 | 14 | 15 | 16 | === 'I'm running a Mud so I can learn C programming!' 17 | 18 | Yeah, right. 19 | 20 | The purpose of this document is to record some of our knowledge, experience and 21 | philosophy. No matter what your level, we hope that this document will help 22 | you become a better software engineer. 23 | 24 | Remember that engineering is work, and NO document will substitute for your 25 | own thinking, learning and experimentation. 26 | 27 | 28 | 29 | === How to Learn in the First Place 30 | 31 | (1) Play with something. 32 | (2) Read the documentation on it. 33 | (3) Play with it some more. 34 | (4) Read documentation again. 35 | (5) Play with it some more. 36 | (6) Read documentation again. 37 | (7) Play with it some more. 38 | (8) Read documentation again. 39 | (9) Get the idea? 40 | 41 | The idea is that your mind can accept only so much 'new data' in a single 42 | session. Playing with something doesn't introduce very much new data, but it 43 | does transform data in your head from the 'new' category to the 'familiar' 44 | category. Reading documentation doesn't make anything 'familiar', but it 45 | refills your 'new' hopper. 46 | 47 | Most people, if they even read documentation in the first place, never return 48 | to it. They come to a certain minimum level of proficiency and then never 49 | learn any more. But modern operating systems, languages, networks, and even 50 | applications simply cannot be learned in a single session. You have to work 51 | through the two-step learning cycle MANY times to master it. 52 | 53 | 54 | 55 | === The Environment 56 | 57 | Computer: the big or little box that you're using to run Merc. Computers come 58 | from a _manufacturer_ and have a _model_ name. Here is a list of common 59 | manufacturers and models that you're likely to encounter: 60 | 61 | Manufacturer Model 62 | ------------ ----- 63 | 64 | Sun Sun-2 65 | Sun Sun-3 66 | Sun Sun-4 67 | DEC Vax 5000 68 | DEC Vax 5900 69 | IBM RS/6000 70 | NeXT NextCube 71 | Sequent Symmetry 72 | Sequent Balance 73 | 74 | As far as hardware goes, Merc will run on any 32-bit hardware. 75 | 76 | Operating system: the lowest level program running on your computer. Most 77 | common computers run Unix or some variant of it, such as SunOS, Ultrix, 78 | AIX, Mach, or Dynix. Notice that many of these variants end in 'IX'. 79 | 80 | The two major 'families' of Unix are Berkeley Unix (developed at the 81 | illustrious University of California, Berkeley) and System 5 Unix 82 | (developed by Bell Laboratories, the progenitors of Unix). 83 | 84 | The most common non-Unix operating system is VMS (a proprietary operating 85 | system from DEC for their VAX computers). In the personal computer world, 86 | you'll find MS-DOS, OS/2 for IBM PC's and compatibles, and MacOS for Apple 87 | Macintosh'es. 88 | 89 | GET THIS STRAIGHT: 'VAX' IS NOT AN OPERATING SYSTEM. It's the name of a 90 | family of computers from DEC. There are plenty of Vax'es running VMS, and 91 | there are even more Vax'es running Berkeley Unix or Ultrix. The Vax'es 92 | running Unix have a lot more in common with other machines running 93 | Unix than they have with Vax'es running VMS. 94 | 95 | As far as operating systems go, Merc will run on Unix or Unix variants with 96 | TCP/IP networking compatible with Berkeley Unix. It will also run, in 97 | single-user mode only, on MS-DOS. With a reasonable amount of work, Merc 98 | can be ported to any operating system that provides TCP service for telnet 99 | connections. 100 | 101 | Languages: Merc is written in C. ANSI (the American National Standards 102 | Institute) has a specification for the C language, and Merc is written in 103 | Ansi Standard C. 104 | 105 | The most popular compiler for Ansi Standard C is the Gnu 'gcc' compiler 106 | produced by the Free Software Foundation. It's available by anonymous 107 | ftp from prep.ai.mit.edu. Merc compiles just fine with Gcc 1.38, so 108 | you can probably use 1.42 and skip the much larger 2.X versions. 109 | 110 | You don't have to use gcc. IBM RS/6000's running the AIX operating system 111 | come with an Ansi C compiler already. So do NeXT machines (the standard 112 | 'cc' on NeXT happens to be the Gnu C compiler). Any Ansi compiler will 113 | work. 114 | 115 | Unfortunately, there are still many machines out there without an Ansi 116 | standard C compiler. (Sun is the worst offender in this regard). You 117 | can attempt to compile Merc with a non-Ansi (traditional) C compiler by 118 | using the 'mktrad' script. See trad.txt for details. 119 | 120 | If you don't know what the manufacturer and model of your computer is, as well 121 | as its operating system, and whether the C compiler is Ansi or non-Ansi, then 122 | you need to find out. 123 | 124 | 125 | 126 | === Basic Unix Tools 127 | 128 | 'man' -- gives you online manual pages 129 | 130 | 'grep' -- stands for 'global regular expression print' 131 | 132 | 'vi' 133 | 'emacs' 134 | 'jove' -- use whatever editor floats your boat 135 | but learn the hell out of it 136 | you should know EVERY command in your editor 137 | 138 | 'ctags' -- makes 'tags' for your editor 139 | allows you to goto functions by name in any source file 140 | 141 | '>' 142 | '>>' 143 | '<' 144 | '|' -- input and output redirection 145 | get someone to show you, or dig it out of 'man csh' 146 | 147 | These are the basic day-in day-out development tools. Developing without 148 | knowing how to use ALL of these well is like driving a car without knowing how 149 | to change gears. 150 | 151 | 152 | 153 | === Debugging: Theory 154 | 155 | Debugging is a science. You formulate a hypothesis, make predictions based on 156 | the hypothesis, run the program and provide it experimental input, observe its 157 | behavior, and confirm or refute the hypothesis. 158 | 159 | A good hypothesis is one which makes surprising predictions which then come 160 | true; predictions that other hypotheses don't make. 161 | 162 | The first step in debugging is not to write bugs in the first place. This 163 | sounds obvious, but sadly, is all too often ignored. 164 | 165 | If you build a program, and you get ANY errors or ANY warnings, you should fix 166 | them before continuing. C was designed so that many buggy ways of writing code 167 | are legal, but will draw warnings from a suitably smart compiler (such as 'gcc' 168 | with the '-Wall' flag enabled). It takes only minutes to check your warnings 169 | and to fix the code that generates them, but it takes hours to find bugs 170 | otherwise. 171 | 172 | 'Desk checking' (proof reading) is almost a lost art in 1993. Too bad. You 173 | should desk check your code before even compiling it, and desk-check it again 174 | periodically to keep it fresh in mind and find new errors. If you have someone 175 | in your group whose ONLY job it is to desk-check other people's code, that 176 | person will find and fix more bugs than everyone else combined. 177 | 178 | One can desk-check several hundred lines of code per hour. A top-flight 179 | software engineer will write, roughly, 99% accurate code on the first pass, 180 | which still means one bug per hundred lines. And you are not top flight. 181 | So ... you will find several bugs per hour by desk checking. This is a very 182 | rapid bug fixing technique. Compare that to all the hours you spend screwing 183 | around with broken programs trying to find ONE bug at a time. 184 | 185 | The next technique beyond desk-checking is the time-honored technique of 186 | inserting 'print' statements into the code, and then watching the logged 187 | values. Within Merc code, you can call 'printf' or 'fprintf' to dump 188 | interesting values at interesting times. Where and when to dump these values 189 | is an art, which you will learn only with practice. 190 | 191 | If you don't already know how to redirect output in your operating system, now 192 | is the time to learn. On Unix, type the command 'man csh', and read the part 193 | about the '>' operator. You should also learn the difference between 194 | 'standard output' (e.g. output from 'printf') and 'error output' (e.g. output 195 | from 'fprintf'). 196 | 197 | Ultimately, you cannot fix a program unless you understand how it's operating 198 | in the first place. Powerful debugging tools will help you collect data, but 199 | they can't interpret it, and they can't fix the underlying problems. Only you 200 | can do that. 201 | 202 | When you find a bug ... your first impulse will be to change the code, kill the 203 | manifestation of the bug, and declare it fixed. Not so fast! The bug you 204 | observe is often just the symptom of a deeper bug. You should keep pursuing 205 | the bug, all the way down. You should grok the bug and cherish it in fullness 206 | before causing its discorporation. 207 | 208 | Also, when finding a bug, ask yourself two questions: 'what design and 209 | programming habits led to the introduction of the bug in the first place?' 210 | And: 'what habits would systematically prevent the introduction of bugs like 211 | this?' 212 | 213 | 214 | 215 | === Debugging: Tools 216 | 217 | When a Unix process accesses an invalid memory location, or (more rarely) 218 | executes an illegal instruction, or (even more rarely) something else goes 219 | wrong, the Unix operating system takes control. The process is incapable of 220 | further execution and must be killed. Before killing the process, however, the 221 | operating system does something for you: it opens a file named 'core' and 222 | writes the entire data space of the process into it. 223 | 224 | Thus, 'dumping core' is not a cause of problems, or even an effect of problems. 225 | It's something the operating system does to help you find fatal problems which 226 | have rendered your process unable to continue. 227 | 228 | One reads a 'core' file with a debugger. The two most popular debuggers on 229 | Unix are 'adb' and 'gdb', although occasionally one finds 'dbx'. Typically 230 | one starts a debugger like this: 'adb merc' or 'gdb merc core'. 231 | 232 | The first thing, and often the only thing, you need to do inside the debugger 233 | is take a stack trace. In 'adb', the command for this is '$c'. In gdb, 234 | the command is 'backtrace'. The stack trace will tell you what function your 235 | program was in when it crashed, and what functions were calling it. The 236 | debugger will also list the arguments to these functions. Interpreting these 237 | arguments, and using more advanced debugger features, requires a fair amount of 238 | knowledge about assembly language programming. 239 | 240 | If you have access to a program named 'Purify' ... learn how to use it. 241 | 242 | 243 | 244 | === Profiling 245 | 246 | Here is how to profile a program: 247 | 248 | (1) Remove all the .o files and the 'merc' executable: 249 | 250 | rm *.o 'merc' 251 | 252 | (2) Edit your makefile, and change the PROF= line: 253 | 254 | PROF = -p 255 | 256 | (3) Remake merc: 257 | 258 | make 259 | 260 | (4) Run merc as usual. Shutdown the game with shutdown when you have run long 261 | enough to get a good profiling base. If you crash the game, or kill the 262 | process externally, you won't get profiling information. 263 | 264 | (5) Run the 'prof' command: 265 | 266 | prof merc > prof.out 267 | 268 | (6) Read prof.out. Run 'man prof' to understand the format of the output. 269 | 270 | For advanced profiling, you can use 'PROF = -pg' in step (2), and use the 271 | 'gprof' command in step 5. The 'gprof' form of profiling gives you a report 272 | which lists exactly how many times any function calls any other function. This 273 | information is valuable for debugging as well as performance analysis. 274 | 275 | Availability of 'prof' and 'gprof' varies from system to system. Almost every 276 | Unix system has 'prof'. Only some systems have 'gprof'. 277 | 278 | 279 | 280 | === Schedule versus Features versus Quality 281 | 282 | Now for a few words on project management. 283 | 284 | Sooner or later, almost any project faces a trade-off between schedule, 285 | features, and quality. Consider a student writing a term paper on the last 286 | night. He has three unpalatable choices: he can turn it in late (miss the 287 | schedule). He can turn in a shorter paper that doesn't cover everything 288 | (reduce the features). Or he can churn out gibberish (lower the quality). 289 | 290 | Similarly in a software project, one often has a choice between making the 291 | release date, or dropping features, or shipping everything on time and 292 | hoping that it works (it usually doesn't). 293 | 294 | The most important thing to realize about this decision is that it IS a 295 | decision. One can't get out of it by hoping that some miracle will occur. 296 | If you don't react consciously, then external circumstances will drive the 297 | decision. 298 | 299 | Ok, so suppose you are faced with the trade-off and go for a schedule slip. 300 | Don't take a small slip ... take a big impressive slip. If you say 301 | 'I'll just fix this one problem and finish ASAP', then likely you will 302 | wish you had taken just a little more time later. If you say 'I think I 303 | need another day, so I'll slip by a week', then it's much more likely 304 | that what you'll have at the end of the week will do the job. It's better 305 | to slip a large block of time once then to slip day-by-day or hour-by-hour 306 | repeatedly. 307 | 308 | If you go for dropping features, again, carve off a big hunk. Don't be 309 | timid and pretend that you're going to do that work 'if you just get a 310 | little spare time.' That feature of your project is GONE, exploit the 311 | lessened requirements for all the savings you can! 312 | 313 | I can't offer much advise on how to reduce quality, because that's always 314 | my last choice for what to drop on a project. 315 | 316 | 317 | 318 | === Sleeping 319 | 320 | Simple and obvious, but true ... engineering takes an alert mind. 321 | 322 | It's very easy, very seductive, to throw a lot of consecutive hours at a 323 | problem. One can get into a 'flow' state where one's mind becomes filled 324 | with the problem, and the work just pours out, hour after hour. Many 325 | writers report that they watch a story take place, and just transcribe 326 | what they see, pounding out page after page of text. Many software 327 | engineers have experienced a similar feeling, where the code appears 328 | to arise spontaneously as they watch themselves type. 329 | 330 | I believe most real work gets done in this state. 331 | 332 | My experience, however, is that the 'flow' period can end subtly and 333 | gradually. Without ever noticing a change, I notice that new work isn't 334 | flowing out of my hands anymore, that I'm spending lots of time fixing 335 | up mistakes I made just a few moments ago. Instead of ideas flashing 336 | confidently through my mind, doubts and questions arise. 337 | 338 | At this point there is a temptation to throw some more hours at the problem. 339 | 'I'm here, and I was getting a lot of work done, why don't I just stay all 340 | night until I figure this out?' This is a trap! Don't do it! 341 | 342 | Instead, I suggest: go home, eat, shower, sleep, put yourself back together 343 | again. Resume the next day. While you sleep, your mind will work on the 344 | problem anyways, and you'll probably wake up with new ideas. You'll get 345 | more done between 10:00 am and 2:00 pm the next day, then if you stayed up 346 | between midnight and 10:00 am. 347 | 348 | There is a problem with this strategy: remotivating yourself in the morning. 349 | If the project is one of your choice, that's usually not a problem. If it's 350 | something you have to do but don't enjoy, you have to balance the remotivation 351 | problem versus the very low productivity of working without sleep. 352 | 353 | 354 | 355 | === Books for Serious Programmers 356 | 357 | Out of all the thousands of books out there, three stand out: 358 | 359 | Kernighan and Plaugher, _The Elements of Programming Style_. 360 | 361 | Kernighan and Ritchie, _The C Programming Language_. 362 | 363 | Brooks, _The Mythical Man Month_ 364 | 365 | ``` 366 | -------------------------------------------------------------------------------- /originals/ucsc.adventure.game.txt: -------------------------------------------------------------------------------- 1 | In article , strange@cats.ucsc.edu writes: 2 | From: strange@cats.ucsc.edu 3 | Newsgroups: rec.humor.funny 4 | Date: 23 May 92 23:30:03 GMT 5 | 6 | This is something I wrote a few months back which has been making 7 | the rounds at UCSC. It's very long, and my not be suitable for posting 8 | on the net because of that. But it's funny, I think.. anyhow, here it is. 9 | 10 | *************************** 11 | 12 | You are in your dorm room. Your roommate is playing Jello 13 | Biafra. The cups on the desk are shattering. 14 | There is an unfinished lab book here. 15 | There is a chemistry book here. 16 | There are socks here. 17 | There are empty beer bottles here. 18 | There is a computer here. 19 | There are six moldy bananas here. 20 | There are several tons of dirty laundry here. 21 | There are shattering cups here. 22 | There is a refrigerator here. 23 | There is a desk with drawers here. 24 | 25 | > turn off music 26 | Your roommate makes discouraged sounds. The cups stop shattering. 27 | > play beach boys 28 | Your roommate throws a hammer into your stereo. You now have no 29 | stereo. Your I.Q. Decreases by 10 points. 30 | > fix stereo 31 | The stereo is shattered beyond repair. 32 | > curse stereo 33 | "May the fleas of a thousand camels infest your erogenous zones!" 34 | The stereo is fixed. The sheer quantity of dirty socks in this room 35 | is making it hard to move. 36 | > look at socks 37 | They are very smelly. It is getting harder and harder to move. 38 | > clean up socks. 39 | You can't. They're all welded together. 40 | > throw socks out window 41 | They soar out the window with the greatest of ease, hit the 42 | ground, and shatter. 43 | > leave room 44 | 24 hour Dave enters, fiending for weed. He blocks your exit. 45 | > kick dave 46 | Dave doesn't seem to notice. 47 | > yell at dave 48 | Dave doesn't seem to notice. 49 | > feed dave 50 | Dave thankfully gobbles your food and asks if there is any more. 51 | > eat dave's head 52 | You start chewing on dave's head. Dave doesn't seem to notice. 53 | Your I.Q. goes up forty points. You now understand chapter four of 54 | your chemistry assignment. Dave is still here. 55 | > work on lab book 56 | You don't have the lab book. 57 | > pick up lab book 58 | It is very heavy. You are carrying too much. 59 | > inventory 60 | You are carrying: 61 | A +10 cut-offs of tumescence 62 | A +3 tee-shirt of tie-die 63 | A +2 elven sneakers of silence 64 | A swiss army knife 65 | A badly laminated card with a picture of you on it. 66 | A very large ring of Keys. 67 | A (much too small) bag of weed. 68 | A package +3 papers of zig-zag. 69 | 70 | > look papers 71 | The papers are blank. 72 | > drop keys 73 | You load lightens considerably. 74 | > pick up lab book 75 | You struggle under the load, but prevail in the end. 76 | > do chemistry lab 77 | You have no calculator. Dave grabs the lab book from you and does 78 | the lab. You are thirsty. 79 | > open refrigerator 80 | A considerable amount of cheap beer is revealed. 81 | > drink cheap beer 82 | You have an instant hangover. You can't stand up. Dave mutters 83 | something about being left out. 84 | > kick dave 85 | Dave doesn't seem to notice. 86 | > offer beer to dave 87 | Dave is drunk. Dave mutters something about being back and 88 | leaves. 89 | > leave room 90 | You can't. You're suffering from a hangover. 91 | > open desk 92 | There is some aspirin here. 93 | > eat aspirin 94 | YUCK! You munch it up. You begin to feel better. 95 | > leave room 96 | The door locks behind you. You are in a north-south hall. There 97 | are several doors here, some marked with magazine clippings. 98 | > unlock door 99 | You can't. Your keys are in the room. 100 | > open doors 101 | You open the nearest door without knocking. Charles and Anna are 102 | here. Dave is here. There are clothes on the floor. There are no 103 | clothes on Charles and Anna. You get the feeling you should leave. 104 | > leave room 105 | As you are leaving, Dave mutters something about Birkenstocks. 106 | You are back in the hall. You are hungry. 107 | > south 108 | You come to a lounge. 109 | There is a door here. 110 | There are two chairs here. 111 | There is a desk here. 112 | Tony is here, studying chemistry. 113 | > greet tony 114 | Tony says, "Hey, bro! How's it goin'? Nice suit." 115 | > commiserate with tony 116 | Tony says, "I'm really stressing hard on this test, bro." You are 117 | still hungry. 118 | > open door 119 | There are stairs down to the west. There are stairs up to the 120 | west. There is a walkway to the south. 121 | > down 122 | There is an east-west ramp here. There are some people here. They 123 | comment loudly on your nudity. 124 | > west 125 | You are in a quad. There is a picnic table here. The door to the 126 | cafeteria is to the north. 127 | > north 128 | They don't let naked people into the cafeteria. You are forcibly 129 | ejected. 130 | > inventory 131 | You are carrying: 132 | A +10 cut-offs of tumescence 133 | A +3 tee-shirt of tie-die 134 | A +2 elven sneakers of silence 135 | A swiss army knife 136 | A badly laminated card with a picture of you on it. 137 | An (even smaller) bag of weed. 138 | A package of blank +3 papers of zig-zag. 139 | 140 | > wear shirt 141 | You are resplendent in your +3 tee-shirt of tie die. 142 | > wear shorts 143 | You are now a bulging wonder. 144 | > north 145 | You are in a room full of simulated food. 146 | > eat food 147 | You aren't even vaguely hungry. In fact, the concept of 148 | introducing this swill into your system is bletcherous. 149 | > south 150 | You are in a quad. 151 | > smoke weed 152 | You now have the munchies. Your subjective I.Q. increases by 10 153 | points. You have a revelation involving the cosmic significance of 154 | Spam. 155 | > north 156 | You are in a room full of an infinite amount of delectable 157 | munchables. 158 | > eat food 159 | You need a tray first. 160 | > get tray 161 | You now have the Tray of Cafeteria Browninan Motion. 162 | > eat food 163 | You serve yourself a generous portion of cafeteria yumness. You 164 | take a seat and begin shoveling it into your face. After two bites 165 | you are full. You have food poisoning. 166 | > leave 167 | You can't. The cafeteria is cursed. You still have food 168 | poisoning. 169 | > search cafeteria 170 | You find half a bottle of Everclear stashed in the salad bar. 171 | > drink bottle 172 | Wouldn't you prefer something safer? Like cutting a pre- 173 | enrollment line? 174 | > take small sip 175 | A small sip is probably sufficient to kill all the residents of 176 | Hong Kong and render it uninhabitable until the lease runs out. 177 | > take small small sip 178 | You feel the potent brew coursing down your digestive tract, 179 | killing everything in its path. You no longer have food poisoning. 180 | You pass out. After two hours, you wake up. 181 | You are in a quad. 182 | > west 183 | You are in no shape to move. You attempt to sit up, and the world 184 | does a tap dance on your face. 185 | > wait 186 | Time passes.... 187 | > wait 188 | Time passes.... 189 | > wait 190 | Time passes..... The world slows to a waltz. 191 | > west 192 | There is a militant lesbian here, blocking your path. 193 | > kick lesbian 194 | She enjoys it. She points out that you are a fascist sexist 195 | bastard. 196 | > wait 197 | The lesbian launches into a discourse on the oppressive 198 | patriarchal system. 199 | > smell lesbian 200 | Don't do that. 201 | > pull leg hairs 202 | You have been kicked in the balls. You pass out. You lose 5 I.Q. 203 | points. 204 | You wake up numb from the waist down. 205 | You are in a quad. 206 | > west 207 | There is a militant lesbian here, blocking your path. 208 | > bash male sex 209 | The militant lesbian smiles, calls you a sister, and walks off. 210 | > west 211 | This is a gentle downhill slope. There is a meadow to the west. 212 | The path forks here. There is a path to the northwest. There is a 213 | path to the southwest. 214 | > southwest 215 | You arrive at the mailhouse. 216 | > look in mailbox 217 | There are six thousand freshmen kneeling at the bottom row of 218 | boxes. Some are wearing short skirts, but that's slim consolation. 219 | > wait 220 | Time passes.... 221 | > wait 222 | Time passes.... A space opens up in front of your box. 223 | > look in box 224 | The space is grabbed faster than you can move. You need split- 225 | second reflexes. 226 | > wait 227 | Time passes.... 228 | > wait 229 | Time passes.... A space opens up in front of your box. 230 | > lunge 231 | You get your spot. 232 | > look in box 233 | It's packed to the bursting point. 234 | > open box 235 | You goof up. 236 | > again 237 | You goof up. 238 | > again 239 | You finally manage to open the box. Inside there are eight flyers 240 | for college events that happened three weeks ago. A ninth is 241 | current - an invitation to play croquet with the provost. You 242 | decline and roundfile the sheaf. There is a package notice here. 243 | There is a letter here. 244 | > read letter 245 | You open the letter. It is a long steamy graphic explicit love 246 | letter... from a total stranger. 247 | > check address 248 | Both the package notice and the opened letter are for your 249 | boxmate. They are postdated three months ago. You have been 250 | airboxed. 251 | > north 252 | You are hemmed in by 1000 dorm androids sans brassieres trying to 253 | get to their boxes. 254 | > howl 255 | Your howling causes the androids to stare at the sky in 256 | confusion, giving you time to make your escape. 257 | > north 258 | You exit stage left, kicking several fembots in the shins as you 259 | pass. The bit of abuse you inflict causes several of the fembots to 260 | follow you, hoping for more. 261 | There is a very small grove of trees to the east. 262 | > east 263 | You are in a grove of trees, some slightly taller than others. 264 | There are some fembots here. 265 | > north 266 | You are in a grove of trees, some slightly smaller than others. 267 | There are some fembots here. 268 | > west 269 | You are in a grove of trees, some slightly bigger than others. 270 | There are some fembots here. 271 | > north 272 | You are in a grove of trees, some slightly leafier than others. 273 | There are some fembots here. 274 | > southeast 275 | You are in a grove of trees, some slightly greener than others. 276 | There are some fembots here. 277 | > east 278 | You are in a grove of trees, some slightly darker than others. 279 | There are some fembots here. 280 | > south 281 | You are in a grove of trees, some slightly moister than others. 282 | There are some fembots here. 283 | > west 284 | You are in a grove of trees, some slightly creepier than others. 285 | There are some fembots here. 286 | > south 287 | You are in a grove of trees, some slightly older than others. 288 | There are some fembots here. 289 | > west 290 | You are in a grove of trees, some slightly browner than others. 291 | There are some fembots here. 292 | > north 293 | You are in a grove of trees, some slightly odoriferous than 294 | others. There are some fembots here. 295 | > west 296 | You are in a grove of trees, some slightly taller than others. 297 | There are some fembots here. 298 | > west 299 | You are standing in the quad again. The smell of sweat socks 300 | fills the air. The cafeteria is preparing dinner. 301 | There are some fembots here. 302 | There are some shattered sweat socks here. 303 | There is a small red bottle that says "Drink Me!" here. 304 | There is a book of matches here. 305 | There is a lamp post here. There is a notice pinned to the 306 | lamppost. 307 | > Get matches. 308 | Taken. 309 | > burn notice 310 | Don't you want to see what it says first? 311 | > burn notice 312 | There are many trees nearby. 313 | > burn notice godammit 314 | You must first light a match. 315 | > light match 316 | The match refuses to burn. 317 | > drop match 318 | You violate the ecological pristiness of the area by dropping a 319 | filthy, unnatural, manmade piece of trash on the ground. One of the 320 | fembots gets offended and leaves to organize a protest. 321 | > light second match 322 | The second match bursts into flame. 323 | > burn notice 324 | The notice burns with a pleasant green flame. 325 | > get bottle 326 | You take the bottle that says "Drink Me!" 327 | > north 328 | You walk to a deserted area between two buildings. There is a 329 | north-south path here. 330 | There are some fembots here. 331 | There are some protesters here. 332 | Your fingers are getting warm. 333 | > north 334 | You walk north. The path winds around to the east. There is a 335 | building to the north. 336 | There are some fembots here. 337 | There is some chanting coming from the south. 338 | Your fingers are burning. 339 | > Drop match 340 | You drop the match on the ground. Your fingers continue to burn. 341 | > Suck on fingers 342 | The fembots are offended by the sexual symbolism and leave. 343 | The fire is extinguished. Your fingers are throbbing now. 344 | There is a match burning on the ground. 345 | > step on match 346 | You step on the match, burning the bottom of your foot in the 347 | process. You should remember to wear shoes more often. 348 | There is a burnt-out match sitting on the ground. 349 | > wear shoes 350 | You move very quietly now. 351 | > north 352 | You smack your head into the building. The building does not 353 | move. 354 | Your I.Q. drops by 10 points. You no longer grok spam. 355 | > east 356 | You enter the Merrill academic building. You are in a North-South 357 | hallway. There is a door to the East. Exit is to the West. 358 | > east 359 | You enter a quiet classroom. The students, who had apparently 360 | been taking an exam, look up at you angrily. The professor glares 361 | at you angrily. The students return to their frantic efforts. The 362 | professor, who looks vaguely familiar, continues to glare. You 363 | suddenly realize that this is your calculus class, which you have 364 | not attended in three weeks. 365 | > sit 366 | You find an empty desk. The chair squeaks as you seat yourself, 367 | causing the student next to you to give you a grimace that would 368 | make a good Butthole Surfers album cover. The professor brings you 369 | a copy of the midterm. 370 | > look test 371 | You look at the test. The problems on the first page are 372 | impossible. The material on the following eight pages is worse. 373 | Test stress causes your I.Q. to drop 100 points. 374 | > do test 375 | This is impossible, as you have neither pencil nor calculator. 376 | You realize that failing this exam means failing the course. 377 | > borrow pencil 378 | Your neighbor growls angrily as soon as you start to vocalize 379 | your request. 380 | > steal pencil 381 | You steal the extra pencil from your neighbor's desk. He does not 382 | notice. 383 | > do test 384 | You start to work on the first problem, even though you have only 385 | a vague understanding of how to solve it. The pencil hurts your 386 | charred fingers. Beads of sweat form on your forehead as you 387 | scratch out calculations that would normally be done on a 388 | calculator. You reach an answer that could not possibly be correct. 389 | > do second problem 390 | Just reading the second problem severely stresses your mental 391 | resources. You suffer a brain embolism. 392 | > do problem 393 | You begin calculations on the second problem. Sweat begins to 394 | trickle from your face and armpits. You begin to stink. The trickle 395 | of sweat turns into a raging torrent. Your brain seizes. You cannot 396 | move. 397 | > wait 398 | Time passes... 399 | > wait 400 | Time passes... 401 | > wait 402 | Time passes. You can move now. 403 | > smoke test 404 | Do you really want to do that? 405 | > smoke test 406 | As you inhale the xeroxed papyrus, you feel the knowledge of the 407 | ancients seeping into your mind. You come to a complete 408 | understanding of the material, but you no longer have anything to 409 | turn in. 410 | > write answers 411 | What do you want to write the answers on? 412 | > paper 413 | You start scribbling the solutions to the problems on the blank 414 | papers of zig-zag. Just as you write the last answer, the teacher 415 | collects the exams, staples them together, and leaves. You have 416 | truly smoked this test. 417 | > east 418 | You are in a north-south hallway. There is a door to the east. 419 | > north 420 | You stumble down the hallway in a northerly direction. Smacking 421 | into the door at the end and popping it open. You trip over your 422 | untied shoelaces and fall through the doorway. The door slams shut 423 | behind you. 424 | > Tie shoelaces 425 | You tie your shoelaces into a very tight knot. Your shoes can now 426 | only be removed by surgery. 427 | 428 | --- 429 | -------------------------------------------------------------------------------- /ucsc.adventure.game.md: -------------------------------------------------------------------------------- 1 | 2 | ``` 3 | In article , strange@cats.ucsc.edu writes: 4 | From: strange@cats.ucsc.edu 5 | Newsgroups: rec.humor.funny 6 | Date: 23 May 92 23:30:03 GMT 7 | 8 | This is something I wrote a few months back which has been making 9 | the rounds at UCSC. It's very long, and my not be suitable for posting 10 | on the net because of that. But it's funny, I think.. anyhow, here it is. 11 | 12 | *************************** 13 | 14 | You are in your dorm room. Your roommate is playing Jello 15 | Biafra. The cups on the desk are shattering. 16 | There is an unfinished lab book here. 17 | There is a chemistry book here. 18 | There are socks here. 19 | There are empty beer bottles here. 20 | There is a computer here. 21 | There are six moldy bananas here. 22 | There are several tons of dirty laundry here. 23 | There are shattering cups here. 24 | There is a refrigerator here. 25 | There is a desk with drawers here. 26 | 27 | > turn off music 28 | Your roommate makes discouraged sounds. The cups stop shattering. 29 | > play beach boys 30 | Your roommate throws a hammer into your stereo. You now have no 31 | stereo. Your I.Q. Decreases by 10 points. 32 | > fix stereo 33 | The stereo is shattered beyond repair. 34 | > curse stereo 35 | "May the fleas of a thousand camels infest your erogenous zones!" 36 | The stereo is fixed. The sheer quantity of dirty socks in this room 37 | is making it hard to move. 38 | > look at socks 39 | They are very smelly. It is getting harder and harder to move. 40 | > clean up socks. 41 | You can't. They're all welded together. 42 | > throw socks out window 43 | They soar out the window with the greatest of ease, hit the 44 | ground, and shatter. 45 | > leave room 46 | 24 hour Dave enters, fiending for weed. He blocks your exit. 47 | > kick dave 48 | Dave doesn't seem to notice. 49 | > yell at dave 50 | Dave doesn't seem to notice. 51 | > feed dave 52 | Dave thankfully gobbles your food and asks if there is any more. 53 | > eat dave's head 54 | You start chewing on dave's head. Dave doesn't seem to notice. 55 | Your I.Q. goes up forty points. You now understand chapter four of 56 | your chemistry assignment. Dave is still here. 57 | > work on lab book 58 | You don't have the lab book. 59 | > pick up lab book 60 | It is very heavy. You are carrying too much. 61 | > inventory 62 | You are carrying: 63 | A +10 cut-offs of tumescence 64 | A +3 tee-shirt of tie-die 65 | A +2 elven sneakers of silence 66 | A swiss army knife 67 | A badly laminated card with a picture of you on it. 68 | A very large ring of Keys. 69 | A (much too small) bag of weed. 70 | A package +3 papers of zig-zag. 71 | 72 | > look papers 73 | The papers are blank. 74 | > drop keys 75 | You load lightens considerably. 76 | > pick up lab book 77 | You struggle under the load, but prevail in the end. 78 | > do chemistry lab 79 | You have no calculator. Dave grabs the lab book from you and does 80 | the lab. You are thirsty. 81 | > open refrigerator 82 | A considerable amount of cheap beer is revealed. 83 | > drink cheap beer 84 | You have an instant hangover. You can't stand up. Dave mutters 85 | something about being left out. 86 | > kick dave 87 | Dave doesn't seem to notice. 88 | > offer beer to dave 89 | Dave is drunk. Dave mutters something about being back and 90 | leaves. 91 | > leave room 92 | You can't. You're suffering from a hangover. 93 | > open desk 94 | There is some aspirin here. 95 | > eat aspirin 96 | YUCK! You munch it up. You begin to feel better. 97 | > leave room 98 | The door locks behind you. You are in a north-south hall. There 99 | are several doors here, some marked with magazine clippings. 100 | > unlock door 101 | You can't. Your keys are in the room. 102 | > open doors 103 | You open the nearest door without knocking. Charles and Anna are 104 | here. Dave is here. There are clothes on the floor. There are no 105 | clothes on Charles and Anna. You get the feeling you should leave. 106 | > leave room 107 | As you are leaving, Dave mutters something about Birkenstocks. 108 | You are back in the hall. You are hungry. 109 | > south 110 | You come to a lounge. 111 | There is a door here. 112 | There are two chairs here. 113 | There is a desk here. 114 | Tony is here, studying chemistry. 115 | > greet tony 116 | Tony says, "Hey, bro! How's it goin'? Nice suit." 117 | > commiserate with tony 118 | Tony says, "I'm really stressing hard on this test, bro." You are 119 | still hungry. 120 | > open door 121 | There are stairs down to the west. There are stairs up to the 122 | west. There is a walkway to the south. 123 | > down 124 | There is an east-west ramp here. There are some people here. They 125 | comment loudly on your nudity. 126 | > west 127 | You are in a quad. There is a picnic table here. The door to the 128 | cafeteria is to the north. 129 | > north 130 | They don't let naked people into the cafeteria. You are forcibly 131 | ejected. 132 | > inventory 133 | You are carrying: 134 | A +10 cut-offs of tumescence 135 | A +3 tee-shirt of tie-die 136 | A +2 elven sneakers of silence 137 | A swiss army knife 138 | A badly laminated card with a picture of you on it. 139 | An (even smaller) bag of weed. 140 | A package of blank +3 papers of zig-zag. 141 | 142 | > wear shirt 143 | You are resplendent in your +3 tee-shirt of tie die. 144 | > wear shorts 145 | You are now a bulging wonder. 146 | > north 147 | You are in a room full of simulated food. 148 | > eat food 149 | You aren't even vaguely hungry. In fact, the concept of 150 | introducing this swill into your system is bletcherous. 151 | > south 152 | You are in a quad. 153 | > smoke weed 154 | You now have the munchies. Your subjective I.Q. increases by 10 155 | points. You have a revelation involving the cosmic significance of 156 | Spam. 157 | > north 158 | You are in a room full of an infinite amount of delectable 159 | munchables. 160 | > eat food 161 | You need a tray first. 162 | > get tray 163 | You now have the Tray of Cafeteria Browninan Motion. 164 | > eat food 165 | You serve yourself a generous portion of cafeteria yumness. You 166 | take a seat and begin shoveling it into your face. After two bites 167 | you are full. You have food poisoning. 168 | > leave 169 | You can't. The cafeteria is cursed. You still have food 170 | poisoning. 171 | > search cafeteria 172 | You find half a bottle of Everclear stashed in the salad bar. 173 | > drink bottle 174 | Wouldn't you prefer something safer? Like cutting a pre- 175 | enrollment line? 176 | > take small sip 177 | A small sip is probably sufficient to kill all the residents of 178 | Hong Kong and render it uninhabitable until the lease runs out. 179 | > take small small sip 180 | You feel the potent brew coursing down your digestive tract, 181 | killing everything in its path. You no longer have food poisoning. 182 | You pass out. After two hours, you wake up. 183 | You are in a quad. 184 | > west 185 | You are in no shape to move. You attempt to sit up, and the world 186 | does a tap dance on your face. 187 | > wait 188 | Time passes.... 189 | > wait 190 | Time passes.... 191 | > wait 192 | Time passes..... The world slows to a waltz. 193 | > west 194 | There is a militant lesbian here, blocking your path. 195 | > kick lesbian 196 | She enjoys it. She points out that you are a fascist sexist 197 | bastard. 198 | > wait 199 | The lesbian launches into a discourse on the oppressive 200 | patriarchal system. 201 | > smell lesbian 202 | Don't do that. 203 | > pull leg hairs 204 | You have been kicked in the balls. You pass out. You lose 5 I.Q. 205 | points. 206 | You wake up numb from the waist down. 207 | You are in a quad. 208 | > west 209 | There is a militant lesbian here, blocking your path. 210 | > bash male sex 211 | The militant lesbian smiles, calls you a sister, and walks off. 212 | > west 213 | This is a gentle downhill slope. There is a meadow to the west. 214 | The path forks here. There is a path to the northwest. There is a 215 | path to the southwest. 216 | > southwest 217 | You arrive at the mailhouse. 218 | > look in mailbox 219 | There are six thousand freshmen kneeling at the bottom row of 220 | boxes. Some are wearing short skirts, but that's slim consolation. 221 | > wait 222 | Time passes.... 223 | > wait 224 | Time passes.... A space opens up in front of your box. 225 | > look in box 226 | The space is grabbed faster than you can move. You need split- 227 | second reflexes. 228 | > wait 229 | Time passes.... 230 | > wait 231 | Time passes.... A space opens up in front of your box. 232 | > lunge 233 | You get your spot. 234 | > look in box 235 | It's packed to the bursting point. 236 | > open box 237 | You goof up. 238 | > again 239 | You goof up. 240 | > again 241 | You finally manage to open the box. Inside there are eight flyers 242 | for college events that happened three weeks ago. A ninth is 243 | current - an invitation to play croquet with the provost. You 244 | decline and roundfile the sheaf. There is a package notice here. 245 | There is a letter here. 246 | > read letter 247 | You open the letter. It is a long steamy graphic explicit love 248 | letter... from a total stranger. 249 | > check address 250 | Both the package notice and the opened letter are for your 251 | boxmate. They are postdated three months ago. You have been 252 | airboxed. 253 | > north 254 | You are hemmed in by 1000 dorm androids sans brassieres trying to 255 | get to their boxes. 256 | > howl 257 | Your howling causes the androids to stare at the sky in 258 | confusion, giving you time to make your escape. 259 | > north 260 | You exit stage left, kicking several fembots in the shins as you 261 | pass. The bit of abuse you inflict causes several of the fembots to 262 | follow you, hoping for more. 263 | There is a very small grove of trees to the east. 264 | > east 265 | You are in a grove of trees, some slightly taller than others. 266 | There are some fembots here. 267 | > north 268 | You are in a grove of trees, some slightly smaller than others. 269 | There are some fembots here. 270 | > west 271 | You are in a grove of trees, some slightly bigger than others. 272 | There are some fembots here. 273 | > north 274 | You are in a grove of trees, some slightly leafier than others. 275 | There are some fembots here. 276 | > southeast 277 | You are in a grove of trees, some slightly greener than others. 278 | There are some fembots here. 279 | > east 280 | You are in a grove of trees, some slightly darker than others. 281 | There are some fembots here. 282 | > south 283 | You are in a grove of trees, some slightly moister than others. 284 | There are some fembots here. 285 | > west 286 | You are in a grove of trees, some slightly creepier than others. 287 | There are some fembots here. 288 | > south 289 | You are in a grove of trees, some slightly older than others. 290 | There are some fembots here. 291 | > west 292 | You are in a grove of trees, some slightly browner than others. 293 | There are some fembots here. 294 | > north 295 | You are in a grove of trees, some slightly odoriferous than 296 | others. There are some fembots here. 297 | > west 298 | You are in a grove of trees, some slightly taller than others. 299 | There are some fembots here. 300 | > west 301 | You are standing in the quad again. The smell of sweat socks 302 | fills the air. The cafeteria is preparing dinner. 303 | There are some fembots here. 304 | There are some shattered sweat socks here. 305 | There is a small red bottle that says "Drink Me!" here. 306 | There is a book of matches here. 307 | There is a lamp post here. There is a notice pinned to the 308 | lamppost. 309 | > Get matches. 310 | Taken. 311 | > burn notice 312 | Don't you want to see what it says first? 313 | > burn notice 314 | There are many trees nearby. 315 | > burn notice godammit 316 | You must first light a match. 317 | > light match 318 | The match refuses to burn. 319 | > drop match 320 | You violate the ecological pristiness of the area by dropping a 321 | filthy, unnatural, manmade piece of trash on the ground. One of the 322 | fembots gets offended and leaves to organize a protest. 323 | > light second match 324 | The second match bursts into flame. 325 | > burn notice 326 | The notice burns with a pleasant green flame. 327 | > get bottle 328 | You take the bottle that says "Drink Me!" 329 | > north 330 | You walk to a deserted area between two buildings. There is a 331 | north-south path here. 332 | There are some fembots here. 333 | There are some protesters here. 334 | Your fingers are getting warm. 335 | > north 336 | You walk north. The path winds around to the east. There is a 337 | building to the north. 338 | There are some fembots here. 339 | There is some chanting coming from the south. 340 | Your fingers are burning. 341 | > Drop match 342 | You drop the match on the ground. Your fingers continue to burn. 343 | > Suck on fingers 344 | The fembots are offended by the sexual symbolism and leave. 345 | The fire is extinguished. Your fingers are throbbing now. 346 | There is a match burning on the ground. 347 | > step on match 348 | You step on the match, burning the bottom of your foot in the 349 | process. You should remember to wear shoes more often. 350 | There is a burnt-out match sitting on the ground. 351 | > wear shoes 352 | You move very quietly now. 353 | > north 354 | You smack your head into the building. The building does not 355 | move. 356 | Your I.Q. drops by 10 points. You no longer grok spam. 357 | > east 358 | You enter the Merrill academic building. You are in a North-South 359 | hallway. There is a door to the East. Exit is to the West. 360 | > east 361 | You enter a quiet classroom. The students, who had apparently 362 | been taking an exam, look up at you angrily. The professor glares 363 | at you angrily. The students return to their frantic efforts. The 364 | professor, who looks vaguely familiar, continues to glare. You 365 | suddenly realize that this is your calculus class, which you have 366 | not attended in three weeks. 367 | > sit 368 | You find an empty desk. The chair squeaks as you seat yourself, 369 | causing the student next to you to give you a grimace that would 370 | make a good Butthole Surfers album cover. The professor brings you 371 | a copy of the midterm. 372 | > look test 373 | You look at the test. The problems on the first page are 374 | impossible. The material on the following eight pages is worse. 375 | Test stress causes your I.Q. to drop 100 points. 376 | > do test 377 | This is impossible, as you have neither pencil nor calculator. 378 | You realize that failing this exam means failing the course. 379 | > borrow pencil 380 | Your neighbor growls angrily as soon as you start to vocalize 381 | your request. 382 | > steal pencil 383 | You steal the extra pencil from your neighbor's desk. He does not 384 | notice. 385 | > do test 386 | You start to work on the first problem, even though you have only 387 | a vague understanding of how to solve it. The pencil hurts your 388 | charred fingers. Beads of sweat form on your forehead as you 389 | scratch out calculations that would normally be done on a 390 | calculator. You reach an answer that could not possibly be correct. 391 | > do second problem 392 | Just reading the second problem severely stresses your mental 393 | resources. You suffer a brain embolism. 394 | > do problem 395 | You begin calculations on the second problem. Sweat begins to 396 | trickle from your face and armpits. You begin to stink. The trickle 397 | of sweat turns into a raging torrent. Your brain seizes. You cannot 398 | move. 399 | > wait 400 | Time passes... 401 | > wait 402 | Time passes... 403 | > wait 404 | Time passes. You can move now. 405 | > smoke test 406 | Do you really want to do that? 407 | > smoke test 408 | As you inhale the xeroxed papyrus, you feel the knowledge of the 409 | ancients seeping into your mind. You come to a complete 410 | understanding of the material, but you no longer have anything to 411 | turn in. 412 | > write answers 413 | What do you want to write the answers on? 414 | > paper 415 | You start scribbling the solutions to the problems on the blank 416 | papers of zig-zag. Just as you write the last answer, the teacher 417 | collects the exams, staples them together, and leaves. You have 418 | truly smoked this test. 419 | > east 420 | You are in a north-south hallway. There is a door to the east. 421 | > north 422 | You stumble down the hallway in a northerly direction. Smacking 423 | into the door at the end and popping it open. You trip over your 424 | untied shoelaces and fall through the doorway. The door slams shut 425 | behind you. 426 | > Tie shoelaces 427 | You tie your shoelaces into a very tight knot. Your shoes can now 428 | only be removed by surgery. 429 | 430 | --- 431 | 432 | ``` 433 | 434 | Originally found on MIT but only accessible via Google Cache now 435 | http://web.mit.edu/humor/Computers/ucsc.adventure.game 436 | 437 | Retrieved 2020.06.30 by @nyxgeek 438 | -------------------------------------------------------------------------------- /portrait-of-j-random-hacker.md: -------------------------------------------------------------------------------- 1 | ## A Portrait of J. Random Hacker 2 | 3 | This profile reflects detailed comments on an earlier 'trial balloon' version from about a hundred Usenet respondents. Where comparatives are used, the implicit 'other' is a randomly selected segment of the non-hacker population of the same size as hackerdom. 4 | 5 | An important point: Except in some relatively minor respects such as slang vocabulary, hackers don't get to be the way they are by imitating each other. Rather, it seems to be the case that the combination of personality traits that makes a hacker so conditions one's outlook on life that one tends to end up being like other hackers whether one wants to or not (much as bizarrely detailed similarities in behavior and preferences are found in genetic twins raised separately). 6 | 7 | ### General Appearance 8 | 9 | Intelligent. Scruffy. Intense. Abstracted. Surprisingly for a sedentary profession, more hackers run to skinny than fat; both extremes are more common than elsewhere. Tans are rare. 10 | 11 | ### Dress 12 | 13 | Casual, vaguely post-hippie; T-shirts, jeans, running shoes, Birkenstocks (or bare feet). Long hair, beards, and moustaches are common. High incidence of tie-dye and intellectual or humorous 'slogan' T-shirts (only rarely computer related; that would be too obvious). 14 | 15 | A substantial minority prefers 'outdoorsy' clothing -- hiking boots ("in case a mountain should suddenly spring up in the machine room", as one famous parody put it), khakis, lumberjack or chamois shirts, and the like. 16 | 17 | Very few actually fit the "National Lampoon" Nerd stereotype, though it lingers on at MIT and may have been more common before 1975. At least since the late Seventies backpacks have been more common than briefcases, and the hacker 'look' has been more whole-earth than whole-polyester. 18 | 19 | Hackers dress for comfort, function, and minimal maintenance hassles rather than for appearance (some, perhaps unfortunately, take this to extremes and neglect personal hygiene). They have a very low tolerance of suits and other 'business' attire; in fact, it is not uncommon for hackers to quit a job rather than conform to a dress code. 20 | 21 | Female hackers almost never wear visible makeup, and many use none at all. 22 | 23 | ### Reading Habits 24 | 25 | Omnivorous, but usually includes lots of science and science fiction. The typical hacker household might subscribe to "Analog", "Scientific American", "Whole-Earth Review", and "Smithsonian" (most hackers ignore "Wired" and other self-consciously 'cyberpunk' magazines, considering them wannabee fodder). Hackers often have a reading range that astonishes liberal arts people but tend not to talk about it as much. Many hackers spend as much of their spare time reading as the average American burns up watching TV, and often keep shelves and shelves of well-thumbed books in their homes. 26 | 27 | 28 | ### Other Interests 29 | 30 | Some hobbies are widely shared and recognized as going with the culture: science fiction, music, medievalism (in the active form practiced by the Society for Creative Anachronism and similar organizations), chess, go, backgammon, wargames, and intellectual games of all kinds. (Role-playing games such as Dungeons and Dragons used to be extremely popular among hackers but they lost a bit of their luster as they moved into the mainstream and became heavily commercialized. More recently, "Magic: The Gathering" has been widely popular among hackers.) Logic puzzles. Ham radio. Other interests that seem to correlate less strongly but positively with hackerdom include linguistics and theater teching. 31 | 32 | ### Physical Activity and Sports 33 | 34 | Many (perhaps even most) hackers don't follow or do sports at all and are determinedly anti-physical. Among those who do, interest in spectator sports is low to non-existent; sports are something one does, not something one watches on TV. 35 | 36 | Further, hackers avoid most team sports like the plague. Volleyball was long a notable exception, perhaps because it's non-contact and relatively friendly; Ultimate Frisbee has become quite popular for similar reasons. Hacker sports are almost always primarily self-competitive ones involving concentration, stamina, and micromotor skills: martial arts, bicycling, auto racing, kite flying, hiking, rock climbing, aviation, target-shooting, sailing, caving, juggling, skiing, skating. Hackers' delight in techno-toys also tends to draw them towards hobbies with nifty complicated equipment that they can tinker with. 37 | 38 | ### Education 39 | 40 | Nearly all hackers past their teens are either college-degreed or self-educated to an equivalent level. The self-taught hacker is often considered (at least by other hackers) to be better-motivated, and may be more respected, than his school-shaped counterpart. Academic areas from which people often gravitate into hackerdom include (besides the obvious computer science and electrical engineering) physics, mathematics, linguistics, and philosophy. 41 | 42 | ### Things Hackers Detest and Avoid 43 | 44 | IBM mainframes. All the works of Microsoft. Smurfs, Ewoks, and other forms of offensive cuteness. Bureaucracies. Stupid people. Easy listening music. Television (with occasional exceptions for cartoons, movies, and good SF like "Star Trek" classic or Babylon 5). Business suits. Dishonesty. Incompetence. Boredom. COBOL. BASIC. Character-based menu interfaces. 45 | 46 | ### Food 47 | 48 | Ethnic. Spicy. Oriental, esp. Chinese and most esp. Szechuan, Hunan, and Mandarin (hackers consider Cantonese vaguely déclassé). Hackers prefer the exotic; for example, the Japanese-food fans among them will eat with gusto such delicacies as fugu (poisonous pufferfish) and whale. Thai food has experienced flurries of popularity. Where available, high-quality Jewish delicatessen food is much esteemed. A visible minority of Southwestern and Pacific Coast hackers prefers Mexican. 49 | 50 | For those all-night hacks, pizza and microwaved burritos are big. Interestingly, though the mainstream culture has tended to think of hackers as incorrigible junk-food junkies, many have at least mildly health-foodist attitudes and are fairly discriminating about what they eat. This may be generational; anecdotal evidence suggests that the stereotype was more on the mark before the early 1980s. 51 | 52 | ### Politics 53 | 54 | Vaguely liberal-moderate, except for the strong libertarian contingent which rejects conventional left-right politics entirely. The only safe generalization is that hackers tend to be rather anti-authoritarian; thus, both conventional conservatism and 'hard' leftism are rare. Hackers are far more likely than most non-hackers to either (a) be aggressively apolitical or (b) entertain peculiar or idiosyncratic political ideas and actually try to live by them day-to-day. 55 | 56 | ### Gender and Ethnicity 57 | 58 | Hackerdom is still predominantly male. However, the percentage of women is clearly higher than the low-single-digit range typical for technical professions, and female hackers are generally respected and dealt with as equals. 59 | 60 | In the U.S., hackerdom is predominantly Caucasian with strong minorities of Jews (East Coast) and Orientals (West Coast). The Jewish contingent has exerted a particularly pervasive cultural influence (see Food, above, and note that several common jargon terms are obviously mutated Yiddish). 61 | 62 | The ethnic distribution of hackers is understood by them to be a function of which ethnic groups tend to seek and value education. Racial and ethnic prejudice is notably uncommon and tends to be met with freezing contempt. 63 | 64 | When asked, hackers often ascribe their culture's gender- and color-blindness to a positive effect of text-only network channels, and this is doubtless a powerful influence. Also, the ties many hackers have to AI research and SF literature may have helped them to develop an idea of personhood that is inclusive rather than exclusive -- after all, if one's imagination readily grants full human rights to future AI programs, robots, dolphins, and extraterrestrial aliens, mere color and gender can't seem very important any more. 65 | 66 | ### Religion 67 | 68 | Agnostic. Atheist. Non-observant Jewish. Neo-pagan. Very commonly, three or more of these are combined in the same person. Conventional faith-holding Christianity is rare though not unknown. 69 | 70 | Even hackers who identify with a religious affiliation tend to be relaxed about it, hostile to organized religion in general and all forms of religious bigotry in particular. Many enjoy 'parody' religions such as Discordianism and the Church of the SubGenius. 71 | 72 | Also, many hackers are influenced to varying degrees by Zen Buddhism or (less commonly) Taoism, and blend them easily with their 'native' religions. 73 | 74 | There is a definite strain of mystical, almost Gnostic sensibility that shows up even among those hackers not actively involved with neo-paganism, Discordianism, or Zen. Hacker folklore that pays homage to 'wizards' and speaks of incantations and demons has too much psychological truthfulness about it to be entirely a joke. 75 | 76 | ### Ceremonial Chemicals 77 | 78 | Most hackers don't smoke tobacco, and use alcohol in moderation if at all. However, there has been something of a trend towards exotic beers since about 1995, especially among younger Linux hackers apparently influenced by Linus Torvalds's fondness for Guiness. 79 | 80 | Limited use of non-addictive psychedelic drugs, such as cannabis, LSD, psilocybin, nitrous oxide, etc., used to be relatively common and is still regarded with more tolerance than in the mainstream culture. Use of 'downers' and opiates, on the other hand, appears to be particularly rare; hackers seem in general to dislike drugs that make them stupid. On the third hand, many hackers regularly wire up on caffeine and/or sugar for all-night hacking runs. 81 | 82 | ### Communication Style 83 | 84 | See the discussions of speech and writing styles near the beginning of this File. Though hackers often have poor person-to-person communication skills, they are as a rule quite sensitive to nuances of language and very precise in their use of it. They are often better at writing than at speaking. 85 | 86 | ### Geographical Distribution 87 | 88 | In the United States, hackerdom revolves on a Bay Area-to-Boston axis; about half of the hard core seems to live within a hundred miles of Cambridge (Massachusetts) or Berkeley (California), although there are significant contingents in Los Angeles, in the Pacific Northwest, and around Washington DC. Hackers tend to cluster around large cities, especially 'university towns' such as the Raleigh-Durham area in North Carolina or Princeton, New Jersey (this may simply reflect the fact that many are students or ex-students living near their alma maters). 89 | 90 | ### Sexual Habits 91 | 92 | Hackerdom easily tolerates a much wider range of sexual and lifestyle variation than the mainstream culture. It includes a relatively large gay and bisexual contingent. Hackers are somewhat more likely to live in polygynous or polyandrous relationships, practice open marriage, or live in communes or group houses. In this, as in general appearance, hackerdom semi-consciously maintains 'counterculture' values. 93 | 94 | ### Personality Characteristics 95 | 96 | The most obvious common 'personality' characteristics of hackers are high intelligence, consuming curiosity, and facility with intellectual abstractions. Also, most hackers are `neophiles', stimulated by and appreciative of novelty (especially intellectual novelty). Most are also relatively individualistic and anti-conformist. 97 | 98 | Although high general intelligence is common among hackers, it is not the sine qua non one might expect. Another trait is probably even more important: the ability to mentally absorb, retain, and reference large amounts of 'meaningless' detail, trusting to later experience to give it context and meaning. A person of merely average analytical intelligence who has this trait can become an effective hacker, but a creative genius who lacks it will swiftly find himself outdistanced by people who routinely upload the contents of thick reference manuals into their brains. [During the production of the first book version of this document, for example, I learned most of the rather complex typesetting language TeX over about four working days, mainly by inhaling Knuth's 477-page manual. My editor's flabbergasted reaction to this genuinely surprised me, because years of associating with hackers have conditioned me to consider such performances routine and to be expected. --ESR] 99 | 100 | Contrary to stereotype, hackers are not usually intellectually narrow; they tend to be interested in any subject that can provide mental stimulation, and can often discourse knowledgeably and even interestingly on any number of obscure subjects -- if you can get them to talk at all, as opposed to, say, going back to their hacking. 101 | 102 | It is noticeable (and contrary to many outsiders' expectations) that the better a hacker is at hacking, the more likely he or she is to have outside interests at which he or she is more than merely competent. 103 | 104 | Hackers are 'control freaks' in a way that has nothing to do with the usual coercive or authoritarian connotations of the term. In the same way that children delight in making model trains go forward and back by moving a switch, hackers love making complicated things like computers do nifty stuff for them. But it has to be their nifty stuff. They don't like tedium, nondeterminism, or most of the fussy, boring, ill-defined little tasks that go with maintaining a normal existence. Accordingly, they tend to be careful and orderly in their intellectual lives and chaotic elsewhere. Their code will be beautiful, even if their desks are buried in 3 feet of crap. 105 | 106 | Hackers are generally only very weakly motivated by conventional rewards such as social approval or money. They tend to be attracted by challenges and excited by interesting toys, and to judge the interest of work or other activities in terms of the challenges offered and the toys they get to play with. 107 | 108 | In terms of Myers-Briggs and equivalent psychometric systems, hackerdom appears to concentrate the relatively rare INTJ and INTP types; that is, introverted, intuitive, and thinker types (as opposed to the extroverted-sensate personalities that predominate in the mainstream culture). ENT[JP] types are also concentrated among hackers but are in a minority. 109 | 110 | ### Weaknesses of the Hacker Personality 111 | 112 | Hackers have relatively little ability to identify emotionally with other people. This may be because hackers generally aren't much like 'other people'. Unsurprisingly, hackers also tend towards self-absorption, intellectual arrogance, and impatience with people and tasks perceived to be wasting their time. 113 | 114 | As cynical as hackers sometimes wax about the amount of idiocy in the world, they tend by reflex to assume that everyone is as rational, 'cool', and imaginative as they consider themselves. This bias often contributes to weakness in communication skills. Hackers tend to be especially poor at confrontation and negotiation. 115 | 116 | Because of their passionate embrace of (what they consider to be) the Right Thing, hackers can be unfortunately intolerant and bigoted on technical issues, in marked contrast to their general spirit of camaraderie and tolerance of alternative viewpoints otherwise. Old-time ITS partisans look down on the ever-growing hordes of Unix hackers; Unix aficionados despise VMS and MS-DOS; and hackers who are used to conventional command-line user interfaces loudly loathe mouse-and-menu based systems such as the Macintosh. Hackers who don't indulge in Usenet consider it a huge waste of time and bandwidth; fans of old adventure games such as ADVENT and Zork consider MUDs to be glorified chat systems devoid of atmosphere or interesting puzzles; hackers who are willing to devote endless hours to Usenet or MUDs consider IRC to be a real waste of time; IRCies think MUDs might be okay if there weren't all those silly puzzles in the way. And, of course, there are the perennial holy wars -- EMACS vs. vi, big-endian vs. little-endian, RISC vs. CISC, etc., etc., etc. As in society at large, the intensity and duration of these debates is usually inversely proportional to the number of objective, factual arguments available to buttress any position. 117 | 118 | As a result of all the above traits, many hackers have difficulty maintaining stable relationships. At worst, they can produce the classic computer geek: withdrawn, relationally incompetent, sexually frustrated, and desperately unhappy when not submerged in his or her craft. Fortunately, this extreme is far less common than mainstream folklore paints it -- but almost all hackers will recognize something of themselves in the unflattering paragraphs above. 119 | 120 | Hackers are often monumentally disorganized and sloppy about dealing with the physical world. Bills don't get paid on time, clutter piles up to incredible heights in homes and offices, and minor maintenance tasks get deferred indefinitely. 121 | 122 | 1994-95's fad behavioral disease was a syndrome called Attention Deficit Disorder (ADD), supposedly characterized by (among other things) a combination of short attention span with an ability to 'hyperfocus' imaginatively on interesting tasks. In 1998-1999 another syndrome that is said to overlap with many hacker traits entered popular awareness: Asperger's syndrome (AS). This disorder is also sometimes called 'high-function autism', though researchers are divided on whether AS is in fact a mild form of autism or a distinct syndrome with a different etiology. AS patients exhibit mild to severe deficits in interpreting facial and body-language cues and in modeling or empathizing with others' emotions. Though some AS patients exhibit mild retardation, others compensate for their deficits with high intelligence and analytical ability, and frequently seek out technical fields where problem-solving abilities are at a premium and people skills are relatively unimportant. Both syndromes are thought to relate to abnormalities in neurotransmitter chemistry, especially the brain's processing of serotonin. 123 | 124 | Many hackers have noticed that mainstream culture has shown a tendency to pathologize and medicalize normal variations in personality, especially those variations that make life more complicated for authority figures and conformists. Thus, hackers aware of the issue tend to be among those questioning whether ADD and AS actually exist; and if so whether they are really 'diseases' rather than extremes of a normal genetic variation like having freckles or being able to taste DPT. In either case, they have a sneaking tendency to wonder if these syndromes are over-diagnosed and over-treated. After all, people in authority will always be inconvenienced by schoolchildren or workers or citizens who are prickly, intelligent individualists - thus, any social system that depends on authority relationships will tend to helpfully ostracize and therapize and drug such 'abnormal' people until they are properly docile and stupid and 'well-socialized'. 125 | 126 | So hackers tend to believe they have good reason for skepticism about clinical explanations of the hacker personality. That being said, most would also concede that some hacker traits coincide with indicators for ADD and AS. It is probably true that boosters of both would find a rather higher rate of clinical ADD among hackers than the supposedly mainstream-normal 10% (AS is rarer and there are not yet good estimates of incidence as of 2000). 127 | 128 | ### Miscellaneous 129 | 130 | Hackers are more likely to have cats than dogs (in fact, it is widely grokked that cats have the hacker nature). Many drive incredibly decrepit heaps and forget to wash them; richer ones drive spiffy Porsches and RX-7s and then forget to have them washed. Almost all hackers have terribly bad handwriting, and often fall into the habit of block-printing everything like junior draftsmen. 131 | 132 | 133 | 134 | 135 | RETRIEVED FROM: http://plumeria.vmth.ucdavis.edu/~saintly/bio/portrait.html 136 | 137 | RETRIEVED ON: 2017-October-3 - @nyxgeek 138 | -------------------------------------------------------------------------------- /hacker-purity-test.md: -------------------------------------------------------------------------------- 1 | ``` 2 | From AMFPN@NEUVM1.BITNET Tue Oct 31 20:46:54 1989 3 | From: Per Nielsen 4 | Subject: Hacker test (was: Forwarded mail for FREETALK) 5 | 6 | 7 | 8 | 1 9 | 10 | 11 | THE HACKER TEST - Version 1.0 12 | 13 | 14 | Preface: 06.16.89 15 | 16 | This test was conceived and written by Felix Lee, John Hayes and Angela 17 | Thomas at the end of the spring semester, 1989. It has gone through 18 | many revisions prior to this initial release, and will undoubtedly go 19 | through many more. 20 | 21 | 22 | (Herewith a compendium of fact and folklore about computer hackerdom, 23 | cunningly disguised as a test.) 24 | 25 | 26 | Scoring - Count 1 for each item that you have done, or each 27 | question that you can answer correctly. 28 | 29 | 30 | If you score is between: You are 31 | 32 | 0x000 and 0x010 -> Computer Illiterate 33 | 0x011 and 0x040 -> a User 34 | 0x041 and 0x080 -> an Operator 35 | 0x081 and 0x0C0 -> a Nerd 36 | 0x0C1 and 0x100 -> a Hacker 37 | 0x101 and 0x180 -> a Guru 38 | 0x181 and 0x200 -> a Wizard 39 | 40 | Note: If you don't understand the scoring, stop here. 41 | 42 | 43 | And now for the questions... 44 | 45 | 46 | 0001 Have you ever used a computer? 47 | 0002 ... for more than 4 hours continuously? 48 | 0003 ... more than 8 hours? 49 | 0004 ... more than 16 hours? 50 | 0005 ... more than 32 hours? 51 | 52 | 0006 Have you ever patched paper tape? 53 | 54 | 0007 Have you ever missed a class while programming? 55 | 0008 ... Missed an examination? 56 | 0009 ... Missed a wedding? 57 | 0010 ... Missed your own wedding? 58 | 59 | 0011 Have you ever programmed while intoxicated? 60 | 0012 ... Did it make sense the next day? 61 | 62 | 0013 Have you ever written a flight simulator? 63 | 64 | 0014 Have you ever voided the warranty on your equipment? 65 | 66 | 0015 Ever change the value of 4? 67 | 0016 ... Unintentionally? 68 | 0017 ... In a language other than Fortran? 69 | 70 | 0018 Do you use DWIM to make life interesting? 71 | 72 | 0019 Have you named a computer? 73 | 74 | 0020 Do you complain when a "feature" you use gets fixed? 75 | 76 | 0021 Do you eat slime-molds? 77 | 78 | 0022 Do you know how many days old you are? 79 | 80 | 0023 Have you ever wanted to download pizza? 81 | 82 | 0024 Have you ever invented a computer joke? 83 | 0025 ... Did someone not 'get' it? 84 | 85 | 0026 Can you recite Jabberwocky? 86 | 0027 ... Backwards? 87 | 88 | 0028 Have you seen "Donald Duck in Mathemagic Land"? 89 | 90 | 0029 Have you seen "Tron"? 91 | 92 | 0030 Have you seen "Wargames"? 93 | 94 | 0031 Do you know what ASCII stands for? 95 | 0032 ... EBCDIC? 96 | 97 | 0033 Can you read and write ASCII in hex or octal? 98 | 0034 Do you know the names of all the ASCII control codes? 99 | 100 | 0035 Can you read and write EBCDIC in hex? 101 | 102 | 0036 Can you convert from EBCDIC to ASCII and vice versa? 103 | 104 | 0037 Do you know what characters are the same in both ASCII and EBCDIC? 105 | 106 | 0038 Do you know maxint on your system? 107 | 108 | 0039 Ever define your own numerical type to get better precision? 109 | 110 | 0040 Can you name powers of two up to 2**16 in arbitrary order? 111 | 0041 ... up to 2**32? 112 | 0042 ... up to 2**64? 113 | 114 | 0043 Can you read a punched card, looking at the holes? 115 | 0044 ... feeling the holes? 116 | 117 | 0045 Have you ever patched binary code? 118 | 0046 ... While the program was running? 119 | 120 | 0047 Have you ever used program overlays? 121 | 122 | 0048 Have you met any IBM vice-president? 123 | 0049 Do you know Dennis, Bill, or Ken? 124 | 125 | 0050 Have you ever taken a picture of a CRT? 126 | 0051 Have you ever played a videotape on your CRT? 127 | 128 | 0052 Have you ever digitized a picture? 129 | 130 | 0053 Did you ever forget to mount a scratch monkey? 131 | 132 | 0054 Have you ever optimized an idle loop? 133 | 134 | 0055 Did you ever optimize a bubble sort? 135 | 136 | 0056 Does your terminal/computer talk to you? 137 | 138 | 0057 Have you ever talked into an acoustic modem? 139 | 0058 ... Did it answer? 140 | 141 | 0059 Can you whistle 300 baud? 142 | 0060 ... 1200 baud? 143 | 144 | 0061 Can you whistle a telephone number? 145 | 146 | 0062 Have you witnessed a disk crash? 147 | 0063 Have you made a disk drive "walk"? 148 | 149 | 0064 Can you build a puffer train? 150 | 0065 ... Do you know what it is? 151 | 152 | 0066 Can you play music on your line printer? 153 | 0067 ... Your disk drive? 154 | 0068 ... Your tape drive? 155 | 156 | 0069 Do you have a Snoopy calendar? 157 | 0070 ... Is it out-of-date? 158 | 159 | 0071 Do you have a line printer picture of... 160 | 0072 ... the Mona Lisa? 161 | 0073 ... the Enterprise? 162 | 0074 ... Einstein? 163 | 0075 ... Oliver? 164 | 0076 Have you ever made a line printer picture? 165 | 166 | 0077 Do you know what the following stand for? 167 | 0078 ... DASD 168 | 0079 ... Emacs 169 | 0080 ... ITS 170 | 0081 ... RSTS/E 171 | 0082 ... SNA 172 | 0083 ... Spool 173 | 0084 ... TCP/IP 174 | 175 | Have you ever used 176 | 0085 ... TPU? 177 | 0086 ... TECO? 178 | 0087 ... Emacs? 179 | 0088 ... ed? 180 | 0089 ... vi? 181 | 0090 ... Xedit (in VM/CMS)? 182 | 0091 ... SOS? 183 | 0092 ... EDT? 184 | 0093 ... Wordstar? 185 | 186 | 0094 Have you ever written a CLIST? 187 | 188 | Have you ever programmed in 189 | 0095 ... the X windowing system? 190 | 0096 ... CICS? 191 | 192 | 0097 Have you ever received a Fax or a photocopy of a floppy? 193 | 194 | 0098 Have you ever shown a novice the "any" key? 195 | 0099 ... Was it the power switch? 196 | 197 | Have you ever attended 198 | 0100 ... Usenix? 199 | 0101 ... DECUS? 200 | 0102 ... SHARE? 201 | 0103 ... SIGGRAPH? 202 | 0104 ... NetCon? 203 | 204 | 0105 Have you ever participated in a standards group? 205 | 206 | 0106 Have you ever debugged machine code over the telephone? 207 | 208 | 0107 Have you ever seen voice mail? 209 | 0108 ... Can you read it? 210 | 211 | 0109 Do you solve word puzzles with an on-line dictionary? 212 | 213 | 0110 Have you ever taken a Turing test? 214 | 0111 ... Did you fail? 215 | 216 | 0112 Ever drop a card deck? 217 | 0113 ... Did you successfully put it back together? 218 | 0114 ... Without looking? 219 | 220 | 0115 Have you ever used IPCS? 221 | 222 | 0116 Have you ever received a case of beer with your computer? 223 | 224 | 0117 Does your computer come in 'designer' colors? 225 | 226 | 0118 Ever interrupted a UPS? 227 | 228 | 0119 Ever mask an NMI? 229 | 230 | 0120 Have you ever set off a Halon system? 231 | 0121 ... Intentionally? 232 | 0122 ... Do you still work there? 233 | 234 | 0123 Have you ever hit the emergency power switch? 235 | 0124 ... Intentionally? 236 | 237 | 0125 Do you have any defunct documentation? 238 | 0126 ... Do you still read it? 239 | 240 | 0127 Ever reverse-engineer or decompile a program? 241 | 0128 ... Did you find bugs in it? 242 | 243 | 0129 Ever help the person behind the counter with their terminal/computer? 244 | 245 | 0130 Ever tried rack mounting your telephone? 246 | 247 | 0131 Ever thrown a computer from more than two stories high? 248 | 249 | 0132 Ever patched a bug the vendor does not acknowledge? 250 | 251 | 0133 Ever fix a hardware problem in software? 252 | 0134 ... Vice versa? 253 | 254 | 0135 Ever belong to a user/support group? 255 | 256 | 0136 Ever been mentioned in Computer Recreations? 257 | 258 | 0137 Ever had your activities mentioned in the newspaper? 259 | 0138 ... Did you get away with it? 260 | 261 | 0139 Ever engage a drum brake while the drum was spinning? 262 | 263 | 0140 Ever write comments in a non-native language? 264 | 265 | 0141 Ever physically destroy equipment from software? 266 | 267 | 0142 Ever tried to improve your score on the Hacker Test? 268 | 269 | 0143 Do you take listings with you to lunch? 270 | 0144 ... To bed? 271 | 272 | 0145 Ever patch a microcode bug? 273 | 0146 ... around a microcode bug? 274 | 275 | 0147 Can you program a Turing machine? 276 | 277 | 0148 Can you convert postfix to prefix in your head? 278 | 279 | 0149 Can you convert hex to octal in your head? 280 | 281 | 0150 Do you know how to use a Kleene star? 282 | 283 | 0151 Have you ever starved while dining with philosophers? 284 | 285 | 0152 Have you solved the halting problem? 286 | 0153 ... Correctly? 287 | 288 | 0154 Ever deadlock trying eating spaghetti? 289 | 290 | 0155 Ever written a self-reproducing program? 291 | 292 | 0156 Ever swapped out the swapper? 293 | 294 | 0157 Can you read a state diagram? 295 | 0158 ... Do you need one? 296 | 297 | 0159 Ever create an unkillable program? 298 | 0160 ... Intentionally? 299 | 300 | 0161 Ever been asked for a cookie? 301 | 302 | 0162 Ever speed up a system by removing a jumper? 303 | 304 | * Do you know... 305 | 306 | 0163 Do you know who wrote Rogue? 307 | 0164 ... Rogomatic? 308 | 309 | 0165 Do you know Gray code? 310 | 311 | 0166 Do you know what HCF means? 312 | 0167 ... Ever use it? 313 | 0168 ... Intentionally? 314 | 315 | 0169 Do you know what a lace card is? 316 | 0170 ... Ever make one? 317 | 318 | 0171 Do you know the end of the epoch? 319 | 0172 ... Have you celebrated the end of an epoch? 320 | 0173 ... Did you have to rewrite code? 321 | 322 | 0174 Do you know the difference between DTE and DCE? 323 | 324 | 0175 Do you know the RS-232C pinout? 325 | 0176 ... Can you wire a connector without looking? 326 | 327 | * Do you have... 328 | 329 | 0177 Do you have a copy of Dec Wars? 330 | 0178 Do you have the Canonical Collection of Lightbulb Jokes? 331 | 0179 Do you have a copy of the Hacker's dictionary? 332 | 0180 ... Did you contribute to it? 333 | 334 | 0181 Do you have a flowchart template? 335 | 0182 ... Is it unused? 336 | 337 | 0183 Do you have your own fortune-cookie file? 338 | 339 | 0184 Do you have the Anarchist's Cookbook? 340 | 0185 ... Ever make anything from it? 341 | 342 | 0186 Do you own a modem? 343 | 0187 ... a terminal? 344 | 0188 ... a toy computer? 345 | 0189 ... a personal computer? 346 | 0190 ... a minicomputer? 347 | 0191 ... a mainframe? 348 | 0192 ... a supercomputer? 349 | 0193 ... a hypercube? 350 | 0194 ... a printer? 351 | 0195 ... a laser printer? 352 | 0196 ... a tape drive? 353 | 0197 ... an outmoded peripheral device? 354 | 355 | 0198 Do you have a programmable calculator? 356 | 0199 ... Is it RPN? 357 | 358 | 0200 Have you ever owned more than 1 computer? 359 | 0201 ... 4 computers? 360 | 0202 ... 16 computers? 361 | 362 | 0203 Do you have a SLIP line? 363 | 0204 ... a T1 line? 364 | 365 | 0205 Do you have a separate phone line for your terminal/computer? 366 | 0206 ... Is it legal? 367 | 368 | 0207 Do you have core memory? 369 | 0208 ... drum storage? 370 | 0209 ... bubble memory? 371 | 372 | 0210 Do you use more than 16 megabytes of disk space? 373 | 0211 ... 256 megabytes? 374 | 0212 ... 1 gigabyte? 375 | 0213 ... 16 gigabytes? 376 | 0214 ... 256 gigabytes? 377 | 0215 ... 1 terabyte? 378 | 379 | 0216 Do you have an optical disk/disk drive? 380 | 381 | 0217 Do you have a personal magnetic tape library? 382 | 0218 ... Is it unlabelled? 383 | 384 | 0219 Do you own more than 16 floppy disks? 385 | 0220 ... 64 floppy disks? 386 | 0221 ... 256 floppy disks? 387 | 0222 ... 1024 floppy disks? 388 | 389 | 0223 Do you have any 8-inch disks? 390 | 391 | 0224 Do you have an internal stack? 392 | 393 | 0225 Do you have a clock interrupt? 394 | 395 | 0226 Do you own volumes 1 to 3 of _The Art of Computer Programming_? 396 | 0227 ... Have you done all the exercises? 397 | 0228 ... Do you have a MIX simulator? 398 | 0229 ... Can you name the unwritten volumes? 399 | 400 | 0230 Can you quote from _The Mythical Man-month_? 401 | 0231 ... Did you participate in the OS/360 project? 402 | 403 | 0232 Do you have a TTL handbook? 404 | 405 | 0233 Do you have printouts more than three years old? 406 | 407 | * Career 408 | 409 | 0234 Do you have a job? 410 | 0235 ... Have you ever had a job? 411 | 0236 ... Was it computer-related? 412 | 413 | 0237 Do you work irregular hours? 414 | 415 | 0238 Have you ever been a system administrator? 416 | 417 | 0239 Do you have more megabytes than megabucks? 418 | 419 | 0240 Have you ever downgraded your job to upgrade your processing power? 420 | 421 | 0241 Is your job secure? 422 | 0242 ... Do you have code to prove it? 423 | 424 | 0243 Have you ever had a security clearance? 425 | 426 | * Games 427 | 428 | 0244 Have you ever played Pong? 429 | 430 | Have you ever played 431 | 0246 ... Spacewar? 432 | 0247 ... Star Trek? 433 | 0248 ... Wumpus? 434 | 0249 ... Lunar Lander? 435 | 0250 ... Empire? 436 | 437 | Have you ever beaten 438 | 0251 ... Moria 4.8? 439 | 0252 ... Rogue 3.6? 440 | 0253 ... Rogue 5.3? 441 | 0254 ... Larn? 442 | 0255 ... Hack 1.0.3? 443 | 0256 ... Nethack 2.4? 444 | 445 | 0257 Can you get a better score on Rogue than Rogomatic? 446 | 447 | 0258 Have you ever solved Adventure? 448 | 0259 ... Zork? 449 | 450 | 0260 Have you ever written any redcode? 451 | 452 | 0261 Have you ever written an adventure program? 453 | 0262 ... a real-time game? 454 | 0263 ... a multi-player game? 455 | 0264 ... a networked game? 456 | 457 | 0265 Can you out-doctor Eliza? 458 | 459 | * Hardware 460 | 461 | 0266 Have you ever used a light pen? 462 | 0267 ... did you build it? 463 | 464 | Have you ever used 465 | 0268 ... a teletype? 466 | 0269 ... a paper tape? 467 | 0270 ... a decwriter? 468 | 0271 ... a card reader/punch? 469 | 0272 ... a SOL? 470 | 471 | Have you ever built 472 | 0273 ... an Altair? 473 | 0274 ... a Heath/Zenith computer? 474 | 475 | Do you know how to use 476 | 0275 ... an oscilliscope? 477 | 0276 ... a voltmeter? 478 | 0277 ... a frequency counter? 479 | 0278 ... a logic probe? 480 | 0279 ... a wirewrap tool? 481 | 0280 ... a soldering iron? 482 | 0281 ... a logic analyzer? 483 | 484 | 0282 Have you ever designed an LSI chip? 485 | 0283 ... has it been fabricated? 486 | 487 | 0284 Have you ever etched a printed circuit board? 488 | 489 | * Historical 490 | 491 | 0285 Have you ever toggled in boot code on the front panel? 492 | 0286 ... from memory? 493 | 494 | 0287 Can you program an Eniac? 495 | 496 | 0288 Ever seen a 90 column card? 497 | 498 | * IBM 499 | 500 | 0289 Do you recite IBM part numbers in your sleep? 501 | 0290 Do you know what IBM part number 7320154 is? 502 | 503 | 0291 Do you understand 3270 data streams? 504 | 505 | 0292 Do you know what the VM privilege classes are? 506 | 507 | 0293 Have you IPLed an IBM off the tape drive? 508 | 0294 ... off a card reader? 509 | 510 | 0295 Can you sing something from the IBM Songbook? 511 | 512 | * Languages 513 | 514 | 0296 Do you know more than 4 programming languages? 515 | 0297 ... 8 languages? 516 | 0298 ... 16 languages? 517 | 0299 ... 32 languages? 518 | 519 | 0300 Have you ever designed a programming language? 520 | 521 | 0301 Do you know what Basic stands for? 522 | 0302 ... Pascal? 523 | 524 | 0303 Can you program in Basic? 525 | 0304 ... Do you admit it? 526 | 527 | 0305 Can you program in Cobol? 528 | 0306 ... Do you deny it? 529 | 530 | 0307 Do you know Pascal? 531 | 0308 ... Modula-2? 532 | 0309 ... Oberon? 533 | 0310 ... More that two Wirth languages? 534 | 0311 ... Can you recite a Nicklaus Wirth joke? 535 | 536 | 0312 Do you know Algol-60? 537 | 0313 ... Algol-W? 538 | 0314 ... Algol-68? 539 | 0315 ... Do you understand the Algol-68 report? 540 | 0316 ... Do you like two-level grammars? 541 | 542 | 0317 Can you program in assembler on 2 different machines? 543 | 0318 ... on 4 different machines? 544 | 0319 ... on 8 different machines? 545 | 546 | Do you know 547 | 0320 ... APL? 548 | 0321 ... Ada? 549 | 0322 ... BCPL? 550 | 0323 ... C++? 551 | 0324 ... C? 552 | 0325 ... Comal? 553 | 0326 ... Eiffel? 554 | 0327 ... Forth? 555 | 0328 ... Fortran? 556 | 0329 ... Hypertalk? 557 | 0330 ... Icon? 558 | 0331 ... Lisp? 559 | 0332 ... Logo? 560 | 0333 ... MIIS? 561 | 0334 ... MUMPS? 562 | 0335 ... PL/I? 563 | 0336 ... Pilot? 564 | 0337 ... Plato? 565 | 0338 ... Prolog? 566 | 0339 ... RPG? 567 | 0340 ... Rexx (or ARexx)? 568 | 0341 ... SETL? 569 | 0342 ... Smalltalk? 570 | 0343 ... Snobol? 571 | 0344 ... VHDL? 572 | 0345 ... any assembly language? 573 | 574 | 0346 Can you talk VT-100? 575 | 0347 ... Postscript? 576 | 0348 ... SMTP? 577 | 0349 ... UUCP? 578 | 0350 ... English? 579 | 580 | * Micros 581 | 582 | 0351 Ever copy a copy-protected disk? 583 | 0352 Ever create a copy-protection scheme? 584 | 585 | 0353 Have you ever made a "flippy" disk? 586 | 587 | 0354 Have you ever recovered data from a damaged disk? 588 | 589 | 0355 Ever boot a naked floppy? 590 | 591 | * Networking 592 | 593 | 0356 Have you ever been logged in to two different timezones at once? 594 | 595 | 0357 Have you memorized the UUCP map for your country? 596 | 0358 ... For any country? 597 | 598 | 0359 Have you ever found a sendmail bug? 599 | 0360 ... Was it a security hole? 600 | 601 | 0361 Have you memorized the HOSTS.TXT table? 602 | 0362 ... Are you up to date? 603 | 604 | 0363 Can you name all the top-level nameservers and their addresses? 605 | 606 | 0364 Do you know RFC-822 by heart? 607 | 0365 ... Can you recite all the errors in it? 608 | 609 | 0366 Have you written a Sendmail configuration file? 610 | 0367 ... Does it work? 611 | 0368 ... Do you mumble "defocus" in your sleep? 612 | 613 | 0369 Do you know the max packet lifetime? 614 | 615 | * Operating systems 616 | 617 | Can you use 618 | 0370 ... BSD Unix? 619 | 0371 ... non-BSD Unix? 620 | 0372 ... AIX 621 | 0373 ... VM/CMS? 622 | 0374 ... VMS? 623 | 0375 ... MVS? 624 | 0376 ... VSE? 625 | 0377 ... RSTS/E? 626 | 0378 ... CP/M? 627 | 0379 ... COS? 628 | 0380 ... NOS? 629 | 0381 ... CP-67? 630 | 0382 ... RT-11? 631 | 0383 ... MS-DOS? 632 | 0384 ... Finder? 633 | 0385 ... PRODOS? 634 | 0386 ... more than one OS for the TRS-80? 635 | 0387 ... Tops-10? 636 | 0388 ... Tops-20? 637 | 0389 ... OS-9? 638 | 0390 ... OS/2? 639 | 0391 ... AOS/VS? 640 | 0392 ... Multics? 641 | 0393 ... ITS? 642 | 0394 ... Vulcan? 643 | 644 | 0395 Have you ever paged or swapped off a tape drive? 645 | 0396 ... Off a card reader/punch? 646 | 0397 ... Off a teletype? 647 | 0398 ... Off a networked (non-local) disk? 648 | 649 | 0399 Have you ever found an operating system bug? 650 | 0400 ... Did you exploit it? 651 | 0401 ... Did you report it? 652 | 0402 ... Was your report ignored? 653 | 654 | 0403 Have you ever crashed a machine? 655 | 0404 ... Intentionally? 656 | 657 | * People 658 | 659 | 0405 Do you know any people? 660 | 0406 ... more than one? 661 | 0407 ... more than two? 662 | 663 | * Personal 664 | 665 | 0408 Are your shoelaces untied? 666 | 667 | 0409 Do you interface well with strangers? 668 | 669 | 0410 Are you able to recite phone numbers for half-a-dozen computer systems 670 | but unable to recite your own? 671 | 672 | 0411 Do you log in before breakfast? 673 | 674 | 0412 Do you consume more than LD-50 caffeine a day? 675 | 676 | 0413 Do you answer either-or questions with "yes"? 677 | 678 | 0414 Do you own an up-to-date copy of any operating system manual? 679 | 0415 ... *every* operating system manual? 680 | 681 | 0416 Do other people have difficulty using your customized environment? 682 | 683 | 0417 Do you dream in any programming languages? 684 | 685 | 0418 Do you have difficulty focusing on three-dimensional objects? 686 | 687 | 0419 Do you ignore mice? 688 | 689 | 0420 Do you despise the CAPS LOCK key? 690 | 691 | 0421 Do you believe menus belong in restaurants? 692 | 693 | 0422 Do you have a Mandelbrot hanging on your wall? 694 | 695 | 0423 Have you ever decorated with magnetic tape or punched cards? 696 | 0424 Do you have a disk platter or a naked floppy hanging in your home? 697 | 698 | 0425 Have you ever seen the dawn? 699 | 0426 ... Twice in a row? 700 | 701 | 0427 Do you use "foobar" in daily conversation? 702 | 0428 ... "bletch"? 703 | 704 | 0429 Do you use the "P convention"? 705 | 706 | 0430 Do you automatically respond to any user question with RTFM? 707 | 0431 ... Do you know what it means? 708 | 709 | 0432 Do you think garbage collection means memory management? 710 | 711 | 0433 Do you have problems allocating horizontal space in your room/office? 712 | 713 | 0434 Do you read Scientific American in bars to pick up women? 714 | 715 | 0435 Is your license plate computer-related? 716 | 717 | 0436 Have you ever taken the Purity test? 718 | 719 | 0437 Ever have an out-of-CPU experience? 720 | 721 | 0438 Have you ever set up a blind date over the computer? 722 | 723 | 0439 Do you talk to the person next to you via computer? 724 | 725 | * Programming 726 | 727 | 0440 Can you write a Fortran compiler? 728 | 0441 ... In TECO? 729 | 730 | 0442 Can you read a machine dump? 731 | 0443 Can you disassemble code in your head? 732 | 733 | Have you ever written 734 | 0444 ... a compiler? 735 | 0445 ... an operating system? 736 | 0446 ... a device driver? 737 | 0447 ... a text processor? 738 | 0448 ... a display hack? 739 | 0449 ... a database system? 740 | 0450 ... an expert system? 741 | 0451 ... an edge detector? 742 | 0452 ... a real-time control system? 743 | 0453 ... an accounting package? 744 | 0454 ... a virus? 745 | 0455 ... a prophylactic? 746 | 747 | 0456 Have you ever written a biorhythm program? 748 | 0457 ... Did you sell the output? 749 | 0458 ... Was the output arbitrarily invented? 750 | 751 | 0459 Have you ever computed pi to more than a thousand decimal places? 752 | 0460 ... the number e? 753 | 754 | 0461 Ever find a prime number of more than a hundred digits? 755 | 756 | 0462 Have you ever written self-modifying code? 757 | 0463 ... Are you proud of it? 758 | 759 | 0464 Did you ever write a program that ran correctly the first time? 760 | 0465 ... Was it longer than 20 lines? 761 | 0466 ... 100 lines? 762 | 0467 ... Was it in assembly language? 763 | 0468 ... Did it work the second time? 764 | 765 | 0469 Can you solve the Towers of Hanoi recursively? 766 | 0470 ... Non-recursively? 767 | 0471 ... Using the Troff text formatter? 768 | 769 | 0472 Ever submit an entry to the Obfuscated C code contest? 770 | 0473 ... Did it win? 771 | 0474 ... Did your entry inspire a new rule? 772 | 773 | 0475 Do you know Duff's device? 774 | 775 | 0476 Do you know Jensen's device? 776 | 777 | 0477 Ever spend ten minutes trying to find a single-character error? 778 | 0478 ... More than an hour? 779 | 0479 ... More than a day? 780 | 0480 ... More than a week? 781 | 0481 ... Did the first person you show it to find it immediately? 782 | 783 | * Unix 784 | 785 | 0482 Can you use Berkeley Unix? 786 | 0483 .. Non-Berkeley Unix? 787 | 788 | 0484 Can you distinguish between sections 4 and 5 of the Unix manual? 789 | 790 | 0485 Can you find TERMIO in the System V release 2 documentation? 791 | 792 | 0486 Have you ever mounted a tape as a Unix file system? 793 | 794 | 0487 Have you ever built Minix? 795 | 796 | 0488 Can you answer "quiz function ed-command" correctly? 797 | 0489 ... How about "quiz ed-command function"? 798 | 799 | * Usenet 800 | 801 | 0490 Do you read news? 802 | 0491 ... More than 32 newsgroups? 803 | 0492 ... More than 256 newsgroups? 804 | 0493 ... All the newsgroups? 805 | 806 | 0494 Have you ever posted an article? 807 | 0495 ... Do you post regularly? 808 | 809 | 0496 Have you ever posted a flame? 810 | 0497 ... Ever flame a cross-posting? 811 | 0498 ... Ever flame a flame? 812 | 0499 ... Do you flame regularly? 813 | 814 | 0500 Ever have your program posted to a source newsgroup? 815 | 816 | 0501 Ever forge a posting? 817 | 0502 Ever form a new newsgroup? 818 | 0503 ... Does it still exist? 819 | 820 | 0504 Do you remember 821 | 0505 ... mod.ber? 822 | 0506 ... the Stupid People's Court? 823 | 0507 ... Bandy-grams? 824 | 825 | * Phreaking 826 | 827 | 0508 Have you ever built a black box? 828 | 829 | 0509 Can you name all of the 'colors' of boxes? 830 | 0510 ... and their associated functions? 831 | 832 | 0511 Does your touch tone phone have 16 DTMF buttons on it? 833 | 834 | 0512 Did the breakup of MaBell create more opportunities for you? 835 | 836 | 837 | If you have any comments of suggestions regarding the HACKER TEST, 838 | Please send then to: hayes@psunuce.bitnet 839 | or jwh100@psuvm.bitnet / jwh100@psuvmxa.bitnet 840 | or jwh100@psuvm.psu.edu / jwh100@psuvmxa.psu.edu 841 | or ...!psuvax1!psuvm.bitnet!jwh100 842 | 843 | ``` 844 | 845 | RETRIEVED FROM: http://www.hungry.com/~jamie/hacktest.text 846 | 847 | RETRIEVED ON: 2017-October-3 by @nyxgeek 848 | -------------------------------------------------------------------------------- /real-programmers-dont-use-pascal.md: -------------------------------------------------------------------------------- 1 | ``` 2 | Real Programmers Don't Use PASCAL 3 | Ed Post 4 | Tektronix, Inc. 5 | Copyright (C) 1982 6 | 7 | Back in the good old days -- the 'Golden Era' of computers, it was easy to 8 | separate the men from the boys (sometimes called 'Real Men' and 'Quiche 9 | Eaters'' in the literature). During this period, the Real Men were the 10 | ones that understood computer programming, and the Quiche Eaters were the 11 | ones that didn't. A real computer programmer said things like 'DO 10 12 | I=1,10' and 'ABEND' (they actually talked in capital letters, you 13 | understand), and the rest of the world said things like 'computers are too 14 | complicated for me' and 'I can't relate to computers -- they're so 15 | impersonal''. (A previous work [1] points out that Real Men don't 'relate' 16 | to anything, and aren't afraid of being impersonal.) 17 | 18 | But, as usual, times change. We are faced today with a world in which 19 | little old ladies can get computers in their microwave ovens, 12-year-old 20 | kids can blow Real Men out of the water playing Asteroids and Pac-Man, and 21 | anyone can buy and even understand their very own Personal Computer. The 22 | Real Programmer is in danger of becoming extinct, of being replaced by 23 | high-school students with TRASH-80's. 24 | 25 | There is a clear need to point out the differences between the typical 26 | high-school junior Pac-Man player and a Real Programmer. If this 27 | difference is made clear, it will give these kids something to aspire to 28 | -- a role model, a Father Figure. It will also help explain to the 29 | employers of Real Programmers why it would be a mistake to replace the 30 | Real Programmers on their staff with 12-year-old Pac-Man players (at a 31 | considerable salary savings). 32 | 33 | 34 | LANGUAGES 35 | 36 | 37 | The easiest way to tell a Real Programmer from the crowd is by the 38 | programming language he (or she) uses. Real Programmers use FORTRAN. 39 | Quiche Eaters use PASCAL. Nicklaus Wirth, the designer of PASCAL, gave a 40 | talk once at which he was asked 'How do you pronounce your name?' He 41 | replied, 'You can either call me by name, pronouncing it 'Veert', or call 42 | me by value, 'Worth'.'' One can tell immediately from this comment that 43 | Nicklaus Wirth is a Quiche Eater. The only parameter passing mechanism 44 | endorsed by Real Programmers is call-by-value-return, as Implemented in 45 | the IBM\370 FORTRAN-G and H compilers. Real programmers don't need all 46 | these abstract concepts to get their jobs done -- they are perfectly happy 47 | with a keypunch, a FORTRAN IV compiler, ana a beer. 48 | 49 | o Real Programmers do List Processing in FORTRAN. 50 | 51 | o Real Programmers do String Manipulation in FORTRAN. 52 | 53 | o Real Programmers do Accounting (if they do it at all) in FORTRAN. 54 | 55 | o Real Programmers do Artificial Intelligence programs in FORTRAN. 56 | 57 | If you can't do it in FORTRAN, do it in assembly language. If you can't 58 | do it in assembly language, it isn't worth doing. 59 | 60 | 61 | 62 | STRUCTURED PROGRAMMING 63 | 64 | 65 | The academics in computer science have gotten into the 'structured 66 | programming' rut over the past several years. They claim that programs 67 | are more easily understood if the programmer uses sole special language 68 | constructs and techniques. They don't all agree on exactly which 69 | constructs, of course, and the examples they use to show their particular 70 | point of view invariably fit on a single pace of some obscure journal or 71 | another -- clearly not enough of an example to convince anyone. When I 72 | got out of school, I thcught I was the best programmer in the world. I 73 | could write an unbeatable tic-tac-toe program, use five different computer 74 | languages, and create 1000-line prograns that WORKED. (Really!) Then I 75 | got out into the Real World. My first task in the Real World was to read 76 | and understand a 2O0,OO0-line FORTRAN program, then speed it up by a 77 | factor of two. Any Real Programmer will tell you that all the Structured 78 | Coding in the world won't help you solve a problem like that -- it takes 79 | actual talent. Some quick observations on Real Programmers and Structured 80 | Programming: 81 | 82 | o Real Programmers aren't afraid to use GOTO's. 83 | 84 | o Real Programmers can write five-page-long DO loops without 85 | getting confused. 86 | 87 | o Real Programmers like Arithmetic IF statements -- they make the 88 | code more Interesting. 89 | 90 | o Real Prograwmers write self-modifying code, especially if they can 91 | save 20 nanoseconds in the middle of a tight loop. 92 | 93 | o Real Programmers don't need comments -- the code is obvious. 94 | 95 | o Since FORTRAN doesn't have a structured IF, REPEAT ... UNTIL, or 96 | CASE statement, Real Programners don't have to worry about not using 97 | them. Besides, they can be simulated when necessary using assigned 98 | GOTO's. 99 | 100 | Data Structures have also gotten a lot of press lately. Abstract Data 101 | Types, Structures, Pointers, Lists, and Strings have become popular in 102 | certain circles. Wirth (the above-mentioned Quiche Eater) actually wrote 103 | an entire book [2] contending that you could write a program based on data 104 | structures, instead of the other way around. As all Real Programmers 105 | know, the only useful data structure is the Array. Strings, lists, 106 | structures, sets -- these are all special cases of arrays and can be 107 | treated that way just as easily without messing up your programing 108 | language with all sorts of complications. The worst thing about fancy 109 | data types is that you have to declare them, and Real Programming 110 | Languages, as we all know, have implicit typing based on the first letter 111 | of the (six character) variable name. 112 | 113 | 114 | OPERATING SYSTEMS 115 | 116 | 117 | What kind of operating system is used by a Real Programmer? CP/M? God 118 | forbid -- CP/M, after all, is basically a toy operating system. Even 119 | little old ladies and grade school students can understand and use CP/M. 120 | 121 | Unix is a lot more complicated of course -- the typical Unix hacker never 122 | can remember what the PRINT command is called this week -- but when it 123 | gets right down to it, Unix is a glorified video game. People don't do 124 | Serious Work on Unix systems: they send jokes around the world on UUCP-net 125 | and write adventure games and research papers. 126 | 127 | No, your Real Programmer uses OS\370. A good programmer can find and 128 | understand the description of the IJK305I error he just got in his JCL 129 | manual. A great programmer can write JCL without referring to the manual 130 | at all. A truly outstanding programmer can find bugs buried in a 131 | 6-megabyte core dump without using a hex calculator. (I have actually 132 | seen this done.) 133 | 134 | 0S is a truly remarkable operating system. It's possible to destroy days 135 | of work with a single misplaced space, so alertness in the programming 136 | staff is encouraged. The best way to approach the system is through a 137 | keypunch. Some people claim there is a Time Sharing system that runs on 138 | OS\370, but after careful study I have come to the conclusion that they 139 | were mistaken. 140 | 141 | 142 | PROGRAMMING TOOLS 143 | 144 | 145 | What kind of tools does a Real Programmer use? In theory, a Real 146 | Programmer could run his programs by keying them into the front panel of 147 | the computer. Back in the days when computers had front panels, this was 148 | actually done occasionally. Your typical Real Programmer knew the entire 149 | bootstrap loader by memory in hex, and toggled it in whenever it got 150 | destroyed by his program. (Back then, memory was memory -- it didn't go 151 | away when the power went off. Today, memory either forgets things when 152 | you don't want it to, or remembers things long after they're better 153 | forgotten.) Legend has it that Seymore Cray, inventor of the Cray I 154 | supercomputer and most of Control Data's computers, actually toggled the 155 | first operating system for the CDC7600 in on the front panel from memory 156 | when it was first powered on. Seymore, needless tc say, is a Real 157 | Programmer. 158 | 159 | One of my favorite Real Programmers was a systems programmer for Texas 160 | Instruments. One day he got a long distance call from a user whose system 161 | had crashed in the middle of saving some important work. Jim was able to 162 | repair the damage over the phone, getting the user to toggle in disk I/0 163 | instructions at the front panel, repairing system tables in hex, 164 | reading register contents back over the phone. The moral of this story: 165 | while a Real Programmer usually includes a keypunch and lineprinter in his 166 | toolkit, he can get along with just a front panel and a telephone in 167 | emergencies. 168 | 169 | In some companies, text editing no longer consists of ten engineers 170 | standing in line to use an 029 keypunch. In fact, the building I work in 171 | doesn't contain a single keypunch. The Real Progranmer in this situation 172 | has to do his work with a 'text cditor' program. Most systems supply 173 | several text editors to selcct from, and the Real Programmer must be 174 | careful to pick one that reflects his personal style. Many people believe 175 | that the best text editors in the world were written at Xerox Palo Alto 176 | Research Center for use on their Alto and Dorado computers [3]. 177 | Unfortunately, no Real Programmer would ever use a computer whose 178 | operating system is called SmallTalk, and would certainly not talk to the 179 | computer with a mouse. 180 | 181 | Some of the concepts in these Xerox editors have been incorporated into 182 | editors running on more reasonably named operating systems -- EMACS and VI 183 | being two. The problem with these editors is that Real Programmers 184 | consider 'What You See Is What You Get' to be just as bad a concept in 185 | Text Editors as it is in women. No, the Real Programmer wants a 'you 186 | asked for it, you got it' text editor -- complicated, cryptic, powerful, 187 | unforgiving, dangerous. TECO, to be precise. 188 | 189 | It has been observed that a TECO command sequence more closely resembles 190 | transmission line noise than readable text [4]. One of the more 191 | entertaining games to play with TECO is to type your name in as a command 192 | line and try to guess what it does. Just about any possible typing error 193 | while talking with TECO will probably destroy your program, or even worse 194 | -- introduce subtle and mysterious bugs in a once working subroutine. 195 | 196 | For this reason, Real Programmers are reluctant to actually edit a program 197 | that is close to working. They find it much easier to just patch the 198 | binary object code directly, using a wonderful program called SUPERZAP (or 199 | its equivalent on non-IBM machines). This works so well that many working 200 | programs on IBM systems bear no relation to the original FORTRAN code. In 201 | many cases, the original source code is no longer available. When it 202 | comes time to fix a program like this, no manager would even think of 203 | sending anything less than a Real Programmer to do the job -- no Quiche 204 | Eating structured programmer would even know where to start. This is 205 | called 'job security'. 206 | 207 | Some programming tools NOT used by Real Programmers: 208 | 209 | o FORTRAN preprocessors like MORTRAN and RATFOR. The Cuisinarts of 210 | Programming -- great for making Quiche. See comments above on 211 | structured programiing. 212 | 213 | o Source language debuggers. Real Programmers can read core dumps. 214 | 215 | o Compilers with array bounds checking. They stifle creativity, 216 | destroy most of the interesting uses for EQUIVALENCE, and make it 217 | impossible to modify the operating system code with negative 218 | subscripts. Worst of all, bounds checking is inefficient. 219 | 220 | o Source code maintenance systems. A Real Programmer keeps his code 221 | locked up in a card file, because it implies that its owner cannot 222 | leave his important programs unguarded [5]. 223 | 224 | 225 | THE REAL PROGRAMMER AT WORK 226 | 227 | 228 | Where does the typical Real Programmer work? What kind of programs are 229 | worthy of the efforts of so talented an individual? You can be sure 230 | that no Real Programmer would be caught dead writing accounts-receivable 231 | programs in COBOL, or sorting mailing lists for People magazine. A Real 232 | Programmer wants tasks of earth-shaking importance (literally!). 233 | 234 | o Real Programmers work for Los Alamos National Laboratory, writing 235 | atomic bomb simulations to run on Cray I supercomputers. 236 | 237 | o Real Programmers work for the National Security Agency, decoding 238 | Russian transmissions. 239 | 240 | o It was largely due to the efforts of thousands of Real Programmers 241 | working for NASA that our boys got to the moon and back before 242 | the Russkies. 243 | 244 | o Real Programmers are at work for Boeing designing the operating 245 | systems for cruise missiles. 246 | 247 | Some of the most awesome Real Programmers of all work at the Jet 248 | Propulsion Laboratory in California. Many of them know the entire 249 | operating system of the Pioneer and Voyager spacecraft by heart. With a 250 | combination of large ground-based FORTRAN programs and small 251 | spacecraft-based assembly language programs, they are able to do 252 | incredible feats of navigation and improvisation -- hitting ten-kilometer 253 | wide windows at Saturn after six years in space, repairing or bypassing 254 | damaged sensor platforms, radios, and batteries. Allegedly, one Real 255 | Programmer managed to tuck a pattern-matching program into a few hundred 256 | bytes of unused memory in a Voyager spacecraft that searched for, located, 257 | and photographed a new moon of Jupiter, 258 | 259 | The current plan for the Galileo spacecraft Is to use a gravity assist 260 | trajectory past Mars on the way to Jupiter. This trajectory passes within 261 | 80+/-3 kilometers of the surface of Mars. Nobody is going to trust a 262 | PASCAL program (or a PASCAL programmer) for navigation to these 263 | tolerances. 264 | 265 | As you can tell, many of the world's Real Programmers work for the U.S. 266 | Government -- mainly the Defense Department. This is as it should be. 267 | Recently, however, a black cloud has formed on the Real Programmer 268 | horizon. It seems that some highly placed Quiche Eaters at the Defense 269 | Department decided that all Defense programs should be written in some 270 | grand unified language called 'ADA' ((C), DoD). For a while, it seemed 271 | that ADA was destined to become a language that went against all the 272 | precepts of Real Programming -- a language with structure, a language with 273 | data types, strong typing, and semicolons. In short, a language designed 274 | to cripple the creativity of the typical Real Programmer. Fortunately, 275 | the language adopted by DoD has enough interesting features to make it 276 | approachable -- it's incredibly complex, includes methods for messing with 277 | the operating system and rearranging memory, and Edsgar Dijkstra doesn't 278 | like it [6]. (Dijkstra, as I'm sure you know, was the author of ''GoTos 279 | Considered Harmful'' -- a landmark work in programming methodology, 280 | applauded by PASCAL programmers and Quiche Eaters alike.) Besides, the 281 | determined Real Programmer can write FORTRAN programs in any language. 282 | 283 | The Real Programmer might compromise his principles and work on 284 | something slightly more trivial than the destruction of life as we know 285 | it, providing there's enough money in it. There are several Real 286 | Programmers building video games at Atari, for example. (But not 287 | playing them -- a Real Programmer knows how to beat the machine every 288 | time: no challenge in that.) Everyone working at LucasFilm is 289 | a Real Programmer. (It would be crazy to turn down the money of fifty 290 | million Star Trek fans.) The proportion of Real Programmers in Computer 291 | Graphics is somewhat lower than the norm, mostly because nobody has found 292 | a use for computer graphics yet. On the other hand, all computer graphics 293 | is done in FORTRAN, so there are a fair number of people doing graphics in 294 | order to avoid having to write COBOL programs. 295 | 296 | 297 | THE REAL PROGRAMMER AT PLAY 298 | 299 | 300 | Generally, the Real Progranmer plays the same way he works -- with 301 | computers. He is constantly amazed that his employer actually pays him to 302 | do what he would be doing for fun anyway (although he is careful not to 303 | express this opinion out loud). Occasionally, the Real Programmer does 304 | step out of the office for a breath of fresh air and a beer or two. Some 305 | tips on recognizing Real Programmers away from the computer room: 306 | 307 | o At a Party, the Real Programmers are the ones in the corner talking 308 | about operating system security and how to get around it. 309 | 310 | o At a football game, the Real Programmer is the one comparing the plays 311 | against his simulations printed on 11 by 14 fanfold paper. 312 | 313 | o At the beach, the Real Programmer is the one drawing flowcharts in 314 | the sand. 315 | 316 | o At a funeral, the Real Programmer is the one saying ''Poor George. 317 | And he almost had the sort routine working before the coronary.'' 318 | 319 | o In a grocery store, the Peal Programmer is the one who insists on 320 | running the cans past the laser checkout scanner himself, because he 321 | never could trust keypunch operators to get it right the first time. 322 | 323 | 324 | THE REAL PROGRAMMER'S NATURAL HABITAT 325 | 326 | 327 | What sort of environment does the Real Programmer function best in? This 328 | is an important question for the managers of Real Programmers. 329 | Considering the amount of money it costs to keep one on the staff, it's 330 | best to put him (or her) in an environment where he can get his work done. 331 | 332 | The typical Real Programmer lives in front of a computer terminal. 333 | Surrounding this terminal are: 334 | 335 | o Listings of all programs the Real Programmer has ever worked on, piled 336 | in roughly chronological order on every flat surface in the office. 337 | 338 | o Some half-dozen or so partly filled cups of cold coffee. Occasionally, 339 | there will be cigarette butts floating in the coffee. In some cases, 340 | the cups will contain Orange Crush. 341 | 342 | o Unless he is very good, there will be copies of the 0S JCL manual and 343 | the Principles of Operation open to some particularly interesting 344 | pages. 345 | 346 | o Taped to the wall is a line-printer Snoopy calendar for the year 1969. 347 | 348 | o Strewn about the floor are several wrappers for peanut butter filled 349 | cheese bars -- the type that are made pre-stale at the bakery so they 350 | can't get any worse while waiting in the vending machine. 351 | 352 | o Hiding in the top left-hand drawer of the desk is a stash of 353 | Double-Stuff Oreos for special occasions. 354 | 355 | o Underneath the Oreos is a flowcharting template, left there by the 356 | previous occupant of the office. (Real Programmers write programs, 357 | not documentation. Leave that to the maintenance people.) 358 | 359 | The Real Programmer is capable of working 30, 40, even 50 hours at a 360 | stretch, under intense pressure. In fact, he prefers it that way. Bad 361 | response time doesn't bother the Real Programmer -- it gives him a chance 362 | to catch a little sleep between compiles. If there is not enough schedule 363 | pressure on the deal Programmer, he tends to make things more challenging 364 | by working on some small but interesting part of the problem for the first 365 | nine weeks, then finishing the rest in the last week, in two or three 366 | 50-hour marathons. This not only impresses the hell out of his manager, 367 | who was despairing of ever getting the project done on time, but creates a 368 | convenient excuse for not doing the documentation. In general: 369 | 370 | o No Real Progranmer works 9 to 5 (unless it's the ones at night). 371 | 372 | o Real Programmers don't wear neckties. 373 | 374 | o Real Programmers don't wear high-heeled shoes. 375 | 376 | o Real Programmers arrive at work in time for lunch [9]. 377 | 378 | o A Real Programmer might or might not know his wife's name. He does, 379 | however, know the entire ASCII (or EDCDIC) code table. 380 | 381 | o Real Programmers can't know how to cook. Grocery stores aren't open 382 | at three in the morning. Real Programmers survive on Twinkies and 383 | coffee. 384 | 385 | 386 | THE FUTURE 387 | 388 | 389 | What of the future? It is a matter of some concern to Real Programmers 390 | that the latest generation of computer programmers are not being brought 391 | up with the same outlook on life as their elders. Many of them have never 392 | seen a computer with a front panel. Hardly anyone graduating from school 393 | these days can do hex arithmetic without a calculator. College graduates 394 | these days are soft -- protected from the realities of programming by 395 | source level debuggers, text editors that count parentheses, and 'user 396 | friendly' operating systems. Worst of all, some of these alleged 397 | 'computer scientists' manage to get degrees without ever learning FORTRAN! 398 | Are we destined to become on industry of Unix hackers and PASCAL 399 | programmers? 400 | 401 | From my experience, I can only report that the future is bright for Real 402 | Programmers everywhere. Neither DS\370 nor FORTRAN show any signs of 403 | dying out, despite all the efforts of PASCAL programmers the world over. 404 | Even more subtle tricks, like adding structured coding constructs to 405 | FORTRAN have failed. Oh sure, some computer vendors have come out with 406 | FORTRAN 77 compilers, but every one of them has a way of converting itself 407 | back into a FORTRAN 66 compiler at the drop of an option card -- to 408 | compile DO loops like God meant them to be. 409 | 410 | Even Unix might not be as bad on Real Programmers as it once was. The 411 | latest release of Unix has the potential of an operating system worthy of 412 | any Real Programmer -- two different and subtly incompatible user 413 | interfaces, an arcane and complicated teletype driver, virtual memory. If 414 | you ignore the fact that it's 'structured', even 'C' programming can be 415 | appreciated by the Real Programmer: after all, there's no type checking, 416 | variable names are seven (ten? eight?) characters long, and the added 417 | bonus of the Pointer data type is thrown in -- like having the best parts 418 | of FORTRAN and assembly language in one place. (Not to mention some of the 419 | more creative uses for #define.) 420 | 421 | No, the future isn't all that bad. Why, in the past few years, the 422 | popular press has even commented on the bright new crop of computer nerds 423 | and hackers ([7] and [8]) leaving places like Stanford and M.I.T. for the 424 | Real World. From all evidence, the spirit of Real Programming lives on in 425 | these young men and women. As long as there are ill-defined goals, 426 | bizarre bugs, and unrealistic schedules, there will be Real Programmers 427 | willing to jump in and Solve The Problem, saving the documentation for 428 | later. Long live FORTRAN! 429 | 430 | 431 | ACKNOWLEDGEMENT 432 | 433 | 434 | I would like to thank Jan E., Dave S., Rich G., Rich E., for their help 435 | characterizing the Real Programmer, Heather B. for the illustration, Kathy 436 | E. for putting up with it, and atd!avsdS:mark for the initial inspiration. 437 | 438 | 439 | REFERENCES 440 | 441 | 442 | [1] Feirsteln, B., ''Real Men Don't Eat Quiche'', New York, 443 | Pocket Books, 1982. 444 | 445 | [2] Wirth, N., ''Algorithms + Data Structures = Programs'', 446 | Prentice Hall, 1976. 447 | 448 | [3] Ilson, R., ''Recent Research in Text Processing'', IEEE 449 | Trans. Prof. Commun., Vol. PC-23, No. 4, Dec. 4, 1980. 450 | 451 | [4] Finseth, C., ''Theory and Practice of Text Editors -- or -- 452 | a Cookbook for an EMACS'', B.S. Thesis, MIT/LCS/TM-165, 453 | Massachusetts Institute of Technology, May 1980. 454 | 455 | [5] Weinberg, G., ''The Psychology of Computer Programming'', 456 | New York, Van Nostrand Reinhold, 1971, p. 110. 457 | 458 | [6] Dijkstra, E., ''On the GREEN language submitted to the 459 | DoD'', Sigplan notices, Vol. 3 No. 10, Oct 1978. 460 | 461 | [7] Rose, Frank, ''Joy of Hacking'', Science 82, Vol. 3 No. 9, 462 | Nov 82, pp. 58-66. 463 | 464 | [8] ''The Hacker Papers'', Psychology Today, August 1980. 465 | 466 | [9] sdcarl!lin, ''Real Programmers'', UUCP-net, Thu Oct 21 467 | 16:55:16 1982. 468 | 469 | 470 | 471 | ``` 472 | RETRIEVED FROM: http://web.mit.edu/humor/Computers/real.programmers 473 | 474 | RETRIEVED ON: 2017-Oct-4 - @nyxgeek 475 | -------------------------------------------------------------------------------- /originals/hacktest.text: -------------------------------------------------------------------------------- 1 | From AMFPN@NEUVM1.BITNET Tue Oct 31 20:46:54 1989 2 | From: Per Nielsen 3 | Subject: Hacker test (was: Forwarded mail for FREETALK) 4 | 5 | 6 | 7 | 1 8 | 9 | 10 | THE HACKER TEST - Version 1.0 11 | 12 | 13 | Preface: 06.16.89 14 | 15 | This test was conceived and written by Felix Lee, John Hayes and Angela 16 | Thomas at the end of the spring semester, 1989. It has gone through 17 | many revisions prior to this initial release, and will undoubtedly go 18 | through many more. 19 | 20 | 21 | (Herewith a compendium of fact and folklore about computer hackerdom, 22 | cunningly disguised as a test.) 23 | 24 | 25 | Scoring - Count 1 for each item that you have done, or each 26 | question that you can answer correctly. 27 | 28 | 29 | If you score is between: You are 30 | 31 | 0x000 and 0x010 -> Computer Illiterate 32 | 0x011 and 0x040 -> a User 33 | 0x041 and 0x080 -> an Operator 34 | 0x081 and 0x0C0 -> a Nerd 35 | 0x0C1 and 0x100 -> a Hacker 36 | 0x101 and 0x180 -> a Guru 37 | 0x181 and 0x200 -> a Wizard 38 | 39 | Note: If you don't understand the scoring, stop here. 40 | 41 | 42 | And now for the questions... 43 | 44 | 45 | 0001 Have you ever used a computer? 46 | 0002 ... for more than 4 hours continuously? 47 | 0003 ... more than 8 hours? 48 | 0004 ... more than 16 hours? 49 | 0005 ... more than 32 hours? 50 | 51 | 0006 Have you ever patched paper tape? 52 | 53 | 0007 Have you ever missed a class while programming? 54 | 0008 ... Missed an examination? 55 | 0009 ... Missed a wedding? 56 | 0010 ... Missed your own wedding? 57 | 58 | 0011 Have you ever programmed while intoxicated? 59 | 0012 ... Did it make sense the next day? 60 | 61 | 0013 Have you ever written a flight simulator? 62 | 63 | 0014 Have you ever voided the warranty on your equipment? 64 | 65 | 0015 Ever change the value of 4? 66 | 0016 ... Unintentionally? 67 | 0017 ... In a language other than Fortran? 68 | 69 | 0018 Do you use DWIM to make life interesting? 70 | 71 | 0019 Have you named a computer? 72 | 73 | 0020 Do you complain when a "feature" you use gets fixed? 74 | 75 | 0021 Do you eat slime-molds? 76 | 77 | 0022 Do you know how many days old you are? 78 | 79 | 0023 Have you ever wanted to download pizza? 80 | 81 | 0024 Have you ever invented a computer joke? 82 | 0025 ... Did someone not 'get' it? 83 | 84 | 0026 Can you recite Jabberwocky? 85 | 0027 ... Backwards? 86 | 87 | 0028 Have you seen "Donald Duck in Mathemagic Land"? 88 | 89 | 0029 Have you seen "Tron"? 90 | 91 | 0030 Have you seen "Wargames"? 92 | 93 | 0031 Do you know what ASCII stands for? 94 | 0032 ... EBCDIC? 95 | 96 | 0033 Can you read and write ASCII in hex or octal? 97 | 0034 Do you know the names of all the ASCII control codes? 98 | 99 | 0035 Can you read and write EBCDIC in hex? 100 | 101 | 0036 Can you convert from EBCDIC to ASCII and vice versa? 102 | 103 | 0037 Do you know what characters are the same in both ASCII and EBCDIC? 104 | 105 | 0038 Do you know maxint on your system? 106 | 107 | 0039 Ever define your own numerical type to get better precision? 108 | 109 | 0040 Can you name powers of two up to 2**16 in arbitrary order? 110 | 0041 ... up to 2**32? 111 | 0042 ... up to 2**64? 112 | 113 | 0043 Can you read a punched card, looking at the holes? 114 | 0044 ... feeling the holes? 115 | 116 | 0045 Have you ever patched binary code? 117 | 0046 ... While the program was running? 118 | 119 | 0047 Have you ever used program overlays? 120 | 121 | 0048 Have you met any IBM vice-president? 122 | 0049 Do you know Dennis, Bill, or Ken? 123 | 124 | 0050 Have you ever taken a picture of a CRT? 125 | 0051 Have you ever played a videotape on your CRT? 126 | 127 | 0052 Have you ever digitized a picture? 128 | 129 | 0053 Did you ever forget to mount a scratch monkey? 130 | 131 | 0054 Have you ever optimized an idle loop? 132 | 133 | 0055 Did you ever optimize a bubble sort? 134 | 135 | 0056 Does your terminal/computer talk to you? 136 | 137 | 0057 Have you ever talked into an acoustic modem? 138 | 0058 ... Did it answer? 139 | 140 | 0059 Can you whistle 300 baud? 141 | 0060 ... 1200 baud? 142 | 143 | 0061 Can you whistle a telephone number? 144 | 145 | 0062 Have you witnessed a disk crash? 146 | 0063 Have you made a disk drive "walk"? 147 | 148 | 0064 Can you build a puffer train? 149 | 0065 ... Do you know what it is? 150 | 151 | 0066 Can you play music on your line printer? 152 | 0067 ... Your disk drive? 153 | 0068 ... Your tape drive? 154 | 155 | 0069 Do you have a Snoopy calendar? 156 | 0070 ... Is it out-of-date? 157 | 158 | 0071 Do you have a line printer picture of... 159 | 0072 ... the Mona Lisa? 160 | 0073 ... the Enterprise? 161 | 0074 ... Einstein? 162 | 0075 ... Oliver? 163 | 0076 Have you ever made a line printer picture? 164 | 165 | 0077 Do you know what the following stand for? 166 | 0078 ... DASD 167 | 0079 ... Emacs 168 | 0080 ... ITS 169 | 0081 ... RSTS/E 170 | 0082 ... SNA 171 | 0083 ... Spool 172 | 0084 ... TCP/IP 173 | 174 | Have you ever used 175 | 0085 ... TPU? 176 | 0086 ... TECO? 177 | 0087 ... Emacs? 178 | 0088 ... ed? 179 | 0089 ... vi? 180 | 0090 ... Xedit (in VM/CMS)? 181 | 0091 ... SOS? 182 | 0092 ... EDT? 183 | 0093 ... Wordstar? 184 | 185 | 0094 Have you ever written a CLIST? 186 | 187 | Have you ever programmed in 188 | 0095 ... the X windowing system? 189 | 0096 ... CICS? 190 | 191 | 0097 Have you ever received a Fax or a photocopy of a floppy? 192 | 193 | 0098 Have you ever shown a novice the "any" key? 194 | 0099 ... Was it the power switch? 195 | 196 | Have you ever attended 197 | 0100 ... Usenix? 198 | 0101 ... DECUS? 199 | 0102 ... SHARE? 200 | 0103 ... SIGGRAPH? 201 | 0104 ... NetCon? 202 | 203 | 0105 Have you ever participated in a standards group? 204 | 205 | 0106 Have you ever debugged machine code over the telephone? 206 | 207 | 0107 Have you ever seen voice mail? 208 | 0108 ... Can you read it? 209 | 210 | 0109 Do you solve word puzzles with an on-line dictionary? 211 | 212 | 0110 Have you ever taken a Turing test? 213 | 0111 ... Did you fail? 214 | 215 | 0112 Ever drop a card deck? 216 | 0113 ... Did you successfully put it back together? 217 | 0114 ... Without looking? 218 | 219 | 0115 Have you ever used IPCS? 220 | 221 | 0116 Have you ever received a case of beer with your computer? 222 | 223 | 0117 Does your computer come in 'designer' colors? 224 | 225 | 0118 Ever interrupted a UPS? 226 | 227 | 0119 Ever mask an NMI? 228 | 229 | 0120 Have you ever set off a Halon system? 230 | 0121 ... Intentionally? 231 | 0122 ... Do you still work there? 232 | 233 | 0123 Have you ever hit the emergency power switch? 234 | 0124 ... Intentionally? 235 | 236 | 0125 Do you have any defunct documentation? 237 | 0126 ... Do you still read it? 238 | 239 | 0127 Ever reverse-engineer or decompile a program? 240 | 0128 ... Did you find bugs in it? 241 | 242 | 0129 Ever help the person behind the counter with their terminal/computer? 243 | 244 | 0130 Ever tried rack mounting your telephone? 245 | 246 | 0131 Ever thrown a computer from more than two stories high? 247 | 248 | 0132 Ever patched a bug the vendor does not acknowledge? 249 | 250 | 0133 Ever fix a hardware problem in software? 251 | 0134 ... Vice versa? 252 | 253 | 0135 Ever belong to a user/support group? 254 | 255 | 0136 Ever been mentioned in Computer Recreations? 256 | 257 | 0137 Ever had your activities mentioned in the newspaper? 258 | 0138 ... Did you get away with it? 259 | 260 | 0139 Ever engage a drum brake while the drum was spinning? 261 | 262 | 0140 Ever write comments in a non-native language? 263 | 264 | 0141 Ever physically destroy equipment from software? 265 | 266 | 0142 Ever tried to improve your score on the Hacker Test? 267 | 268 | 0143 Do you take listings with you to lunch? 269 | 0144 ... To bed? 270 | 271 | 0145 Ever patch a microcode bug? 272 | 0146 ... around a microcode bug? 273 | 274 | 0147 Can you program a Turing machine? 275 | 276 | 0148 Can you convert postfix to prefix in your head? 277 | 278 | 0149 Can you convert hex to octal in your head? 279 | 280 | 0150 Do you know how to use a Kleene star? 281 | 282 | 0151 Have you ever starved while dining with philosophers? 283 | 284 | 0152 Have you solved the halting problem? 285 | 0153 ... Correctly? 286 | 287 | 0154 Ever deadlock trying eating spaghetti? 288 | 289 | 0155 Ever written a self-reproducing program? 290 | 291 | 0156 Ever swapped out the swapper? 292 | 293 | 0157 Can you read a state diagram? 294 | 0158 ... Do you need one? 295 | 296 | 0159 Ever create an unkillable program? 297 | 0160 ... Intentionally? 298 | 299 | 0161 Ever been asked for a cookie? 300 | 301 | 0162 Ever speed up a system by removing a jumper? 302 | 303 | * Do you know... 304 | 305 | 0163 Do you know who wrote Rogue? 306 | 0164 ... Rogomatic? 307 | 308 | 0165 Do you know Gray code? 309 | 310 | 0166 Do you know what HCF means? 311 | 0167 ... Ever use it? 312 | 0168 ... Intentionally? 313 | 314 | 0169 Do you know what a lace card is? 315 | 0170 ... Ever make one? 316 | 317 | 0171 Do you know the end of the epoch? 318 | 0172 ... Have you celebrated the end of an epoch? 319 | 0173 ... Did you have to rewrite code? 320 | 321 | 0174 Do you know the difference between DTE and DCE? 322 | 323 | 0175 Do you know the RS-232C pinout? 324 | 0176 ... Can you wire a connector without looking? 325 | 326 | * Do you have... 327 | 328 | 0177 Do you have a copy of Dec Wars? 329 | 0178 Do you have the Canonical Collection of Lightbulb Jokes? 330 | 0179 Do you have a copy of the Hacker's dictionary? 331 | 0180 ... Did you contribute to it? 332 | 333 | 0181 Do you have a flowchart template? 334 | 0182 ... Is it unused? 335 | 336 | 0183 Do you have your own fortune-cookie file? 337 | 338 | 0184 Do you have the Anarchist's Cookbook? 339 | 0185 ... Ever make anything from it? 340 | 341 | 0186 Do you own a modem? 342 | 0187 ... a terminal? 343 | 0188 ... a toy computer? 344 | 0189 ... a personal computer? 345 | 0190 ... a minicomputer? 346 | 0191 ... a mainframe? 347 | 0192 ... a supercomputer? 348 | 0193 ... a hypercube? 349 | 0194 ... a printer? 350 | 0195 ... a laser printer? 351 | 0196 ... a tape drive? 352 | 0197 ... an outmoded peripheral device? 353 | 354 | 0198 Do you have a programmable calculator? 355 | 0199 ... Is it RPN? 356 | 357 | 0200 Have you ever owned more than 1 computer? 358 | 0201 ... 4 computers? 359 | 0202 ... 16 computers? 360 | 361 | 0203 Do you have a SLIP line? 362 | 0204 ... a T1 line? 363 | 364 | 0205 Do you have a separate phone line for your terminal/computer? 365 | 0206 ... Is it legal? 366 | 367 | 0207 Do you have core memory? 368 | 0208 ... drum storage? 369 | 0209 ... bubble memory? 370 | 371 | 0210 Do you use more than 16 megabytes of disk space? 372 | 0211 ... 256 megabytes? 373 | 0212 ... 1 gigabyte? 374 | 0213 ... 16 gigabytes? 375 | 0214 ... 256 gigabytes? 376 | 0215 ... 1 terabyte? 377 | 378 | 0216 Do you have an optical disk/disk drive? 379 | 380 | 0217 Do you have a personal magnetic tape library? 381 | 0218 ... Is it unlabelled? 382 | 383 | 0219 Do you own more than 16 floppy disks? 384 | 0220 ... 64 floppy disks? 385 | 0221 ... 256 floppy disks? 386 | 0222 ... 1024 floppy disks? 387 | 388 | 0223 Do you have any 8-inch disks? 389 | 390 | 0224 Do you have an internal stack? 391 | 392 | 0225 Do you have a clock interrupt? 393 | 394 | 0226 Do you own volumes 1 to 3 of _The Art of Computer Programming_? 395 | 0227 ... Have you done all the exercises? 396 | 0228 ... Do you have a MIX simulator? 397 | 0229 ... Can you name the unwritten volumes? 398 | 399 | 0230 Can you quote from _The Mythical Man-month_? 400 | 0231 ... Did you participate in the OS/360 project? 401 | 402 | 0232 Do you have a TTL handbook? 403 | 404 | 0233 Do you have printouts more than three years old? 405 | 406 | * Career 407 | 408 | 0234 Do you have a job? 409 | 0235 ... Have you ever had a job? 410 | 0236 ... Was it computer-related? 411 | 412 | 0237 Do you work irregular hours? 413 | 414 | 0238 Have you ever been a system administrator? 415 | 416 | 0239 Do you have more megabytes than megabucks? 417 | 418 | 0240 Have you ever downgraded your job to upgrade your processing power? 419 | 420 | 0241 Is your job secure? 421 | 0242 ... Do you have code to prove it? 422 | 423 | 0243 Have you ever had a security clearance? 424 | 425 | * Games 426 | 427 | 0244 Have you ever played Pong? 428 | 429 | Have you ever played 430 | 0246 ... Spacewar? 431 | 0247 ... Star Trek? 432 | 0248 ... Wumpus? 433 | 0249 ... Lunar Lander? 434 | 0250 ... Empire? 435 | 436 | Have you ever beaten 437 | 0251 ... Moria 4.8? 438 | 0252 ... Rogue 3.6? 439 | 0253 ... Rogue 5.3? 440 | 0254 ... Larn? 441 | 0255 ... Hack 1.0.3? 442 | 0256 ... Nethack 2.4? 443 | 444 | 0257 Can you get a better score on Rogue than Rogomatic? 445 | 446 | 0258 Have you ever solved Adventure? 447 | 0259 ... Zork? 448 | 449 | 0260 Have you ever written any redcode? 450 | 451 | 0261 Have you ever written an adventure program? 452 | 0262 ... a real-time game? 453 | 0263 ... a multi-player game? 454 | 0264 ... a networked game? 455 | 456 | 0265 Can you out-doctor Eliza? 457 | 458 | * Hardware 459 | 460 | 0266 Have you ever used a light pen? 461 | 0267 ... did you build it? 462 | 463 | Have you ever used 464 | 0268 ... a teletype? 465 | 0269 ... a paper tape? 466 | 0270 ... a decwriter? 467 | 0271 ... a card reader/punch? 468 | 0272 ... a SOL? 469 | 470 | Have you ever built 471 | 0273 ... an Altair? 472 | 0274 ... a Heath/Zenith computer? 473 | 474 | Do you know how to use 475 | 0275 ... an oscilliscope? 476 | 0276 ... a voltmeter? 477 | 0277 ... a frequency counter? 478 | 0278 ... a logic probe? 479 | 0279 ... a wirewrap tool? 480 | 0280 ... a soldering iron? 481 | 0281 ... a logic analyzer? 482 | 483 | 0282 Have you ever designed an LSI chip? 484 | 0283 ... has it been fabricated? 485 | 486 | 0284 Have you ever etched a printed circuit board? 487 | 488 | * Historical 489 | 490 | 0285 Have you ever toggled in boot code on the front panel? 491 | 0286 ... from memory? 492 | 493 | 0287 Can you program an Eniac? 494 | 495 | 0288 Ever seen a 90 column card? 496 | 497 | * IBM 498 | 499 | 0289 Do you recite IBM part numbers in your sleep? 500 | 0290 Do you know what IBM part number 7320154 is? 501 | 502 | 0291 Do you understand 3270 data streams? 503 | 504 | 0292 Do you know what the VM privilege classes are? 505 | 506 | 0293 Have you IPLed an IBM off the tape drive? 507 | 0294 ... off a card reader? 508 | 509 | 0295 Can you sing something from the IBM Songbook? 510 | 511 | * Languages 512 | 513 | 0296 Do you know more than 4 programming languages? 514 | 0297 ... 8 languages? 515 | 0298 ... 16 languages? 516 | 0299 ... 32 languages? 517 | 518 | 0300 Have you ever designed a programming language? 519 | 520 | 0301 Do you know what Basic stands for? 521 | 0302 ... Pascal? 522 | 523 | 0303 Can you program in Basic? 524 | 0304 ... Do you admit it? 525 | 526 | 0305 Can you program in Cobol? 527 | 0306 ... Do you deny it? 528 | 529 | 0307 Do you know Pascal? 530 | 0308 ... Modula-2? 531 | 0309 ... Oberon? 532 | 0310 ... More that two Wirth languages? 533 | 0311 ... Can you recite a Nicklaus Wirth joke? 534 | 535 | 0312 Do you know Algol-60? 536 | 0313 ... Algol-W? 537 | 0314 ... Algol-68? 538 | 0315 ... Do you understand the Algol-68 report? 539 | 0316 ... Do you like two-level grammars? 540 | 541 | 0317 Can you program in assembler on 2 different machines? 542 | 0318 ... on 4 different machines? 543 | 0319 ... on 8 different machines? 544 | 545 | Do you know 546 | 0320 ... APL? 547 | 0321 ... Ada? 548 | 0322 ... BCPL? 549 | 0323 ... C++? 550 | 0324 ... C? 551 | 0325 ... Comal? 552 | 0326 ... Eiffel? 553 | 0327 ... Forth? 554 | 0328 ... Fortran? 555 | 0329 ... Hypertalk? 556 | 0330 ... Icon? 557 | 0331 ... Lisp? 558 | 0332 ... Logo? 559 | 0333 ... MIIS? 560 | 0334 ... MUMPS? 561 | 0335 ... PL/I? 562 | 0336 ... Pilot? 563 | 0337 ... Plato? 564 | 0338 ... Prolog? 565 | 0339 ... RPG? 566 | 0340 ... Rexx (or ARexx)? 567 | 0341 ... SETL? 568 | 0342 ... Smalltalk? 569 | 0343 ... Snobol? 570 | 0344 ... VHDL? 571 | 0345 ... any assembly language? 572 | 573 | 0346 Can you talk VT-100? 574 | 0347 ... Postscript? 575 | 0348 ... SMTP? 576 | 0349 ... UUCP? 577 | 0350 ... English? 578 | 579 | * Micros 580 | 581 | 0351 Ever copy a copy-protected disk? 582 | 0352 Ever create a copy-protection scheme? 583 | 584 | 0353 Have you ever made a "flippy" disk? 585 | 586 | 0354 Have you ever recovered data from a damaged disk? 587 | 588 | 0355 Ever boot a naked floppy? 589 | 590 | * Networking 591 | 592 | 0356 Have you ever been logged in to two different timezones at once? 593 | 594 | 0357 Have you memorized the UUCP map for your country? 595 | 0358 ... For any country? 596 | 597 | 0359 Have you ever found a sendmail bug? 598 | 0360 ... Was it a security hole? 599 | 600 | 0361 Have you memorized the HOSTS.TXT table? 601 | 0362 ... Are you up to date? 602 | 603 | 0363 Can you name all the top-level nameservers and their addresses? 604 | 605 | 0364 Do you know RFC-822 by heart? 606 | 0365 ... Can you recite all the errors in it? 607 | 608 | 0366 Have you written a Sendmail configuration file? 609 | 0367 ... Does it work? 610 | 0368 ... Do you mumble "defocus" in your sleep? 611 | 612 | 0369 Do you know the max packet lifetime? 613 | 614 | * Operating systems 615 | 616 | Can you use 617 | 0370 ... BSD Unix? 618 | 0371 ... non-BSD Unix? 619 | 0372 ... AIX 620 | 0373 ... VM/CMS? 621 | 0374 ... VMS? 622 | 0375 ... MVS? 623 | 0376 ... VSE? 624 | 0377 ... RSTS/E? 625 | 0378 ... CP/M? 626 | 0379 ... COS? 627 | 0380 ... NOS? 628 | 0381 ... CP-67? 629 | 0382 ... RT-11? 630 | 0383 ... MS-DOS? 631 | 0384 ... Finder? 632 | 0385 ... PRODOS? 633 | 0386 ... more than one OS for the TRS-80? 634 | 0387 ... Tops-10? 635 | 0388 ... Tops-20? 636 | 0389 ... OS-9? 637 | 0390 ... OS/2? 638 | 0391 ... AOS/VS? 639 | 0392 ... Multics? 640 | 0393 ... ITS? 641 | 0394 ... Vulcan? 642 | 643 | 0395 Have you ever paged or swapped off a tape drive? 644 | 0396 ... Off a card reader/punch? 645 | 0397 ... Off a teletype? 646 | 0398 ... Off a networked (non-local) disk? 647 | 648 | 0399 Have you ever found an operating system bug? 649 | 0400 ... Did you exploit it? 650 | 0401 ... Did you report it? 651 | 0402 ... Was your report ignored? 652 | 653 | 0403 Have you ever crashed a machine? 654 | 0404 ... Intentionally? 655 | 656 | * People 657 | 658 | 0405 Do you know any people? 659 | 0406 ... more than one? 660 | 0407 ... more than two? 661 | 662 | * Personal 663 | 664 | 0408 Are your shoelaces untied? 665 | 666 | 0409 Do you interface well with strangers? 667 | 668 | 0410 Are you able to recite phone numbers for half-a-dozen computer systems 669 | but unable to recite your own? 670 | 671 | 0411 Do you log in before breakfast? 672 | 673 | 0412 Do you consume more than LD-50 caffeine a day? 674 | 675 | 0413 Do you answer either-or questions with "yes"? 676 | 677 | 0414 Do you own an up-to-date copy of any operating system manual? 678 | 0415 ... *every* operating system manual? 679 | 680 | 0416 Do other people have difficulty using your customized environment? 681 | 682 | 0417 Do you dream in any programming languages? 683 | 684 | 0418 Do you have difficulty focusing on three-dimensional objects? 685 | 686 | 0419 Do you ignore mice? 687 | 688 | 0420 Do you despise the CAPS LOCK key? 689 | 690 | 0421 Do you believe menus belong in restaurants? 691 | 692 | 0422 Do you have a Mandelbrot hanging on your wall? 693 | 694 | 0423 Have you ever decorated with magnetic tape or punched cards? 695 | 0424 Do you have a disk platter or a naked floppy hanging in your home? 696 | 697 | 0425 Have you ever seen the dawn? 698 | 0426 ... Twice in a row? 699 | 700 | 0427 Do you use "foobar" in daily conversation? 701 | 0428 ... "bletch"? 702 | 703 | 0429 Do you use the "P convention"? 704 | 705 | 0430 Do you automatically respond to any user question with RTFM? 706 | 0431 ... Do you know what it means? 707 | 708 | 0432 Do you think garbage collection means memory management? 709 | 710 | 0433 Do you have problems allocating horizontal space in your room/office? 711 | 712 | 0434 Do you read Scientific American in bars to pick up women? 713 | 714 | 0435 Is your license plate computer-related? 715 | 716 | 0436 Have you ever taken the Purity test? 717 | 718 | 0437 Ever have an out-of-CPU experience? 719 | 720 | 0438 Have you ever set up a blind date over the computer? 721 | 722 | 0439 Do you talk to the person next to you via computer? 723 | 724 | * Programming 725 | 726 | 0440 Can you write a Fortran compiler? 727 | 0441 ... In TECO? 728 | 729 | 0442 Can you read a machine dump? 730 | 0443 Can you disassemble code in your head? 731 | 732 | Have you ever written 733 | 0444 ... a compiler? 734 | 0445 ... an operating system? 735 | 0446 ... a device driver? 736 | 0447 ... a text processor? 737 | 0448 ... a display hack? 738 | 0449 ... a database system? 739 | 0450 ... an expert system? 740 | 0451 ... an edge detector? 741 | 0452 ... a real-time control system? 742 | 0453 ... an accounting package? 743 | 0454 ... a virus? 744 | 0455 ... a prophylactic? 745 | 746 | 0456 Have you ever written a biorhythm program? 747 | 0457 ... Did you sell the output? 748 | 0458 ... Was the output arbitrarily invented? 749 | 750 | 0459 Have you ever computed pi to more than a thousand decimal places? 751 | 0460 ... the number e? 752 | 753 | 0461 Ever find a prime number of more than a hundred digits? 754 | 755 | 0462 Have you ever written self-modifying code? 756 | 0463 ... Are you proud of it? 757 | 758 | 0464 Did you ever write a program that ran correctly the first time? 759 | 0465 ... Was it longer than 20 lines? 760 | 0466 ... 100 lines? 761 | 0467 ... Was it in assembly language? 762 | 0468 ... Did it work the second time? 763 | 764 | 0469 Can you solve the Towers of Hanoi recursively? 765 | 0470 ... Non-recursively? 766 | 0471 ... Using the Troff text formatter? 767 | 768 | 0472 Ever submit an entry to the Obfuscated C code contest? 769 | 0473 ... Did it win? 770 | 0474 ... Did your entry inspire a new rule? 771 | 772 | 0475 Do you know Duff's device? 773 | 774 | 0476 Do you know Jensen's device? 775 | 776 | 0477 Ever spend ten minutes trying to find a single-character error? 777 | 0478 ... More than an hour? 778 | 0479 ... More than a day? 779 | 0480 ... More than a week? 780 | 0481 ... Did the first person you show it to find it immediately? 781 | 782 | * Unix 783 | 784 | 0482 Can you use Berkeley Unix? 785 | 0483 .. Non-Berkeley Unix? 786 | 787 | 0484 Can you distinguish between sections 4 and 5 of the Unix manual? 788 | 789 | 0485 Can you find TERMIO in the System V release 2 documentation? 790 | 791 | 0486 Have you ever mounted a tape as a Unix file system? 792 | 793 | 0487 Have you ever built Minix? 794 | 795 | 0488 Can you answer "quiz function ed-command" correctly? 796 | 0489 ... How about "quiz ed-command function"? 797 | 798 | * Usenet 799 | 800 | 0490 Do you read news? 801 | 0491 ... More than 32 newsgroups? 802 | 0492 ... More than 256 newsgroups? 803 | 0493 ... All the newsgroups? 804 | 805 | 0494 Have you ever posted an article? 806 | 0495 ... Do you post regularly? 807 | 808 | 0496 Have you ever posted a flame? 809 | 0497 ... Ever flame a cross-posting? 810 | 0498 ... Ever flame a flame? 811 | 0499 ... Do you flame regularly? 812 | 813 | 0500 Ever have your program posted to a source newsgroup? 814 | 815 | 0501 Ever forge a posting? 816 | 0502 Ever form a new newsgroup? 817 | 0503 ... Does it still exist? 818 | 819 | 0504 Do you remember 820 | 0505 ... mod.ber? 821 | 0506 ... the Stupid People's Court? 822 | 0507 ... Bandy-grams? 823 | 824 | * Phreaking 825 | 826 | 0508 Have you ever built a black box? 827 | 828 | 0509 Can you name all of the 'colors' of boxes? 829 | 0510 ... and their associated functions? 830 | 831 | 0511 Does your touch tone phone have 16 DTMF buttons on it? 832 | 833 | 0512 Did the breakup of MaBell create more opportunities for you? 834 | 835 | 836 | If you have any comments of suggestions regarding the HACKER TEST, 837 | Please send then to: hayes@psunuce.bitnet 838 | or jwh100@psuvm.bitnet / jwh100@psuvmxa.bitnet 839 | or jwh100@psuvm.psu.edu / jwh100@psuvmxa.psu.edu 840 | or ...!psuvax1!psuvm.bitnet!jwh100 841 | 842 | 843 | 844 | 845 | SOURCE: http://www.hungry.com/~jamie/hacktest.text 846 | RETRIEVED: 2017-October-3 - @nyxgeek 847 | --------------------------------------------------------------------------------