├── 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 |
--------------------------------------------------------------------------------