[HN Gopher] The Hacker's Dictionary
       ___________________________________________________________________
        
       The Hacker's Dictionary
        
       Author : derealized
       Score  : 155 points
       Date   : 2023-07-29 13:13 UTC (1 days ago)
        
 (HTM) web link (www.hackersdictionary.com)
 (TXT) w3m dump (www.hackersdictionary.com)
        
       | rolph wrote:
       | http://catb.org/jargon/html/online-preface.html
        
       | mjb wrote:
       | There's a terrible/great genre thriller by Jeffery Deaver called
       | 'The Blue Nowhere'. Whoever ghost wrote it seems to have set
       | themselves the goal of using every word from the jargon file.
       | Unintentionally hilarious.
        
         | gumby wrote:
         | At my book club (mostly us old farts from SU-AI and MIT-AI)
         | someone mentioned that Harry Harrison had read the jargon file
         | when spending time at the MIT AI lab and made a point of using
         | them in conversation. Unfortunately by learning them that way
         | he didn't get any of the context (and wasn't a hacker anyway)
         | so he never used them correctly.
         | 
         | (The person who related this anecdote wasn't mocking him, it
         | was just an example while talking about something else, using
         | amusing examples that all of us would know. I don't remember
         | Harrison, but I think I remember Robert Sheckley doing this,
         | not that it matters).
        
       | ChrisArchitect wrote:
       | Just search Jargon File on here for the many similar/related
       | posts.
       | 
       | Created a new account just to submit this? Welcome.
        
       | dang wrote:
       | Related threads below. Have I missed one? Surprisingly little
       | over the years.
       | 
       | Newer cohorts don't always know the classics/perennials*, so the
       | occasional thread is a good thing - but should we change the link
       | to one of these?
       | 
       | https://www.dourish.com/goodies/jargon.html
       | 
       | http://jargon-file.org/archive/jargon-4.4.7.dos.txt
       | 
       | http://catb.org/jargon/html/index.html
       | 
       | * https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
        
         | dang wrote:
         | _The Jargon File_ -
         | https://news.ycombinator.com/item?id=33259797 - Oct 2022 (1
         | comment)
         | 
         |  _The Jargon File_ -
         | https://news.ycombinator.com/item?id=31574352 - May 2022 (1
         | comment)
         | 
         |  _The Jargon File_ -
         | https://news.ycombinator.com/item?id=24658797 - Oct 2020 (4
         | comments)
         | 
         |  _The Jargon File_ -
         | https://news.ycombinator.com/item?id=23331642 - May 2020 (2
         | comments)
         | 
         |  _The Jargon File_ -
         | https://news.ycombinator.com/item?id=16424833 - Feb 2018 (1
         | comment)
         | 
         |  _Jargon File moved to github_ -
         | https://news.ycombinator.com/item?id=6887903 - Dec 2013 (10
         | comments)
         | 
         |  _Jargon File moved to github_ -
         | https://news.ycombinator.com/item?id=6884756 - Dec 2013 (3
         | comments)
         | 
         |  _The Original Hacker 's Dictionary (1988)_ -
         | https://news.ycombinator.com/item?id=5269170 - Feb 2013 (24
         | comments)
         | 
         |  _The Jargon File_ -
         | https://news.ycombinator.com/item?id=1469112 - June 2010 (4
         | comments)
         | 
         |  _The Jargon File_ -
         | https://news.ycombinator.com/item?id=1295076 - April 2010 (3
         | comments)
         | 
         |  _On ESR 's continual changing of the Jargon File.._ -
         | https://news.ycombinator.com/item?id=239168 - July 2008 (1
         | comment)
         | 
         |  _The Jargon File_ -
         | https://news.ycombinator.com/item?id=148423 - March 2008 (1
         | comment)
        
           | archo wrote:
           | Superb site Moderating and Content Curation.
        
       | idlewords wrote:
       | It would be great if someone with appropriate "back in the day"
       | credentials would take over membership of this document and
       | powerwash the gratuitous Eric Raymond edits and insertions off of
       | it.
        
         | EarlKing wrote:
         | Better solution: Just make your own for whatever project you're
         | working with. AIWORD was originally a product of Stanford's AI
         | community. Let it rest and make a dictionary that reflects the
         | usage of your own group.
         | 
         | ..........and mercilessly mock Eric Raymond for his
         | pretensions. :D
        
         | WesolyKubeczek wrote:
         | 1) these people are not young and getting older every day, so
         | priorities might change too
         | 
         | 2) after a while if person A takes this on, there will be a
         | request to powerwash the gratuitous A's edits and insertions
         | off of it
         | 
         | 3) if the purpose is to have it in pristine state and do no
         | edits, it's not like old versions have disappeared, just mirror
         | them away
        
           | fragmede wrote:
           | So in order for the document to evolve, we need a system to
           | determine consensus. Everyone who cares runs a program on
           | their computer that joins the network and registers their
           | intent. With each proposed change, a query goes out to the
           | network, and it's up to everyone on the network to say yea or
           | nay to the proposal. With enough "yea"s, the document is
           | updated.
           | 
           | ...this is starting to sound like a blockchain, isn't it.
        
         | dtaht wrote:
         | Not enough people born after 1980 have read either version of
         | the dictionary, which is a shame in having a unified vocabulary
         | across more of the internet. A companion volume with new terms,
         | events, and foci would help.
         | 
         | I am glad Monty Python, at least, remains popular across old
         | hackers and new.
        
           | ghaff wrote:
           | Without having a real opinion on Esr's eedits, a snapshot of
           | earlyish hacker culture (whether or not conflating LISP and
           | UNIX) is historically interesting. With tech today so
           | mainstream and with so many subcultures and branches one
           | could of course a glossary but it wouldn't be the same.
        
           | dylan604 wrote:
           | even when it is written down, things don't stick across the
           | internet. we're still having gif vs jif pronunciation debates
        
             | WesolyKubeczek wrote:
             | Well concerning GIF it's obviously soft G because it stands
             | for Giraffics Interchange Format. Does it not?
        
               | reaperducer wrote:
               | It's a soft G, like the peanut butter brand, because
               | that's what the inventor says.
               | 
               | His algo, his rules.
        
       | thatxliner wrote:
       | Hacker Writing Style > Quotations and punctuation. That part hits
       | hard because it really shows up in my writing (I didn't know that
       | it was incorrect English grammar until my teacher told me)
        
       | mepian wrote:
       | The original version of this dictionary:
       | https://www.dourish.com/goodies/jargon.html                 "This
       | file, jargon.txt, was maintained on MIT-AI for many years, before
       | being published by Guy Steele and others as the Hacker's
       | Dictionary. Many years after the original book went out of print,
       | Eric Raymond picked it up, updated it and republished it as the
       | New Hacker's Dictionary. Unfortunately, in the process, he
       | essentially destroyed what held it together, in various ways:
       | first, by changing its emphasis from Lisp-based to UNIX-based
       | (blithely ignoring the distinctly anti-UNIX aspects of the LISP
       | culture celebrated in the original); second, by watering down
       | what was otherwise the fairly undiluted record of a single
       | cultural group through this kind of mixing; and third, by adding
       | in all sorts of terms which are "jargon" only in the sense that
       | they're technical. This page, however, is pretty much the
       | original, snarfed from MIT-AI around 1988."
        
         | smileykenziekv wrote:
         | I didn't realize there was another version of this. I will look
         | at both and get my own personal comparison
        
         | jejones3141 wrote:
         | Perhaps the thing to do is put it in a git repository, so
         | people can retrieve the version they want.
        
         | DonHopkins wrote:
         | Here are two versions of the original jargon file from
         | AI:HUMOR; free of ESR's pollution:
         | 
         | AI:HUMOR;MITSAI JARGON (25.3 KB):
         | 
         | https://github.com/PDP-10/its/blob/master/doc/humor/mitsai.j...
         | 
         | AI:HUMOR;JARGON > (85.3 KB):
         | 
         | https://github.com/PDP-10/its/blob/master/doc/humor/jargon.6...
         | 
         | Also NASA jargon:
         | 
         | https://github.com/PDP-10/its/blob/master/doc/humor/nasa.jar...
         | 
         | Alice's PDP-10 is also a classic:
         | 
         | https://github.com/PDP-10/its/blob/master/doc/humor/alices.p...
         | There was all kinds of mean nasty ugly people there on the
         | bench...         Chaosnet designers... Lisp hackers... TECO
         | hackers.  TECO hackers         right there on the bench with
         | me!  And the meanest one of them, the         hairiest TECO
         | hacker of them all was coming over to me.  And he was
         | mean and nasty and horrible and undocumented and all kinds of
         | stuff.         And he sat down next to me and said:
         | [1:i\*^Yu14<q1&377.f"nir'q1/400.u1>^[[8
         | .-z(1702117120m81869946983m8w660873337m8w1466458484m8
         | )+z,.f^@fx\*[0:ft^]0^[w^\              And I said "I didn't get
         | nothing, I had to rebuild the bittable in         queue six"
         | and he said:              [1:i\*^Yu16<q1&77.+32iq1f"l#-1/100.#-
         | 1&7777777777.'"#/100.'u1r>6c^[[6
         | .(675041640067.m6w416300715765.m6w004445675045.m6         45544
         | 5440046.m6w576200535144.m6w370000000000.m6),.fx\*[0:ft^]0^[w^\
        
           | Tevo wrote:
           | > Alice's PDP-10 is also a classic
           | 
           | Reminds me, some fortunes on LAMBDA.TXT[1] seem to hint at
           | the existence of an "Alice's LispM", seemingly a parody on
           | the PDP-10 version, but a quick search for it doesn't seem to
           | come up with much (I haven't looked very hard). Does anybody
           | know anything about this?
           | 
           | [1]: http://www.gotlisp.com/lambda/lambda.txt
        
             | DonHopkins wrote:
             | Oh yes, I love that one -- it inspired me to become a
             | Window System Hacker, and write the ugly and nasty and
             | horrible and kludgy "Bouncy pushy window mixin", which made
             | the windows bounce all around the screen!
             | 
             | https://donhopkins.com/home/archive/lisp/bounce-and-
             | push.lis...
             | 
             | ALICE'S LISP MACHINE: Chris Stacy, Alan Wecsler, and Noel
             | Chiappa
             | 
             | https://web.archive.org/web/20110403000600/http://allegedly
             | ....                             There was all kinds of
             | mean, nasty, ugly-lookin' people  on         the bench
             | there ...  there was Microcoders,  DPL hackers, File
             | System         hackers, and  Window System  Hackers!!
             | Window System  hacker  sittin'         right there  on  the
             | bench  next  to  me! And  the  meanest,  ugliest,
             | nastiest one... the kludgiest Window System hacker of them
             | all...  was         comin' over to me, and he was mean and
             | ugly and nasty and horrible and         all kinds of
             | things, and  he sat down next to  me. He said, "Kid,  you
             | get a new copy of the sources?"  I said, "I didn't get
             | nothin'. I  had         to rebuild the world load."
             | He said,  "What were  you arrested  for, kid?"  and I
             | said,         "Littering..." And they  all moved away  from
             | me on  the bench  there,         with the hairy  eyeball
             | and all  kinds of mean,  nasty things, 'til  I
             | said, "And making  gratuitous modifications to  LMIO;
             | sources..."  And         they all came  back, shook my
             | hand, and we  had a great  time on  the         bench
             | talkin' about microcoding, DPL designing, file-system
             | hacking,         ... and all kinds of groovy things that we
             | was talkin' about on the         bench, and everything was
             | fine.                        We was drinking Coke smoking
             | all kinds of things, until  the         RA came over, had
             | some paper in his hand, held it up and said:
             | "KIDS-THIS-EXAM-S-GOT-FOURTY              SEVEN-WORDS-
             | THIRTY-SEVEN-MULTIPLE-CHOICE-QUESTIONS              FIFTY-
             | EIGHT-WORDS-WE-WANT-TO-KNOW-THE-DETAILS              OF-
             | THE-HACK-THE-TIME-OF-THE-HACK-AND-ANY              OTHER-
             | KIND-OF-THING-YOU-GOT-TO-SAY              PERTAINING-TO-
             | AND-ABOUT-THE-HACK-ANY-OTHER              KIND-OF-THING-
             | YOU-GOT-TO-SAY-WE-WANT-TO-KNOW              THE-ARRESTED-
             | PROCESS'-NAME-AND-ANY              OTHER-KIND-OF-THING..."
             | And he talked for forty-five minutes and nobody understood
             | a word that         he said. But we had  fun rolling the
             | mice  around and clickin' on  the         buttons.
        
           | bear8642 wrote:
           | Are these meant to just be incomprehensible, or is there some
           | translation possible?
           | 
           | Haven't heard the song for awhile.
        
             | DonHopkins wrote:
             | Here's what GPT-4 had to say about the TECO code in the
             | song:
             | 
             | Explain every detail of this TECO code that you can, and
             | speculate on what it does.
             | [1:i\*^Yu14<q1&377.f"nir'q1/400.u1>^[[8
             | .-z(1702117120m81869946983m8w660873337m8w1466458484m8
             | )+z,.f^@fx\*[0:ft^]0^[w^\              [1:i\*^Yu16<q1&77.+3
             | 2iq1f"l#-1/100.#-1&7777777777.'"#/100.'u1r>6c^[[6
             | .(675041640067.m6w416300715765.m6w004445675045.m6         4
             | 55445440046.m6w576200535144.m6w370000000000.m6),.fx\*[0:ft^
             | ]0^[w^\
             | 
             | ChatGPT:
             | 
             | TECO (Text Editor and COrrector) is a primitive text editor
             | from the early days of computer programming. TECO code is
             | notoriously difficult to read, as it's a sort of "write-
             | only" language with many commands being single punctuation
             | characters and having different meanings depending on
             | context. Its language is an esoteric one, with little
             | resemblance to most modern programming languages.
             | 
             | Let's try to break down the given TECO code line by line:
             | 
             | [1:i\\*^Yu14<q1&377.f"nir'q1/400.u1>^[[8
             | 
             | Here, [1 is saving the current buffer's contents to
             | Q-register 1 (a kind of temporary storage). i\\*^Y is
             | inserting the character with ASCII code 25 (^Y stands for
             | decimal 25, \\* is for output). u14 is storing the value 14
             | in Q-register 4.
             | 
             | <q1&377.f"nir'q1/400.u1> is a conditional loop that
             | executes while the value in Q-register 1 (the contents of
             | the buffer) ANDed with 377 (octal, or 255 decimal) is not
             | 0. Inside the loop, it's reading one character from the
             | buffer (.f), if it's not end of file ("n), it's returning
             | the pointer back to the character just read (ir'),
             | otherwise it's storing the value of Q-register 1 divided by
             | 400 in Q-register 1 (q1/400.u1).
             | 
             | >^[[8 at the end is somewhat unclear without context. ^[[
             | is often a prefix for terminal control sequences (also
             | called escape sequences), but 8 doesn't correspond to a
             | typical terminal control sequence. This might be a TECO-
             | specific sequence.
             | 
             | .-z(1702117120m81869946983m8w660873337m8w1466458484m8)+z,.f
             | ^@fx\\*[0:ft^]0^[w^\
             | 
             | Here, .-z( to )+z, is calculating a range in the buffer.
             | .-z is the difference between the current pointer position
             | and the end of the buffer, and z is the length of the
             | buffer. 1702117120m81869946983m8w660873337m8w1466458484m8
             | are arithmetic operations involving multiply (m) and
             | bitwise OR (w), but without the context it's hard to say
             | exactly what this line is doing.
             | 
             | .f^@ reads one character from the buffer and replaces it
             | with ASCII null (^@ stands for decimal 0, and f is for
             | fetching). fx exchanges the Q-register and the buffer,
             | meaning that the contents of the buffer are now in the
             | Q-register and the previous Q-register contents are now in
             | the buffer. \\*[0:ft^]0^[w^\ are performing a series of
             | operations involving Q-register 0, fetching and type
             | commands but, without context, it's hard to say exactly
             | what this is doing.
             | 
             | [1:i\\*^Yu16<q1&77.+32iq1f"l#-1/100.#-1&7777777777.'"#/100.
             | 'u1r>6c^[[6
             | 
             | This is similar to the first line but with a few
             | differences. u16 is storing the value 16 in Q-register 6.
             | <q1&77.+32i is a conditional loop that executes while the
             | value in Q-register 1 ANDed with 77 (octal, or 63 decimal)
             | is not 0. Inside the loop, it's adding 32 to the character
             | in the buffer, essentially converting uppercase ASCII
             | characters to lowercase.
             | 
             | q1f"l#-1/100.#-1&7777777777.'"#/100.'u1r is a series of
             | commands inside the loop. If the fetched character is less
             | than -1, it's performing a series of operations involving
             | division and bitwise AND, and storing the result in
             | Q-register 1. The exact purpose of these operations isn't
             | clear without context.
             | 
             | >6c^[[6 at the end is also unclear. It could be storing the
             | character with ASCII code 6 in Q-register 6, but without
             | context, it's hard to say for sure.
             | 
             | .(675041640067.m6w416300715765.m6w004445675045.m6455444046.
             | m6w576200535144.m6w370000000000.m6),.fx\\*[0:ft^]0^[w^\\\
             | 
             | Similar to the second line, this line is performing a
             | series of arithmetic operations with the contents of
             | Q-register 6. After that, it's again exchanging the buffer
             | with a Q-register (presumably the Q-register with the
             | result of the arithmetic operations).
             | 
             | In terms of what this code does, it's difficult to
             | determine without context. It's performing a series of
             | operations on the contents of the buffer, and these
             | operations involve arithmetic, bitwise, and possibly
             | character manipulation. But the exact purpose of these
             | operations isn't clear from the code alone. For example, we
             | can see that the code is interacting with the contents of
             | the buffer and Q-registers, but it's not clear what these
             | contents are or what the desired outcome is.
             | 
             | TECO's complex syntax and the lack of modern programming
             | conventions makes it very difficult to determine what a
             | specific piece of TECO code does without additional context
             | or comments.
        
             | DonHopkins wrote:
             | TECO really is that incomprehensible. I don't understand it
             | myself, but here's another example that I remember seeing
             | in Marvin Minsky's home directory on MIT-AI, which I'm glad
             | I asked about years ago on HN, because Harold Ancel just
             | happened to save a copy of it:
             | 
             | https://news.ycombinator.com/item?id=10161002
             | 
             | DonHopkins on Sept 2, 2015 | parent | context | favorite |
             | on: The most obsolete infrastructure money could buy -...
             | 
             | I remember running across a Turing machine emulator
             | implemented in TECO in Minsky's home directory that I'd
             | REALLY love to get ahold of.
             | 
             | hga on Sept 2, 2015 [-]
             | 
             | Ask and yea shall receive:                 MSG: APL    1
             | DISTRIB:  *BBOARD       EXPIRES: 03/17/81 23:08:54
             | MINSKY@MIT-MC 03/11/81 23:08:54 Re: too-short programs
             | APL is compact, I suppose.  So is TECO.  When I wrote the
             | following       Universal Turing Machine, which works, I
             | actually understood it.
             | 
             | [ I've interpolated the non-printing characters as
             | displayed by (Gnu) EMACS, escape is ^], ^^ is one
             | character, as is \356: ]                 i1Aul
             | qq+^^0:iqm^[29iiq\356y0L1 00L1 11L2 A1L1       y0L1 0yR2
             | 1AR2 AyR6 yyL3 00L0 1AL3 A1L4 yyL4 0yR5 11L7 A1L4
             | yyR5 0yL3 1AR5 A1R5 yyR6 0AL3 1AR6 A1R6 y0R7 0yR6 11R7 A0R2
             | ^[j<sR^[;-d-2ciql-^^^[ci"ed^^^[cii^[ciuq'^[>       j<sL^[;-
             | d-2ciql-^^^[ci"ed^^^[cii-2c^[ciuq'^[>jxblx1lx2lx3lx4lx5lx6l
             | x7hk       iyyAyyAyy^[32<i0^[>ji110101110000010011011^[
             | 1uq<htmbqq=>            I do not advise attempting to
             | understand this code, which is       almost as bad as that
             | for the Universal Turing machine.
             | 
             | ADDED: or http://ancell-ent.com/share/minsky-TECO-turing-
             | machine.txt
             | 
             | Please ack receipt of this and/or send me email (in my HN
             | info); for others, note this is ITS TECO, which I was told
             | was by far the most powerful version of it (fortunately, by
             | the time I showed up learning it was no longer really
             | necessary).
             | 
             | DonHopkins on Sept 3, 2015 | parent [-]
             | 
             | OOP ACK! It was a shot in the dark, but I am SO GLAD I
             | asked!!! Thank you Harold!
             | 
             | It looks just like I remember. ;)
             | 
             | https://news.ycombinator.com/item?id=33356932
             | 
             | >I deeply appreciate and am greatly privileged to benefit
             | from the MIT AI Lab's "Tourist Policy" and general
             | openness, generosity, and encouragement of education, which
             | allowed me to use the lab's PDP-10s over the ARPANET as a
             | high school student. [...]
        
               | DonHopkins wrote:
               | I asked GPT-4 to take a whack at it:
               | 
               | ChatGPT:
               | 
               | I see that you've posted a TECO program, a Universal
               | Turing Machine emulator, from Marvin Minsky's directory,
               | shared via Hacker News.
               | 
               | TECO (Text Editor and COrrector) is a text editor that
               | was very popular and widely used in the 1960s and 1970s,
               | especially on DEC computers. It's an extremely powerful
               | and flexible editor, but also notoriously difficult to
               | understand and use. In fact, it's often used as an
               | example of a "write-only" language, because its programs
               | can be extremely hard to read and understand, even for
               | people who are familiar with TECO.
               | 
               | This TECO program is indeed cryptic. Its syntax involves
               | lots of non-alphanumeric symbols and control characters,
               | which are typical of TECO. Reading and understanding this
               | code would require a deep understanding of TECO's syntax
               | and commands.
               | 
               | TECO code is composed of commands that are read and
               | executed one after the other. Each command can have an
               | optional numeric argument, and can also have another
               | command as an argument. This allows for complex, powerful
               | operations, but also makes the code difficult to read.
               | 
               | If you're interested in understanding how this TECO
               | program works, I'd recommend starting by learning more
               | about TECO's syntax and commands. Be aware, though, that
               | this is not a trivial task; even experienced programmers
               | often find TECO challenging to understand.
               | 
               | As the Hacker News comments note, this program is written
               | in ITS TECO, a version of TECO used on the Incompatible
               | Timesharing System (ITS) developed at MIT. This version
               | of TECO has some differences from other versions, so you
               | would need to find documentation specifically for ITS
               | TECO in order to fully understand the program.
               | 
               | User:
               | 
               | How much of it can you understand? Explain what you can.
               | 
               | ChatGPT:
               | 
               | I must point out that while I'm able to provide
               | explanations on many topics, TECO is one of the most
               | cryptic and complex programming languages ever created.
               | TECO programs are notoriously difficult to read, and even
               | people who are experienced with TECO often struggle to
               | understand non-trivial programs written in it. Therefore,
               | please take the following explanation with a grain of
               | salt as it may be simplified or not entirely accurate due
               | to the complexity of TECO.
               | 
               | Here's a breakdown of a few commands, as far as I can
               | understand:
               | 
               | i1Aul qq+^^0:iqm^[29iiq\356y0L1 00L1 11L2 A1L1: This line
               | initializes several variables. The i command inserts
               | text, A assigns the value of the last text string
               | searched for to a variable (qq in this case), ul is
               | probably used to move the cursor to the left. There are
               | other commands to move around the buffer and do
               | arithmetic operations. The line ends with assigning a
               | string to variable qy and the insertion of several pairs
               | of numbers and letters.
               | 
               | y0L1 0yR2 1AR2 AyR6 yyL3 00L0 1AL3 A1L4 yyL4 0yR5 11L7
               | A1L4...: This line continues with similar commands,
               | modifying the state of the buffer and several variables.
               | 
               | ^[j<sR^[;-d-2ciql-^^^[ci"ed^^^[cii^[ciuq'^[>: This part
               | seems to be a conditional jump loop, a fundamental
               | structure in TECO. The j command moves to the beginning
               | of the buffer. The < and > delimit a loop, and s searches
               | for a string. The ; command conditionally terminates the
               | loop.
               | 
               | jxblx1lx2lx3lx4lx5lx6lx7hk: This line seems to be doing
               | various operations on buffers, possibly saving or loading
               | state. x executes a macro, l loads a file into a buffer,
               | h moves to the top of the current buffer, and k kills the
               | current buffer.
               | 
               | iyyAyyAyy^[32<i0^[>ji110101110000010011011^[
               | 1uq<htmbqq=>: This line again modifies buffers and
               | variables and includes another loop structure. The long
               | string of numbers seems to be data for the Turing
               | machine, and the uq command updates a Q-register.
               | 
               | Please note that this is a high-level interpretation and
               | might contain inaccuracies. Fully understanding this
               | program would require a deep understanding of TECO and
               | possibly access to its original documentation. As such,
               | this program is a great example of the complexity and
               | cryptic nature of TECO.
        
               | DonHopkins wrote:
               | Here's the ITS TECO manual and primer that ChatGPT
               | probably read:
               | 
               | LIST OF TECO COMMANDS, TECO VERSION 1132. Last updated 5
               | August 1981:
               | 
               | https://github.com/PDP-10/its/blob/master/doc/_teco_/teco
               | rd....
               | 
               | TECO PRIMER: AN ANNOTATED OUTLINE OF TECO COMMANDS:
               | 
               | https://github.com/PDP-10/its/blob/master/doc/_teco_/teco
               | .pr...
               | 
               | TECO Info Manual:
               | 
               | https://github.com/PDP-10/its/blob/master/doc/info/tecman
               | .20
               | 
               | TECO Programming in Emacs Info Manual:
               | 
               | https://github.com/PDP-10/its/blob/master/doc/info/conv.8
               | 5
               | 
               | EMACS LORE:
               | 
               | https://github.com/PDP-10/its/blob/master/doc/eak/emacs.l
               | ore
               | 
               | Lots of TECO code in the ITS Emacs sources, like KMP's
               | Doctor:
               | 
               | https://github.com/PDP-10/its/tree/master/src/emacs1
               | 
               | https://github.com/PDP-10/its/blob/master/src/emacs1/doct
               | or....
               | 
               | Prompt:
               | 
               | Implement Fizz Buzz in TECO.
               | 
               | ChatGPT:
               | 
               | Fizz Buzz is a simple programming task often used in
               | coding interviews. The task is to print the numbers from
               | 1 to 100, but for multiples of 3 print "Fizz" instead of
               | the number, and for multiples of 5 print "Buzz". For
               | numbers which are multiples of both 3 and 5 print
               | "FizzBuzz".
               | 
               | Implementing Fizz Buzz in TECO would be quite a challenge
               | due to the language's design and constraints. TECO is not
               | really meant for such tasks, as it is a text editor and
               | correction programming language. However, I'll provide a
               | rough example of how you might implement FizzBuzz in
               | TECO, although it's somewhat complex and involves a few
               | workarounds:                   0uz                    !
               | Store 0 in register Z (counter) !         <qz+1uz
               | ! Increment Z !         qz:<                   ! Inner
               | loop, executes while Z is less than or equal to 100 !
               | qz\3%<iFizz$>          ! If Z is divisible by 3, insert
               | "Fizz" !         qz\5%<iBuzz$>          ! If Z is
               | divisible by 5, insert "Buzz" !
               | qz\3%qz\5%"nqz\*A$'    ! If Z is not divisible by 3 or 5,
               | insert Z (as a character) !         ia
               | ! Insert a newline !         >'                     ! End
               | of inner loop !         >                      ! End of
               | outer loop !
               | 
               | This is a very rough, and not perfect, implementation. It
               | doesn't properly handle numbers over 9, because TECO
               | doesn't really support integer arithmetic in the way
               | modern languages do. When we print a number, we're
               | actually printing a character with the corresponding
               | ASCII code, so numbers over 9 would turn into non-digit
               | characters. Implementing FizzBuzz properly would likely
               | involve manually converting numbers to digit strings,
               | which would make the program quite a bit more complex.
               | 
               | In practice, you would rarely if ever use TECO for this
               | sort of task. TECO was designed for editing text, not for
               | general-purpose programming, and it lacks many of the
               | features that make modern languages suitable for tasks
               | like FizzBuzz. But, this does demonstrate some of the
               | ways you can use TECO's unique features to solve
               | problems.
        
         | deepspace wrote:
         | > in the process, he essentially destroyed what held it
         | together
         | 
         | Not only that, but the man's disgusting political and social
         | views tarnished everything he touched.
        
           | detourdog wrote:
           | He definitely grabbed headlines. Once I looked I found
           | nothing there. I wondered about his community because he
           | always seemed isolated and or armed.
        
             | aew4ytasghe5 wrote:
             | Seems probable seeing the kind of attacks of his political
             | views in this thread. I'd too keep a firearm for voicing
             | social justice opinions in a country fubar:ed by grief.
        
               | detourdog wrote:
               | Many responsible gun owners never publicly state their
               | ownership. Talking about guns in belligerent fashion is
               | one form of gun ownership.
               | 
               | I haven't seen any threats of violence just the acustaion
               | of being a knucklehead that owns firearms.
        
         | reaperducer wrote:
         | The -P convention: turning a word into a question by appending
         | the syllable "P"; from the LISP convention of appending the
         | letter "P" to denote a predicate (a Boolean-values function).
         | The question should expect a yes/no answer, though it needn't.
         | (See T and NIL.) At dinnertime: "Foodp?"
         | 
         | I'm old enough to have been active in this era, and to have
         | sent messages on teletypes using the "P" suffix. But for us, it
         | had nothing to do with LISP. Our machines weren't that cool.
         | 
         | In fact, they were so lame that many of the printing terminals
         | lacked a question mark character. The P was used as a
         | substitute for a ? because it was the closest visual
         | substitution. And naturally, most of our messages were one or
         | two words for economy. "FOODP" would print correctly on
         | machines that couldn't print "FOOD?" Not everyone had a fancy
         | glass terminal, so you had to assume the worst case scenario,
         | and use "P" in case someone was on paper.
         | 
         | On a related note, to make it easier to count spaces in
         | indented code, we would use a "b" character with a slash
         | through it. So the teletype was print b, then back up a space
         | by sending ^H, and then put a / through it.
         | 
         | It looked terrible, but got the job done. It used up a lot of
         | ink, but the bosses were watching paper use, not ink.
        
           | _a_a_a_ wrote:
           | Wirth silver(?) Pascal book used 'b' overstruck with a
           | backslash when spaces needed to be shown explicitly.
           | 
           | I wonder if there's a unicode for that.
        
             | kens wrote:
             | There is U+2422 Blank Symbol ().
        
           | antigonemerlin wrote:
           | Reminds me of "ye", pronounced and meaning "the", in English,
           | because medieval printers imported from Germany didn't have
           | that letter "Th' and 'Y' was the closest substitute.
        
             | kevin_thibedeau wrote:
             | It's worth noting that "ye" also existed as the second
             | person plural pronoun while "the" simultaneously existed as
             | a second person singular. These are now merged in most
             | English dialects. Getting the unrelated definite article
             | "the" mixed up in this and substituting a "y" was more than
             | just a matter of misguided font substitution because some
             | forms of the handwritten thorn look very similar to a "y".
             | Two words pronounced "the", one of which is easily
             | conflated with another spelled and pronounced "ye" leads to
             | the inevitable result.
        
           | gumby wrote:
           | "Splitp soup?" "T"
           | 
           | We used to even use this in speech sometimes, especially when
           | funny (say, agreeing to share Hot and Sour soup at Mary's,
           | for which the conversation above would work well).
           | 
           | Note the amusing pointlessness of p in this case since when
           | speaking you'd pronounce a question anyway.
        
         | detourdog wrote:
         | Wow, thanks for the clarification. I try be scholarly in my
         | cultural understanding of computing development and I hadnt
         | heard this perspective.
         | 
         | This is such an interesting group dynamic where a work product
         | of one group gets twisted by another group and claims
         | ownership.
         | 
         | The embrace and extend method.
        
       | ranting-moth wrote:
       | Interesting stuff. Perhaps add an alias hashbang for shebang.
        
         | tgv wrote:
         | No true hacker will say hashbang.
        
           | ralferoo wrote:
           | In the UK ! was (maybe still is) pronounced as "pling". I
           | know I've definitely said hashpling.
           | 
           | Actually surprised the American's weren't calling # "pound"
           | then, but maybe that evilness showed up later. But whatever,
           | it's never been a pound symbol in any country that uses
           | pounds!
           | 
           | Another interesting fact about # is that in the late 90s or
           | early 2000s, British Telecom tried to gaslight the British
           | public into thinking that # was pronounced "octothorpe".
           | Fortunately, everybody realised this was idiocy, and we all
           | carried on calling it "hash" like we always had.
        
           | ranting-moth wrote:
           | "As for the name: probably something descriptive like "hash-
           | bang" though this has a specifically British flavor, but in
           | any event I don't recall particularly using a pet name for
           | the construction."
           | 
           | - Dennis Ritchie
           | 
           | https://en.m.wikipedia.org/wiki/Shebang_(Unix)
        
           | dylan604 wrote:
           | here here. "hashbang that script will ya?" is something no
           | self respecting hacker would ever say.
        
       | JKCalhoun wrote:
       | So fun. Some favorites:
       | 
       | Big Room: http://www.hackersdictionary.com/html/entry/Big-
       | Room.html
       | 
       | Bogo-Sort: http://www.hackersdictionary.com/html/entry/bogo-
       | sort.html
       | 
       | Bug-For-Bug Compatible:
       | http://www.hackersdictionary.com/html/entry/bug-for-bug-comp...
       | 
       | Fence-post Error:
       | http://www.hackersdictionary.com/html/entry/fencepost-error....
       | 
       | Magic Smoke: http://www.hackersdictionary.com/html/entry/magic-
       | smoke.html
       | 
       | One-Banana Problem
       | http://www.hackersdictionary.com/html/entry/one-banana-probl...
       | 
       | Tail Recursion: http://www.hackersdictionary.com/html/entry/tail-
       | recursion.h...
        
         | dylan604 wrote:
         | tail recursion reminds me of the "how to keep an ______
         | occupied" rock. being from texas, the blank is usually "aggie".
        
         | unnouinceput wrote:
         | Bogosort is going to be the best algorithm once quantum
         | computing is fully available. It will be the _only_ algorithm
         | that will be used for the rest of humanity 's existence since
         | is the only one that can be 100% parallelized, so it will have
         | the last laugh.
        
       | MrVandemar wrote:
       | I remember discovering this in the early 90s and gleefully
       | reading out the COBOL definition to my COBOL lecturer.
        
       | WesolyKubeczek wrote:
       | If the spirit of the original Jargon file was to be a living
       | document, alas, it failed to keep with the times.
       | 
       | Hackers at large have moved away from Lisp despite Paul Graham
       | and other evangelists, Linux ate Unix, and there have been
       | several bright subcultures which have no meaningful presence in
       | either edition of the Jargon file. Considering self-professed
       | tribalism of the original authors, it's hardly surprising.
       | 
       | Hackers also have moved away from academia at large, and 9-5 jobs
       | at tech behemoths are more natural habitats for them, which also
       | shaped the lingo. I mean, there's a whole layer of slang usually
       | pertinent to outsourcing agencies and to cubicle farms.
       | 
       | It would be interesting to have a compilation of jargon as it
       | evolved through the 1990s and 2000s too.
        
         | mepian wrote:
         | Originally it was a document for MIT and Stanford University's
         | AI labs, it was not supposed to keep up with the "hackers at
         | large". Eric Raymond, who was not one of the original authors
         | of the jargon file, decided to appropriate it as his definition
         | of the whole existing hackerdom, which is rather controversial.
         | People from later communities could have written their own
         | jargon files.
        
           | tjr wrote:
           | I suspect that he has not been involved in this project for a
           | long time, but early on, Eric had the help and support of Guy
           | Steele.
        
       ___________________________________________________________________
       (page generated 2023-07-30 23:02 UTC)